MCP server for lyrics.com. Search song lyrics by word or by title, and fetch full lyrics. No API key required.
Three tools with complete schemas and descriptions. Naming follows verb_noun pattern (search_*, get_*). Descriptions are adequate (40-60 chars) but lack actionable context for LLM selection. All parameters have types and descriptions. Tool annotations present (readOnlyHint=true). Output schemas are documented in code but not exposed in tool definitions. No error handling guidance or recovery paths documented. Pagination support present (page parameter) but no total_count or next_cursor in documented output.
Get full lyrics
Search lyrics by word
Search songs by title
Tool descriptions lack actionable context. 'Search lyrics by word' and 'Search songs by title' do not explain WHEN to use each tool, what distinguishes them, or what the LLM should do with results. Descriptions should state: 'Use this to find songs matching a lyric phrase; returns song IDs for get_lyrics.'
Output schemas not documented in tool definitions. Code shows searchLyricsOutputShape, getLyricsOutputShape exist, but LLMs cannot see them. Tool definitions must include explicit 'returns' documentation with field names, types, and meanings.
No error handling guidance. If search_lyrics returns no results, or get_lyrics fails due to invalid ID, the tool provides no recovery hint. Descriptions should state: 'If no results, try a shorter search term or different word.'
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2025-06-18+ | v2 |
Pagination support incomplete. 'page' parameter present but no documentation of page size, total count, or whether results are exhausted. LLMs cannot determine when to stop paginating.
get_lyrics accepts both 'id' and 'url' parameters but does not document which is preferred or what happens if both are provided. Undocumented parameter relationships cause LLM confusion.