Hello Model Context Protocol - A demonstration MCP server with basic tool and resource examples
The server defines only 1 tool ('add') with critical quality gaps. The tool has a valid Zod schema but lacks meaningful descriptions entirely. Parameter descriptions are explicitly null, violating baseline requirements (100% of A+ tools have param descriptions). The tool description is absent or not visible in the provided source. The server also provides a resource endpoint but this evaluation focuses on the tool 'add'. The codebase shows proper MCP SDK usage but the tool definition itself is severely underdocumented.
Tool 'add' has no description. According to pattern:tool-description, every tool must have a non-empty description explaining WHAT it does, WHEN to use it, and any prerequisites. Without this, LLMs cannot determine when or why to select the tool.
Parameters 'a' and 'b' have null descriptions in the schema. The rubric baseline states 100% of A+ tools have descriptions on every parameter. A parameter named 'a' or 'b' is vague, the description should clarify what these numbers represent and their valid ranges.
Tool name 'add' does not follow verb_noun convention. While 'add' is a verb, it is generic and does not convey the specific domain or context. 'add_numbers', 'compute_sum', or 'calculate_addition' would be clearer and more specific. Generic names like 'add' reduce clarity when many tools are available.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 7 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 26 | - | v1 |
No parameter constraints defined. Parameters accept any number but lack minimum/maximum bounds. For numeric parameters, the rubric specifies: 'Specify minimum and maximum for numeric parameters... Unbounded numbers let LLMs pass absurd values.' Example: should 'a' and 'b' accept negative numbers? Very large values?
Output schema not documented. The tool returns a text response but no structured output schema is declared. According to pattern:tool, 'Document the output schema. LLMs need to know what fields to expect so they can plan downstream tool calls.' The return format is visible in code but not in a schema declaration accessible to clients.