A JSON-RPC 2.0 MCP server for managing a todo list with JWT authentication and PostgreSQL backend
toyMCP has 4 tools with minimal definition quality. Tool descriptions are present but extremely brief (10-30 chars), well below the 50-200 char baseline for LLM-optimized descriptions. Input schemas are visible but lack parameter descriptions entirely, every parameter is undescribed, violating the critical rule that 'every parameter needs a description.' No output schemas are documented. Error handling is absent. The tools are simple (todo CRUD + discovery), but the definitions lack the depth needed for reliable LLM invocation.
Discover available MCP methods and their schemas
Add a new todo item to the list
List all todo items
Remove a todo item by ID
All parameters lack descriptions. LLMs cannot infer what 'text' or 'id' parameters control without explicit guidance.
Tool descriptions are 10-30 characters, far below the 50-200 char baseline. 'Add a new todo item to the list' and 'List all todo items' lack context for when/why to use them vs alternatives.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., todo ID from list response).
No error handling guidance. Errors return raw messages with no recovery hints (e.g., 'todo not found' should suggest 'call todo.list() first').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 32 | 2026-07-28+ | v2 |
mcp.discover naming is vague. 'discover' is generic; 'list_available_methods' or 'get_tool_schemas' would be clearer action verbs.