MCP server for querying the Verified Human Cert registry — verify human-made music certifications by ISRC, artist, track, or cert number
Server has 6 tools with basic descriptions and no input schemas visible in the source. All tools are READ_ONLY and call external APIs. Descriptions are present but generic (avg ~100 chars, below the 194-char baseline). No parameter descriptions beyond the docstring. No output schemas documented. Error handling returns JSON but lacks recovery guidance. Tools follow a consistent naming pattern (vhc_*) but lack action verbs (get_, list_, verify_). No tool annotations, no pagination support visible, no structured output guidance.
Get current pricing and bundle options for VHC certifications.
List all recently issued human-made music certifications. Returns the public registry of verified certifications.
Get platform statistics — totals, tier breakdown, certification counts. Combines data from both registry and certification stats endpoints.
Look up a certification by its cert number.
Verify a human-made music certification by ISRC code. Returns certification details if the ISRC is registered, or a not-found response otherwise.
Check certification status by artist and track name.
No input schemas visible in source code. All tools lack JSON Schema definitions for parameters. FastMCP decorator syntax does not show explicit schema registration.
Tool names lack action verbs. 'vhc_verify_isrc' should be 'verify_isrc' or 'get_certification_by_isrc'. 'vhc_registry' should be 'list_certifications' or 'get_registry'. LLMs infer intent from verb-noun structure.
No output schemas documented. Tools return JSON strings but LLMs cannot plan downstream calls without knowing response structure. Missing field documentation for chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Error handling returns generic JSON with 'error' and 'detail' fields but no recovery guidance. 'Connection failed' tells LLM nothing about retry strategy or alternatives.
Parameter descriptions missing. 'isrc' param has a description in docstring but not in schema. 'artist' and 'track' lack context on format/length constraints. LLMs cannot validate inputs.