GOV.UK Content + Search APIs (every gov.uk page + full search)
This server has critical gaps across naming, descriptions, and schemas. Tool names lack action verbs (content, search, organisations, taxons, search_autocomplete are mostly nouns or generic). Parameter descriptions are minimal or absent, most params have no description text at all. Input schemas exist but are sparse: properties lack type annotations (e.g., base_path is {"type":"string"} with no description), and many parameters have no descriptions. Output schemas are completely undocumented. Error handling is minimal (generic 404/status errors with no recovery guidance). The codebase shows tool definitions but lacks the LLM-optimized descriptions and comprehensive parameter documentation required for production agent use.
Content for a gov.uk page by base_path.
List organisations.
GOV.UK full search.
Autocomplete suggestions.
Taxonomy tree node.
Tool names lack action verbs. 'content', 'organisations', 'taxons' are nouns; LLMs cannot infer intent from names alone. Should be 'get_content', 'list_organisations', 'get_taxon'.
Parameter descriptions are missing or trivial. 'base_path' has no description; 'count' and 'start' lack context (are they 0-indexed? what's the max?). LLMs cannot infer constraints from names alone.
Output schemas are completely undocumented. Callers do not know what fields to expect from API responses. This breaks downstream tool chaining and forces LLMs to guess field names.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 31 | 2026-07-28+ | v2 |
Error handling is generic and non-actionable. 'GOV.UK: not found' and 'GOV.UK: 404' give no recovery guidance. Should suggest alternatives (e.g., 'Try search() to find the correct base_path').
No pagination documentation. 'search' and 'organisations' accept 'count' and 'start' but do not document max results, total count, or next_cursor. Large result sets will blow context windows.