Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

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.

0 this week 69 Trust /100
Trust breakdown (7 categories)

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
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
Install

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

# add to Claude Code
claude mcp add com-oceanalt-aml -- npx -y oceanalt-aml-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "com-oceanalt-aml": {
      "command": "npx",
      "args": [
        "-y",
        "oceanalt-aml-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-oceanalt-aml": {
      "command": "npx",
      "args": [
        "-y",
        "oceanalt-aml-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add com-oceanalt-aml -- npx -y oceanalt-aml-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-oceanalt-aml": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "oceanalt-aml-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-oceanalt-aml --command npx --arg -y --arg oceanalt-aml-mcp
# ~/.hermes/config.yaml
mcp_servers:
  com-oceanalt-aml:
    command: "npx"
    args: ["-y", "oceanalt-aml-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-oceanalt-aml": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "oceanalt-aml-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add com-oceanalt-aml -t stdio -c npx -a -y oceanalt-aml-mcp
// mcp.json
{
  "mcpServers": {
    "com-oceanalt-aml": {
      "command": "npx",
      "args": [
        "-y",
        "oceanalt-aml-mcp"
      ]
    }
  }
}
Changelog

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.

Diagnostics

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 →

MCP tools · 12 exposed · ~2,565 tokens

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 →

Tool Tokens
batch_screen ~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.

NameTypeReqDescription
addressesarrayyesAddresses 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 ~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.

NameTypeReqDescription
contractstringEVM only: the transaction's `to` (token contract, or the recipient for native transfers).
datastringEVM only: 0x-prefixed hex calldata.
intentobject
networkstring'solana' to decode a Solana transaction; EVM chain name or CAIP-2 id otherwise.
transactionstringSolana only: base64-serialized transaction or message.
valuestringEVM only: native value in wei.

No output schema declared.

No examples provided.

compliance_decision ~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.

NameTypeReqDescription
amountUsdcnumberPayment amount in USDC. Optional; used only for record / mandate-limit checks, not required to get a decision.
networkstringEVM chain for the payee (same set as screen_address). Optional; ignored for Tron.
purposestringShort free-text note on what the payment is for. Optional (max ~120 chars).
tostringyesPayee 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 ~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.

NameTypeReqDescription
agentIdstringTheir agent id, if you have it instead of an entity name.
entitystringThe counterparty's entity name, e.g. "Acme Robotics Ltd".

No output schema declared.

No examples provided.

deep_trace ~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.

NameTypeReqDescription
addressstringyesTron address to trace (T + 33 base58). USDT on TRON.

No output schema declared.

No examples provided.

evidence_bundle ~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.

NameTypeReqDescription
addressstringyesEVM (0x…), Solana / Tron (base58) or Bitcoin address.
networkstringChain, e.g. ethereum, base, solana (optional).

No output schema declared.

No examples provided.

payee_decide ~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.

NameTypeReqDescription
amountUsdcnumberAmount in USDC
payeestringyesPayee sid from the OceanAlt registry, e.g. oceanalt-200lab-premium
payerAddressstringThe paying wallet address (screened in reverse)
payerAgentIdstringThe paying agent's KYA id, if the payee requires KYA
purposestringPurpose of the payment, e.g. api-call

No output schema declared.

No examples provided.

payment_decision ~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.)

NameTypeReqDescription
amountUsdcnumberAmount in USDC (optional; recorded/echoed, not required for the decision).
langstringLanguage for human-readable fields (signals, note, advice). Defaults to English.
networkstringEVM chain for the payee (same set as screen_address). Optional; ignored for Tron.
purposestringShort purpose/memo for the payment (optional).
tostringyesPayee address the agent is about to pay. EVM: 0x + 40 hex. Tron: T + 33 base58.

No output schema declared.

No examples provided.

recent_flagged ~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 ~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.

NameTypeReqDescription
agentIdstringyesThe agent id to resolve.

No output schema declared.

No examples provided.

screen_address ~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.

NameTypeReqDescription
addressstringyesAddress to screen. EVM: 0x + 40 hex (e.g. 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045). Tron: T + 33 base58 (e.g. TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t). Solana: base58 public key.
langstringLanguage for human-readable fields (signals, note). Defaults to English.
networkstringEVM 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 ~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.

NameTypeReqDescription
expectobjectWhat you expect to pay; mismatches are reported.
keys_urlstringWhere the seller publishes its keys (defaults to the keys_url inside the signature).
payment_requiredThe decoded PAYMENT-REQUIRED JSON, or the raw base64 header value.

No output schema declared.

No examples provided.

Common questions

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.