sanctions-screening-mcp-server: screen name
sanctions_screen_nameScreen a name (person, company, vessel, aircraft) against all loaded sanctions watchlists at once — OFAC SDN + Consolidated, EU, UK, and UN — alias- and fuzzy-aware. Returns scored potential matches with the source list, sanctioning program, designation date, and the matched alias. Strict mode (default) matches exact-normalized then all-tokens-present; fuzzy mode (or auto when strict is empty) 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. 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."
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name to screen (person, organization, vessel, or aircraft). | |
| limit | No | Maximum number of potential matches to return in one page. | |
| offset | No | Zero-based index of the first potential match to return. Re-call with the returned nextOffset to page through every match when hasMore is true; an offset past the end returns an empty page, not an error. | |
| sources | No | Restrict to specific source lists. Omit to screen all loaded lists. | |
| minScore | No | Score floor for fuzzy hits (0–1), applied uniformly to every fuzzy candidate regardless of how it was matched (Jaro-Winkler, token, or phonetic). No hit below this score is returned. Applies to fuzzy mode only; defaults to the server's configured floor. | |
| matchMode | No | strict (default): exact-normalized then all-tokens-present. fuzzy: also scored Jaro-Winkler + phonetic. Strict auto-falls-back to fuzzy when it finds nothing. | strict |
| entityType | No | Restrict to one entity class, or "any" (default) to screen across all. | any |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| hits | No | Potential matches, ranked by match type, then score, then how much of the query each candidate explains. | |
| error | No | Present when the call failed. Absent on success. | |
| caveat | No | Decision-support caveat — this is a screening aid, not a compliance determination. | |
| notice | No | Guidance when no candidate matched — how to broaden, and what an empty result does NOT mean — or when the requested offset sits past the end of the result set. | |
| hasMore | No | True when potential matches remain beyond this page — re-call with nextOffset. | |
| nextOffset | No | The offset to request next. Present only when hasMore is true. | |
| totalCount | No | Number of potential matches returned in this page. | |
| matchModeUsed | No | The match mode actually applied (strict may auto-upgrade to fuzzy on empty). | |
| totalAvailable | No | Potential matches available across all pages, before limit and offset were applied. | |
| normalizedQuery | No | The name as the server folded it for matching. | |
| totalAvailableBasis | No | How to read totalAvailable: exact = the complete strict match set; lower_bound = a bounded scan produced it (every fuzzy pass, and any strict pass that hit the raw-row scan cap), so more may exist. |