Production-ready MCP server boilerplate
Two simple tools with basic schemas and minimal descriptions. Both tools have proper input schemas visible in src/index.ts, but descriptions are extremely short (10-39 chars, below the 34-char p10 baseline and well below the recommended 50-200 char range for LLM optimization). Parameter descriptions exist but are minimal. No output schemas documented. No error handling guidance. Resource definition present but not evaluated as a tool. This is a minimal boilerplate server with no sophisticated patterns applied.
Echo a message back to the caller
Get the current UTC timestamp
Descriptions are under 20 characters and lack LLM-optimized guidance. 'Echo a message back to the caller' (35 chars) and 'Get the current UTC timestamp' (29 chars) do not explain WHEN to use these tools, what they return, or how they compose with other operations.
Output schemas not documented. Tools return text content, but LLMs cannot infer the exact response structure without explicit schema. No documentation of whether responses are always single text items, or if they could be arrays, objects, or structured data.
No error handling or recovery guidance. If 'echo' receives an empty string or null, or if 'timestamp' fails to generate a date, there is no specification of error responses or actionable guidance for the LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 37 | - | v1 |
Tool 'echo' parameter 'message' lacks guidance on length, format, or special character handling. A 50KB message or control characters could cause issues, but no constraints are documented.
No tool composition or chaining hints. There is no guidance on when these tools should be used together, or what downstream operations might consume their outputs.