OFAC Sanctions Intelligence MCP avatar

OFAC Sanctions Intelligence MCP

Pricing

$3.00 / 1,000 result item returneds

Go to Apify Store
OFAC Sanctions Intelligence MCP

OFAC Sanctions Intelligence MCP

Real-time OFAC SDN sanctions screening for AI assistants, compliance workflows, and KYC pipelines.

Pricing

$3.00 / 1,000 result item returneds

Rating

0.0

(0)

Developer

Andrew Avina

Andrew Avina

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

ofac-sanctions-mcp

Real-time OFAC SDN sanctions screening for AI assistants, compliance workflows, and KYC pipelines.

Apify Actor Data Source Category MCP Ready No API Key


What Is This?

The US Treasury Office of Foreign Assets Control (OFAC) maintains the Specially Designated Nationals (SDN) list — a roster of individuals, companies, vessels, and aircraft that US persons and businesses are legally prohibited from transacting with. The list currently contains over 13,000 designated entries across dozens of sanctions programs: IRAN, RUSSIA, CUBA, DPRK, SDGT (global terrorism), UKRAINE-EO13661, VENEZUELA, SYRIA, BELARUS, and many more.

Every financial institution, fintech company, law firm, e-commerce platform, and business that touches US dollars must screen counterparties against the SDN list before transacting. Failure to comply carries civil penalties of up to $1 million per violation and potential criminal liability. Most companies either pay $10,000–$50,000/year for enterprise sanctions screening platforms or manually query the OFAC website — which provides no API and no programmatic access.

This actor downloads the official OFAC SDN list XML at startup, parses all 13,000+ entries into structured records with names, aliases, programs, addresses, and ID numbers, and exposes three MCP tools for real-time search and fuzzy-match screening. In MCP server mode, an AI assistant like Claude can screen any entity in milliseconds without leaving the conversation. In batch mode, push results to a dataset for pipeline integration.

No API key required. The OFAC SDN list is a public US government publication.


Who Uses This

Fintech Compliance Teams You're building a KYC onboarding flow and need to screen every new user against the SDN list before account approval. This actor's screen_entity tool returns fuzzy match scores so you can build risk-tiered review queues — exact matches get auto-rejected, partial matches go to manual review, clean results get auto-approved. Integrate via MCP into your AI-assisted compliance workflow.

AML/BSA Officers at Banks and Credit Unions You're reviewing a wire transfer to an entity with an ambiguous name. You need to know if "Mahan Air Cargo LLC" appears on the SDN list under any program, with any alias variation. The screen_entity tool runs a similarity search across all 13,000 entries and returns scored matches in under a second — faster than logging into the OFAC website.

Legal Due Diligence Teams at Law Firms You're advising on an M&A transaction and need to screen the target company's principals, board members, and major shareholders against OFAC. This actor processes a batch of names in sequence and returns structured results you can attach to your due diligence memo. Integrate into a Claude workflow for automated first-pass screening.

Venture Capital and Private Equity Firms Before wiring a capital call or closing an investment, screen the LP list and investment target executives against OFAC. A sanctioned LP or founder creates instant regulatory exposure. One call to screen_entity per name, results logged to your dataset, review flags surfaced to your compliance officer.

E-Commerce and Marketplace Platforms You need to screen sellers, buyers, and payment recipients before processing transactions. The search_sanctions tool can check a company name or vessel name against the full SDN list in real time, returning matches with their programs, aliases, and listed addresses for manual review.

Investigative Journalists and Policy Researchers You're tracking which Russian oligarchs are on the OFAC list and what assets they have designated. Filter by program RUSSIA to get all designated Russian entities. Filter by type vessel to see all sanctioned ships. Filter by type aircraft to see all blocked planes.


Key Features

FeatureDetail
Data sourceOfficial OFAC SDN list XML — US Treasury (public domain)
Dataset size13,000+ SDN entries across all programs
CoverageIndividuals, entities, vessels, aircraft
ProgramsIRAN, RUSSIA, CUBA, DPRK, SDGT, UKRAINE, VENEZUELA, SYRIA, BELARUS, and 40+ more
SearchSubstring keyword search across names, aliases, remarks, title
Fuzzy screeningSequenceMatcher similarity scoring (0.0–1.0) across all names and aliases
FiltersEntity type, sanction program, keyword
Screening resultsPOSSIBLE_MATCH (≥85% similarity), PARTIAL_MATCH (≥75%)
MCP server modeLive tool-use in Claude Desktop, Claude Code, any MCP client
Batch modeOne-shot runs with dataset output
No API keyOFAC data is public — no registration or credentials required
XML parsingBuilt-in Python xml.etree.ElementTree — no external XML dependencies

Quick Start

Batch Mode — Screen a Single Name

Input:

{
"screenName": "Vladimir Putin",
"limit": 20
}

Output:

[
{
"uid": "6315",
"name": "PUTIN, Vladimir Vladimirovich",
"type": "individual",
"programs": ["UKRAINE-EO13661", "RUSSIA-EO14024"],
"aliases": ["ПУТИН, Владимир Владимирович"],
"addresses": ["Moscow, Russia"],
"similarity_score": 0.891,
"is_match": true,
"screening_result": "POSSIBLE_MATCH",
"source": "ofac_sdn_list"
}
]

Batch Mode — Search by Program

Input:

{
"program": "IRAN",
"entityType": "entity",
"limit": 25
}

Output:

[
{
"uid": "4151",
"name": "BANK MELLI IRAN",
"type": "entity",
"programs": ["IRAN", "IFSR"],
"aliases": ["MELLI BANK", "NATIONAL BANK OF IRAN"],
"addresses": ["Tehran, Iran", "Dubai, United Arab Emirates"],
"uid": "4151",
"source": "ofac_sdn_list"
},
...
]

MCP Server Mode

Claude Desktop (claude_desktop_config.json):

{
"mcpServers": {
"ofac-sanctions": {
"command": "npx",
"args": [
"apify-actor-mcp",
"--actor-id", "your-username/ofac-sanctions-mcp",
"--token", "apify_api_YOURTOKEN"
]
}
}
}

Then ask Claude: "Screen 'Mahan Air' against the OFAC SDN list and tell me what programs it's designated under."


MCP Tools Exposed

search_sanctions

Search the OFAC SDN list by name/keyword, entity type, or sanction program. Returns matching entries with full metadata.

Arguments:

FieldTypeRequiredDescription
querystringNoName or keyword to search across names, aliases, remarks
entity_typestringNoFilter: individual, entity, vessel, aircraft
programstringNoFilter by program: IRAN, RUSSIA, CUBA, DPRK, etc.
limitintegerNoMax results (default 20, max 200)

Example call:

{
"name": "search_sanctions",
"arguments": {
"query": "Hezbollah",
"entity_type": "entity",
"limit": 10
}
}

get_sanction_programs

List all active OFAC sanction programs with entity counts. No arguments required.

Example response:

[
{"program": "SDGT", "entity_count": 1847},
{"program": "IRAN", "entity_count": 1203},
{"program": "RUSSIA", "entity_count": 987},
{"program": "DPRK", "entity_count": 412},
{"program": "CUBA", "entity_count": 389},
{"program": "UKRAINE-EO13661", "entity_count": 267},
...
]

screen_entity

Fuzzy-match a name against the entire SDN list using string similarity. Returns scored matches with screening result classification.

Arguments:

FieldTypeRequiredDescription
namestringYesFull name of person or entity to screen
thresholdnumberNoMinimum similarity score 0.0–1.0 (default 0.75)

Screening results:

  • POSSIBLE_MATCH — similarity ≥ 0.85 (high confidence, requires immediate review)
  • PARTIAL_MATCH — similarity 0.75–0.84 (moderate confidence, flag for review)
  • No result — similarity < threshold (clean)

Example call:

{
"name": "screen_entity",
"arguments": {
"name": "Bank Melli Iran",
"threshold": 0.80
}
}

Input Schema

FieldTypeDefaultDescription
querystring""Keyword search across names, aliases, remarks
entityTypestring""Filter: individual, entity, vessel, aircraft
programstring""Sanction program filter (IRAN, RUSSIA, CUBA, etc.)
screenNamestring""Run fuzzy screening for this name (takes priority over query)
limitinteger50Max results in batch mode (max 500)
serveMcpbooleanfalseStart MCP server instead of batch run

Use Case Recipes

Recipe 1: Automated KYC Name Screening Pipeline

Screen a list of new user names from your onboarding queue:

Step 1 — Run batch actor with screenName set to each user's full name. Step 2 — Check screening_result field: POSSIBLE_MATCH → auto-reject, PARTIAL_MATCH → queue for manual review, null → auto-approve. Step 3 — Log results to your compliance audit trail.

Input:

{
"screenName": "Ali Hassan Al-Moayad",
"limit": 20
}

Recipe 2: Russia Sanctions Intelligence Brief

Get a full list of designated Russian entities for executive briefing:

{
"program": "RUSSIA",
"entityType": "entity",
"limit": 500
}

Combine with UKRAINE-EO13661, UKRAINE-EO13685, and RUSSIA-EO14024 program filters to capture all Russia-related designations.

Recipe 3: Vessel Sanctions Check for Shipping

Before accepting a cargo booking, screen the vessel name:

{
"screenName": "EVER GIVEN",
"entityType": "vessel"
}

Returns any vessel by that name (or similar) on the SDN list with IMO numbers, flag state, and programs.

Recipe 4: Counterparty Due Diligence for M&A

Screen all named executives in a target company's SEC filing:

{
"query": "Kim Jong",
"entityType": "individual",
"limit": 50
}

Run once per principal. Use threshold: 0.85 in screen_entity for conservative screening.

Recipe 5: Global Terrorism (SDGT) Research

Get all entities designated under the Specially Designated Global Terrorist program:

{
"program": "SDGT",
"limit": 500
}

Connecting to Claude Desktop / Claude Code

macOS Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
"mcpServers": {
"ofac-sanctions": {
"command": "npx",
"args": [
"apify-actor-mcp",
"--actor-id", "your-username/ofac-sanctions-mcp",
"--token", "apify_api_YOURTOKEN"
],
"env": {}
}
}
}

Windows Claude Desktop (%APPDATA%\Claude\claude_desktop_config.json): Same JSON as above.

Claude Code (project .claude/settings.json):

{
"mcpServers": {
"ofac-sanctions": {
"command": "npx",
"args": ["apify-actor-mcp", "--actor-id", "your-username/ofac-sanctions-mcp", "--token", "apify_api_YOURTOKEN"]
}
}
}

Cursor / Windsurf / any MCP client: Point at the running actor's URL: http://<run-url>:4321

  • GET /mcp/tools — list available tools
  • POST /mcp/call — invoke a tool with {"name": "...", "arguments": {...}}

  • Source: US Treasury Office of Foreign Assets Control (OFAC) — https://www.treasury.gov/ofac/
  • File: SDN List XML (sdn.xml) — downloaded fresh at each actor startup
  • Update frequency: OFAC publishes SDN list updates irregularly — sometimes multiple times per day during active designation periods. This actor fetches the list fresh on each run, so batch runs reflect the current list.
  • Legal disclaimer: This actor provides informational access to public OFAC data. It is not a substitute for a certified compliance screening system. Organizations with regulatory sanctions screening obligations should consult qualified legal counsel and use certified screening solutions for their primary compliance programs. Results from this actor should be used as supplemental intelligence only.
  • Public domain: The OFAC SDN list is a US government publication in the public domain — no license or attribution required.

Technical Architecture

The actor operates in two modes controlled by the serveMcp input flag:

Batch mode (default):

  1. Download SDN XML from https://www.treasury.gov/ofac/downloads/sdn.xml (~5MB)
  2. Parse all <sdnEntry> elements using Python's built-in xml.etree.ElementTree
  3. Build in-memory list of 13,000+ structured dicts
  4. Apply filters (query / type / program) or run fuzzy screen
  5. Push results to Apify default dataset
  6. Store program summary in key-value store

MCP server mode:

  1. Same download and parse as batch
  2. Start async HTTP server on port 4321
  3. Expose /mcp/tools (GET) and /mcp/call (POST)
  4. Push first 100 entries to dataset for inspection
  5. Run until actor is stopped (max 24h)

Fuzzy matching algorithm: Uses Python's difflib.SequenceMatcher for O(n) similarity scoring across all 13,000 entries and their aliases. For a single name screen, this completes in under 200ms in-memory. No external fuzzy-match libraries required.

XML namespace handling: OFAC SDN XML may include a namespace URI. The parser auto-detects the namespace from the root tag and applies it consistently to all child element queries — no hardcoded namespace strings that would break on format changes.


Pricing

VolumePrice
First 1,000 results$0.25
1,001 – 50,000 results$0.20/1k
MCP server (per session-hour)Metered by result count

ROI context: Enterprise sanctions screening platforms (Dow Jones, Refinitiv World-Check, LexisNexis) cost $20,000–$100,000/year. A single compliance analyst spending 30 minutes per counterparty on manual OFAC checks costs $75/hr × 0.5hr = $37.50 per check. This actor returns the same information in under 2 seconds.


Support