MCP server deployed on Vercel that provides access to Recoupable artist data including fans and posts across social media profiles
Both tools have minimal descriptions (under 100 chars) and critically lack parameter descriptions. The schema shows artist_account_id as a bare z.string() with null description, violating the requirement that every parameter must have a non-empty description explaining what it controls. Tool names follow verb_noun convention (get_artist_*), but parameter naming is ambiguous: 'artist_account_id' could mean a UUID, username, or email, no guidance on format or expected values. No output schema is documented, forcing LLMs to guess what fields to expect. No error handling guidance. Handlers implement pagination internally but the tool descriptions do not mention this capability or result limits.
Get a list of fans for a specific artist across all social media profiles
Get a list of social media posts for a specific artist across all social media profiles
All parameters lack descriptions. artist_account_id has null description in schema, violating pattern:tool-description. LLMs cannot infer whether to pass a UUID, username, email, or numeric ID.
No output schema documented. Handlers return paginated results with fan/post summaries, but tool definitions do not specify return structure, field types, or pagination metadata. LLMs cannot plan downstream operations.
Parameter naming is ambiguous. 'artist_account_id' lacks format guidance, is it a UUID, numeric ID, username, or email? Baseline pattern requires suffix clarification (artist_id vs artist_name vs artist_email).
Tool descriptions do not mention pagination, result limits, or that handlers fetch all pages internally. Baseline requires stating limits (e.g. 'Returns up to 500 fans across all pages') to set LLM expectations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
No error handling guidance. Handlers do not validate artist_account_id format, handle API failures, or return actionable error messages. LLMs receive raw errors with no recovery path.