Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,551Letters: 14Defects: 1,323counted 2 min ago
teppi

Server definition

Hash
sha256:dce44662158cf46b015d54b380bcb374ac00fd6f3ef6470bcb25105223d95f70
What it is
What a remote MCP server returned when asked what it offers: 13 tools

The blob, as servednamed by its sha256

{ "instructions": "Pay-per-call UK intelligence for AI agents, as clean JSON. Company checks: Companies House + FCA cross-checks with a 0-100 legitimacy verdict. Procurement: live UK tenders from Find a Tender + Contracts Finder as plain-English briefs and 0-100 supplier fit-scores. Grants: live GOV.UK funding calls matched to a project profile with ELIGIBLE/UNCERTAIN/INELIGIBLE verdicts, plus funder giving-history from the 360Giving open-data corpus. No signup, no API key.\n\nPaid tools charge in USDC on Base mainnet over x402: call the tool, receive a payment-required error carrying the terms, pay, and retry with the payment in _meta[\"x402/payment\"]. An x402-aware MCP client does this for you.\nStart with uk_preview - it is free and returns a real, freshly-computed answer in the exact shape the paid tools return, so you can check the response before spending anything.\nInformation, not advice.", "tools": [ { "description": "Is 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.\n\nCosts $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.", "inputSchema": { "additionalProperties": false, "properties": { "number": { "description": "UK company number. 8 characters; two-letter prefixes are supported (SC = Scotland, NI = Northern Ireland, OC = LLP).", "pattern": "^([A-Z]{2})?[0-9]{6,8}$", "type": "string" } }, "required": [ "number" ], "type": "object" }, "name": "uk_company_fca", "outputSchema": null }, { "description": "One 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.\n\nCosts $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 }.", "inputSchema": { "additionalProperties": false, "properties": { "detail": { "description": "Set to 'full' to add filing history (last 10) and anonymised officer records, and to lift the ~800 token response cap.", "enum": [ "full" ], "type": "string" }, "number": { "description": "UK company number. 8 characters; two-letter prefixes are supported (SC = Scotland, NI = Northern Ireland, OC = LLP).", "pattern": "^([A-Z]{2})?[0-9]{6,8}$", "type": "string" } }, "required": [ "number" ], "type": "object" }, "name": "uk_company_profile", "outputSchema": null }, { "description": "Find 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.\n\nCosts $0.005 USDC per call (x402, Base mainnet). Returns: results[] of { company_number, name, status, incorporated, address_snippet }, plus total_matches.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "default": 5, "description": "Number of matches to return, 1-5. Defaults to 5.", "maximum": 5, "minimum": 1, "type": "integer" }, "q": { "description": "Company name or fragment to search for.", "maxLength": 160, "minLength": 2, "type": "string" } }, "required": [ "q" ], "type": "object" }, "name": "uk_company_search", "outputSchema": null }, { "description": "Should 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.\n\nCosts $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 }.", "inputSchema": { "additionalProperties": false, "properties": { "detail": { "description": "Set to 'full' to add filing history (last 10) and anonymised officer records, and to lift the ~800 token response cap.", "enum": [ "full" ], "type": "string" }, "number": { "description": "UK company number. 8 characters; two-letter prefixes are supported (SC = Scotland, NI = Northern Ireland, OC = LLP).", "pattern": "^([A-Z]{2})?[0-9]{6,8}$", "type": "string" } }, "required": [ "number" ], "type": "object" }, "name": "uk_company_verdict", "outputSchema": null }, { "description": "Who 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).\n\nCosts $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 }.", "inputSchema": { "additionalProperties": false, "properties": { "name": { "description": "Funder name or slug, e.g. national-lottery-heritage-fund, \"Esmée Fairbairn Foundation\", or a GB-CHC-… org id.", "maxLength": 120, "minLength": 2, "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "uk_funder_dossier", "outputSchema": null }, { "description": "One 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.\n\nCosts $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[] }.", "inputSchema": { "additionalProperties": false, "properties": { "declare": { "additionalProperties": { "type": [ "string", "number", "boolean" ] }, "description": "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.", "type": "object" }, "id": { "description": "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.", "pattern": "^[a-z0-9][a-z0-9-]{1,120}$", "type": "string" }, "org_type": { "description": "Applicant type slug (individual, business, charity, community_group, public_body, local_authority, education).", "type": "string" }, "region": { "description": "Where the project is: england, scotland, wales, northern-ireland.", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "uk_grant_eligibility", "outputSchema": null }, { "description": "Send 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.\n\nCosts $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} }.", "inputSchema": { "additionalProperties": false, "properties": { "project": { "description": "The project profile to match against live grants.", "properties": { "amount_needed": { "description": "Funding sought, GBP", "type": "integer" }, "description": { "description": "Plain-English project description", "type": "string" }, "keywords": { "items": { "type": "string" }, "type": "array" }, "org_type": { "description": "individual | business | charity | community_group | public_body | local_authority | education", "type": "string" }, "params": { "additionalProperties": { "type": "number" }, "description": "Numeric facts criteria may reference, e.g. { land_ha: 3.5, employees: 12 }", "type": "object" }, "region": { "description": "england | scotland | wales | northern-ireland", "type": "string" } }, "required": [ "org_type" ], "type": "object" }, "top": { "default": 5, "maximum": 10, "minimum": 1, "type": "integer" } }, "required": [ "project" ], "type": "object" }, "name": "uk_grants_match", "outputSchema": null }, { "description": "Live 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.\n\nCosts $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{} }.", "inputSchema": { "additionalProperties": false, "properties": { "max": { "description": "Only grants whose minimum award is at most this many GBP.", "minimum": 0, "type": "integer" }, "min": { "description": "Only grants whose maximum award is at least this many GBP.", "minimum": 0, "type": "integer" }, "open_now": { "description": "Default true: only grants currently open for applications. Set to false to include closed/not-yet-open listings.", "enum": [ "true", "false" ], "type": "string" }, "org_type": { "description": "Applicant type: individual, business, charity, community_group, public_body, local_authority, education (synonyms like sole-trader, cic, council are mapped).", "type": "string" }, "q": { "description": "Keywords matched against grant names, summaries, funders and descriptions (light stemming). At least one criterion is required.", "maxLength": 200, "type": "string" }, "region": { "description": "UK nation: england, scotland, wales, northern-ireland (or uk for UK-wide only).", "type": "string" } }, "type": "object" }, "name": "uk_grants_search", "outputSchema": null }, { "description": "Liveness and upstream health. Free, because frameworks probe before they route money.\n\nFree. Returns: status, version, network, upstreams{}, rules_version, warnings[].", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "uk_health", "outputSchema": null }, { "description": "A 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.\n\nFree. 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.", "inputSchema": { "additionalProperties": false, "properties": { "wing": { "description": "Which product family to sample: company (default), tenders or grants.", "enum": [ "company", "tenders", "grants" ], "type": "string" } }, "type": "object" }, "name": "uk_preview", "outputSchema": null }, { "description": "One 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.\n\nCosts $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{} }.", "inputSchema": { "additionalProperties": false, "properties": { "ocid": { "description": "The OCDS contracting-process id, e.g. ocds-h6vhtk-06df8b (FTS) or ocds-b5fd17-… (Contracts Finder). Exactly as returned by /v1/tenders/search.", "pattern": "^ocds-[a-z0-9]{6}-[A-Za-z0-9][A-Za-z0-9-]{0,80}$", "type": "string" } }, "required": [ "ocid" ], "type": "object" }, "name": "uk_tender_brief", "outputSchema": null }, { "description": "Send 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.\n\nCosts $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 } }.", "inputSchema": { "additionalProperties": false, "properties": { "filters": { "description": "Optional pre-filters (same fields as /v1/tenders/search).", "type": "object" }, "supplier": { "description": "The supplier profile to match against live tenders.", "properties": { "certifications": { "items": { "type": "string" }, "type": "array" }, "cpv": { "description": "CPV code prefixes you deliver against", "items": { "type": "string" }, "type": "array" }, "keywords": { "items": { "type": "string" }, "type": "array" }, "regions": { "description": "UK nations/regions served", "items": { "type": "string" }, "type": "array" }, "value_band": { "description": "[min, max] comfortable contract value in GBP", "items": { "type": "integer" }, "maxItems": 2, "minItems": 2, "type": "array" }, "what_we_do": { "description": "Plain-English capability statement", "type": "string" } }, "required": [ "what_we_do" ], "type": "object" }, "top": { "default": 5, "maximum": 10, "minimum": 1, "type": "integer" } }, "required": [ "supplier" ], "type": "object" }, "name": "uk_tenders_fit_score", "outputSchema": null }, { "description": "Live 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.\n\nCosts $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.", "inputSchema": { "additionalProperties": false, "properties": { "cpv": { "description": "CPV code prefix filter, comma-separated (e.g. 909,45233). Notices without CPV codes are excluded and counted.", "type": "string" }, "deadline_after": { "description": "Only notices whose submission deadline is on or after this date (YYYY-MM-DD).", "format": "date", "type": "string" }, "q": { "description": "Keywords, synonym-expanded (e.g. 'cleaning' also finds janitorial and hygiene services). At least one of q, cpv or region is required.", "maxLength": 200, "type": "string" }, "region": { "description": "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.", "type": "string" }, "stage": { "description": "tender (open competitions, default both) or planning (early engagement).", "enum": [ "tender", "planning" ], "type": "string" }, "value_max": { "description": "Maximum stated contract value in GBP.", "minimum": 0, "type": "integer" }, "value_min": { "description": "Minimum stated contract value in GBP.", "minimum": 0, "type": "integer" } }, "type": "object" }, "name": "uk_tenders_search", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:dce44662158cf46b015d54b380bcb374ac00fd6f3ef6470bcb25105223d95f70 | sha256sum