MCP server providing tools for Rightmove listings, Land Registry sales data, UK House Price Index, flood risk, crime stats, and EPC certificates
Three tools with complete schemas and descriptions, but significant gaps in error handling, parameter validation, and output documentation. Tool names follow verb_noun convention (uk_market_search, uk_land_registry, uk_hpi). Descriptions are present (100-150 chars) but lack actionable guidance on when to use each tool vs. alternatives. Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). Output is JSON strings rather than structured objects. No error recovery guidance. Annotations present but incomplete (missing destructiveHint/idempotentHint where applicable).
UK House Price Index for a region. Returns average price, annual change %, and sales volume.
Query HM Land Registry for completed property sales (Price Paid Data). Returns individual sales and monthly volume breakdown by property type.
Search Rightmove for active and STC listings near a postcode. Returns total counts, STC rate, median days on market, and full listing data.
Output returned as JSON strings instead of structured objects. LLMs must parse JSON text rather than receiving typed fields, wasting tokens and increasing hallucination risk.
No input validation or error recovery guidance. When postcode lookup fails or SPARQL query times out, tool returns raw exception string. LLM has no guidance on retry strategy or alternative actions.
Parameters lack constraints. 'radius' accepts any float (could be negative or 10000); 'months' accepts any int; 'max_price' unbounded. No enums, ranges, or patterns documented.
Tool descriptions lack dependency hints and selection guidance. No explanation of when to use uk_market_search vs uk_land_registry, or what each returns that the other doesn't.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Output schema not documented. LLMs cannot predict field names, types, or structure. uk_market_search returns 'stc_rate_pct', 'active_dom_median', 'sample_listings', but this is inferred from code, not declared.