An MCP server for querying Taylor Swift database with support for albums, songs, tours, and streaming queries
The server registers 5 tools with basic schemas and descriptions. All tools have names, descriptions, and input schemas visible in handlers.go. However, critical gaps exist: (1) No output schemas are documented anywhere, LLMs cannot know what fields to expect from results. (2) Parameter descriptions are minimal and lack constraints, ranges, or format guidance. (3) No error handling guidance is present. (4) Tool descriptions are generic and do not explain WHEN to use each tool vs. alternatives. (5) No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being READ_ONLY. The naming is verb-forward (list_, query_, analyze_, streaming_), which is good, but the descriptions and schemas lack the depth needed to guide LLM tool selection reliably.
Analyze Taylor Swift tour data including revenue and attendance
List all available tables in the Taylor Swift database
Query Taylor Swift albums with optional filters
Query Taylor Swift songs with streaming and chart data
Execute a large query with streaming results (for demo)
No output schemas documented for any tool. LLMs cannot plan downstream calls or know what fields are available in results.
Parameter descriptions are minimal and lack constraints, ranges, or format guidance. Examples are embedded in descriptions as 'e.g.' rather than declared as enums, inviting hallucinated values.
Tool descriptions are too generic and do not explain WHEN to use each tool vs. alternatives. E.g., query_albums vs. query_songs distinction is unclear.
All tools are declared READ_ONLY but no readOnlyHint annotations are present in tool definitions. Tool annotations are missing entirely.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 46 | 0.1.0+ | v1 |
No error handling guidance. When a query fails, handlers return generic error messages without recovery suggestions or context.