mcpbeat Sign in

Sanctions Screening MCP Server

answering

Sanctions Screening MCP Server is answering right now. Last checked 9 min ago. 499 installs a week from npm. It exposes 7 tools. Last commit 1 Nov 2026.

Screen eleven sanctions/export-control lists; resolve GLEIF entities offline. Screening aid.

Installs per day peak 262 · avg 37 · +46% w/w
a month agotoday
Uptime history 91 days of history · worst day 91%
91 days agonow
100.0%
Uptime 24h
91 of 91 checks
7
Tools
read from the server
561 ms
Response time
average over 24h
499
Installs / week
npm and PyPI

What changed 50

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 17 August 2026. No other catalogue keeps this.

1 Nov 4 tools changed the parameters they ask for sanctions_get_designation, sanctions_screen_identifier, sanctions_screen_name and 1 more
1 Nov 3 tool descriptions were rewritten sanctions_list_sources, sanctions_screen_name, sanctions_trace_ownership
1 Nov a tool changed version
20 Oct a tool changed version
4 Oct 6 tool descriptions were rewritten sanctions_get_designation, sanctions_get_entity, sanctions_list_sources and 3 more
4 Oct 2 tools changed the parameters they ask for sanctions_screen_name, sanctions_trace_ownership
4 Oct a tool changed version
25 Sep 4 tool descriptions were rewritten sanctions_get_designation, sanctions_list_sources, sanctions_resolve_entity and 1 more
25 Sep 3 tools changed the parameters they ask for sanctions_get_designation, sanctions_resolve_entity, sanctions_trace_ownership
25 Sep a tool changed version2 times that day
and 24 more, back to 17 August 2026

What the code does

We read the source, 6 d ago · tools taken from the live server · rules 995398eba69f

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

        child = spawn(

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 9 min ago.

run in your terminal
claude mcp add sanctions-screening-mcp-server --transport http https://sanctions-screening.caseyjhand.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://sanctions-screening.caseyjhand.com/mcp
~/.codex/config.toml
[mcp_servers.sanctions-screening-mcp-server]
url = "https://sanctions-screening.caseyjhand.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "sanctions-screening-mcp-server": {
      "url": "https://sanctions-screening.caseyjhand.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "sanctions-screening-mcp-server": {
      "type": "http",
      "url": "https://sanctions-screening.caseyjhand.com/mcp"
    }
  }
}

Available tools 7

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

sanctions
sanctions_get_designation
Fetch the full record for one sanctions designation by source list + entry ID or the list's published reference number — the drill-in after sanctions_screen_name or sanctions_screen_identifier surfaces a candidate, or the lookup for a reference a notice cites (UN QDe.004, EU EU.27.28, UK OFSI Group ID). Returns all published aliases, identifiers (passport, national ID, tax and registration numbers, SWIFT/BIC codes, digital-currency addresses, vessel call signs, aircraft tail and serial numbers, phone numbers, email addresses, websites), addresses, dates and places of birth at the precision the source published, nationalities, descriptive features (a vessel's flag, type, and tonnage; an aircraft's model and operator; a title or gender; sanctions notes), sanctioning program, legal basis, and designation date. The record reflects exactly what the source published; missing fields mean the source omitted them. This is a screening aid — the designation record supports a compliance review, it is not itself a determination.
sanctions_get_entity
Fetch the full GLEIF Level 1 record for one LEI: legal name, other/trading names, legal and headquarters addresses, registration status, jurisdiction, registration authority and ID, and last-update date — plus a sanctions cross-reference against all loaded watchlists. The cross-reference screens the legal name and every other and transliterated name strict (exact, then all tokens present — never fuzzy, unlike sanctions_screen_name), and looks up the LEI and the registration number as exact non-document identifiers, the registration number matching only an identifier published for the country of the entity's legal jurisdiction. Hits merge to one per designation, an OFAC party both OFAC lists publish to one hit whose sources names both: matchedOn names every input that produced each, and a hit only an identifier produced carries matchedIdentifiers and no matchedName. The screening cross-reference is a screening AID: a hit is a candidate to verify against the official source, and no hit is not a clearance. screeningStatus says whether that cross-reference actually ran — an empty sanctionsHits under not_ready means the sanctions mirror was unavailable, not that nothing matched. sanctionsScreen says whether the hit list is the whole set: it reports how many potential matches existed before the cap, so a capped cross-reference is distinguishable from a complete one. LEI must be a 20-character GLEIF identifier (18 alphanumerics + 2 check digits).
sanctions_list_sources
List supported watchlists (OFAC SDN + Consolidated, EU, UK, UN, BIS Entity/Denied Persons/Unverified/Military End User, State ITAR Debarred/Nonproliferation) and GLEIF datasets with current mirrored counts, source URLs, licenses, readiness, and as-of timestamps. coverageNotice names unloaded CSL lists and how to refresh them; prior mirror readiness does not establish coverage of newly added lists. For GLEIF, reports Level 2 ownership relationships, reporting-exception coverage, and alternate-name index readiness. Use this for provenance, freshness, and coverage on any result. Attribution: UK data is under the Open Government Licence v3.0; BIS and State CSL data is supplied by the International Trade Administration under its published terms. This product uses the International Trade Administration’s Data API but is not endorsed or certified by the International Trade Administration.
sanctions_resolve_entity
Resolve a company or organization name (with an optional jurisdiction: a country code, which includes its subdivisions, or an ISO 3166-2 subdivision code) to candidate GLEIF Legal Entity Identifiers (LEIs), ranked. This turns a free-text counterparty name into a stable global identifier that sanctions_get_entity and sanctions_trace_ownership key off. Every name GLEIF publishes takes part: the legal name, previous legal names, trading names, alternative-language legal names, and ASCII transliterations of a legal name in another script — each candidate reports the name it matched on and that name's type, one candidate per LEI. Strict mode (default) matches exact-normalized then all-tokens-present; fuzzy mode (or auto when strict is empty) adds Jaro-Winkler scoring labeled approximate with a raw 0–1 score plus the count of query tokens the matched name covers, which orders candidates that tie on score. Results are paged: totalAvailable and hasMore report candidates beyond the returned page, and nextOffset retrieves them. Returns potential matches to confirm against the GLEIF record — name resolution is a candidate ranking, not an authoritative identification.
sanctions_screen_identifier
Look up an identifier — a vessel IMO number, a SWIFT/BIC code, a digital-currency wallet address, a passport or national ID number, or any other identifier a list publishes — against all loaded sanctions watchlists at once: OFAC SDN + Consolidated, EU, UK, and UN. Exact match after normalization, with no fuzzy or partial matching and no score: spacing, letter case, and the separators - . / are ignored, an IMO number matches with or without its IMO prefix, a SWIFT/BIC code compares on its first eight characters so a branch code matches its institution, and a wallet address folds case only where its encoding is case-insensitive (hex, bech32, cashaddr — never base58). Returns every designation that publishes a matching identifier, one per designation — an OFAC party both OFAC lists publish under one entry ID is one hit, its sources naming both lists — with the identifiers that matched as published; sanctions_get_designation pulls the full record. This is a screening AID for a human/compliance review, NOT a compliance determination: a hit means "review this candidate against the official source," and an empty result never means "cleared" — an identifier a list prints only in free-text remarks, or bundled with other numbers in one field, does not match.
sanctions_screen_name
Screen a name (person, company, vessel, aircraft) against loaded sanctions and export-control watchlists — OFAC SDN + Consolidated, EU, UK, UN, and the six BIS/State CSL lists — alias- and fuzzy-aware. Check sanctions_list_sources for coverage before interpreting an empty result; zero-record CSL lists are not loaded. Returns scored potential matches with the source list, sanctioning program, designation date, and the matched alias; an OFAC party both OFAC lists publish under one entry ID is one hit, its sources naming both lists. Strict mode (default) matches exact-normalized then all-tokens-present, then runs a fuzzy pass over each selected list strict finds nothing on: a full pass when strict finds nothing on any list, otherwise one that adds only candidates covering every word of the name other than legal forms, articles and other function words, and the jurisdiction codes uk, usa, uae, and rf, ranked after the strict hits. Fuzzy mode runs the fuzzy pass over every selected list. It adds Jaro-Winkler and phonetic matching and labels hits approximate with a raw 0–1 similarity score plus the count of query tokens the candidate covers, which orders candidates that tie on score; fuzzySources names the lists it searched. Results are paged: totalAvailable and hasMore report matches beyond the returned page, and nextOffset retrieves them. This is a screening AID for a human/compliance review, NOT a compliance determination: a hit means "review this candidate against the official source," and an empty result never means "cleared."
sanctions_trace_ownership
Trace a paged GLEIF Level 2 ownership segment from a 20-character LEI (use sanctions_resolve_entity to obtain one). Direction both walks parents and children separately from the root, never sideways into siblings or co-parents; parents-side placement wins cycles. Ultimate-parent edges are shortcuts, never walked hops; ultimate-only nodes are flagged reachedVia: ultimate. Drain nextCursor with the same query, then re-root each boundary with its LEI, same-side direction and depth, including at depth five; deduplicate branch roots and edges across segments. Pages emit nodes, then edges, then boundaries, up to limit records (50 default, 100 maximum), stopping after an intact record reaches the soft 64-KiB target. Edges reference nodes across assembled pages. Cursors bind query and topology; changed topology requires restarting without a cursor. Entity and screening values read current mirrors, not an immutable snapshot. Set screenNodes to cross-reference only this page of nodes as sanctions_get_entity does: legal, other and transliterated names strict (exact then all tokens present, never fuzzy), LEI and country-matched registration number as exact non-document identifiers, with merged designation hits and matchedOn inputs. A node missing Level 1 is screened by LEI alone. Every hit is a candidate to verify; no hit is a clearance. Each eligible node retains direct and ultimate parentStatus: relationship, reporting exception and its reasons, none, or unknown when exceptions are not loaded. Read hasMore and truncationReasons separately from segment-wide missingEntityCount and page-local missingEntityLeis, screening counts and per-node ten-hit cap disclosures. A screening aid, not a compliance determination; a finished segment never proves full beneficial ownership.

Endpoints

URLTransportStateLatencyChecked
https://sanctions-screening.caseyjhand.com/mcp streamable-http answering 620 ms 9 min ago

Alternatives to Sanctions Screening MCP Server

same job, measured the same way
OFACScreen Sanctions Screening
by ofacscreen

Screen names and addresses on US, UN, EU, UK and other sanctions and export-control lists. Free.

5 tools answering
Compliance Engine
by alex-dev-web-c-de

Sanctions screening (OFAC/UK/EU/UN) + PEP + GLEIF entities via Compliance Engine.

3 tools answering
Sanctions
by ohmyfin

Sanctions and export-control screening for AI agents: 320+ watchlists, transliteration, HS and ECCN.

34 tools answering
Sanctions Screening
by hatchloop

Screen a name or entity against OFAC SDN, the EU Consolidated list and the UK list.

8 tools answering
Ofac Sanctions MCP
by mrfentmen

OFAC sanctions screening: search the SDN and consolidated lists by name, program or entity type and.

179 installs/wk local only
Agentum Entity Resolver
by algiras

Corporate entity resolution, VAT verification and sanctions screening via Agentum.

7 tools answering
Clearscreen
by lvsmanhole

Screen people & companies against 12 US sanctions & exclusion lists (OFAC, LEIE, SAM, Medicaid).

answering
UK Data: Sanctions screening
by co-reliness

Screen people, companies and ships against UK, US OFAC, EU and UN sanctions lists, daily

8 tools answering

Sanctions Screening MCP Server — questions

Answers built from our own checks of this server.

What can Sanctions Screening MCP Server do?
It exposes 7 tools, read directly from the server on our last check. Among them: sanctions_get_designation, sanctions_get_entity, sanctions_list_sources, sanctions_resolve_entity, sanctions_screen_identifier, sanctions_screen_name and 1 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Sanctions Screening MCP Server working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 561 ms. The bar chart above shows every period we have measured.
How do I connect Sanctions Screening MCP Server?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Sanctions Screening MCP Server need an API key?
No. Sanctions Screening MCP Server completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 7 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Sanctions Screening MCP Server?
It answers our handshake in 561 ms on average, which is faster than 20% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Sanctions Screening MCP Server?
The npm package @cyanheads/sanctions-screening-mcp-server was installed 499 times in the last week. Week over week that is +46%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Sanctions Screening MCP Server open source?
The code is open source: it is published under the Apache-2.0 licence, written in TypeScript, 3 stars on GitHub and 8 open issues. The licence covers the code in the repository, not the hosted service at sanctions-screening.caseyjhand.com, which runs on its operator's own terms.