Screen names against OFAC, EU, UK, UN sanctions lists; resolve entities via GLEIF. Screening aid.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Screen names against the consolidated OFAC, EU, UK, and UN sanctions lists and resolve legal entities against GLEIF, fuzzy-matched offline over a local SQLite + FTS5 mirror. A screening aid, not a compliance determination.
Public Hosted Server: https://sanctions-screening.caseyjhand.com/mcp
[!IMPORTANT] This is a screening aid, not legal or compliance certification. Every tool returns potential matches with a transparent score and source provenance β never a verdict. A hit means "review this candidate against the official source"; an empty result never means "cleared." Real sanctions compliance is a legal process β it requires human review and a qualified compliance determination. This server feeds that process; it does not perform it, and its output is not a compliance record.
sanctions-screening-mcp-server turns the world's open sanctions data plus the global legal-entity registry into one screening-and-resolution workflow, answered offline and fuzzy-matched. It screens a name against the consolidated US (OFAC), EU, UK, and UN sanctions lists at once, and resolves legal entities against the GLEIF Legal Entity Identifier (LEI) database with corporate-ownership tracing.
All sources are bulk-downloadable, keyless, and clear for redistribution. The server mirrors them to a local SQLite + FTS5 index and serves matches from that mirror β no live API key, no per-request rate limit on the hot path. The agent sees screening verbs (screen_name, resolve_entity, trace_ownership); which list answered a query surfaces only as provenance on each hit.
The matching model is transparent by design: strict token matching first (exact-normalized, then all-tokens-present via FTS5), with a scored Jaro-Winkler + phonetic fuzzy fallback. Approximate hits carry the raw Jaro-Winkler similarity (0β1) β a real measurement, never a fabricated "confidence percentage."
Six tools organized around two workflows β screen a name against the watchlists, and resolve a legal entity to its global identifier and ownership graph:
| Tool | Description |
|---|---|
sanctions_screen_name | Screen a name (person, company, vessel, aircraft) against all loaded watchlists at once β OFAC SDN + Consolidated, EU, UK, UN β alias- and fuzzy-aware. Returns scored potential matches with source list, program, designation date, and the matched alias. |
sanctions_get_designation | Fetch the full record for one sanctions designation by source list + entry ID: all aliases, identifiers, addresses, dates/places of birth, nationalities, program, legal basis, and designation date. |
sanctions_resolve_entity | Resolve a company / organization name (+ optional jurisdiction) to ranked candidate GLEIF LEIs. Turns a free-text counterparty name into a stable global identifier. |
sanctions_get_entity | Fetch the full GLEIF Level 1 record for one LEI β legal name, trading names, addresses, registration status, jurisdiction β plus a sanctions cross-reference screened on the legal name. |
sanctions_trace_ownership | Trace the GLEIF Level 2 corporate-ownership graph for an LEI (parents and/or children, BFS to a bounded depth), optionally screening every node for beneficial-ownership screening. |
sanctions_list_sources | List the loaded watchlists and GLEIF datasets with record counts, source URLs, licenses, and the mirror's readiness and as-of timestamps. |
sanctions_screen_nameThe 80% entry point β "is this entity on a watchlist?"
exact / strong / approximate; approximate hits carry the raw Jaro-Winkler score (0β1) plus queryTokenCoverage β how many query tokens the candidate explains, which ranks candidates that one shared exact token pins at the same scoreminScore), and result limittotalAvailable and hasMore report matches beyond the returned page and nextOffset retrieves them, with totalAvailableBasis marking that count exact (strict) or a scanned-set floor (fuzzy)sanctions_get_designationThe drill-in after sanctions_screen_name surfaces a candidate.
source + entryId (the sourceEntryId from a screen hit)sanctions_resolve_entityThe bridge from a free-text counterparty name to a stable LEI that the entity tools key off.
issued default, lapsed, or any)queryTokenCoverage countsanctions_screen_name β totalAvailable, totalAvailableBasis, hasMore, nextOffsetsanctions_get_entityWho is this legal entity β plus a watchlist cross-reference in the same call.
screeningStatus says whether that cross-reference actually ran: an empty hit list under not_ready means the sanctions mirror was unavailable, not that nothing matchedsanctionsScreen β totalAvailable, totalAvailableBasis, hasMore β since the hit list is capped at twenty-five; re-screen the legal name with sanctions_screen_name for the full setsanctions_trace_ownershipBeneficial-ownership screening β the cross-source workflow that single-list tools can't do.
direction: walk parents (who owns it), children (what it owns), or bothscreenNodes: true screens every entity in the graph against all watchlists β "is anyone in this ownership chain sanctioned?"screenedNodeCount / flaggedNodeCount so a caller can see coverage at a glancecomplete, truncated (further relationships exist past the requested depth), and missingEntityLeis (nodes with no GLEIF Level 1 record, which carry their LEI where a legal name would be)screeningStatus separates a completed node screen from one never requested and one the sanctions mirror could not run; each screened node carries sanctionsScreen β totalAvailable, totalAvailableBasis, hasMore β since its hit list is capped at tenNo reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/sanctions-screening-mcp-server)<a href="https://allmcps.com/mcp/sanctions-screening-mcp-server"><img src="https://allmcps.com/api/badge/sanctions-screening-mcp-server?style=directory" alt="Sanctions Screening MCP Server on AllMCPs" /></a>