They trace names. We trace who really owns them.
The corporate-ownership & sanctions intelligence layer for AI agents — built for the agentic era. WhiteIntel turns public-registry and offshore-leak data into MCP-native intelligence primitives — entity search, semantic discovery, ownership-path traversal, sanctions screening, offshore-exposure detection, and fully cited dossiers — so any AI agent can investigate a company, trace its ultimate beneficial owner, and flag risk in one conversation. Your agent isn't querying a database — it's conducting an investigation.
One command, any MCP agent:
npx -y @whiteintel/mcp-server
...starts an MCP server with 24 tools that give any AI agent — Claude Desktop, Cursor, Cline, Windsurf, or your own runtime — full corporate-ownership intelligence: search by name or meaning, trace ownership chains to the UBO, screen sanctions across OFAC/EU/UN/UK, detect offshore layering, pull fully cited dossiers with financials and asset layers, and even purchase deeper intelligence through agent-initiated Stripe checkout. Every claim cited to its source, every edge traced to a registry record.
| Tool | What it does | Category |
|---|---|---|
search_entities |
Search the corpus (companies + people) by name → entity ids | 🔍 Discovery |
semantic_search |
Meaning-based search (BGE-M3 vector ANN) — find entities by profile, not keywords | 🔍 Discovery |
find_similar |
"More like this" — nearest entities to a known id, for peer discovery and clustering | 🔍 Discovery |
search_companies |
Free-text company-name search → registration number | 🔍 Discovery |
lookup_company |
UK company by Companies House number → record + ownership graph | 📋 Lookup |
lookup_by_identifier |
Resolve by strong id — LEI, OFAC/EU/UN/UK sanctions id, UEN, SEC CIK, KRS, GB-COH, SIREN, Brazil RFB CNPJ | 📋 Lookup |
get_entity |
Full record for one entity + its direct relationships | 📋 Lookup |
resolve |
Batch-resolve names or scheme:value ids → canonical entity ids + confidence |
📋 Lookup |
list_jurisdictions |
Coverage map per country — tier, scope and record depth we hold | 🗺️ Coverage |
list_asset_coverage |
Coverage map per asset class — aircraft, vessels, real estate | 🗺️ Coverage |
get_dossier |
Structured, fully-cited dossier: identity, ownership/UBO chain, risk, provenance | 📊 Intelligence |
trace_ownership_path |
Walk ownership upward to the ultimate beneficial owner | 📊 Intelligence |
graph_neighbourhood |
Every edge within N hops of an entity, both directions — hard-capped, says when the view is partial | 🕸️ Graph |
graph_path |
How two entities are connected — bounded, not exhaustive: found: false is not proof of no link |
🕸️ Graph |
get_sanctions |
Sanctions exposure (OFAC/EU/UN/UK) for entity and its resolved cluster siblings | 🛡️ Risk |
check_offshore_exposure |
Flag sanctioned + secrecy-jurisdiction hops in the ownership chain | 🛡️ Risk |
get_company_details |
UK register detail: address, status, SIC, filings, charges, former names | 📋 Lookup |
get_financials |
Filed UK financials YoY (turnover, profit, net assets, cash, employees) | 📊 Intelligence |
get_pulse |
Live corpus activity feed — recent ownership/control changes, sourced | 📊 Intelligence |
get_pricing |
Full price list + machine-readable purchase flow (static, no network call) | 💳 Commerce |
buy_dossier |
Start a one-off dossier purchase via guest Stripe Checkout → checkout_url |
💳 Commerce |
get_payment_link |
Permanent, reusable Stripe payment links — the artefact you hand to a human | 💳 Commerce |
claim_dossier |
Redeem a paid session for a 90-day access token (idempotent) | 💳 Commerce |
24 callable tools — 4 Discovery + 4 Lookup + 2 Coverage + 4 Intelligence + 2 Graph + 2 Risk + 4 Commerce + 1 Feed + 1 Pricing. All read-only except buy_dossier (opens Stripe — money moves only when a human completes it) and claim_dossier (redeems an already-paid session). Ids flow between tools: search → get_dossier → trace_ownership_path → get_sanctions.
Distribution: the package is on npm —
npx -y @whiteintel/mcp-serverJust Works.
1. Run it. No key needed — works anonymously on the free tier:
npx -y @whiteintel/mcp-server
2a. Claude Desktop / Cursor — add to your MCP config:
{
"mcpServers": {
"whiteintel": {
"command": "npx",
"args": ["-y", "@whiteintel/mcp-server"],
"env": { "WHITEINTEL_API_KEY": "wi_..." }
}
}
}2b. Claude Code CLI:
claude mcp add whiteintel -- npx -y @whiteintel/mcp-server
2c. One-click: add WhiteIntel to your editor at whiteintel.dev/developers .
The env block is optional — omit it to use the anonymous free tier. Set WHITEINTEL_API_KEY=wi_... to authenticate as your plan and lift limits.
You: "Who ultimately owns Revolut? Check sanctions on the whole chain."
Agent: calls
search_entities({ query: "Revolut" })→trace_ownership_path({ id })→get_sanctions({ id })for each hop → a fully cited ownership chain with sanctions screening at every level. Done.
You: "Find companies similar to Wirecard and check for offshore exposure."
Agent: calls
find_similar({ entity_id })→check_offshore_exposure({ id })→ flagged secrecy-jurisdiction hops and sanctioned intermediaries across the peer set.
An agent can buy the paid depth of a dossier end-to-end, no WhiteIntel account needed:
buy_dossier{ tier: "standard" | "premium", entity_id }→ returns a Stripecheckout_url. Standard (39ドル) unlocks the full multi-hop UBO chain + financials; Premium (99ドル) adds aircraft, sanctioned vessels and property; on HIGH-risk or sanctioned subjects it additionally runs a live adverse-media scan (that scan is gated — it does not run on lower-risk entities).- A human completes payment at the
checkout_url— Stripe collects an email and redirects back. claim_dossier{ session_id }→{ token, entity_id, tier }. Idempotent; returns402until paid.get_dossier{ id, token }→ the unlocked, fully-cited dossier JSON. Tokens valid 90 days.
No human at the keyboard right now? Step 1 is the wrong tool: a checkout_url is single-use and expires in 24 hours, so it is dead by the time someone reads your report. Call get_payment_link instead — it returns permanent Stripe links you can paste into a document, a ticket or a message, and append ?client_reference_id=<entity uuid> to bind one to a specific company. Measured 2026年08月11日: those links cover the Standard tier only (single / 5 / 25); Premium still goes through buy_dossier.
Check get_pricing first — it returns the full price list plus this flow in machine-readable form.
~171.2M entities across 41 fused registries — every claim cited, every edge traced.
Measured 2026年08月23日 from whiteintel.dev/api/public/stats (entities = 171,207,760, itself a planner estimate). That endpoint rebuilds its source map by counting registries, so it is always the authority — and a new source shows up there without anyone editing this file.
| Source | What | Coverage |
|---|---|---|
| OpenOwnership | UK PSCs (Persons with Significant Control) | 🇬🇧 Full |
| GLEIF | Global LEI registry + parent/child ownership relations — nightly refresh scheduled | 🌍 Global |
| ACRA Singapore | Singapore company registry | 🇸🇬 Full |
| ICIJ Offshore Leaks | Panama Papers, Paradise Papers, Pandora Papers | 🌍 Offshore |
| SEC EDGAR | US securities filings + beneficial ownership | 🇺🇸 Full |
| UK Companies House | Full UK register — bulk + live filing stream | 🇬🇧 Full |
| FAA | US aircraft registry (tail numbers → owners) | 🇺🇸 Full |
| France SIRENE | French company register | 🇫🇷 Full |
| Brazil RFB | Brazilian federal revenue — CNPJ register | 🇧🇷 Full |
| Cyprus DRCOR | Cypriot register — officers only (see scope note below) | 🇨🇾 Loading |
| OFAC / EU / UN / UK | Consolidated sanctions lists | 🌍 Live |
| + 26 more | registries, sanctions lists & UBO registers | 🌍 Growing |
Cyprus went to production on 2026年08月11日 and is still loading — so we quote no frozen row count here; ask /api/public/stats for the current figure.
Read this before you sell it as Cyprus ownership coverage — it is not. The Cypriot open data release covers the nominal layer only: directors, secretaries and trade-name owners. It contains no shareholders and no beneficial owners. Measured on a sample of the loaded edges, roughly 93% are Directorship (Director, Secretary, Authorised Person, general partner) and the remaining ~7% carry the Ownership schema with role Owner — those are trade-name proprietorships, a sole trader registered behind a business name, not shareholding in a company. An earlier version of this paragraph said there was "not one ownership edge" in the Cyprus data; that was wrong, and it is corrected here rather than quietly deleted, because a claim about what a source does not contain is exactly the kind of sentence a buyer relies on.
The practical consequence is unchanged and is the part that matters: a Cypriot company will typically answer trace_ownership_path and check_offshore_exposure with no_ownership_data. That verdict means we hold no ownership edges for this subject, not this company is cleanly owned. Do not read the 7% as shareholder coverage — it is not.
Cypriot records carry a cy-reg: identifier. lookup_by_identifier does not accept that scheme — reach them with search_entities using juris: "cy".
Contains information from the Cyprus Department of Registrar of Companies and Intellectual Property, licensed under CC BY 4.0.
Semantic search (semantic_search / find_similar) runs over resolved dossier cards using BGE-M3 embeddings; coverage grows as the embedding backfill completes. Measured 2026年08月11日 from the endpoint's own coverage payload: 990,055 of a 47,486,969 universe embedded (2.1%), and that slice is ~99.6% risk-listed and ~97% natural persons — so today these two tools behave much more like a sanctions/PEP search than a corpus search, and an empty result usually means "not embedded yet". Lexical search_entities always covers the full corpus; pair it with either of them before drawing a conclusion.
What's in a name: White + Intel — white as in transparent, open, cited; intel as in intelligence, not data. We don't sell raw records — we sell resolution, traversal, and cited delivery.
Existing corporate-ownership tools were built for compliance analysts clicking web forms. WhiteIntel is the intelligence layer for the agentic era — where the investigator might be a person, an autonomous agent, or an AI workflow, and they all need the same cited, traversed, risk-scored intelligence.
- Cited, not claimed. Every ownership edge, every sanctions flag, every risk signal is traced to a public-registry record with a real effective date. We don't invent or infer — if a source doesn't say it, we don't.
- MCP-native, not another API wrapper. Semantic intelligence primitives — not REST endpoints shoe-horned into tool definitions. One command, any MCP agent.
- Freemium by design. The public corpus is free to explore — no sign-in, no API key, no paywall on search. You pay only for depth: full UBO chains, asset layers, monitoring, and export.
- Agents can pay. The only MCP server where an agent can investigate a company, decide it needs the paid dossier, buy it via Stripe Checkout, and receive the cited intelligence — end-to-end, no human portal needed.
- Honest about gaps. An absent edge means "not yet observed", not "does not exist". Investigative decision-support, not a legal determination of beneficial ownership.
- No lock-in. MIT license. Your agent, your data, your investigation.
- Live corpus: ~171.2M entities across 41 fused registries (measured 2026年08月23日). Live counts, always authoritative over this file: whiteintel.dev/api/public/stats.
- Sources are not uniformly deep. A registry in the list means we hold what that registry publishes — which for some jurisdictions is the officer layer, not ownership. Cyprus is the clearest case (see the scope note above). Never read presence in the source table as ownership coverage.
- An absent edge means "not yet observed", not "does not exist".
- Investigative decision-support, not a legal determination of beneficial ownership.
- Semantic search coverage grows as the embedding backfill completes — lexical search always covers the full corpus.
| Env var | Default | Purpose |
|---|---|---|
WHITEINTEL_API_KEY |
(none) | Optional wi_ key (whiteintel.dev → Settings → API keys). Authenticates as your plan, lifts free-tier limits. |
WHITEINTEL_API_BASE |
https://whiteintel.dev |
API origin (SSRF-guarded to whiteintel.dev hosts). |
WHITEINTEL_TIMEOUT_MS |
30000 |
Per-request timeout. |
WhiteIntel is part of a growing intelligence platform:
- whiteintel.dev — the web app: search, graph, dossiers, Pulse feed, monitoring
- WhiteIntel API — REST API with OpenAPI spec, the same endpoints this MCP server calls
- WhiteIntel Pulse — live ownership/control change feed across the corporate graph
- @whiteintel/mcp-server — this package: the MCP intelligence layer
WhiteIntel is built and directed by @Hei33enberg — a self-funded, independent intelligence project. No venture capital, no data brokers, no compromises on citation integrity.
Swiss governance · Honest by construction
npx -y @whiteintel/mcp-server # 24 tools, any MCP agent- Install — drop the server into Claude Desktop, Cursor, Cline, Windsurf, or your own runtime (see Quickstart).
- No key needed — works on the anonymous free tier out of the box.
- Go deeper — set
WHITEINTEL_API_KEYfor your plan's full depth. - Explore the corpus — whiteintel.dev — free to search, no sign-in.
- Own it — star the repo, build on the API, or integrate into your agent pipeline. MIT, no lock-in.
Issues, PRs, and tool ideas welcome. Start with the CHANGELOG for what's shipped and what's next. If you're building an agent that uses corporate intelligence, we want to hear about it — intel@whiteintel.dev.
Community: GitHub Issues for bugs and features, GitHub Discussions for design and help.
Web: whiteintel.dev · npm: @whiteintel/mcp-server · Releases: GitHub
https://whiteintel.dev/privacy
The WhiteIntel MCP server runs locally and calls only https://whiteintel.dev (SSRF-guarded).
It sends the query terms you pass to a tool and, if set, your WHITEINTEL_API_KEY. It does not
read your files, your conversation history, or your environment beyond WHITEINTEL_API_KEY
and WHITEINTEL_API_BASE. Query logs are retained for abuse prevention and are not sold or
shared with third parties. Contact: hello@whiteintel.dev
MIT © whiteintel.dev