uk-tenders-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COMPANIES_API_KEY | Yes | Your API key for the Companies House API. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Read-only tools over UK public procurement notices (Find a Tender and Contracts Finder) and Companies House. Every result has a source_url: cite it. Results say which sources answered; if one failed, say the list may be incomplete. If a tool returns found=false or an error, say so; never fill gaps from memory.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_tendersA | Find open UK public-sector tenders published or updated in the last Searches Find a Tender and Contracts Finder together, removes notices listed on both, and drops
tenders whose deadline has passed. Optional filters: keywords (any match in title or description)
and regions (for example ["London", "South East"]). Returns at most |
| list_profilesA | List the bid profiles that score_tenders can use, with what each one covers. |
| score_tendersA | Score this week's open tenders GO / MAYBE / NO-GO against a bid profile, with reasons. Use when the user asks which tenders are worth bidding for. Call list_profiles for valid names.
Searches Find a Tender and Contracts Finder. Returns GO then MAYBE, highest score first, at most
|
| get_companyA | Look up a UK company on Companies House by its company number (for example 00445790). Returns status, incorporation date, SIC codes, insolvency history and whether accounts are overdue, with a source_url. Use before stating anything about a company's status; never infer it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool targets a distinct step in the workflow: browsing profiles, finding tenders, ranking them, and checking a company. The only soft overlap is between search_tenders and score_tenders, since both query the same sources and return similar fields, but the descriptions clearly separate 'find tenders' from 'which are worth bidding for'.
All four tools follow a clean verb_noun snake_case pattern (list_profiles, search_tenders, score_tenders, get_company). The verb choice is also semantically accurate (list vs search vs score vs get), so names are both consistent and predictable.
Four tools is lean but each has a clear role in a coherent pipeline: profiles -> search -> score, plus an external company lookup. It sits at the low end of the comfortable range; a tender-detail or source-listing tool would round out the surface without bloat.
Core discovery and qualification are covered, but there is no way to fetch a full tender notice (only summary fields with a source_url), no profile creation/editing, and get_company requires a company number with no name-based lookup. These gaps force agents to leave the server or ask the user for data mid-workflow.