Typescript Template for Model Context Protocol (MCP) Server
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output structure. Both tools have action-verb names (get-*) and non-empty descriptions (40-50 chars), meeting minimum bars. However, parameter descriptions are minimal (e.g., 'Latitude of the location' lacks format/range guidance despite constraints being present in schema). No output schema documentation. Error handling returns plain text rather than structured guidance. Tool composition is sound (each does one thing), but lacks the depth expected for production use.
Get weather alerts for a state
Get weather forecast for a location
Output schema not documented. LLMs cannot plan downstream calls or extract structured data from alert/forecast responses. Responses are plain text blocks without field definitions.
Parameter descriptions lack actionable constraints. 'Latitude of the location' does not mention the -90 to 90 range or that only US coordinates are supported. LLMs cannot self-correct invalid input.
Error responses are plain text without recovery guidance. 'Failed to retrieve alerts data' does not tell the LLM whether to retry, check input, or escalate. No error classification (retryable vs user-fixable).
Tool descriptions are too brief (40-50 chars). Baseline for A+ tools is 194 chars. Missing context on WHEN to use each tool, what data is returned, and dependencies (e.g., 'get-forecast requires valid US coordinates; call with lat/lon from a location lookup').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
No pagination or result limits documented. If NWS API returns many alerts, the response could exhaust context. Tool description should state max results and offer pagination guidance.