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 18 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 |
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 |
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 |
claim_dossier |
Redeem a paid session for a 90-day access token (idempotent) | 💳 Commerce |
18 callable tools — 4 Discovery + 4 Lookup + 4 Intelligence + 2 Risk + 2 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-server2a. 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-server2c. 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, property and an adverse-media scan.- 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.
Check get_pricing first — it returns the full price list plus this flow in machine-readable form.
102.3M+ entities across 29 fused registries — every claim cited, every edge traced:
| Source | What | Coverage |
|---|---|---|
| OpenOwnership | UK PSCs (Persons with Significant Control) | 🇬🇧 Full |
| GLEIF | Global LEI registry — legal entity identifiers | 🌍 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 |
| OFAC / EU / UN / UK | Consolidated sanctions lists | 🌍 Live |
| + 17 more | registries, sanctions lists & UBO registers | 🌍 Growing |
Semantic search (semantic_search / find_similar) runs over resolved dossier cards using BGE-M3 embeddings; coverage grows as the embedding backfill completes. Lexical search_entities always covers the full corpus.
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: ~102.3M entities across 29 fused registries. Live counts: whiteintel.dev/api/public/stats.
- 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 # 18 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
MIT © whiteintel.dev