An MCP server built with Elysia and elysia-mcp framework, providing tools for calculations, prompts for greetings, and news resources
Server has 1 tool (calculate) with a clear description and well-formed schema. Naming is verb-based and unambiguous. Input parameters have type definitions and descriptions. However, output schema is not documented, error handling is not specified, and the tool lacks guidance on what happens after invocation (side effects, return structure). The server demonstrates basic competence but lacks production-grade polish in response documentation and error recovery patterns.
Performs arithmetic operations (add, subtract, multiply, divide) on two numbers
Output schema not documented. The tool description states what it does but does not specify the structure of the return value (e.g., does it return {result: number} or {operation: string, a: number, b: number, result: number}?). LLMs cannot plan downstream operations or validate responses without knowing the shape of the output.
Error handling strategy not defined. No guidance on what errors the tool can raise (e.g., division by zero, invalid operation) or how the LLM should recover. The tool description lacks a recovery guide like 'If division by zero occurs, suggest a different operation to the user.'
Tool description is under the recommended length for optimal LLM selection context. At 85 characters, it covers the basics but lacks detail on WHEN to use this tool vs other tools, any constraints, or return format. Production descriptions typically range 100-300 chars to provide sufficient context without token waste.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 10 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 54 | - | v1 |
No enumeration of supported operations in the description. While the schema correctly defines operation as an enum with [add, subtract, multiply, divide], the tool description does not reinforce this list. LLMs should see the operations mentioned in the description text as well for improved clarity.
No division-by-zero or input validation guidance. If the user attempts division by zero with operation='divide' and b=0, what happens? The tool description should state 'Division by zero will return an error; suggest a different operation to the user.'