Doppelreim Rhymes
Server Details
Multisyllabic, vowel and classic rhymes plus rhyming lines in 56 languages for lyrics and poems.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools have clearly distinct outputs: find_rhymes returns rhyming words/phrases by rhyme type, while find_rhyming_lines returns complete real lines that end with a rhyme. There is no meaningful overlap in what an agent would select for a given task.
Both names use a consistent snake_case verb_noun pattern with the same 'find_' prefix. 'find_rhymes' and 'find_rhyming_lines' are predictable and readable, with only a trivial grammatical variation in the noun phrase.
Two tools is borderline thin for a rhyme-focused server. While each tool has a distinct purpose, the surface feels minimal and could benefit from additional related operations (e.g., syllable lookup or language filtering).
The server covers the core rhyme workflow: finding rhyme words by type and finding real rhyming lines for inspiration. Minor gaps exist, such as no explicit way to control language or look up syllable counts, but these are workable around.
Available Tools
2 toolsfind_rhymesFind rhymesARead-onlyIdempotentInspect
Find rhymes for a word or short phrase. type "double" = multisyllabic rhymes (best for rap and poetry), "classic" = perfect end rhymes grouped by matching syllables, "vowel" = assonance (same vowel sounds). 50+ languages; strongest results come first.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Kind of rhyme. | double |
| word | Yes | Word or short phrase to rhyme on, e.g. "verloren" or "heart". | |
| limit | No | Maximum results per group. | |
| language | No | Language code. Supported: af, ar, az, bg, bs, ca, cs, cy, da, de, el, en-us, eo, es, es_lat, et, eu, fa, fi, fr, fr_be, fr_ch, hi, hr, hu, hy, hy_arevmda, id, it, ka, kn, ko, la, lt, lv, mk, ml, ms, nl, no, pl, pt, pt_br, ro, ru, sk, sl, sq, sr, sv, ta, te, tr, ur, vi, zh ("en" = "en-us"). | en |
| vocabulary | No | "rap" draws from rap lyrics (de and en only), "general" from general language. | general |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | Yes | |
| word | Yes | |
| groups | Yes | |
| language | Yes | |
| vocabulary | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety is covered. The description adds genuine behavior beyond that: results are ranked ('strongest results come first'), language breadth ('50+ languages'), and that classic rhymes are grouped by matching syllables. Only return-shape and rate/limit behavior are unstated, and an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, then the discriminating detail for each mode. No filler, no repetition of annotations or schema boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described, and the description covers the tricky parameter semantics, ranking, and language scope. The one gap is sibling differentiation against find_rhyming_lines, which an agent would need to resolve elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description meaningfully expands the enum values beyond the schema's bare 'Kind of rhyme' — explaining double as multisyllabic, classic as perfect end rhymes grouped by syllable, and vowel as assonance. That is the kind of semantic lift the schema does not provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find rhymes for a word or short phrase') and even clarifies the semantic variants of 'type'. It does not, however, differentiate itself from the sibling find_rhyming_lines, which remains a plausible alternative for an agent choosing a tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool's obvious scope, and 'best for rap and poetry' gives parameter-level guidance, but there is no statement of when to prefer this over find_rhyming_lines or any exclusion. An agent must infer routing from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_rhyming_linesFind rhyming linesARead-onlyIdempotentInspect
Find real lines (lyrics, proverbs, sayings) that end with a rhyme on the given word. Useful as inspiration for the next line of a verse.
| Name | Required | Description | Default |
|---|---|---|---|
| word | Yes | Word the lines should rhyme with. | |
| limit | No | Maximum number of lines. | |
| language | No | Language code. Supported: af, ar, az, bg, bs, ca, cs, cy, da, de, el, en-us, eo, es, es_lat, et, eu, fa, fi, fr, fr_be, fr_ch, hi, hr, hu, hy, hy_arevmda, id, it, ka, kn, ko, la, lt, lv, mk, ml, ms, nl, no, pl, pt, pt_br, ro, ru, sk, sl, sq, sr, sv, ta, te, tr, ur, vi, zh ("en" = "en-us"). | en |
| vocabulary | No | "rap" uses rap lyrics (de and en only), "general" uses proverbs and general texts. | general |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | Yes | |
| word | Yes | |
| groups | Yes | |
| language | Yes | |
| vocabulary | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and closed-world scope, so the safety profile is covered. The description adds useful content context (results are real lyrics, proverbs and sayings rather than generated text), but says nothing about result size, ranking, or how few lines may be returned for uncommon words.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the mechanism (what it returns) front-loaded before the motivational use case. No filler, nothing redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure need not be explained, and annotations cover the mutation profile. For a one-required-param lookup tool this is nearly sufficient; only the relationship to the find_rhymes sibling is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — word, limit, language and vocabulary all carry their own descriptions, including the supported language list and the rap/general enum distinction. The description adds only the vague phrase "the given word", so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (find) and resource (real lines ending in a rhyme) with illustrative examples of source material. An agent can infer it differs from find_rhymes (which likely returns words), but the sibling is never named, so the distinction rests on inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Useful as inspiration for the next line of a verse" implies the use case but gives no explicit when-to-use/when-not and never mentions find_rhymes as the alternative for a different need. Guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
find_rhymes - First observed
find_rhyming_lines
Related MCP Connectors
Write lyrics in 100+ styles, score them, generate full songs with 4 engines, split stems. OAuth.
Complete classical & world literature — search + cite exact passages, facing sources, 50+ languages.
Words MCP — wraps Datamuse API (free, no auth required)
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePhonetic analysis engine that gives LLMs accurate rhyme detection, stress scanning, meter identification, and syllable counting backed by the full CMU Pronouncing Dictionary.5MIT
- AlicenseNot gradedqualityBmaintenanceEnables users to find synonyms, rhymes, related words, autocomplete suggestions, and perform advanced word searches via the Datamuse API.74 npm1MIT
- AlicenseAqualityCmaintenanceEnables songwriting by generating original multilingual lyrics with English section tags from a brief, ready for music generation models.11MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to explore a public-domain poetry collection by searching poems by title, finding poems whose lines contain a given phrase, pulling one or more random poems, and listing available authors. It returns full poem text with author and line-count details, and works either through a hosted gateway or as a local stdio server without an account.65 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.