MCP server for fetching bin collection dates for addresses in Reading, UK using the Reading Council API
Single tool with reasonable naming and explicit schema, but critical gaps in parameter descriptions, output schema documentation, and error handling. The tool accepts two required string parameters (postcode, address) with basic descriptions, but lacks guidance on format constraints, error recovery, and output structure. No parameter validation hints or dependency documentation. The tool modifies external state by making API calls, but this is not reflected in the description. Missing: paginated result handling (if applicable), partial failure recovery, and structured output schema.
Fetch bin collection dates for the given address in the specified postcode.
Parameter descriptions lack format guidance and constraints. 'postcode' and 'address' have generic descriptions without specifying UK postcode format (e.g., 'RG2 0BE'), address format expectations (e.g., 'house number and street name'), or how the tool handles partial/ambiguous matches.
No output schema documented. Tool returns raw API response from fetch_collections_by_uprn() without stating what fields the LLM should expect. LLMs cannot plan downstream operations or extract relevant data without knowing the response structure (e.g., does it return dates as ISO strings? collection types as enums?).
Inadequate error handling and recovery guidance. The code raises ValueError exceptions ('No address data found', 'No matching address found') but the tool description does not explain what to do next. LLMs receive bare errors with no guidance on retry logic, alternative parameters, or fallback actions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 42 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 47 | - | v1 |
Tool description does not state what the tool returns or when to use it. Current description is shallow: 'Fetch bin collection dates for the given address in the specified postcode.' Missing: What format are the dates? What do 'collection dates' mean (next pickup? schedule? both)? What about collection types (general waste, recycling, green waste)?
No guidance on parameter dependencies or multi-step resolution. The tool internally calls find_uprn() to resolve address → UPRN, but the parameter descriptions do not state that address matching is fuzzy (substring-based) or that multiple addresses may match a postcode.
Tool response contains raw API data that may include verbose or irrelevant fields. The description does not specify whether results are paginated, capped at a limit, or if the LLM should expect hundreds of collection records. No guidance on response size or limiting.