Production-grade MCP server template in TypeScript — monorepo with composable packages
Two tools with basic schemas and descriptions. Both tools have clear names (echo, health-check) and documented input/output. However, descriptions are minimal (under 150 chars), lack context on WHEN to use them, and parameter descriptions are sparse. The echo tool's description is generic ('Useful for testing'); health-check lacks detail on what 'health status' includes. No error handling guidance, no output schema documentation, and no parameter constraints (e.g., max message length for echo). Schemas are present but minimal. This is typical starter-template quality, functional but not production-optimized for LLM reasoning.
Echo the input message back to the caller. Useful for testing MCP connectivity and as a template for building new tools.
Check the health status of the MCP server. Returns uptime, version, and environment information.
Minimal parameter descriptions. 'message' param in echo tool lacks constraints (max length, encoding, format). LLMs cannot infer valid input ranges.
No output schema documented. Neither tool specifies what fields are returned or their types. LLMs cannot plan downstream tool calls or extract structured data.
Descriptions lack WHEN-to-use context. 'Echo the input message back' and 'Check the health status' are WHAT descriptions; missing guidance on when an LLM should select these tools vs alternatives.
No error handling guidance. If echo receives a 10MB message or health-check times out, no recovery hints are provided to the LLM.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | <=2025-11-25 | v2 |
health-check description vague on return fields. 'Returns uptime, version, and environment information', but no schema shows actual field names, types, or units (e.g., is uptime in seconds or milliseconds?).