Skip to content

cyanheads/sanctions-screening-mcp-server

v0.6.0Apache-2.0

Screen names against eleven OFAC, EU, UK, UN, BIS, and State sanctions and export-control lists and resolve legal entities against GLEIF, matched offline over a local SQLite + FTS5 mirror. A screening aid, not a compliance determination.

Changelog

All notable changes to this project. Each entry links to its full per-version file in changelog/.

0.6.0 — 2026-10-31

Screen BIS and State export-control lists and continue ownership investigations across bounded pages.

0.5.1 — 2026-10-20

Fuzzy recall across early typos and Russian comparison forms, with scheduled refreshes isolated from serving requests.

0.5.0 — 2026-10-03 · ⚠️ Breaking

sanctions_screen_name pages every match it counts, pools fuzzy candidates per list, and returns an OFAC party both OFAC lists publish as one hit; sanctions_get_entity and trace nodes also screen other names and look up the LEI and registration number. Existing mirrors need mirror:refresh for the data fixes.

0.4.0 — 2026-09-25 · ⚠️ Breaking

GLEIF refresh applies the delta window its checkpoint calls for, deletions included, and now runs on the HTTP cron; sanctions_resolve_entity searches every name GLEIF publishes; ownership traces report each node's parent status from GLEIF reporting exceptions. Existing mirrors need one mirror:init.

0.3.0 — 2026-09-25 · ⚠️ Breaking

New sanctions_screen_identifier looks up an IMO number, SWIFT/BIC, wallet address, or document number exactly; sanctions_get_designation resolves published reference numbers; dates keep the precision their source published; and a failing source no longer stops a sanctions refresh.

0.2.0 — 2026-09-24 · ⚠️ Breaking · 🛡️ Security

Native-script names are indexed and screenable, XML entities are decoded at parse time, sanctions_get_designation returns the details each list publishes, and a refresh removes delisted designations. Both name tools now reject unmatchable and oversized names.

0.1.12 — 2026-09-20 · ⚠️ Breaking

Adopts mcp-ts-core 0.13.6: an out-of-schema tool call now returns InvalidParams instead of ValidationError, and snake_case/kebab-case argument spellings are rewritten instead of rejected. Also declares node-cron so the scheduled sanctions-mirror refresh registers on HTTP boot (#28).

0.1.11 — 2026-08-25

Adopt @cyanheads/mcp-ts-core 0.12: tool inputs are strict at the root, so an undeclared argument key is rejected by name instead of silently ignored — and the docs that named parameters in snake_case now match the camelCase the schemas declare

0.1.10 — 2026-08-16

Stream every sanctions source instead of buffering the whole document — the mirror:init sanctions leg now peaks at 480 MiB where it previously OOM-killed the run — and drop records with no source identifier or no usable name rather than minting a fresh UUID each harvest

0.1.9 — 2026-08-16

Rank fuzzy candidates that one shared exact token ties on query-token coverage, and disclose what the ownership graph and the cross-reference screens could not do — depth truncation, unhydrated nodes, unavailable screening, and capped hit lists

0.1.8 — 2026-08-16

Make capped screening results page-retrievable with an honest exact-vs-lower_bound count, gate the designation and entity URI resources on mirror readiness, and restore per-source url/license on sanctions://sources

0.1.7 — 2026-07-04

Fix a whole-string Jaro-Winkler prefix-inflation false positive in fuzzy screening admission with a folded-length-ratio guard shared by the sanctions and LEI fuzzy paths

0.1.6 — 2026-07-04 · 🛡️ Security

Fix a fuzzy-match single-token false positive and namespace-prefixed GLEIF XML parsing, advance GLEIF delta freshness reporting, stream the golden-copy ingest, and clear a moderate js-yaml DoS advisory via the mcp-ts-core ^0.10.10 bump

0.1.5 — 2026-06-20

Adopt @cyanheads/mcp-ts-core ^0.10.9 — re-synced scripts/ guards add a dependency-specifier check that rejects floating specifiers (latest/*/dist-tags) in package.json + bun.lock, and the packaging lint now validates the Codex/Claude plugin marketplace manifests

0.1.4 — 2026-06-19

Adopt @cyanheads/mcp-ts-core ^0.10.8 — ctx.content media collector, canvas invalid_sql classification, DuckdbProvider.describe() filter fix, fresh-scaffold devcheck guards; @types/node 26 + dependency refresh

0.1.3 — 2026-06-19

Fixes: uniform minScore floor in fuzzy screening, mirror-script logger output, screenNodes doc correction

0.1.2 — 2026-06-15

Public hosted endpoint at https://sanctions-screening.caseyjhand.com/mcp

0.1.1 — 2026-06-14

Scope the README title to the published npm name, @cyanheads/sanctions-screening-mcp-server.

0.1.0 — 2026-06-13

Initial release: screen names against 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.