Open-source MCP server for KYB · runs on your machine
Trust, backed by evidence.
Ask your AI assistant to vet a UK company. TrustLedger checks Companies House, the OFAC and UN sanctions lists, and the company website, then returns Approve, Escalate or Reject. Every flag points to the evidence behind it.
review_kyb_case
How it works
- Your assistantClaude Code, Claude Desktop or Cursor calls a tool
- TrustLedgerruns locally over stdio; sanctions are screened against a local index, so names never leave your machine
- Public sourcesCompanies House, GLEIF, OFAC SDN, UN list, the company website and its domain record
- Decisiona versioned rule policy decides; your assistant explains it but cannot change it
Where you can use it
Install once. After that, most people never touch the terminal again.
In your AI assistant
Claude Desktop, Claude Code, Cursor or any app that runs local MCP servers. Just ask in plain English.
In the terminal
One command per check. Good for batches of companies, scripts and CI.
In your own code
Import it as a Python library and add KYB checks to your onboarding flow.
What you can ask, and what you get back
“Run a KYB check on company 09876543. Director Sarah Holloway, born June 1979.”
A decision (approve, escalate or reject), the risk level, every flag with its evidence, and a short note an analyst can file.
“Is Viktor Bout, born 1967, on a sanctions list?”
Each possible match labelled as a match, needs review or cleared, with the reasons: how close the name is, whether the birth year and nationality agree.
“Who are the directors and owners of company 00445790?”
The Companies House record: status, address, industry codes, directors and people with significant control.
“Does harbourline-logistics.co.uk look like a real logistics business?”
Whether the site is reachable or parked, how old the domain is, what the page says it sells, and whether that fits the declared industry.
“Why was this case escalated?”
The rules behind the decision, in plain words. Your assistant can explain a decision but cannot change it.
What your assistant can call
review_kyb_case- Full review of an onboarding application: registry, owners, sanctions and website, ending in a decision with flags and an analyst note.
registry_lookup- A company's Companies House or GLEIF record: status, address, SIC codes, directors and beneficial owners.
screen_entity- Screen one person or company against OFAC and UN. Hits come labelled as match, needs review or cleared, with the reason.
check_website- Is the site reachable, parked, newly registered, selling prohibited goods, or in a different industry?
explain_policy- The active decision rules, so the assistant can explain why a case was escalated.
Install
Needs Python 3.11+ and a free Companies House API key.
COMPANIES_HOUSE_API_KEY | Required registry checks. Without it they report not_configured. |
|---|---|
KYB_DATA_DIR | Optional where the sanctions index and cache live. Default ~/.kyb-tool-mcp. |
KYB_POLICY_FILE | Optional your own decision policy, created with kyb-tool-mcp init. |
Benchmark
Real UK data the tool was never tuned on, plus 168 synthetic cases.
| Test | Result |
|---|---|
| Sanctioned UK designations caught (992, UK spellings vs UN list) | 99.4% |
| Real UK companies with no alert (5,000) | 92.9% |
| Real UK companies wrongly confirmed as sanctioned | 0.04% |
| Synthetic end-to-end cases decided correctly (168 × 3 runs) | 100% |
| Live check on real UK companies (20 cases across 8 types) | 20/20 |
Coming next
Today it runs on your machine. Phase 2 makes it easier to reach.
- One-click install for Claude Desktop. A desktop extension file: no config editing.
- Add it as a connector. A hosted version you add to Claude by URL.
- A web form. Fill in a company's details in the browser and get the same decision, no install needed.