Visual Crossing Weather MCP — wraps the Visual Crossing Weather Timeline API
Three tools with complete input schemas and descriptions. Naming follows verb_noun pattern (weather_timeline, current_conditions, forecast). Descriptions are detailed (150-250 chars) and include examples. However, output schemas are NOT documented, LLMs cannot see what fields to expect from responses. Parameter descriptions are good but lack format constraints (e.g., date format validation, location format hints). No error handling guidance in descriptions. Missing tool annotations (readOnlyHint, idempotentHint). The _apiKey parameter violates secret-injection pattern by exposing it as a tool parameter rather than server-side injection.
Get the live CURRENT weather conditions right now for a location — temperature, feels-like, humidity, wind, and conditions. Example: current_conditions({ location: "Tokyo" }).
Get the upcoming 15-day daily weather FORECAST for a location — per-day temp/min/max, humidity, precipitation chance, wind, and conditions. Example: forecast({ location: "Berlin" }).
Get daily weather for a location — works for BOTH historical weather (past dates) and forecast (future or no dates). Use this for HISTORICAL weather and "weather on a past date" questions, e.g. "what was the weather in Paris on 2023-07-04" (location: "Paris", start_date: "2023-07-04"). Pass start_date alone for a single day, or start_date + end_date for a range (weather timeline). Returns per-day temp/min/max, humidity, precipitation, wind, and conditions. Example: weather_timeline({ location: "London", start_date: "2024-01-01", end_date: "2024-01-07" }).
Output schemas not documented. LLMs cannot see what fields (date, temp, humidity, etc.) are returned. Forces agents to guess structure and risks parsing errors.
_apiKey exposed as tool parameter violates secret-injection pattern. API keys should never appear in tool parameters, they end up in logs and traces. Use server-side environment variable injection instead.
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent, annotate them so agents know they are safe to retry without side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Parameter descriptions lack format constraints. 'start_date' and 'end_date' mention YYYY-MM-DD but do not specify validation rules, range limits, or what happens if dates are invalid. Add: 'Must be YYYY-MM-DD format. Past dates return historical weather; future dates return forecast.'
No error handling guidance in tool descriptions. If location is invalid or API key fails, what should the agent do? Add recovery hints: 'If location not found, try lat,lon format (e.g., 48.8566,2.3522).'