OnchainDiligence
REMOTE · MCP.ONCHAINDILIGENCE.COM · SCANNED SEP 21
Pay-per-call compliance via x402: wallet sanctions, OFAC name, UK + US company verification.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 21 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability69
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 2036 tokens (~96/item across 21 items; 21 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage74
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 23% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 21 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the OnchainDiligence MCP server?
OnchainDiligence is a hosted endpoint at https://mcp.onchaindiligence.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.onchaindiligence.com
claude mcp add --transport http com-onchaindiligence-compliance 'https://mcp.onchaindiligence.com/mcp'
{
"mcpServers": {
"com-onchaindiligence-compliance": {
"url": "https://mcp.onchaindiligence.com/mcp"
}
}
} {
"servers": {
"com-onchaindiligence-compliance": {
"type": "http",
"url": "https://mcp.onchaindiligence.com/mcp"
}
}
} [mcp_servers.com-onchaindiligence-compliance] url = "https://mcp.onchaindiligence.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-onchaindiligence-compliance": {
"type": "remote",
"url": "https://mcp.onchaindiligence.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-onchaindiligence-compliance --url 'https://mcp.onchaindiligence.com/mcp' --transport streamable-http
mcp_servers:
com-onchaindiligence-compliance:
url: "https://mcp.onchaindiligence.com/mcp" {
"McpServers": {
"com-onchaindiligence-compliance": {
"Transport": "http",
"Url": "https://mcp.onchaindiligence.com/mcp"
}
}
} assistant mcp add com-onchaindiligence-compliance -t streamable-http -u 'https://mcp.onchaindiligence.com/mcp'
{
"mcpServers": {
"com-onchaindiligence-compliance": {
"type": "http",
"url": "https://mcp.onchaindiligence.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 13 Sept 26 0
- Tool coverage: 33% → 23% ▼ functional
- Schema quality: fail → pass ▲ functional
- New tool “inspect_bridge” functional
- New tool “inspect_staking” functional
- New tool “observe_bridge” functional
- New tool “observe_staking” functional
- New tool “preflight_bridge” functional
- New tool “preflight_staking” functional
- 12 Sept 26 −2
- Tool coverage: 63% → 33% ▼ functional
- Schema quality: 138 → 108 ▲ functional
- Schema quality: excellent → good functional
- New tool “inspect_allowance” functional
- New tool “inspect_swap” functional
- New tool “observe_allowance” functional
- New tool “observe_swap” functional
- New tool “preflight_allowance” functional
- New tool “preflight_swap” functional
- 6 Sept 26 +1
- Tool “preflight_payment” rewrote its description, which is the text the model reads security
- Tool “screen_wallet” rewrote its description, which is the text the model reads security
- Tool “verify_uk_company” rewrote its description, which is the text the model reads security
- Tool “verify_us_company” rewrote its description, which is the text the model reads security
- Schema quality: 1072 → 1242 ▼ functional
- Tool coverage: 54% → 63% ▲ functional
- New tool “get_receipt” functional
- New tool “verify_receipt” functional
- 4 Sept 26 −3
- Tool coverage: 100% → 54% ▼ functional
- Schema quality: 737 → 1072 ▼ functional
- New tool “inspect_payment” functional
- New tool “preflight_payment” functional
- 28 Aug 26 +57
- Injection markers: unverified → pass ▲ security
- Stability: unverified → pass ▲ security
- Transport: fail → pass ▲ security
- Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 5 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. security
- Tool “screen_wallet” rewrote its description, which is the text the model reads security
- Tool “verify_us_company” rewrote its description, which is the text the model reads security
- Endpoint reachability: not serving MCP → reachable ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- 27 Aug 26 −57
- Endpoint reachability: reachable → not serving MCP ▼ security
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- Authorization: Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the tool list to see what that exposes. security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 26 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 +1
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Probed https://mcp.onchaindiligence.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.onchaindiligence.com | CN=YR1,O=Let's Encrypt,C=US | 21 Aug 2026 | 19 Nov 2026 | RSA 2048 | SHA256-RSA | 6f15c50be3f0478876ecf524f14e73b012b |
| SANs: mcp.onchaindiligence.com | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.onchaindiligence.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| onchaindiligence.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.onchaindiligence.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.onchaindiligence.com/mcp | HTTPS enforced | 308 | https://mcp.onchaindiligence.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
diligence ~141
Combined counterparty due diligence in one call: runs sanctions screening on a crypto wallet (Chainalysis oracle — OFAC SDN, EU, UN) AND a UK Companies House KYB lookup (status, type, PSC / beneficial owners) in parallel. Built for compliance agents vetting a counterparty that has both an on-chain wallet and a UK company. Returns both independent results, plus an explicit disclaimer that no verified link between the wallet and the company is established by the data.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | yes | UK Companies House registration number to verify |
| wallet | string | yes | EVM wallet address (0x + 40 hex) to sanctions-screen |
No output schema declared.
No examples provided.
get_receipt ~126
Look up a public OCD receipt by its exact receipt_id (format "OCD-RCP-XXXX-XXXX-XXXX-XXXX"). Free, no payment. Returns the complete signed receipt envelope, or a structured not-found/unavailable reason -- never a guess. A private (unpublished) receipt and an unknown id are indistinguishable, both by design: this never confirms or denies that a private receipt exists.
| Name | Type | Req | Description |
|---|---|---|---|
| receipt_id | string | yes | Exact receipt id, e.g. "OCD-RCP-EMG6-6KR4-PQSG-MZPQ". |
No output schema declared.
No examples provided.
inspect_allowance ~74
FREE. Deterministically inspect an ERC-20 allowance/revocation request against explicit network/token/spender/value policy. No wallet action, no signing, no chain read unless a separately requested preflight asks for it.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | – |
| options | object | – | – |
| policy | object | yes | – |
No output schema declared.
No examples provided.
inspect_bridge ~60
FREE. Deterministically inspect a narrow Circle CCTP V2 Base-to-Ethereum native-USDC bridge request against explicit policy. No wallet action, no signing, no chain read.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | – |
| policy | object | yes | – |
No output schema declared.
No examples provided.
inspect_payment ~144
FREE. Pure deterministic inspection of a proposed payment against structured policy (amount/network/asset/recipient/resource) — no external evidence, no sanctions screening, no cryptographic signing, no receipt. Returns the same ALLOW / REQUIRE_APPROVAL / BLOCK decision semantics as POST /x402/preflight-payment for the deterministic checks alone, so a caller can sanity-check a proposal before deciding whether the paid preflight (adds optional sanctions evidence and a signed, independently-verifiable receipt, $0.01) is worth paying for. This result is NOT cryptographically attested and carries no receipt — receipt is always null.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | – |
| policy | object | yes | – |
No output schema declared.
No examples provided.
inspect_staking ~52
FREE. Deterministically inspect a narrow Ethereum Lido stETH submit request against explicit policy. No wallet action, signing, or chain read.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | – |
| policy | object | yes | – |
No output schema declared.
No examples provided.
inspect_swap ~52
FREE. Deterministically inspect a narrow Base USDC-to-WETH direct Uniswap V3 swap against explicit policy. No wallet action or signing.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | – |
| policy | object | yes | – |
No output schema declared.
No examples provided.
observe_allowance ~62
Given a signed OCD allowance preflight artifact and submitted Base transaction hash, independently inspect its canonical-USDC Approval event, Base safe-head finality, and historical allowance state. OCD never executes the transaction.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact | – | – | – |
| transaction_hash | string | yes | – |
No output schema declared.
No examples provided.
observe_bridge ~95
Given a signed OCD bridge preflight artifact, the Base depositForBurn transaction hash, and (once available) the Ethereum receiveMessage transaction hash, independently observe both chains, verify the CCTP message identity matches, and reconcile against the authorized action. Source-only observation is reported as an evidence gap, never as completion.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact | – | – | – |
| destination_transaction_hash | string | – | – |
| source_transaction_hash | string | yes | – |
No output schema declared.
No examples provided.
observe_staking ~64
Given a signed OCD staking preflight artifact and Ethereum transaction hash, independently inspect the canonical Lido Submitted event, transaction sender/value, optional minted shares, and Ethereum finalized-head finality. OCD never stakes ETH.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact | – | – | – |
| transaction_hash | string | yes | – |
No output schema declared.
No examples provided.
observe_swap ~64
Given a signed OCD swap preflight artifact and Base transaction hash, independently inspect direct Uniswap V3 exactInputSingle calldata, ERC-20 transfers, and Base safe-head finality. OCD never executes the swap.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact | – | – | – |
| transaction_hash | string | yes | – |
No output schema declared.
No examples provided.
preflight_allowance ~73
Call BEFORE an agent asks its wallet to approve or revoke a Base USDC ERC-20 allowance. OCD evaluates strict policy and returns a signed portable allowance artifact. ALLOW is policy only, never wallet authority.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | – |
| options | object | – | – |
| policy | object | yes | – |
No output schema declared.
No examples provided.
preflight_bridge ~71
Call BEFORE an agent asks its wallet to bridge Base USDC to Ethereum via Circle CCTP V2 (depositForBurn). OCD evaluates strict policy and returns a signed portable bridge artifact. ALLOW is policy only, never wallet authority.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | – |
| policy | object | yes | – |
No output schema declared.
No examples provided.
preflight_payment ~129
Call BEFORE an agent authorizes an autonomous payment. Evaluates it against your policy (max amount, allowed networks/assets, expected recipient, allowed origins) and returns a signed PREFLIGHT receipt -- ALLOW, REQUIRE_APPROVAL, or BLOCK, with reasons -- independently verifiable by anyone. Policy evaluation only: OCD never holds, moves, or authorizes funds. The wallet/x402 client separately authorizes execution after; ALLOW does not guarantee it will proceed.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | – |
| options | object | – | – |
| policy | object | yes | – |
| references | object | – | – |
No output schema declared.
No examples provided.
preflight_staking ~62
Call BEFORE an agent asks its wallet to submit ETH to Lido stETH. OCD evaluates strict policy and returns a signed portable staking artifact. ALLOW is policy only, never wallet authority.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | – |
| policy | object | yes | – |
No output schema declared.
No examples provided.
preflight_swap ~65
Call BEFORE an agent asks its wallet to execute a narrow Base USDC-to-WETH direct Uniswap V3 swap. OCD returns a signed portable policy artifact. ALLOW is policy only, never wallet authority.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | – |
| policy | object | yes | – |
No output schema declared.
No examples provided.
screen_name ~164
OFAC name screening: fuzzy-match a person or company name against the official US Treasury OFAC Specially Designated Nationals (SDN) list (primary names + strong aliases). Returns scored candidate matches with the matched name, SDN type, and program. SCOPE: this is a screening aid for AML / KYC / sanctions compliance — a match is a candidate to investigate with secondary identifiers (DOB, nationality, ID), NOT a determination. Weak AKAs are not screened, per OFAC guidance.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Person or company name to screen against the OFAC SDN list |
| threshold | number | – | Optional match confidence cutoff 0.5–1.0 (default 0.85). Lower = more candidates, more false positives. |
No output schema declared.
No examples provided.
screen_wallet ~114
Sanctions-screen an EVM wallet address against the Chainalysis on-chain oracle (OFAC SDN, EU, UN designations). Reflects current status, including delistings -- a once-designated address may now screen clean. Returns a sanctioned / not-sanctioned boolean (no case-level detail). Call before sending USDC or other funds to an address, for AML compliance and counterparty due diligence.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | EVM wallet address (0x + 40 hex) to sanctions-screen |
No output schema declared.
No examples provided.
verify_receipt ~179
Independently checks whether a receipt is cryptographically VALID, INVALID, or UNVERIFIABLE, with a reason code. Free, no payment. Pass EITHER receipt_id (looks it up first, must be public) OR a complete receipt envelope you already hold (verified directly, no publication needed). This is a convenient ONLINE check -- it trusts this server to have honestly fetched the real signing-key registry. Running the same check yourself offline (the published @onchaindiligence/agent-evidence package) is a strictly stronger trust position; this tool does not replace that option.
| Name | Type | Req | Description |
|---|---|---|---|
| envelope | – | – | A complete receipt envelope you already hold ({schema, receipt, proof}) to verify directly. Mutually exclusive with receipt_id. |
| receipt_id | string | – | Look up and verify a public receipt by exact id. Mutually exclusive with envelope. |
No output schema declared.
No examples provided.
verify_uk_company ~112
UK company KYB lookup via the official Companies House register. Given a UK registration number, returns legal status (active/dissolved), company type, incorporation date, registered office, and people with significant control (PSC / beneficial owners). Call to confirm a UK business is real, active, and who controls it, for KYB onboarding and counterparty due diligence. Authoritative UK government data.
| Name | Type | Req | Description |
|---|---|---|---|
| companyNumber | string | yes | UK Companies House registration number to verify, e.g. 00000006 |
No output schema declared.
No examples provided.
verify_us_company ~133
US public company verification via SEC EDGAR. Given a ticker, CIK, or company name, returns entity name, CIK, industry (SIC), state of incorporation, exchanges/tickers, address, and latest SEC filing. Ambiguous names return candidates, never a silent selection. Covers SEC-registered PUBLIC companies and funds only -- not private US companies. Call for KYB and counterparty due diligence on listed US entities.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | US public company ticker, SEC CIK, or company name — e.g. "AAPL", "0000320193", or "Apple Inc" |
No output schema declared.
No examples provided.
What is the OnchainDiligence MCP server?
OnchainDiligence is an MCP server listed in the public MCP registry as com.onchaindiligence/compliance. Pay-per-call compliance via x402: wallet sanctions, OFAC name, UK + US company verification. This page covers its hosted endpoint (https://mcp.onchaindiligence.com/mcp).
Is the OnchainDiligence MCP server safe to use?
OnchainDiligence scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the OnchainDiligence MCP server expose?
OnchainDiligence exposes 21 tools: screen_wallet, screen_name, verify_uk_company, verify_us_company, diligence, and 16 more. Their descriptions and schemas cost roughly 2,036 tokens of context every time the server is loaded.
Does the OnchainDiligence MCP server require authentication?
No. We connected to OnchainDiligence without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the OnchainDiligence MCP server still maintained?
OnchainDiligence is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.