A weather MCP server written in Swift that provides current weather information for locations
Single tool 'weather' has critical definition gaps. Description is minimal (34 chars, below 50-char baseline for LLM clarity). Input schema is malformed: properties object uses incorrect JSON Schema structure (nesting 'type' and 'properties' as values rather than proper schema format). Parameter 'city' lacks type declaration in schema. No output schema documented. No error handling guidance for LLM recovery. Tool does not follow verb_noun naming (should be 'get_weather'). No parameter constraints (min/max length, format). Naming is generic and does not clearly convey action.
Get current weather for a location
Input schema is malformed. Properties object incorrectly nests 'type' and 'properties' as object values instead of using proper JSON Schema format. Parameter 'city' has no explicit type declaration.
Tool description is 34 characters ('Get current weather for a location'). Below 50-char minimum for LLM clarity. Does not explain WHEN to use, WHAT it returns, or any prerequisites.
No output schema documented. LLM cannot predict return structure or plan downstream operations. Baseline: 100% of A+ tools document return types.
Parameter 'city' lacks description. LLM cannot infer whether to pass city name, city code, or coordinates. Baseline: 100% of A+ tool params have descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 31 | 2026-07-28+ | v2 |
Error handling returns plain strings ('URL invalid', 'Response invalid', 'Error getting weather: ...'). No recovery guidance for LLM. Does not categorize errors as retryable or user-fixable.