Single tool 'calculate' has a basic description (47 chars) and minimal parameter documentation. Input schema is present with type and description for the 'expression' parameter, but lacks constraints (no length limits, format validation, or examples of valid expressions). No output schema is documented, LLMs cannot predict the structure of results. No error handling guidance; invalid expressions will likely produce cryptic Python errors. Tool naming is acceptable (verb_noun), but the description does not explain when to use this tool vs. alternatives, what formats are accepted, or what the output looks like. No pagination, no batching, no composition hints. Baseline: avg tool description 194 chars (this is 47); avg params per tool 4 (this has 1). The server is functional but minimal.
Calculates/evaluates the given expression.
No output schema documented. LLMs cannot predict result structure (string? number? object with fields?). Agents cannot chain this tool's output to downstream tools.
Description is 47 characters, below the 10 - 1024 baseline and lacks critical context. Does not explain: what expression formats are valid, what the output represents, when to use this tool, or how to handle errors.
Parameter 'expression' has no constraints: no length limits, no format specification, no examples of valid input. LLMs will pass arbitrary strings, including malicious payloads or expressions that cause runtime errors.
No error handling guidance. Invalid expressions (e.g. '1/0', 'undefined_var') will raise Python exceptions. Tool does not return actionable error messages telling the LLM what went wrong or how to fix it.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
STDIO transport only. Server is not remotely accessible and cannot be used by hosted MCP clients. Limits deployment to local/containerized environments.