screen_name
Screen a person or entity name against OFAC SDN, EU consolidated, and UN sanctions lists. Returns match status, confidence, and list source.
namerequired
io.github.kindrat86Published by GitHub account kindrat86v1.1.1Updated Nov 2, 2026
OFAC sanctions screening for AI agents: 1,050 wallets, 19,389 SDN names, <100ms. Free tier, no key.
SanctionsAI screens names and crypto wallets against OFAC, EU and UN sanctions lists, letting an assistant check a counterparty before trusting or paying it.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.kindrat86%2Fsanctionsai/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"sanctionsai": {
"type": "http",
"url": "https://sanctionsai.dev/api/mcp"
}
}
}[PyPI] [Python 3.11+] [License: MIT]
Your agent is about to send USDC to a stranger. Is that stranger sanctioned? 782 OFAC crypto wallets · 19,086 sanctioned names · 16 embargoed jurisdictions. No API key. No signup. 30-second setup. Free & open source.
SanctionsAI gives any AI agent three capabilities it can't provide itself:
It exposes all of these through three surfaces — MCP tools (for Claude Code / Cursor / Hermes), an HTTP API (for any agent), and a CLI (for you). Same core, same data.
Agents are starting to pay for things (x402, AP2, ACP, Coinbase AgentKit). But every payment rail assumes a human is watching. If your agent autonomously pays a wallet that's on the OFAC Specially Designated Nationals list, that's your legal problem — and the big payment infra players (OpenAI, Stripe, Coinbase) explicitly do not handle per-jurisdiction sanctions screening, Know-Your-Agent, or agent-transaction fraud signals. That's the gap this fills.
Now your agent can call sanctions_check, risk_score, kya_verify, dispute_open, create_inbox, fetch_code, create_number, fetch_sms, release_number, list_inboxes.
Note: the PyPI package is
sanctions-mcp(the nameSanctionsAIwas taken). The Python import name is stillSanctionsAI.
Four tools, called before an agent trusts or pays a counterparty:
Lists are cached locally (~/.agentmail/cache/, 24h TTL) and refresh from source. If the network is down, a stale cache is used and status() reports degraded: true so you know screening is against older data rather than failing silently.
The osint provider does exact + token-subset name matching, exact case-insensitive wallet matching, and ISO-2 country matching. Every match carries a confidence so you can decide how hard to block.
Email — a disposable inbox an agent can use to sign up and receive OTP/magic-link verifications (backed by Mail.tm). create_inbox() → address → fetch_code() → OTP.
SMS — a rentable phone number an agent can use for phone/SMS verification. Mock provider works with no key (for dev); AGENTMAIL_SMS_PROVIDER=fivesim AGENTMAIL_FIVESIM_KEY=... goes live with real numbers.
Both share an otp.py extraction brain (regex for codes + magic links) so email and SMS produce the same {code, link} shape.
Self-host is fully functional and free — that's what this repo is. Run the MCP server locally or the HTTP API on your own box, screen against real OFAC data, never pay a cent.
Hosted API is live at https://agentmail-api.fly.dev — a managed endpoint with API-key auth, rate limits, and an audit log of every screen (the thing regulators/investors ask for). Free tier: 50 checks/day, no signup (by IP). For higher volume, get an API key → (Dev $19/mo, Team $99/mo — self-serve checkout).
The SanctionsAI Sanctions Exposure Index (SEI) is a 5-factor proprietary framework for quantifying an AI agent's OFAC sanctions exposure:
Score 10 (min exposure) → 1000 (max). S and D are the two factors you can change today — collapse both from 1→10 with a single inline screening call and a timestamped audit trail. Full report + interactive calculator at sanctionsai.dev.
Cite as: "SanctionsAI Sanctions Exposure Index (SEI), 2026 Agent-Payment Sanctions Exposure Report, sanctionsai.dev" — licensed CC BY 4.0.
MIT — see LICENSE.
Issues and PRs welcome. If you're using SanctionsAI in production, I'd love to hear what for.
Source: README.md at commit 3e77c9f
Screen a person or entity name against OFAC SDN, EU consolidated, and UN sanctions lists. Returns match status, confidence, and list source.
namerequiredScreen a cryptocurrency wallet address against OFAC SDN sanctions list. Returns match status and any associated sanctioned entity.
addressrequiredList all supported sanctions lists with last-updated dates and entity counts.
Takes no parameters.
100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
agent ──about to pay──▶ sanctions_check(wallet) ──▶ clean? proceed. sanctioned? ABORT.pip install sanctions-mcp// .mcp.json or your client's MCP config{ "mcpServers": { "SanctionsAI": { "command": "python", "args": ["-m", "agentmail.mcp_server"] } }}python -m agentmail.api # serves on :8000# Screen a wallet against real OFAC data — no key, no auth needed for self-hostcurl "http://localhost:8000/sanctions?wallet=0x098B716B8Aaf21512996dC57EB0615e2383E2f96"# → {"matches":[{"list":"OFAC_SDN","match_type":"wallet_exact","confidence":1.0}],# "clean":false,"provider":"osint"}
curl "http://localhost:8000/risk" -d '{"counterparty_id":"0xabc...","amount":"5000","rail":"x402"}'# → {"score":0,"recommendation":"decline","reasons":["sanctions_match:OFAC_SDN/..."]}# Sanctions screen — real OFAC data, no keypython -m agentmail.cli sanctions --wallet 0x098B716B8Aaf21512996dC57EB0615e2383E2f96# → flagged: OFAC_SDN wallet_exact
python -m agentmail.cli risk 0xabc123def456 5000 --rail x402python -m agentmail.cli kya my-agent --wallet 0xabc... --wallet-age 400 --domain bot.devpython -m agentmail.cli compliance-status# → OFAC SDN: 782 wallets, 19086 names; source=vile/ofac-sdn-list@...AGENTMAIL_COMPLIANCE_PROVIDER=osint ← default, real OFAC data, freeAGENTMAIL_COMPLIANCE_PROVIDER=mock ← rule-based, for offline testsAGENTMAIL_COMPLIANCE_PROVIDER=paid ← ComplyAdvantage passthrough (roadmap)# Try the hosted API right now — no key needed:curl "https://agentmail-api.fly.dev/sanctions?wallet=0x098B716B8Aaf21512996dC57EB0615e2383E2f96"# → {"matches":[{"list":"OFAC_SDN",...}],"clean":false}
# With an API key:curl -H "X-API-Key: sk_live_..." "https://agentmail-api.fly.dev/risk" \ -d '{"counterparty_id":"0xabc...","amount":"5000","rail":"x402"}'