Multi-tool MCP integration for Claude with weather, calculator, and datetime tools
This server has 5 tools with minimal documentation and no input validation. Tool descriptions are present but generic (10-50 chars, well below the 194-char baseline). No parameter descriptions exist for any tool. Input schemas are visible but lack descriptions for parameters. The calculator tool uses unsafe eval() despite claiming a 'safe namespace'. Weather tools are async but lack timeout/error recovery guidance. No tool declares what it returns or how to chain results. Overall, this is a below-average community server with significant gaps in LLM-optimization and safety.
Calculate the result of a mathematical expression.
Get weather alerts for a US state.
Get the current date and time.
Get the current UTC date and time.
Get weather forecast for a location.
No parameter descriptions for any tool. 'state' and 'latitude'/'longitude' parameters lack guidance on format, constraints, or valid ranges. LLMs cannot infer whether 'state' expects 'CA' or 'California', or if latitude must be -90 to 90.
Tool descriptions are too short (10-50 chars vs 194-char baseline). 'Get the current date and time' and 'Get weather alerts for a US state' lack context on WHEN to use each tool, what it returns, or how to chain results. LLMs cannot distinguish between get_current_time and get_current_utc_time without reading code.
calculate() uses eval() with a 'safe namespace' that is NOT safe. The safe_dict whitelist can be bypassed via attribute access (e.g., '().__class__.__bases__[0].__subclasses__()') or by importing modules. This is a critical security vulnerability.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
No output schema documentation. Tools return free-text strings (e.g., 'Result: 42', 'No active alerts for this state'). LLMs cannot parse structured results or chain tool outputs. Weather tools return formatted text instead of structured JSON with fields like alert_id, severity, area.
No error recovery guidance. Weather tools return 'Unable to fetch alerts' or 'Unable to fetch forecast' with no hint on what to do next (retry? check coordinates? try a different state?). Calculator returns 'Error: <exception>' without telling LLM which constraint was violated.