mcpbeat Sign in

SanctionScreen MCP Server

by sanctionsscreen Your server? Claim it
answering

SanctionScreen is answering right now. Last checked 11 min ago. It exposes 2 tools.

Screen counterparties and enrich companies for AI agents — sanctions checks, cited sources.

Uptime history 15 days of history · worst day 98%
15 days agonow
100.0%
Uptime 24h
91 of 91 checks
2
Tools
read from the server
108 ms
Response time
average over 24h
open, no key
Access
streamable-http

SanctionScreen missed 2 checks this week

Everything else answered, so this is steady rather than shaky. We check every 15 minutes, which is how a one-off gets told apart from the start of a pattern, and how you hear about the next one within the hour instead of from your users.

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 11 min ago.

run in your terminal
claude mcp add sanctionscreen --transport http https://api.sanctionsscreen.io/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "sanctionscreen": {
      "url": "https://api.sanctionsscreen.io/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.sanctionscreen]
url = "https://api.sanctionsscreen.io/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "sanctionscreen": {
      "url": "https://api.sanctionsscreen.io/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "sanctionscreen": {
      "url": "https://api.sanctionsscreen.io/mcp"
    }
  }
}

Available tools 2

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

enrich
enrich_company
Resolve a company domain or legal name to structured company facts via the free public GLEIF LEI registry. Inputs: {domain? e.g. "apple.com", name? e.g. "Apple Inc.", request_id? (idempotency)}. At least one of domain/name is required. v1 boundaries (returned honestly, never invented): - GLEIF has no domain index: domain-only lookups are best-effort (registrable-name candidates are tried). Provide the legal company name for reliable resolution. - GLEIF does not publish industry, industry_code, size_band, or employee_range: those come back null, each with a sources[] entry documenting the gap. - founded is the legal-entity creation date (GLEIF publishes no true founding date). - Unresolvable input -> tool error with code UNRESOLVABLE. Output: {company_id, legal_name, domain, industry, industry_code, size_band, employee_range, hq: {country, city}, founded, sources: [{field, source, url}], confidence, generated_at}. EXAMPLE 1: Input: {"domain": "apple.com", "request_id": "demo-e1"} Output: {"company_id": "cs_co_...", "legal_name": "Apple Inc.", "domain": "apple.com", "industry": null, "industry_code": null, "size_band": null, "employee_range": null, "hq": {"country": "US", "city": "Cupertino"}, "founded": "1980-12-12", "sources": [{"field": "legal_name", "source": "GLEIF LEI (api.gleif.org)", "url": "https://api.gleif.org/api/v1/lei-records/..."}, {"field": "industry", "source": "GLEIF LEI — field not published by GLEIF (null by design in v1)", "url": "https://api.gleif.org/api/v1/lei-records/..."}], "confidence": "high", "generated_at": "2026-09-26T...Z"} EXAMPLE 2 — unresolvable: Input: {"name": "Nonexistent Widgets Pty Ltd ZZ"} Tool error: {"code": "UNRESOLVABLE", "message": "No GLEIF LEI record matched ..."}
screen
screen_counterparty
Screen a counterparty name against the indexed sanctions lists (OFAC SDN, UK FCDO consolidated). What it does: normalizes the query (Unicode NFKD fold, punctuation strip, lowercase, Cyrillic/Greek transliteration; tolerant to token order e.g. "Putin Vladimir" vs "Vladimir Putin"), looks it up in the sanctions index, and returns EVERY match at low confidence or above with a per-match citation. Low-confidence matches are never hidden. Inputs: - name (required, string): full name of the person or entity. - country (optional, ISO-3166 alpha-2, e.g. "RU"): corroborates nationality/citizenship identifiers. - dob (optional, "YYYY-MM-DD"): a dob match adds +15 to the score — the strongest corroborator. - identifiers (optional, [{type, value}]): extra identifiers to check against the record, e.g. [{"type":"passport","value":"719023441"}]. - request_id (optional, string): idempotency key; safe to retry. - include_low_confidence (optional, boolean, default true): fuzzy matches (Jaro-Winkler >= 0.92) land in the low tier. Keep true — hiding low matches is a compliance liability. Output: {screening_id, disposition, matches[], disclaimer, generated_at}. - disposition: "clear" (no matches) | "potential_match" (any medium/low match) | "review_advised" (any high-confidence match — human review required before any adverse action). - Each match: {list, list_date, record_uid, matched_name, name_kind (primary|alias_strong|alias_weak), confidence (high|medium|low), confidence_score (0-100), matched_fields, citation {source, url, accessed_at}}. - Confidence math: exact primary 80 / alias_strong 70 / alias_weak 55; dob match +15. Tiers: high >= 85, medium >= 60, low >= 30. Fuzzy (JW >= 0.92) -> low tier, score 30-55. - LANGUAGE RULE: report "potential match", never "sanctioned". Screening is informational only — not a legal verdict. Every response carries the fixed disclaimer. EXAMPLE 1 — listed individual with corroborating dob: Input: {"name": "Vladimir Putin", "dob": "1952-10-07", "request_id": "demo-001"} Output: {"screening_id": "cs_scr_...", "disposition": "review_advised", "matches": [{"list": "OFAC_SDN", "list_date": "2026-09-23", "record_uid": "35096", "matched_name": "putin vladimir", "name_kind": "alias_strong", "confidence": "high", "confidence_score": 85, "matched_fields": ["name", "dob"], "citation": {"source": "U.S. Treasury OFAC SDN List", "url": "https://sanctionssearch.ofac.treas.gov/", "accessed_at": "2026-09-26T...Z"}}], "disclaimer": "Informational only — not a legal verdict. Not a substitute for due diligence. Human review required before any adverse action.", "generated_at": "2026-09-26T...Z"} EXAMPLE 2 — same person, no dob (exact alias match, medium): Input: {"name": "Vladimir Putin"} Output: {"screening_id": "cs_scr_...", "disposition": "potential_match", "matches": [{"list": "OFAC_SDN", "list_date": "2026-09-23", "record_uid": "35096", "matched_name": "putin vladimir", "name_kind": "alias_strong", "confidence": "medium", "confidence_score": 70, "matched_fields": ["name"], "citation": {...}}], "disclaimer": "...", "generated_at": "..."} EXAMPLE 3 — clear name: Input: {"name": "John Smith"} Output: {"screening_id": "cs_scr_...", "disposition": "clear", "matches": [], "disclaimer": "...", "generated_at": "..."}

Endpoints

URLTransportStateLatencyChecked
https://api.sanctionsscreen.io/mcp streamable-http answering 158 ms 11 min ago

Alternatives to SanctionScreen

same job, measured the same way
Global Intel Exchange
by joseph-ceo

Real-time sanctions screening, CVE, and company registry checks for agents.

53 installs/wk local only
Opensanctions MCP
by scka-de

Sanctions screening and PEP checks via OpenSanctions API for AI agents

19 installs/wk local only
Publicaml
by publicaml

AML screening for crypto addresses: risk, sanctions, fund tracing and counterparties.

39 installs/wk local only
Gocreative Wedge MCP
by colinhughes2121

OFAC/PEP sanctions screening, KYB, company & people enrichment tools for AI agents. Free demos.

118 installs/wk local only
Sanctions
by cz-agents

Sanctions screening for KYC/AML — EU FSF + OFAC SDN checks for Czech companies & individuals.

115 installs/wk 6 tools answering
D
Dropcoin Validation
by freshfos

EU compliance checks for AI agents: sanctions, company, VAT ID, IBAN, email. Pay per call.

6 tools answering
A
ApiOne B2B Enrichment (GCC and MENA)
by mt285

B2B company, people and email enrichment with cited sources, built for GCC and MENA companies.

11 tools answering
ScreenSeal
by wthall05

Sanctions screening for AI agents: check a name against OFAC and EU lists. Free during launch.

1 tools answering

SanctionScreen — questions

Answers built from our own checks of this server.

What can SanctionScreen do?
It exposes 2 tools, read directly from the server on our last check. Among them: enrich_company, screen_counterparty. 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 SanctionScreen 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 108 ms. The bar chart above shows every period we have measured.
How do I connect SanctionScreen?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does SanctionScreen need an API key?
No. SanctionScreen completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 2 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is SanctionScreen?
It answers our handshake in 108 ms on average, which is faster than 81% of all working MCP servers we measure. That puts it in the quick quarter of the ecosystem. The comparison comes from our own checks across the whole registry, every 15 minutes.