Screen names vs OFAC, UN, EU, UK and UAE terrorist lists with Arabic-aware matching.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
API key from [email protected] (catalogue and free tools work without it)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Screens 1–50 subjects and returns a self-contained HTML report (result.html): timestamp, each list with its version / fetched-at / SHA-256, the inputs, every hit with its explanation, and an explicit no-match statement for clear subjects — suitable for the client's AML file (open in a browser, print to PDF). One charge per report. Example: subjects [{name:'Qusay Saddam Hussein', dob:'1966'}], case_reference 'KYC-2026-0412', prepared_by 'MLRO'. Response: result plus data_confidence, estimated_items[], sources[] (official list pages), data_version (snapshot id), warnings[] (e.g. a list snapshot older than 7 days) and a disclaimer. Lists: ofac_sdn, ofac_cons, un, eu, uk, uae. Names are never logged; matching is deterministic (no AI) and runs offline against the bundled snapshot.
1 to 50 subjects to include in one report.
Subset of lists to screen (default all): ofac_sdn, ofac_cons, un, eu, uk, uae.
Minimum score (0–100) for a hit to be returned; default 85. 80 widens the net for onboarding, 92 for alert review.
Name / role of the compliance officer, printed on the report.
Your case / client file reference, printed on the report.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http sanctions-screener https://screen.noahsarch.tech/mcp
Headers
X-API-Key (optional, not in the config above): API key from [email protected] (catalogue and free tools work without it)Screens 1–50 subjects and returns a self-contained HTML report (result.html): timestamp, each list with its version / fetched-at / SHA-256, the inputs, every hit with its explanation, and an explicit no-match statement for clear subjects — suitable for the client's AML file (open in a browser, print to PDF). One charge per report. Example: subjects [{name:'Qusay Saddam Hussein', dob:'1966'}], case_reference 'KYC-2026-0412', prepared_by 'MLRO'. Response: result plus data_confidence, estimated_items[], sources[] (official list pages), data_version (snapshot id), warnings[] (e.g. a list snapshot older than 7 days) and a disclaimer. Lists: ofac_sdn, ofac_cons, un, eu, uk, uae. Names are never logged; matching is deterministic (no AI) and runs offline against the bundled snapshot.
| Argument | Type | Description |
|---|---|---|
| lists | any | Subset of lists to screen (default all): ofac_sdn, ofac_cons, un, eu, uk, uae. |
| subjects* | array | 1 to 50 subjects to include in one report. |
| min_score | number | Minimum score (0–100) for a hit to be returned; default 85. 80 widens the net for onboarding, 92 for alert review. |
| prepared_by | any | Name / role of the compliance officer, printed on the report. |
| case_reference | any | Your case / client file reference, printed on the report. |
{
"type": "object",
"$defs": {
"Subject": {
"type": "object",
"title": "Subject",
"required": [
"name"
],
"properties": {
"dob": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
],
"title": "Dob",
"default": null,
"description": "Date of birth 'YYYY', 'YYYY-MM' or 'YYYY-MM-DD'. Year match adds, mismatch subtracts; omit if unknown."
},
"name": {
"type": "string",
"title": "Name",
"maxLength": 300,
"minLength": 1,
"description": "Full name, Latin or Arabic script."
},
"id_number": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
],
"title": "Id Number",
"default": null,
"description": "Passport / national ID / registration number. An exact match on a listed number is reported as 'exact' (score 100)."
},
"reference": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "Reference",
"default": null,
"description": "Your own row id / customer reference, echoed back."
},
"entity_type": {
"enum": [
"individual",
"entity",
"vessel",
"aircraft",
"any"
],
"type": "string",
"title": "Entity Type",
"default": "any",
"description": "individual | entity | vessel | aircraft | any (default). Disagreement with the listed type costs 20 points."
},
"nationality": {
"anyOf": [
{
"type": "string",
"maxLength": 2
},
{
"type": "null"
}
],
"title": "Nationality",
"default": null,
"description": "Nationality / country of incorporation as ISO 3166-1 alpha-2 ('AE', 'IR', 'GB'). Omit if unknown."
}
},
"additionalProperties": false
}
},
"title": "audit_reportArguments",
"required": [
"subjects"
],
"properties": {
"lists": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"ofac_sdn",
"ofac_cons",
"un",
"eu",
"uk",
"uae"
],
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Lists",
"default": null,
"description": "Subset of lists to screen (default all): ofac_sdn, ofac_cons, un, eu, uk, uae."
},
"subjects": {
"type": "array",
"items": {
"$ref": "#/$defs/Subject"
},
"title": "Subjects",
"description": "1 to 50 subjects to include in one report."
},
"min_score": {
"type": "number",
"title": "Min Score",
"default": 85,
"description": "Minimum score (0–100) for a hit to be returned; default 85. 80 widens the net for onboarding, 92 for alert review."
},
"prepared_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Prepared By",
"default": null,
"description": "Name / role of the compliance officer, printed on the report."
},
"case_reference": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Case Reference",
"default": null,
"description": "Your case / client file reference, printed on the report."
}
}
}Normalises both names step by step (Unicode, Arabic letter folding, honorifics/particles dropped, merged 'Abdul…' forms split, romanisation variants folded) and returns every score component (token_sort, token_set, Jaro-Winkler, subset, or the cross-script skeleton) and the resulting score / strength. Free. Example: name_a 'Abd al-Rahman Al Shaikh', name_b 'عبدالرحمن الشيخ'. Response: result plus data_confidence, estimated_items[], sources[] (official list pages), data_version (snapshot id), warnings[] (e.g. a list snapshot older than 7 days) and a disclaimer. Lists: ofac_sdn, ofac_cons, un, eu, uk, uae. Names are never logged; matching is deterministic (no AI) and runs offline against the bundled snapshot.
| Argument | Type | Description |
|---|---|---|
| name_a* | string | First name to compare (Latin or Arabic). |
| name_b* | string | Second name to compare (Latin or Arabic). |
{
"type": "object",
"title": "explain_matchArguments",
"required": [
"name_a",
"name_b"
],
"properties": {
"name_a": {
"type": "string",
"title": "Name A",
"description": "First name to compare (Latin or Arabic)."
},
"name_b": {
"type": "string",
"title": "Name B",
"description": "Second name to compare (Latin or Arabic)."
}
}
}Per list: entries (individuals / entities / vessels / aircraft), aliases, fetched_at, days_since_fetch (stale flag when older than 7 days), official source URL and page, SHA-256 of the downloaded file, licence/terms, and any failures of the last refresh. Free. Call it before relying on a 'clear' result in a regulated process. Response: result plus data_confidence, estimated_items[], sources[] (official list pages), data_version (snapshot id), warnings[] (e.g. a list snapshot older than 7 days) and a disclaimer. Lists: ofac_sdn, ofac_cons, un, eu, uk, uae. Names are never logged; matching is deterministic (no AI) and runs offline against the bundled snapshot.
No arguments.
{
"type": "object",
"title": "list_statusArguments",
"properties": {}
}Each subject may carry dob, nationality, entity_type, id_number and your reference. Identical rows are screened once (charged once). Returns per-subject decision_hint, hit_count, top_score and the top 5 hits, plus summary counts (clear / review / likely_match). Charged per unique name. Example: subjects [{name:'Ali Kony', reference:'C-17'}, {name:'شركة الأمل للتجارة', entity_type:'entity'}], default_nationality 'AE'. Response: result plus data_confidence, estimated_items[], sources[] (official list pages), data_version (snapshot id), warnings[] (e.g. a list snapshot older than 7 days) and a disclaimer. Lists: ofac_sdn, ofac_cons, un, eu, uk, uae. Names are never logged; matching is deterministic (no AI) and runs offline against the bundled snapshot.
| Argument | Type | Description |
|---|---|---|
| lists | any | Subset of lists to screen (default all): ofac_sdn, ofac_cons, un, eu, uk, uae. |
| subjects* | array | Up to 500 subjects (name + optional dob / nationality / entity_type / id_number / reference). Identical rows are screened once. |
| min_score | number | Minimum score (0–100) for a hit to be returned; default 85. 80 widens the net for onboarding, 92 for alert review. |
| default_nationality | any | ISO2 applied to rows without a nationality. |
{
"type": "object",
"$defs": {
"Subject": {
"type": "object",
"title": "Subject",
"required": [
"name"
],
"properties": {
"dob": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
],
"title": "Dob",
"default": null,
"description": "Date of birth 'YYYY', 'YYYY-MM' or 'YYYY-MM-DD'. Year match adds, mismatch subtracts; omit if unknown."
},
"name": {
"type": "string",
"title": "Name",
"maxLength": 300,
"minLength": 1,
"description": "Full name, Latin or Arabic script."
},
"id_number": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
],
"title": "Id Number",
"default": null,
"description": "Passport / national ID / registration number. An exact match on a listed number is reported as 'exact' (score 100)."
},
"reference": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "Reference",
"default": null,
"description": "Your own row id / customer reference, echoed back."
},
"entity_type": {
"enum": [
"individual",
"entity",
"vessel",
"aircraft",
"any"
],
"type": "string",
"title": "Entity Type",
"default": "any",
"description": "individual | entity | vessel | aircraft | any (default). Disagreement with the listed type costs 20 points."
},
"nationality": {
"anyOf": [
{
"type": "string",
"maxLength": 2
},
{
"type": "null"
}
],
"title": "Nationality",
"default": null,
"description": "Nationality / country of incorporation as ISO 3166-1 alpha-2 ('AE', 'IR', 'GB'). Omit if unknown."
}
},
"additionalProperties": false
}
},
"title": "screen_batchArguments",
"required": [
"subjects"
],
"properties": {
"lists": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"ofac_sdn",
"ofac_cons",
"un",
"eu",
"uk",
"uae"
],
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Lists",
"default": null,
"description": "Subset of lists to screen (default all): ofac_sdn, ofac_cons, un, eu, uk, uae."
},
"subjects": {
"type": "array",
"items": {
"$ref": "#/$defs/Subject"
},
"title": "Subjects",
"description": "Up to 500 subjects (name + optional dob / nationality / entity_type / id_number / reference). Identical rows are screened once."
},
"min_score": {
"type": "number",
"title": "Min Score",
"default": 85,
"description": "Minimum score (0–100) for a hit to be returned; default 85. 80 widens the net for onboarding, 92 for alert review."
},
"default_nationality": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Default Nationality",
"default": null,
"description": "ISO2 applied to rows without a nationality."
}
}
}Screen a person, company, vessel or aircraft name against OFAC SDN + Consolidated, UN, EU, UK and the UAE Local Terrorist List. Returns up to 20 hits sorted by score with list, listed_name, aliases_matched, score, match_strength (exact / strong / possible / weak), matched_on (which alias, which normalisation, DOB / nationality / type agreement), programs, listed_on, DOBs, nationalities, id_numbers, reference and source_url, plus decision_hint. Example: name 'Mohamed Hussein Al-Tikriti', dob '1966', nationality 'IQ', entity_type 'individual'. Response: result plus data_confidence, estimated_items[], sources[] (official list pages), data_version (snapshot id), warnings[] (e.g. a list snapshot older than 7 days) and a disclaimer. Lists: ofac_sdn, ofac_cons, un, eu, uk, uae. Names are never logged; matching is deterministic (no AI) and runs offline against the bundled snapshot.
| Argument | Type | Description |
|---|---|---|
| dob | any | Date of birth 'YYYY', 'YYYY-MM' or 'YYYY-MM-DD'. Year match adds, mismatch subtracts; omit if unknown. |
| name* | string | Full name to screen, Latin or Arabic script (e.g. 'Mohamed Al Rashid' or 'محمد الراشد'). |
| lists | any | Subset of lists to screen (default all): ofac_sdn, ofac_cons, un, eu, uk, uae. |
| id_number | any | Passport / national ID / registration number. An exact match on a listed number is reported as 'exact' (score 100). |
| min_score | number | Minimum score (0–100) for a hit to be returned; default 85. 80 widens the net for onboarding, 92 for alert review. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 31, 2026.
| entity_type | string | individual | entity | vessel | aircraft | any (default). Disagreement with the listed type costs 20 points. |
| nationality | any | Nationality / country of incorporation as ISO 3166-1 alpha-2 ('AE', 'IR', 'GB'). Omit if unknown. |
{
"type": "object",
"title": "screen_nameArguments",
"required": [
"name"
],
"properties": {
"dob": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Dob",
"default": null,
"description": "Date of birth 'YYYY', 'YYYY-MM' or 'YYYY-MM-DD'. Year match adds, mismatch subtracts; omit if unknown."
},
"name": {
"type": "string",
"title": "Name",
"description": "Full name to screen, Latin or Arabic script (e.g. 'Mohamed Al Rashid' or 'محمد الراشد')."
},
"lists": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"ofac_sdn",
"ofac_cons",
"un",
"eu",
"uk",
"uae"
],
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Lists",
"default": null,
"description": "Subset of lists to screen (default all): ofac_sdn, ofac_cons, un, eu, uk, uae."
},
"id_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Id Number",
"default": null,
"description": "Passport / national ID / registration number. An exact match on a listed number is reported as 'exact' (score 100)."
},
"min_score": {
"type": "number",
"title": "Min Score",
"default": 85,
"description": "Minimum score (0–100) for a hit to be returned; default 85. 80 widens the net for onboarding, 92 for alert review."
},
"entity_type": {
"enum": [
"individual",
"entity",
"vessel",
"aircraft",
"any"
],
"type": "string",
"title": "Entity Type",
"default": "any",
"description": "individual | entity | vessel | aircraft | any (default). Disagreement with the listed type costs 20 points."
},
"nationality": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Nationality",
"default": null,
"description": "Nationality / country of incorporation as ISO 3166-1 alpha-2 ('AE', 'IR', 'GB'). Omit if unknown."
}
}
}