com.oceanalt/aml
NPM · OCEANALT-AML-MCP · 2 COMPONENTS · SCANNED SEP 20
Screen a payee address before an AI agent pays: sanctions, mixers, scam lists, on-chain risk.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security99
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 113 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
- Repository check failed: the declared repository URL redirects; it must resolve directly. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 5 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability68
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2565 tokens (~213/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management37
- Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 97% 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 12 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 12 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 com.oceanalt/aml MCP server?
com.oceanalt/aml runs locally as an npm package, launched with npx -y oceanalt-aml-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · oceanalt-aml-mcp
claude mcp add com-oceanalt-aml -- npx -y oceanalt-aml-mcp
{
"mcpServers": {
"com-oceanalt-aml": {
"command": "npx",
"args": [
"-y",
"oceanalt-aml-mcp"
]
}
}
} {
"servers": {
"com-oceanalt-aml": {
"command": "npx",
"args": [
"-y",
"oceanalt-aml-mcp"
]
}
}
} codex mcp add com-oceanalt-aml -- npx -y oceanalt-aml-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-oceanalt-aml": {
"type": "local",
"command": [
"npx",
"-y",
"oceanalt-aml-mcp"
],
"enabled": true
}
}
} openclaw mcp add com-oceanalt-aml --command npx --arg -y --arg oceanalt-aml-mcp
mcp_servers:
com-oceanalt-aml:
command: "npx"
args: ["-y", "oceanalt-aml-mcp"] {
"McpServers": {
"com-oceanalt-aml": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"oceanalt-aml-mcp"
]
}
}
} assistant mcp add com-oceanalt-aml -t stdio -c npx -a -y oceanalt-aml-mcp
{
"mcpServers": {
"com-oceanalt-aml": {
"command": "npx",
"args": [
"-y",
"oceanalt-aml-mcp"
]
}
}
} 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.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 +10
- Source repository: pass → fail ▼ security
- Malware scan: unverified → pass ▲ security
- 15 Sept 26 −12
- Malware scan: pass → unverified ▼ security
- Schema quality: 1925 → 2565 ▼ functional
- Stability: unverified → 0.20 ▲ functional
- Package version: 0.5.1 → 0.6.0 functional
- 10 Sept 26 +11
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → 0.88 ▲ functional
- 9 Sept 26 58
First indexed and scored.
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 20 Sept 2026 · Analysed npm/oceanalt-aml-mcp@0.6.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 113 packages
| Packages resolved | 113 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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 →
batch_screen Batch-screen up to 25 addresses (paid, x402 $0.10) ~182
Screen up to 25 blockchain addresses in a single call. Returns a per-address verdict (clear | caution | risky | invalid), risk score, blocked flag, and top signal, plus a summary count, sorted risky-first. Cheaper per address than screening one at a time. EVM (0x…) and Tron (T…). PAID via x402: moves REAL money and requires OCEANALT_PAYER_KEY. Costs $0.10 in real USDC settled on Base mainnet (eip155:8453) — confirm the live network/price at https://oceanalt.com/api/x402 and use a dedicated low-balance payer wallet.
| Name | Type | Req | Description |
|---|---|---|---|
| addresses | array | yes | Addresses to screen (max 25), each 0x… (EVM) or T… (Tron). Duplicates and blank entries are ignored. |
No output schema declared.
No examples provided.
check_calldata_intent Decode a transaction and compare with declared intent (free) ~276
Anti blind-signing. EVM: decodes what calldata will actually do (ERC-20 transfer/approve/permit, setApprovalForAll, ownership transfer, native transfer). Solana: decodes a whole base64 transaction (SPL Token / Token-2022 Transfer, TransferChecked, Approve, SetAuthority, CloseAccount, Burn; System Transfer / Assign; ATA creation). Compares it with the payment the agent believes it is making. decision match = does what you declared; mismatch = different recipient/amount/asset, or an approval / authority change instead of a payment — do not sign; unknown = could not decode (including address-lookup-table accounts), which is NOT the same as safe. Free, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| contract | string | – | EVM only: the transaction's `to` (token contract, or the recipient for native transfers). |
| data | string | – | EVM only: 0x-prefixed hex calldata. |
| intent | object | – | – |
| network | string | – | 'solana' to decode a Solana transaction; EVM chain name or CAIP-2 id otherwise. |
| transaction | string | – | Solana only: base64-serialized transaction or message. |
| value | string | – | EVM only: native value in wei. |
No output schema declared.
No examples provided.
compliance_decision Gateway compliance decision for a payment (paid, x402 $0.30) ~283
Run OceanAlt's full compliance gateway on a proposed payment and get a DECISION — allow | review | decline — plus advice and verifiable evidence, not just raw data. Combines AML screening of the payee with RAP (Responsible Agentic Payments) gate checks. Use this when an agent needs a go/no-go call before releasing funds. PAID via x402: the first request returns HTTP 402, this server automatically signs one USDC authorization and retries — this moves REAL money and requires OCEANALT_PAYER_KEY. Costs $0.30 in real USDC settled on Base mainnet (eip155:8453). Always confirm the live network/price at https://oceanalt.com/api/x402 and use a dedicated low-balance payer wallet.
| Name | Type | Req | Description |
|---|---|---|---|
| amountUsdc | number | – | Payment amount in USDC. Optional; used only for record / mandate-limit checks, not required to get a decision. |
| network | string | – | EVM chain for the payee (same set as screen_address). Optional; ignored for Tron. |
| purpose | string | – | Short free-text note on what the payment is for. Optional (max ~120 chars). |
| to | string | yes | Payee address the agent intends to pay. EVM (0x + 40 hex) or Tron (T + 33 base58). |
No output schema declared.
No examples provided.
counterparty_control_baseline Check a counterparty's control baseline before paying (free) ~217
Answers a different question from address screening. Screening asks whether an address is risky; this asks how much damage the agent on the other side could do if it were talked into something — whether a spending ceiling exists, whether payees are restricted, whether its credential can be revoked. It returns that party's self-attestation against the OceanAlt Agent Control Baseline, split into two sets that must NOT be conflated: `verified_by_oceanalt` (controls the gateway enforces on every payment — provable) and `self_claimed` (what the party states about its own side — NOT verified by OceanAlt). IMPORTANT: most parties have not attested. A result of found:false means no information, not a bad signal — never decline a payment on that basis alone. Free, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| agentId | string | – | Their agent id, if you have it instead of an entity name. |
| entity | string | – | The counterparty's entity name, e.g. "Acme Robotics Ltd". |
No output schema declared.
No examples provided.
deep_trace Deep taint trace of a Tron address (paid, x402 $0.20) ~180
Trace a Tron (TRON) USDT address up to 3 hops back along its largest incoming transfers to see whether its funds touch a Tether-frozen, sanctioned, mixer, or scam address upstream — deeper than a single-address screen. Tron only (T…). PAID via x402: moves REAL money and requires OCEANALT_PAYER_KEY. Costs $0.20 in real USDC settled on Base mainnet (eip155:8453) — confirm the live network/price at https://oceanalt.com/api/x402 and use a dedicated low-balance payer wallet. Note: follows only the main funds path, depth ≤3, not exhaustive — no hit does not prove the address is clean.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Tron address to trace (T + 33 base58). USDT on TRON. |
No output schema declared.
No examples provided.
evidence_bundle Signed evidence bundle for an address (free) ~152
Everything OceanAlt can say about an address, in one Ed25519-signed bundle you can verify offline: screening verdict + evidence + freshness, self-built profile signals, one-hop relations to listed addresses, fulfillment receipt stats. OceanAlt is a witness, not a plaintiff: no conclusions, no attribution of persons, every item carries its source and coverage date. Everything inside is already public; there is no user data and no privileged channel — anyone may request one. Free, 10 per minute.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | EVM (0x…), Solana / Tron (base58) or Bitcoin address. |
| network | string | – | Chain, e.g. ethereum, base, solana (optional). |
No output schema declared.
No examples provided.
payee_decide Ask the payee whether it accepts this payment (free) ~255
The other half of a safe agent payment. Before settling, ask the registered payee (by its OceanAlt registry sid — see https://oceanalt.com/registry.json) whether it accepts this incoming payment. Returns status accept | decline | hold_request_info | not_ready, machine-readable reason codes, requested_fields (only on hold), verifiable evidence and a signature. Rule-based, not model judgement: payee readiness comes from the public registry enforcement ladder (https://oceanalt.com/en/registry/rules), the payer address is screened in reverse, and amount / purpose / KYA requirements come from the payee's own policy. decline is final — re-paying does not change it. Free, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| amountUsdc | number | – | Amount in USDC |
| payee | string | yes | Payee sid from the OceanAlt registry, e.g. oceanalt-200lab-premium |
| payerAddress | string | – | The paying wallet address (screened in reverse) |
| payerAgentId | string | – | The paying agent's KYA id, if the payee requires KYA |
| purpose | string | – | Purpose of the payment, e.g. api-call |
No output schema declared.
No examples provided.
payment_decision Decide whether to pay an address before an agent pays (free) ~262
"Before your agent pays, call OceanAlt once." Pass the payee address the agent is about to pay; get a machine-executable decision: allow | review | decline, plus verifiable evidence and retry semantics. Use this as a gate in an autonomous payment flow — if the decision is not "allow", do not pay. On allow/review it also returns a verifiable compliance attestation you can attach to the settlement so the payment carries proof it passed OceanAlt's decision. Free, no API key, no signup. (For the paid variant that also settles the payment on x402 rails, use compliance_decision.)
| Name | Type | Req | Description |
|---|---|---|---|
| amountUsdc | number | – | Amount in USDC (optional; recorded/echoed, not required for the decision). |
| lang | string | – | Language for human-readable fields (signals, note, advice). Defaults to English. |
| network | string | – | EVM chain for the payee (same set as screen_address). Optional; ignored for Tron. |
| purpose | string | – | Short purpose/memo for the payment (optional). |
| to | string | yes | Payee address the agent is about to pay. EVM: 0x + 40 hex. Tron: T + 33 base58. |
No output schema declared.
No examples provided.
recent_flagged List recently flagged high-risk addresses (free) ~86
Return a representative sample of addresses on OceanAlt's reviewed risk list — OFAC-sanctioned, known mixers, and community-reported scam/phishing — each with its source category and the reason it was flagged. Useful for grounding, showing an agent/user what gets blocked and why, or a quick read on the current threat surface. Takes no arguments. Free, no API key.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
resolve_agent_identity Resolve an agent's chain of accountability (free) ~139
Resolves who stands behind a paying agent: agent → principal → mandate → credential → wallet. Each link reports whether it holds, and `completeness` counts how many do — it is a factual count, not a score. Wherever the chain breaks is where accountability stops, which is what you actually need to know before accepting a payment from an autonomous agent. Publication is opt-in and only posture is exposed (that a ceiling exists, never its value), so found:false means the agent has not published — absence of information, not a bad signal. Free, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| agentId | string | yes | The agent id to resolve. |
No output schema declared.
No examples provided.
screen_address Screen a blockchain address for AML risk (free) ~321
Run an AML compliance screen on a single blockchain address BEFORE paying or receiving from it — the answer to "is this counterparty safe?". Checks OFAC sanctions, known mixers, community scam/phishing lists, stablecoin issuer freezes (USDT/USDC), and on-chain heuristics (address age, activity, one-hop taint from flagged addresses). Returns a verdict (clear | caution | risky), a 0–100 risk score, a blocked flag, and clickable verifiable evidence showing which list/label/on-chain path matched — receipts, not a black-box score. Supports EVM (0x…), Tron (T…), and Solana (base58). Free, no API key, no signup.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Address to screen. EVM: 0x + 40 hex (e.g. 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045). Tron: T + 33 base58 (e.g. TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t). Solana: base58 public key. |
| lang | string | – | Language for human-readable fields (signals, note). Defaults to English. |
| network | string | – | EVM chain to screen on. Omit to auto-default to ethereum; ignored for Tron/Solana (auto-detected). One of: ethereum, base, bsc, polygon, arbitrum, optimism, avalanche. |
No output schema declared.
No examples provided.
verify_payment_requirements Verify a signed x402 402 response was not tampered with (free) ~212
A 402 response is plaintext: any hop between seller and agent (proxy, CDN, a compromised SDK, a malicious tool) can swap the payTo address. Sellers who sign their payment requirements with OceanAlt put extensions.signedRequirements (Ed25519) inside the PAYMENT-REQUIRED header payload. Pass the decoded header JSON (or its raw base64) and, optionally, the payTo / amount you expect; get verified true/false with a reason code: ok | no_signature | digest_mismatch | signature_invalid | key_unavailable | payto_mismatch | amount_mismatch. Defends against tampering in transit, not against a compromised seller origin. Free, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| expect | object | – | What you expect to pay; mismatches are reported. |
| keys_url | string | – | Where the seller publishes its keys (defaults to the keys_url inside the signature). |
| payment_required | – | – | The decoded PAYMENT-REQUIRED JSON, or the raw base64 header value. |
No output schema declared.
No examples provided.
What is the com.oceanalt/aml MCP server?
com.oceanalt/aml is an MCP server listed in the public MCP registry as com.oceanalt/aml. Screen a payee address before an AI agent pays: sanctions, mixers, scam lists, on-chain risk. This page covers its npm package (oceanalt-aml-mcp).
Is the com.oceanalt/aml MCP server safe to use?
com.oceanalt/aml scores 69 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. 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 com.oceanalt/aml MCP server expose?
com.oceanalt/aml exposes 12 tools: screen_address, payee_decide, counterparty_control_baseline, resolve_agent_identity, recent_flagged, and 7 more. Their descriptions and schemas cost roughly 2,565 tokens of context every time the server is loaded.
Is the com.oceanalt/aml MCP server still maintained?
com.oceanalt/aml is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the com.oceanalt/aml MCP server under?
com.oceanalt/aml declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.