GCC Sanctions & Terror-List Screener
Screen names vs OFAC, UN, EU, UK and UAE terrorist lists with Arabic-aware matching.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"sanctions-screener": {
"url": "https://screen.noahsarch.tech/mcp"
}
}
}Puntos de conexión remotos
https://screen.noahsarch.tech/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (5)
🟢screen_name(name, dob, nationality, entity_type, id_number, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"description": "Full name to screen, Latin or Arabic script (e.g. 'Mohamed Al Rashid' or 'محمد الراشد').",
"title": "Name",
"type": "string"
},
"dob": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Date of birth 'YYYY', 'YYYY-MM' or 'YYYY-MM-DD'. Year match adds, mismatch subtracts; omit if unknown.",
"title": "Dob"
},
"nationality": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Nationality / country of incorporation as ISO 3166-1 alpha-2 ('AE', 'IR', 'GB'). Omit if unknown.",
"title": "Nationality"
},
"entity_type": {
"default": "any",
"description": "individual | entity | vessel | aircraft | any (default). Disagreement with the listed type costs 20 points.",
"enum": [
"individual",
"entity",
"vessel",
"aircraft",
"any"
],
"title": "Entity Type",
"type": "string"
},
"id_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Passport / national ID / registration number. An exact match on a listed number is reported as 'exact' (score 100).",
"title": "Id Number"
},
"lists": {
"anyOf": [
{
"items": {
"enum": [
"ofac_sdn",
"ofac_cons",
"un",
"eu",
"uk",
"uae"
],
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Subset of lists to screen (default all): ofac_sdn, ofac_cons, un, eu, uk, uae.",
"title": "Lists"
},
"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.",
"title": "Min Score",
"type": "number"
}
},
"required": [
"name"
],
"title": "screen_nameArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "screen_nameDictOutput"
}🟢screen_batch(subjects, lists, min_score, default_nationality)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"subjects": {
"description": "Up to 500 subjects (name + optional dob / nationality / entity_type / id_number / reference). Identical rows are screened once.",
"items": {
"$ref": "#/$defs/Subject"
},
"title": "Subjects",
"type": "array"
},
"lists": {
"anyOf": [
{
"items": {
"enum": [
"ofac_sdn",
"ofac_cons",
"un",
"eu",
"uk",
"uae"
],
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Subset of lists to screen (default all): ofac_sdn, ofac_cons, un, eu, uk, uae.",
"title": "Lists"
},
"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.",
"title": "Min Score",
"type": "number"
},
"default_nationality": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ISO2 applied to rows without a nationality.",
"title": "Default Nationality"
}
},
"required": [
"subjects"
],
"$defs": {
"Subject": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Full name, Latin or Arabic script.",
"maxLength": 300,
"minLength": 1,
"title": "Name",
"type": "string"
},
"dob": {
"anyOf": [
{
"maxLength": 10,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Date of birth 'YYYY', 'YYYY-MM' or 'YYYY-MM-DD'. Year match adds, mismatch subtracts; omit if unknown.",
"title": "Dob"
},
"nationality": {
"anyOf": [
{
"maxLength": 2,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Nationality / country of incorporation as ISO 3166-1 alpha-2 ('AE', 'IR', 'GB'). Omit if unknown.",
"title": "Nationality"
},
"entity_type": {
"default": "any",
"description": "individual | entity | vessel | aircraft | any (default). Disagreement with the listed type costs 20 points.",
"enum": [
"individual",
"entity",
"vessel",
"aircraft",
"any"
],
"title": "Entity Type",
"type": "string"
},
"id_number": {
"anyOf": [
{
"maxLength": 64,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Passport / national ID / registration number. An exact match on a listed number is reported as 'exact' (score 100).",
"title": "Id Number"
},
"reference": {
"anyOf": [
{
"maxLength": 120,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Your own row id / customer reference, echoed back.",
"title": "Reference"
}
},
"required": [
"name"
],
"title": "Subject",
"type": "object"
}
},
"title": "screen_batchArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "screen_batchDictOutput"
}🟢audit_report(subjects, lists, min_score, prepared_by, case_reference)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"subjects": {
"description": "1 to 50 subjects to include in one report.",
"items": {
"$ref": "#/$defs/Subject"
},
"title": "Subjects",
"type": "array"
},
"lists": {
"anyOf": [
{
"items": {
"enum": [
"ofac_sdn",
"ofac_cons",
"un",
"eu",
"uk",
"uae"
],
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Subset of lists to screen (default all): ofac_sdn, ofac_cons, un, eu, uk, uae.",
"title": "Lists"
},
"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.",
"title": "Min Score",
"type": "number"
},
"prepared_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Name / role of the compliance officer, printed on the report.",
"title": "Prepared By"
},
"case_reference": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Your case / client file reference, printed on the report.",
"title": "Case Reference"
}
},
"required": [
"subjects"
],
"$defs": {
"Subject": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Full name, Latin or Arabic script.",
"maxLength": 300,
"minLength": 1,
"title": "Name",
"type": "string"
},
"dob": {
"anyOf": [
{
"maxLength": 10,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Date of birth 'YYYY', 'YYYY-MM' or 'YYYY-MM-DD'. Year match adds, mismatch subtracts; omit if unknown.",
"title": "Dob"
},
"nationality": {
"anyOf": [
{
"maxLength": 2,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Nationality / country of incorporation as ISO 3166-1 alpha-2 ('AE', 'IR', 'GB'). Omit if unknown.",
"title": "Nationality"
},
"entity_type": {
"default": "any",
"description": "individual | entity | vessel | aircraft | any (default). Disagreement with the listed type costs 20 points.",
"enum": [
"individual",
"entity",
"vessel",
"aircraft",
"any"
],
"title": "Entity Type",
"type": "string"
},
"id_number": {
"anyOf": [
{
"maxLength": 64,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Passport / national ID / registration number. An exact match on a listed number is reported as 'exact' (score 100).",
"title": "Id Number"
},
"reference": {
"anyOf": [
{
"maxLength": 120,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Your own row id / customer reference, echoed back.",
"title": "Reference"
}
},
"required": [
"name"
],
"title": "Subject",
"type": "object"
}
},
"title": "audit_reportArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "audit_reportDictOutput"
}🟢list_status
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.
Esquema de entrada
{
"type": "object",
"properties": {},
"title": "list_statusArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "list_statusDictOutput"
}🟢explain_match(name_a, name_b)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"name_a": {
"description": "First name to compare (Latin or Arabic).",
"title": "Name A",
"type": "string"
},
"name_b": {
"description": "Second name to compare (Latin or Arabic).",
"title": "Name B",
"type": "string"
}
},
"required": [
"name_a",
"name_b"
],
"title": "explain_matchArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "explain_matchDictOutput"
}Comunidad
Evidencia