Using AI Agents for Sanctions Compliance: An OFAC Screening MCP Server
AI agents are becoming the interface for knowledge work. Instead of switching between browser tabs, dashboards, and command-line tools, you describe what you need and the agent executes it. The Model Context Protocol (MCP) is the standard that makes this work -- it lets AI assistants like Claude call external tools the same way a developer calls an API.
Sanctions screening is a natural fit for this model. A compliance officer reviewing a transaction does not want to open a separate screening portal, type a name, wait for results, copy the output, paste it into their case notes, and repeat. They want to say "screen these five counterparties against the OFAC SDN list" and get results inline.
This article explains what MCP servers are, how the OFAC Screening MCP server works, and how to set it up for sanctions compliance workflows.
What is an MCP server
The Model Context Protocol defines a standard way for AI assistants to discover and call external tools. An MCP server is a lightweight process that exposes a set of tools -- each with a name, description, and typed parameters. When you connect an MCP server to Claude Desktop, Cursor, or any MCP-compatible client, the AI assistant gains access to those tools and can call them during a conversation.
The OFAC MCP server (@easysolutions906/mcp-ofac) exposes five tools:
| Tool | What it does |
|---|---|
ofac_screen |
Screen a name against the SDN list with fuzzy matching |
ofac_search |
Search SDN entries by name, program, or entity type |
ofac_entity |
Get full details on a specific SDN entry by ID |
ofac_programs |
List all active sanctions programs |
ofac_stats |
Get dataset statistics (entry counts, list version) |
Setting it up
Install and configure in two minutes. Add this to your Claude Desktop config file (claude_desktop_config.json):
{
"mcpServers": {
"ofac": {
"command": "npx",
"args": ["-y", "@easysolutions906/mcp-ofac"]
}
}
}
Restart Claude Desktop. You will see the OFAC tools appear in the tools panel. That is it -- no API keys, no signup, no configuration.
For Cursor, add the same configuration to your MCP settings.
Screening a name
Open Claude Desktop and type:
Screen the name "Ali Hassan" against the OFAC sanctions list. Include country Syria.
Claude will call the ofac_screen tool with the parameters name: "Ali Hassan" and country: "Syria". The response comes back inline:
Found 2 potential matches for "Ali Hassan":
1. Ali HASSAN (Score: 0.94, Match: exact)
- Type: Individual
- Programs: SDGT
- Aliases: Abu Abdullah
2. Ali Akbar HASSAN (Score: 0.82, Match: partial)
- Type: Individual
- Programs: IRAN
List version: 03/13/2026
Screened at: 2026-03-15T14:22:08.331Z
Claude formats the results naturally, highlights the key information, and includes the audit trail fields. You can follow up conversationally: "Tell me more about the first match" and Claude will call ofac_entity to get full details.
Batch screening a customer list
Where this gets powerful is batch workflows. Paste a list of names and ask Claude to screen all of them:
I need to screen these counterparties against the OFAC SDN list:
- Acme Trading LLC
- Vladimir Petrov
- National Bank of Iran
- Sarah Johnson
- Petrochemical Industries Co
Claude will call ofac_screen for each name and summarize the results in a table:
| Name | Matches | Highest Score | Action |
|---|---|---|---|
| Acme Trading LLC | 0 | -- | Clear |
| Vladimir Petrov | 1 | 0.78 (weak) | Review |
| National Bank of Iran | 3 | 0.96 (exact) | Block |
| Sarah Johnson | 0 | -- | Clear |
| Petrochemical Industries Co | 2 | 0.88 (strong) | Escalate |
This replaces the manual process of screening names one at a time through a web portal. The compliance officer gets a complete picture in seconds and can focus their time on reviewing the flagged entries.
Why fuzzy matching matters in AI workflows
The SDN list contains names in multiple transliterations, aliases, and formats. "PUTIN, Vladimir Vladimirovich" and "Vladimir PUTIN" are the same person. "BANK MELLI" and "Bank Melli Iran" are the same entity. The MCP server uses four matching strategies -- Jaro-Winkler similarity, token-set matching, Double Metaphone phonetics, and substring containment -- to catch variations that exact matching would miss.
This is especially important in AI workflows because user input is natural language. A compliance officer will not format a name exactly as it appears in the SDN list. They will type it however they heard it, spelled it, or received it. Fuzzy matching bridges that gap.
Audit trail for regulators
Every screening result includes listVersion (the SDN list publish date) and screenedAt (the timestamp of the screening). These fields are critical for regulatory documentation. When an examiner asks "did you screen this counterparty, and against which version of the list?", you have the answer embedded in your case notes.
Since Claude Desktop conversations are persistent, your screening history is automatically preserved in the conversation log.
Combining with other tools
MCP servers compose naturally. If you also have the healthcare MCP server (@easysolutions906/mcp-healthcare) and the finance MCP server (@easysolutions906/mcp-finance), Claude can use all of them in a single conversation. Screen a counterparty against OFAC, convert the transaction amount to USD, and verify the provider's NPI -- all in one thread.
The REST API alternative
The MCP server calls the same OFAC Screening API available at https://ofac-screening-production.up.railway.app. If you need programmatic access from your own code, use the REST API directly. The MCP server is for human-in-the-loop workflows where a compliance officer is reviewing and making decisions interactively.
Getting started
- Add the MCP server config to Claude Desktop or Cursor
- Restart the application
- Ask Claude to screen a name -- no API key needed for the free tier
- Install via npm if you prefer:
npm install @easysolutions906/mcp-ofac
Sanctions compliance requires human judgment, but the data retrieval and matching should be instant. An MCP server makes sanctions screening as natural as asking a question.
Top comments (0)