Server has 4 tools with basic schemas and descriptions. All tools are READ_ONLY and properly registered with Zod schemas. However, descriptions are minimal (10-40 chars), parameter descriptions are missing entirely, and output schemas are undocumented. Error handling exists but lacks recovery guidance. No tool annotations present. Naming is clear (verb_noun pattern) but parameter documentation is sparse.
Get stored attachment content as markdown or base64
Get subsidy detail by id
Health check
Search subsidies from J-Grants public API
Parameter descriptions missing. All 4 tools have input parameters (keyword, sort, order, acceptance, etc.) with NO descriptions. LLMs cannot infer what 'acceptance' means (filter? boolean? enum?) without explicit text.
Tool descriptions too short (10-40 chars). 'Health check', 'Get subsidy detail by id', 'Get stored attachment content as markdown or base64' lack context on WHEN to use, WHAT it returns, and dependencies. Baseline is 194 chars.
Output schemas undocumented. Tools return structuredContent with complex nested objects (attachments array, file metadata, warnings) but no schema documentation. LLMs cannot plan downstream calls without knowing response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2025-06-18+ | v2 |
Error messages lack recovery guidance. Errors return raw text like 'search_subsidies failed: <message>' without suggesting next steps (e.g., 'Try with fewer filters' or 'Check API connectivity'). Pattern: recovery-guide.
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint metadata. All are READ_ONLY but this is not declared in tool registration, forcing LLMs to infer safety from descriptions.