MCP server providing access to EU legal agreements and weather data through FastMCP
Server has 3 tools with basic schemas and descriptions, but significant quality gaps. Tool naming is acceptable (verb_noun pattern), but descriptions are minimal (10-50 chars, well below the 194-char baseline). Input schemas are present but lack depth: parameters have types and basic descriptions, but no enums, ranges, or validation constraints. Output is unstructured text rather than typed objects. No error handling guidance, no pagination support, and no tool annotations. The server conflates two unrelated domains (EU legal agreements + US weather), suggesting unclear purpose. Code shows proper async/httpx usage and timeout handling (30s), but tool design does not follow agentic patterns.
Get weather alerts for a US state.
Get legalities for a search term.
Get weather forecast for a location.
Descriptions are too short (10-50 chars vs 194-char baseline). 'Get legalities for a search term' and 'Get weather alerts for a US state' lack context on when to use each tool, what data is returned, and any prerequisites.
Output is unstructured plain text (formatted strings joined with '---'). LLMs cannot parse or extract fields reliably. Should return typed JSON objects with fields like {country, keywords, resource, title, description, publisher, modified} for legalities and {event, area, severity, description, instructions} for alerts.
No input validation or error guidance. Tools return generic 'Unable to fetch' or 'No results found' messages. Should categorize errors (retryable vs user-fixable), include the invalid value, and suggest recovery steps (e.g., 'Invalid state code. Use two-letter US state abbreviation like CA, NY, TX').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
Parameters lack constraints. 'search' and 'state' have no enums, patterns, or length limits. 'state' should declare it accepts exactly 2-letter US state codes (CA, NY, TX, etc.) as an enum or regex pattern. 'latitude' and 'longitude' lack range constraints (should be -90 to 90 and -180 to 180).
No pagination support. Tools return hardcoded top 5 results (legalities) or all results (alerts, forecast). Should accept limit and offset/cursor parameters and return total_count or next_cursor to enable agents to fetch more data without re-querying.