An MCP server that provides weather data fetching capabilities by city name
Single tool with critical definition gaps. Tool name 'getWeatherDataByCityName' uses camelCase (non-standard for MCP) and lacks clarity on action. Input schema present but parameter 'city' has null description (violates pattern:tool-description). No output schema documented. Tool description missing entirely from server registration. No error handling guidance. Implementation is hardcoded mock data (Kathmandu, Jhumka only), not production-ready.
Tool lacks description entirely. Server.tool() call has no description parameter, violating pattern:tool-description. LLMs cannot determine when to invoke this tool.
Parameter 'city' has null description. Pattern:tool-description requires every parameter to have a non-empty description explaining what it controls. LLMs cannot infer that 'city' expects a city name vs. city ID vs. city code.
No output schema documented. Tool returns JSON text wrapped in content array, but LLMs have no schema to understand the structure (temp, forecast, error fields). Pattern:tool requires documented return types.
Tool name uses camelCase (getWeatherDataByCityName) instead of snake_case verb_noun convention (get_weather_by_city_name). Violates baseline naming standard from 549 production tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 27 | 2026-07-28+ | v2 |
No error handling guidance. When city is not found, tool returns {temp: null, error: '...'} but provides no recovery hint. Pattern:recovery-guide requires actionable error messages telling LLM what to do next.