Model Context Protocol Core SDK - a TypeScript SDK for building MCP servers and clients
The 'add' tool has a trivial implementation with minimal documentation. The tool definition is visible in packages/sdk/examples/math.ts, but critical quality dimensions are severely lacking. The input schema uses a bare string format ('a': 'number', 'b': 'number') rather than proper JSON Schema with type objects and descriptions. The tool description ('Adds two numbers together') is only 28 characters, below the 34-char p10 baseline. No output schema is documented in the ToolSpec type or the tool registration. The example does not demonstrate real-world complexity or follow production patterns for error handling, validation, or composability.
Adds two numbers together
Input schema uses bare strings instead of JSON Schema objects. Parameters lack type definitions and descriptions. The 'input' field in ToolSpec expects Record<string, string>, not proper typed objects.
Tool description is only 28 characters ('Adds two numbers together'), below the p10 baseline of 34 chars. Lacks context for LLM selection: does not explain when to use this tool, what it returns, or any prerequisites.
No output schema documented. The ToolSpec type defines 'output: Record<string, string>' but it is empty in the tool registration. LLMs cannot plan downstream calls without knowing return structure.
Tool registration method (McpServer.tool) accepts a bare function handler with minimal validation. No input validation, no error classification, no recovery guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 7 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 21 | - | v1 |
No parameter descriptions. Each parameter ('a', 'b') lacks a description explaining its role, expected range, or format. LLMs must guess from the name alone.