A Rust-based Model Context Protocol (MCP) server for process management with gRPC backend
The calculator tool has a well-defined schema with proper JSON Schema structure, good naming conventions, and adequate descriptions. However, there are significant limitations: (1) only one tool is present, limiting composition assessment; (2) parameter descriptions are missing from the schema definition, which violates the pattern that EVERY parameter needs a description; (3) output schema is not explicitly documented; (4) error handling is basic (division by zero check exists, but responses lack recovery guidance); (5) no indication of idempotency or destructive operation hints. The tool itself is simple and well-intentioned, but falls short of production-grade quality due to undocumented parameters and missing output schema documentation.
Simple calculator tool
Parameter descriptions missing from input schema. The schema defines 'operation', 'a', and 'b' properties but does not include 'description' fields for each parameter, violating the pattern that every parameter must have a non-empty description explaining what it controls.
Output schema not documented. The tool's handle() method returns a Value but there is no documentation of what fields or structure the output contains, making it impossible for LLMs to plan downstream tool calls or know what to expect.
Error handling lacks recovery guidance. Division by zero returns an error message, but does not guide the LLM on next steps or classify the error as retryable vs. user-fixable. Error responses should answer: 'What went wrong?' and 'What should the agent do about it?'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | D | 59 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 46 | 2025-03-26+ | v1 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The calculator is read-only and idempotent, but these hints are not present in the tool registration, preventing agents from optimizing retry and caching behavior.