Overview
For each letter of `word`, the generator picks one answer that begins with that letter and adds it to `lines`. The keyword is uppercased first, so `keyword` and every `letter` come back in capitals. With the default `theme` of `random`, the candidates are every dictionary entry made only of the letters a-z and at least three letters long, and one is chosen at random. A named theme first looks in that theme's fixed list of 26 words; when the list has no word for a letter (four of the five themes have none for X, for example), that line falls back to the full dictionary.
Each `clue` is the dictionary definition of its `answer`, cut to 80 characters with `...` appended when it was longer. If an answer has no definition, the clue reads "A word starting with" and the letter. `letterCount` is the length of the answer, `position` is its 1-based line number, and `lineCount` equals the number of characters in the keyword.
No answer repeats within a puzzle and no answer is the keyword itself; when a theme's word for a letter is already used (or is the keyword), that line falls back to the full dictionary. A keyword containing anything other than the letters A-Z returns a 400.
On the Free plan the `theme` parameter is removed before the request runs, so puzzles always use the full dictionary and `theme` reads `random`; `html` and `image` are null. On paid plans `html` holds a styled page with each first letter, blanks for the remaining letters, the clue, and the hidden word masked. `image=true` renders the same layout as a PNG and returns a `downloadURL` that expires one day later (`image.expires`).
Live Test Acrostic Puzzle Skill Skill →
The tool
Once your client is connected to the VerveKit server, this appears in its tool list as AcrosticPuzzleSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.
{
"name": "AcrosticPuzzleSkill",
"arguments": {
"word": "HAPPY"
}
}You do not name the tool yourself; the model picks it. Asking about HAPPY in the terms this skill covers is enough for it to reach for AcrosticPuzzleSkill on its own — naming it explicitly also works, and is the way to force the call.
Connecting
One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.
{
"mcpServers": {
"vervekit": {
"url": "https://api.vervekit.com/v1/mcp"
}
}
}https://api.vervekit.com/v1/mcpPer-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.
Arguments
These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.
| Argument | Type | Description |
|---|---|---|
wordRequired | string | The keyword to spell out (3-15 letters) |
themeOptionalPremium | string | Theme: random, positive, nature, adventure, friendship, learning default random |
imageOptionalPremium | boolean | Set to true to generate a downloadable puzzle image |
What the model gets back
The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.
{
"status": "ok",
"error": null,
"data": {
"keyword": "HAPPY",
"theme": "positive",
"lines": [
{
"position": 1,
"letter": "H",
"answer": "HAPPY",
"letterCount": 5,
"clue": "1. Favored by hap, luck, or fortune; lucky; fortunate; successful; prosperous; s..."
},
{
"position": 2,
"letter": "A",
"answer": "AMAZING",
"letterCount": 7,
"clue": "Causing amazement; very wonderful; as, amazing grace. -- A*maz\"ing*ly, adv."
},
{
"position": 3,
"letter": "P",
"answer": "PEACEFUL",
"letterCount": 8,
"clue": "1. Possessing or enjoying peace; not disturbed by war, tumult, agitation, anxiet..."
},
{
"position": 4,
"letter": "P",
"answer": "PEACEFUL",
"letterCount": 8,
"clue": "1. Possessing or enjoying peace; not disturbed by war, tumult, agitation, anxiet..."
},
{
"position": 5,
"letter": "Y",
"answer": "YOUTHFUL",
"letterCount": 8,
"clue": "1. Not yet mature or aged; young. \"Two youthful knights.\" Dryden. Also used fig..."
}
],
"lineCount": 5,
"html": "<html><head><title>Acrostic Puzzle</title><style>body {font-family: Arial, sans-serif; padding: 20px; max-width: 700px; margin: 0 auto;}h1 {text-align: center; color: #FF5722;}.intro {text-align: center; color: #666; margin-bottom: 30px;}.puzzle {margin: 20px 0;}.line {display: flex; align-items: center; margin: 10px 0; padding: 10px; background: #f5f5f5; border-radius: 5px;}.number {width: 30px; font-weight: bold; color: #FF5722;}.first-letter {width: 40px; height: 40px; background: #FF5722; color: white; display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: bold; border-radius: 5px; margin-right: 10px;}.blanks {display: flex; gap: 3px; margin-right: 15px;}.blank {width: 25px; height: 30px; border-bottom: 2px solid #333;}.clue {flex: 1; font-size: 14px; color: #666; font-style: italic;}.keyword {text-align: center; margin-top: 30px; padding: 20px; background: #FFF3E0; border-radius: 10px;}.keyword-letters {display: flex; justify-content: center; gap: 10px;}.keyword-letter {width: 40px; height: 40px; background: #FF5722; color: white; display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: bold; border-radius: 5px;}</style></head><body><h1>Acrostic Puzzle</h1><div class='intro'>Solve the clues. The first letters spell a word!</div><div class='puzzle'><div class='line'><span class='number'>1.</span><span class='first-letter'>H</span><span class='blanks'><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span></span><span class='clue'>1. Favored by hap, luck, or fortune; lucky; fortunate; successful; prosperous; s...</span></div><div class='line'><span class='number'>2.</span><span class='first-letter'>A</span><span class='blanks'><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span></span><span class='clue'>Causing amazement; very wonderful; as, amazing grace. -- A*maz'ing*ly, adv.</span></div><div class='line'><span class='number'>3.</span><span class='first-letter'>P</span><span class='blanks'><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span></span><span class='clue'>1. Possessing or enjoying peace; not disturbed by war, tumult, agitation, anxiet...</span></div><div class='line'><span class='number'>4.</span><span class='first-letter'>P</span><span class='blanks'><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span></span><span class='clue'>1. Possessing or enjoying peace; not disturbed by war, tumult, agitation, anxiet...</span></div><div class='line'><span class='number'>5.</span><span class='first-letter'>Y</span><span class='blanks'><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span><span class='blank'></span></span><span class='clue'>1. Not yet mature or aged; young. 'Two youthful knights.' Dryden. Also used fig...</span></div></div><div class='keyword'><p>Hidden word:</p><div class='keyword-letters'><div class='keyword-letter'>?</div><div class='keyword-letter'>?</div><div class='keyword-letter'>?</div><div class='keyword-letter'>?</div><div class='keyword-letter'>?</div></div></div></body></html>",
"image": {
"imageName": "8b67d4ec-c262-4f7b-9cf1-b8c2766e8c54_acrostic.png",
"format": ".png",
"downloadURL": "https://storage.googleapis.com/apiverve/APIData/acrostic/8b67d4ec-c262-4f7b-9cf1-b8c2766e8c54_acrostic.png?GoogleAccessId=635500398038-compute%40developer.gserviceaccount.com&Expires=1766009969&Signature=IBbnpk61J5uW7bsfoqRwceF7weeBO%2Bq63BKH7LZpXLhZJk1vYISzRXy%2BPeZnH0t4h%2FvK%2BIJCv84THbV5ym9KkdLUXJK3wYkh8XoyZz%2FyFsBNJ6YCtFLkb0F3AULXyOGEcJ3F3mz4f2oS9P6Wtx4bX8NKVs3B316pY0aJzKo%2Fm5Lnv81i9y%2BRA7EMc9f7M8N9Nin08T%2F4K3W3LxO%2FJUcwocs7UTAORbhCSTqbSn2eIhJLKAN%2B4gSvDghzigwHT9THBVAD1VHgmkfxPNKMqFcarnah7Lfh78RcZM5Zfubl50YgBLVwwwQ%2Bp0Sxbjgeb0osdEkHwAfXbKP2bmA9%2B3TrLA%3D%3D",
"expires": 1766009969599
}
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
keyword | string | HAPPY | The word spelled by first letters of all answers |
theme | string | positive | The selected theme used to generate word answers |
lines | array[5] | Array of clue objects with answers and letters | |
lines.0.position | number | 1 | Line number position in the acrostic puzzle |
lines.0.letter | string | H | First letter of the answer word for this line |
lines.0.answer | string | HAPPY | The complete answer word for this clue |
lines.0.letterCount | number | 5 | Number of letters in the answer word |
lines.0.clue | string | 1. Favored by hap, luck, or fortune; lucky; fortunate; successful; prosperous; s... | Dictionary definition clue for solving the puzzle |
lineCount | number | 5 | Total number of lines and clues in puzzle |
htmlPremium | string | <html><head><title>Acrostic Puzzle</title><style>body {font-family: Arial, sans-serif; padding: 20px… | Rendered interactive HTML puzzle with styled layout |
imagePremium | object | {…} | Generated puzzle image with metadata and download URL |
image.imageNamePremium | string | 8b67d4ec-c262-4f7b-9cf1-b8c2766e8c54_acrostic.png | Unique identifier for the generated puzzle image |
image.formatPremium | string | .png | Image file format extension like .png or .jpg |
image.downloadURLPremium | string | https://storage.googleapis.com/apiverve/APIData/acrostic/8b67d4ec-c262-4f7b-9cf1-b8c2766e8c54_acrost… | Cloud storage URL for downloading the puzzle image |
image.expiresPremium | number | 1766009969599 | Unix timestamp when the download URL expires |
Failure modes
Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.
| Status | What it means |
|---|---|
400 / 422 | The arguments did not validate. The message names the offending one. |
401 | The OAuth session is invalid or expired — reconnect the server. |
403 | Blocked by a key restriction or an IP allow-list. Never a bad identity. |
404 | This skill is not part of VerveKit. Check the catalog. |
429 | Out of credits, or a brief rate limit. The message tells them apart. |
A call costs 2 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.
Use cases
- Education
- Create vocabulary puzzles that reveal themed words
- Special Occasions
- Generate personalized acrostics for names and messages
- Word Games
- Build acrostic challenges for puzzle apps
- Creative Writing
- Inspire poetry and creative word exercises
Other ways to use Acrostic Puzzle Skill
Set up Acrostic Puzzle Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.
Related
More in Games: