ukintel.uk — UK company, tender and grant intelligence
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Companies House, Find a Tender and Find a Grant as paid JSON for agents. USDC via x402, no signup.
| Author | uk.ukintel |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2665 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"ukintel.uk — UK company, tender and grant intelligence": {
"url": "https://api.ukintel.uk/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (13)
uk_previewA genuine, freshly-computed sample so an agent can see the exact response shape before spending anything. Default: a real company verdict, rotating daily. Add ?wing=tenders for a real live-tender brief, or ?wing=grants for a real grant eligibility verdict - all rotating daily. Every response carries the same envelope: query, result, verdict, confidence, as_of, sources, attribution, notice, cost. Free. Returns: The identical envelope returned by the paid endpoints: /v1/company/{number}/verdict by default, /v1/tenders/{ocid}/brief with ?wing=tenders, /v1/grants/{id}/eligibility with ?wing=grants.
Parameters:
wing— string — Which product family to sample: company (default), tenders or grants.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_healthLiveness and upstream health. Free, because frameworks probe before they route money. Free. Returns: status, version, network, upstreams{}, rules_version, warnings[].
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_company_searchFind a UK company by name. Returns the top 5 matches from the Companies House register with number, name, status and incorporation date. Taster tier - cheap enough to try on a whim before paying for a full profile or verdict. Costs $0.005 USDC per call (x402, Base mainnet). Returns: results[] of { company_number, name, status, incorporated, address_snippet }, plus total_matches.
Parameters:
q(required) — string — Company name or fragment to search for.limit— integer — Number of matches to return, 1-5. Defaults to 5.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_company_profileOne UK company as clean structured JSON: status, incorporation date, company type, SIC codes, registered office, accounts and confirmation-statement due dates with overdue booleans, and officer counts. Sourced live from Companies House. Costs $0.02 USDC per call (x402, Base mainnet). Returns: result = { name, company_number, status, type, incorporated, registered_office, sic_codes[], accounts{}, confirmation_statement{}, officers{ active, total, resigned_last_12m }, age_years }.
Parameters:
number(required) — string — UK company number. 8 characters; two-letter prefixes are supported (SC = Scotland, NI = Northern Ireland, OC = LLP).detail— string — Set to 'full' to add filing history (last 10) and anonymised officer records, and to lift the ~800 token response cap.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_company_verdictShould an agent trust this UK company? Returns a 0-100 verdict and low_risk/caution/high_risk band, with every rule that fired named in the response and the register value that triggered it: STATUS_DISSOLVED, STRIKE_OFF_ACTIVE, ACCOUNTS_OVERDUE, NO_ACTIVE_DIRECTORS, OFFICER_CHURN, FS_SIC_NOT_FCA and 9 more. Rules are deterministic and published, so you can audit the verdict or re-weight it. Never model-scored. Costs $0.10 USDC per call (x402, Base mainnet). Returns: Everything the profile returns, plus verdict = { score 0-100, band low_risk|caution|high_risk, flags[{code,detail}], fca{}, narrative }.
Parameters:
number(required) — string — UK company number. 8 characters; two-letter prefixes are supported (SC = Scotland, NI = Northern Ireland, OC = LLP).detail— string — Set to 'full' to add filing history (last 10) and anonymised officer records, and to lift the ~800 token response cap.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_company_fcaIs this UK company regulated by the Financial Conduct Authority? Returns register status, a permissions summary and any warnings - sold separately from the full verdict because fintech-vetting agents often want only this. Costs $0.02 USDC per call (x402, Base mainnet). Returns: result.fca = { checked, regulated, frn, firm_name, status, permissions_summary, warnings[], note }. When the register is unavailable, checked=false and the reason is named - never a 500.
Parameters:
number(required) — string — UK company number. 8 characters; two-letter prefixes are supported (SC = Scotland, NI = Northern Ireland, OC = LLP).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_tenders_searchLive UK public-sector tenders from Find a Tender and Contracts Finder in one call. Returns the top 10 matching notices as one-paragraph plain-English briefs with buyer, value, deadline, CPV codes (honest null when the notice carries none) and the official notice link. Searches a 6-hourly refreshed index - no signup with either portal needed. Costs $0.05 USDC per call (x402, Base mainnet). Returns: result = { total_matched, returned, notices[] of { ocid, title, buyer, value, stage, published, deadline, days_remaining, region, cpv, summary, source{name, notice_url} }, excluded{} } - excluded{} reports notices honest-nulled out by cpv/region/value/deadline filters.
Parameters:
q— string — Keywords, synonym-expanded (e.g. 'cleaning' also finds janitorial and hygiene services). At least one of q, cpv or region is required.cpv— string — CPV code prefix filter, comma-separated (e.g. 909,45233). Notices without CPV codes are excluded and counted.stage— string — tender (open competitions, default both) or planning (early engagement).region— string — UK nation or English region: scotland, wales, northern-ireland, london, north-east, north-west, yorkshire, east-midlands, west-midlands, east-of-england, south-east, south-west, england.value_max— integer — Maximum stated contract value in GBP.value_min— integer — Minimum stated contract value in GBP.deadline_after— string — Only notices whose submission deadline is on or after this date (YYYY-MM-DD).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_tender_briefOne tender as a full agent-ready dossier: parsed requirements summary, buyer, value, complete timeline with working-days-remaining, lots, document links, submission route and the official notice URL. CPV codes are null when the source release carries none - we report the register, we never guess. Costs $0.10 USDC per call (x402, Base mainnet). Returns: result = { ocid, title, buyer, value, stage, published, deadline, days_remaining, region, cpv, summary, description, lots, documents[], submission_url, timeline{}, source{} }.
Parameters:
ocid(required) — string — The OCDS contracting-process id, e.g. ocds-h6vhtk-06df8b (FTS) or ocds-b5fd17-… (Contracts Finder). Exactly as returned by /v1/tenders/search.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_tenders_fit_scoreSend a supplier profile (what you do, keywords, regions, value band, certifications) and get the best-fitting live UK tenders, each scored 0-100 by deterministic published rules across five factors - relevance, value fit, geography, timeline, buyer history - each with its numerator AND denominator so you can re-weight client-side, plus a what-to-emphasise note on the top matches. Rules score; a model never does. Costs $0.20 USDC per call (x402, Base mainnet). Returns: result = { considered, matches[] of { ...notice brief..., fit: { score, band strong|possible|weak, factors{ relevance/of, value_fit/of_v, geography/of_g, timeline/of_t, buyer_history/of_b }, flags[], rules_version }, emphasise } }.
Parameters:
supplier(required) — object — The supplier profile to match against live tenders.top— integerfilters— object — Optional pre-filters (same fields as /v1/tenders/search).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_grants_searchLive UK grant funding calls from GOV.UK Find a Grant in one call: name, funder, amount range, opening/closing dates, who can apply, one-line summary and the official source link. Filter by keywords, nation, applicant type and amount band. Indexed daily from the official listing - the service has no API of its own, so this is the machine-readable version. Costs $0.10 USDC per call (x402, Base mainnet). Returns: result = { total_matched, returned, grants[] of { id, name, funder, amounts{min,max,text}, window{opens,closes,open_now,days_to_close}, who_can_apply, org_types, regions, summary, criteria_parsed, criteria_basis seed|llm|listing|null, source_url }, excluded{} }.
Parameters:
q— string — Keywords matched against grant names, summaries, funders and descriptions (light stemming). At least one criterion is required.max— integer — Only grants whose minimum award is at most this many GBP.min— integer — Only grants whose maximum award is at least this many GBP.region— string — UK nation: england, scotland, wales, northern-ireland (or uk for UK-wide only).open_now— string — Default true: only grants currently open for applications. Set to false to include closed/not-yet-open listings.org_type— string — Applicant type: individual, business, charity, community_group, public_body, local_authority, education (synonyms like sole-trader, cic, council are mapped).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_grants_matchSend a project profile (what it is, who you are, where, how much you need) and get back the live UK grants it could actually get - ranked eligible-first with a per-criterion pass/fail table for every match, from criteria parsed once at ingest from each grant's own eligibility text. Ineligible grants are excluded and counted, never dressed up as options. Deterministic rules; no language model touches the verdicts. Costs $0.15 USDC per call (x402, Base mainnet). Returns: result = { considered, matches[] of { grant summary + eligibility { band eligible|uncertain, score, criteria[{code,requirement,pass,detail}], missing[], flags[] } , relevance }, excluded{ineligible, closed} }.
Parameters:
project(required) — object — The project profile to match against live grants.top— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_grant_eligibilityOne grant, one project: a deterministic eligibility verdict with the full criteria table - each criterion quoted from the grant's own eligibility text, marked pass/fail/undeclared - plus what is missing to firm it up and indicative funding. Criteria are parsed once at ingest, never guessed at request time; if the full text is not parsed yet the verdict uses Find a Grant's listing fields, flagged PARTIAL_CRITERIA, and criteria_provenance says so. Costs $0.15 USDC per call (x402, Base mainnet). Returns: result = { grant{name,funder,window,amounts,source_url}, criteria[{code,requirement,pass,detail}], missing[], failed[], indicative_funding, criteria_provenance{source,complete,parsed_at,eligibility_text_available} }, verdict = { score, band eligible|uncertain|ineligible, flags[] }.
Parameters:
id(required) — string — Grant id: the Find a Grant slug exactly as returned by /v1/grants/search (e.g. england-woodland-creation-offer-ewco-1), or a curated short alias like ewco.region— string — Where the project is: england, scotland, wales, northern-ireland.declare— object — Extra facts this grant's criteria ask for, as declared key/values (e.g. { "land_ha": 3.5, "management_control": true }). Each criterion names the parameter it reads, so a first call tells you what to declare on the second.org_type— string — Applicant type slug (individual, business, charity, community_group, public_body, local_authority, education).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uk_funder_dossierWho actually funds things like yours: one UK funder's giving history aggregated from the 360Giving open-data corpus - grants made, total and typical award, size distribution, yearly pattern, most recent named awards - plus any of their grant schemes live on Find a Grant right now. Licences are respected per dataset (share-alike data is excluded from the numbers, and every recent-award row carries its source licence). Costs $0.20 USDC per call (x402, Base mainnet). Returns: result = { funder{name,ids}, match_quality, giving { grants_made, total_awarded_gbp, years, size_distribution_gbp{min,p25,median,p75,max,mean}, yearly{}, typical_award_gbp }, recent_awards[] (each with licence + publisher), live_grants_now[], coverage }.
Parameters:
name(required) — string — Funder name or slug, e.g. national-lottery-heritage-fund, "Esmée Fairbairn Foundation", or a GB-CHC-… org id.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.