A remote MCP server providing calculator and menu tools without authentication
Server has 3 tools with basic schemas and descriptions. All tools have input schemas with proper types (enum, number) and descriptions present. However, descriptions are minimal (10-50 chars), falling below the 50-200 char baseline for LLM-optimized descriptions. Output schemas are not documented, responses return generic text content without structured field definitions. Error handling is minimal (only divide-by-zero check in calculate tool). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Parameter descriptions lack context about valid ranges or formats. Tool composition is reasonable but descriptions do not explain when to use each tool vs. alternatives.
Adds two numbers together
Performs arithmetic operations (add, subtract, multiply, divide) on two numbers
Retrieves menu items for a specified category (burger or milkshake)
Descriptions are too brief (10-50 chars vs. 50-200 char baseline). 'Adds two numbers together' and 'Retrieves menu items for a specified category' lack context about when to use each tool, expected output format, or dependencies.
Output schemas are not documented. Tools return generic {content: [{type: 'text', text: string}]} but LLMs need to know the structure of returned data (e.g., getMenu returns array of strings, calculate returns a number as text).
No tool annotations despite all tools being read-only. Missing readOnlyHint in tool definitions prevents clients from understanding safety properties and optimizing caching/retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Parameter descriptions lack format/constraint details. 'First number to add' does not specify range, precision, or whether negative/decimal values are accepted. 'The menu category to retrieve' does not explain what happens if an invalid category is passed.
Minimal error handling. Only divide-by-zero is caught in calculate; other tools have no error paths. No guidance for LLMs on recovery (e.g., what to do if menu lookup fails, or if numbers are out of range).