Framework-layer DX for Model Context Protocol — scaffolding, hot reload, inspector UI, and OpenAPI → MCP tool generator. The create-next-app of MCP.
Single tool 'echo' with minimal definition. Schema is present and properly typed (string message parameter), but description is generic (10 words, 54 chars, below the 10-1024 char baseline). No parameter-level description in the schema itself (only in Zod validation, not exposed to LLM). Tool is trivial (read-only echo) and does not demonstrate real-world patterns like pagination, error recovery, or composition. No output schema documented. This is a scaffolding template, not a production tool.
Echo the provided text back to the caller.
Tool description is too generic and lacks context. 'Echo the provided text back to the caller.' (54 chars) does not explain WHEN to use this tool or what it returns. Baseline: 194 chars average for production tools.
Parameter 'message' lacks description in the exposed input schema. The Zod schema has .describe() but the ListToolsRequestSchema response omits parameter descriptions. LLMs cannot infer that 'message' is the text to echo.
Output schema is not documented. Tool returns {content: [{type: 'text', text: string}]} but this structure is not declared in the tool definition. LLMs cannot plan downstream calls or validate responses.
No error handling guidance. If CallToolRequestSchema receives an unknown tool name, the handler throws 'unknown tool: X', a raw error with no recovery hint. Should guide LLM to list_tools or suggest alternatives.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Tool name 'echo' does not follow verb_noun convention. 'echo' is a noun/verb ambiguity. Better: 'repeat_text' or 'echo_message' to clarify the action. Baseline: 90% of A+ tools start with action verbs.