UK government procurement notices — open tenders and awarded contracts — published as OCDS (Open Contracting Data Standard) by the Cabinet Office. Keyless. The natural UK complement to the EU tenders (ted-eu) pack.
Five tools with complete input schemas and descriptions. Naming follows verb_noun pattern (search_, get_, list_, find_). Descriptions are detailed (150-250 chars) and explain WHEN to use each tool. All parameters have type and description. However, output schemas are not documented, LLMs cannot see what fields to expect from responses. No error handling guidance. No tool annotations (readOnlyHint). Parameter validation rules (e.g., 'limit 1 - 100') are stated in descriptions but not enforced via JSON Schema minima/maxima. Client-side filtering (keyword) is documented but adds cognitive load.
Full detail for one Find a Tender Service (high-value UK) notice by its OCID (e.g. "ocds-h6vhtk-06d27d", from find_a_tender_recent results). Returns title, buyer, description, CPV classification, value, deadlines, and documents. Keyless.
Recent HIGH-VALUE UK government tenders and contract awards from the Find a Tender Service (find-tender.service.gov.uk) — the UK's above-threshold procurement portal (the post-Brexit replacement for EU TED, for larger public contracts). Use for "high value UK tenders", "above threshold UK government contracts", "Find a Tender notices", "large UK public sector contract opportunities". Returns recent notices newest-first; an optional keyword filters them by title/description (client-side, since the FTS feed has no server search). For lower-value / general UK notices use search_notices (Contracts Finder). Keyless.
Get the full OCDS detail for a single UK Contracts Finder notice by its release `id` (the `id` field returned by search_notices / recent_notices, format "{guid}-{seq}"). Returns title, full description, buyer, value, CPV classification, tender period, and any awards with suppliers. Keyless.
List the most recent UK procurement notices from Contracts Finder, newest-first, optionally filtered by stage (tender/award). Same compact shape as search_notices. Keyless.
Output schemas not documented. LLMs cannot see what fields search_notices, get_notice, recent_notices, find_a_tender_recent, and find_a_tender_notice return. This forces LLMs to guess field names and types, risking extraction errors and wasted context on trial-and-error.
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint. All five tools are read-only (safe to retry), but this is not declared in the schema. LLMs cannot infer retry safety without explicit annotations.
Parameter constraints stated in descriptions, not enforced in schema. 'limit 1 - 100' and 'days 1 - 30' are documented but lack JSON Schema minimum/maximum. LLMs may pass invalid values; server must validate and return actionable errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Search UK government procurement notices (open tenders + awarded contracts) from Contracts Finder, published as OCDS by the Cabinet Office. Filter by stage and an optional published-date range; results are newest-first. Keyless. The UK complement to EU tenders. Note: there is no server-side keyword filter — pass a `keyword` to filter client-side over title/description of the returned window.
Client-side keyword filtering documented but not ideal. search_notices and find_a_tender_recent require LLMs to filter results locally ('pass a keyword to filter client-side'). This wastes tokens and context. Ideally, server-side filtering or a dedicated search endpoint.
No error handling guidance. callTool catches exceptions and returns {error: message}, but LLMs receive no guidance on retry strategy, user-fixable vs. fatal errors, or recovery steps. E.g., 'API rate limit exceeded. Retry in 60 seconds.' vs. bare error message.