An MCP server that provides weather information through the Open Weather API, integrated with an agent-based chat interface
Single tool 'open_weather_api' has a basic description but critical gaps in parameter documentation and output schema definition. The input schema references LocationQuerySchema (external file not shown), making it impossible to verify parameter types and constraints. No output schema is documented. The tool description is generic (34 chars) and lacks context on when to use it, what it returns, or error handling. No error recovery guidance. Naming is acceptable but description quality is well below the 194-char baseline for production tools.
Get the weather from the Open Weather API
Parameter schema not visible in source. LocationQuerySchema is imported but not defined in provided code. Cannot verify parameter type, constraints, or description.
No output schema documented. Tool returns JSON.stringify(weather) but LLM has no way to know what fields to expect (temperature, humidity, location, etc.). Prevents downstream tool chaining and forces LLM to parse unstructured text.
Tool description is 34 characters ('Get the weather from the Open Weather API'), below the 194-char baseline and lacks WHEN/WHY context. Does not explain what data is returned, when to call it vs alternatives, or error recovery steps.
No error handling or recovery guidance. If the API fails (invalid location, rate limit, network error), the tool returns a raw error with no actionable next step for the LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
Parameter 'locationQuery' lacks description in the visible schema. LLM cannot determine if it accepts 'New York', 'NYC', coordinates, or zip codes. Ambiguity invites invalid inputs.