A FastAPI-based MCP server that provides a tool to retrieve capital cities for given countries
Single tool 'get-capital' has a valid name starting with verb 'get', but definition quality is severely compromised. Description is present (47 chars) but minimal and lacks context on when/why to use it. Input schema exists with proper type (string) and description, but output schema is only documented in metadata endpoint, not in the tool definition itself. No error handling guidance, no parameter constraints, no mention of data limitations (only 3 hardcoded countries). Tool is READ_ONLY but lacks explicit idempotent annotation. Overall structure suggests a proof-of-concept rather than production-grade tool.
Given a country name, returns the capital city.
Output schema not declared in tool definition; only documented in separate /metadata endpoint. LLMs cannot infer return structure from tool registration.
Tool description (47 chars) lacks context on when to use it, what it returns, and limitations. Does not explain that only 3 countries are supported or what happens for unknown countries.
No error handling guidance. Tool returns 'Unknown' for unsupported countries with no indication to the LLM that this is a fallback or that it should try a different approach.
Tool lacks idempotent or read-only annotations. Although marked READ_ONLY in metadata, no explicit tool annotation (idempotentHint) is present in the schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Hardcoded data (3 countries) severely limits utility. No documentation of supported countries or guidance on how to extend the tool.