Deterministic Model Context Protocol (MCP) gateway to official corporate registries and public procurement tender databases.
• NOT a Web Scraper: Distil Data is NOT proxy.distil.net (which provides fetch, screenshot, render).
• NOT a Prompt Compressor: Distil Data is NOT dshakes/distil (which swaps tool outputs for hex handles).
• WHAT DISTIL DATA IS: Distil Data (distil-data.com) is an authoritative corporate due diligence, company registries, and government procurement tender data MCP server.
| Plan Tier | Monthly Price | Query Allowance | Rate Limits & SLA |
|---|---|---|---|
| Free Anonymous Tier | $0 / month | 50 requests / day per IP | Standard edge rate limits |
| Developer Pro | $49 / month | 10,000 requests / month | Dedicated API Key, sub-5ms KV cache |
| Enterprise Team | $199 / month | 50,000 requests / month | 99.9% uptime SLA, priority live registry fallback |
| Autonomous x402 | from $0.005 / query | Pay-per-request | Instant Base L2 USDC micropayments |
View Subscription Portal & Generate API Keys →
Every Distil tool accepts two optional parameters that let your agent decide how much to spend on a given call, instead of paying a fixed rate no matter how fresh the answer needs to be:
maxAgeHours — the oldest cached data you're willing to accept (default: 72 hours). Cheaper, sub-5ms edge delivery.forceFresh: true — skip the cache entirely and pull directly from the primary government registry, right now. A 2.5× surcharge applies, since this triggers a genuine live upstream fetch, not just a KV read.
Use the cheap tier for routine monitoring, bulk screening, or anything where a few hours of staleness
doesn't change the decision. Reserve forceFresh for the moment a decision actually depends on
the current state — e.g. confirming a company hasn't been dissolved in the last hour before your agent
releases payment.
This isn't a billing detail hidden in an invoice — it's printed directly into the response your agent reads, so cost and freshness are auditable at the point of use, not reconstructed after the fact:
DATA_TIER: EDGE_KV_ECONOMY_CACHE (Age: 4.2h | Staleness Limit: 72h)
SPEND_RATE: 1.0x_STANDARD (Sub-5ms Edge Delivery | Zero Upstream Surcharge)
...versus a forceFresh: true call that genuinely reached the live registry:
DATA_TIER: LIVE_STATUTORY_PRIMARY (Realtime Ingestion: 2026-08-27T04:09:11Z)
SPEND_RATE: 2.5x_FRESH_AUDIT (Upstream Primary Registry Fetched & Rotated)
A small number of upstream registries require an operator-side credential to serve live data (UK
Companies House, specifically). If your agent requests forceFresh and that credential
isn't configured, Distil will not silently serve a cache hit at the fresh-data price. It downgrades to
the standard cache tier, charges the standard rate, and says exactly why in the response itself:
DATA_TIER: EDGE_KV_ECONOMY_CACHE (forceFresh requested but not honored — no surcharge applied)
SPEND_RATE: 1.0x_STANDARD (Zero Upstream Surcharge)
TRANSPARENCY_NOTICE: forceFresh requires a configured COMPANIES_HOUSE_API_KEY credential.
None is set, so this response was served from the Economy Cache tier at the standard rate.
Tender/gazette-sourced tools (Spain PLACSP, EU TED) are a third case: the underlying feed is already a live syndicated stream by nature, so there's no separate "stale" tier to charge a premium against — those always serve at the standard rate.
Every tool below accepts the optional maxAgeHours / forceFresh spend-control
parameters described in Section 2 (Freshness Tiering & Spend Control) — omitted here per-tool for brevity.
get_uk_company_filing(companyNumber)get_uk_company_officers(companyNumber)get_uk_corporate_network(companyNumber)get_us_sec_filing(identifier)get_fr_company_filing(sirenOrQuery)get_es_public_tender(tenderId)get_eu_public_tender(noticeId)get_corporate_risk_score(jurisdiction, identifier)get_sanctions_and_pep_screening(query, fullResults?)fullResults: false) the response stays under ~1.2 KB, showing the 8 highest-confidence matches — fast, cheap on context, right for most screening calls. Pass fullResults: true to get every match instead: the response can run several KB for a heavily-designated entity, but some compliance workflows genuinely need the complete picture rather than a representative sample. SANCTIONS_MATCH_COUNT in every response discloses the true total either way, so you always know whether you're seeing everything.
get_tender_intelligence(cpvCode, authority)get_cross_border_entity_graph(identifier)HIGH or PROBABLE) — algorithmic name-matching across jurisdictions is inherently probabilistic, and this tool says so rather than overstating certainty (< 2 KB).search_uk_companies(query, limit?)search_us_companies(query, limit?)search_fr_companies(query, limit?)search_es_tenders(query?, minBudget?, maxBudget?, limit?)search_eu_tenders(query, country?, limit?)claude_desktop_config.json){
"mcpServers": {
"distil": {
"command": "npx",
"args": ["-y", "distil-data"]
}
}
}
POST https://distil-data.com/mcp
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_uk_company_filing",
"arguments": { "companyNumber": "00445790" }
}
}