A Spring Boot-based MCP server that provides tools for querying account information by person ID
Single tool with minimal definition quality. Tool name 'getAccountsByPersonId' violates verb_noun convention (should be 'get_accounts_by_person_id'). Description is adequate (47 chars, within 10-1024 range) but lacks context on when to use vs alternatives. Input schema present with type (long) and description, but no constraints (min/max). No output schema documented, LLM cannot plan downstream calls. No error handling guidance. Tool is READ_ONLY (good), but lacks pagination support despite potentially returning multiple accounts. Missing idempotent/readonly annotations.
Find all accounts by person ID
Tool name violates verb_noun convention. 'getAccountsByPersonId' uses camelCase; should be 'get_accounts_by_person_id' for LLM parsing clarity.
No output schema documented. LLM cannot infer what fields Account objects contain or plan downstream tool calls. Must document return type structure.
No pagination support. Tool may return unbounded lists, risking context window exhaustion. Add limit and offset/cursor parameters with documented max results.
Input parameter 'personId' lacks constraints. No min/max documented. LLM may pass invalid values (negative, zero, absurdly large). Add range constraints to description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No error handling guidance. If personId not found, what does tool return? Empty list? Error? Tool description must clarify behavior for missing/invalid inputs.