MCP Server

Sanctions Screening

dev.hatchloop/sanctions-screening
Legal & Compliance Public & reachable MCP 2026-07-28

What this MCP does

Screens names and entities against OFAC, EU, and UK sanctions lists and provides related compliance and registry checks.

check_compliance
Free, instant pre-flight for the compliance gate: runs the SAME TCPA/GDPR/CASL/CAN-SPAM/10DLC checks as send_message and call_business, in preview mode -- nothing is sent, nothing changes. Tells you whether a send would be permitted before you pay, and if not, names the exact rule and how to fix it. De-risks a paid send the way check_booking_link de-risks a paid booking. [free, no key]
Read only Idempotent
Input schema
{'type': 'object', 'required': ['recipient_id', 'content'], 'properties': {'channel': {'enum': ['sms', 'email', 'voice'], 'type': 'string', 'description': "Delivery channel. Omit to auto-infer sms/email from recipient_id; set 'voice'…"}, 'content': {'type': 'string', 'description': 'The actual message body you intend to send. The gate classifies the real text,…'}, 'state_code': {'type': 'string', 'description': "US state code (e.g. 'CA') for state-specific rules."}, 'country_code': {'type': 'string', 'description': "ISO 3166-1 alpha-2 (e.g. 'US', 'DE', 'CA'). Auto-inferred from phone if…"}, 'message_type': {'type': 'string', 'default': 'transactional', 'description': 'Intent tag: transactional, marketing, reminder, follow_up, notification.…'}, 'recipient_id': {'type': 'string', 'description': "Phone in E.164 (e.g. '+14045550100') or email address the message would go to."}}}
get_outcome
Retrieve the final OutcomeReceipt for a completed operation. [free, no key]
Read only Idempotent
Input schema
{'type': 'object', 'required': ['operation_id'], 'properties': {'operation_id': {'type': 'string'}}}
get_status
Query the current state of any in-flight async operation by operation_id. [free, no key]
Read only Idempotent
Input schema
{'type': 'object', 'required': ['operation_id'], 'properties': {'operation_id': {'type': 'string'}}}
map_trade_restriction
Free cross-border screening of destination and parties: DOES NOT CLASSIFY THE PRODUCT: echoed back, never checked against export-control lists, so a controlled item to an unrestricted destination returns 'partial', never 'clear'. Not an export-control clearance -- classify HS/ECCN yourself. Never fabricates a tariff rate, a clear, or a restricted status. [free in quota, then $0.02/call]
Read only Idempotent
Input schema
{'type': 'object', 'required': ['product', 'destination_country'], 'properties': {'hs_code': {'type': 'string', 'description': "Optional Harmonized System code (e.g. '8471.30' for laptops). If provided,…"}, 'parties': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': 'Optional list of party names to screen (exporter, importer, freight forwarder,…'}, 'product': {'type': 'string', 'description': "Product name or description, e.g. 'laptop computers', 'crude oil', 'medical…"}, 'origin_country': {'type': 'string', 'description': "Optional ISO 3166-1 alpha-2 code for the exporting country (e.g. 'US', 'DE').…"}, 'destination_country': {'type': 'string', 'description': "ISO 3166-1 alpha-2 code for the importing country (e.g. 'IR', 'CA', 'DE').…"}}}
preview_cost
Return an expected cost estimate, latency estimate, and success-probability estimate for a proposed call before execution. Returns the exact price when it is fixed, and a min/max range when the cost depends on channel or outcome. It does not promise an accuracy percentage - check cost_range. [free, no key]
Read only Idempotent
Input schema
{'type': 'object', 'required': ['operation', 'params'], 'properties': {'params': {'type': 'object', 'description': 'The same request body you would pass to the operation'}, 'operation': {'type': 'string'}}}
screen_sanctions
Free screening of a name/entity against sanctions lists: OFAC SDN (US Treasury), EU consolidated list (European Commission), UK Sanctions List (FCDO). THE UN CONSOLIDATED LIST IS NOT SCREENED -- no licence permits redistribution. Never fabricates a match or clear: check lists_screened; reason_code 'partial_screening' (never 'clear') if any source failed. [free in quota, then $0.02/call]
Read only Idempotent
Input schema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': "Full name of the person or entity to screen, e.g. 'Kim Jong-un' or 'ACME…"}, 'type': {'enum': ['person', 'entity'], 'type': 'string', 'description': "Optional entity type hint. 'person' for individuals, 'entity' for…"}, 'country': {'type': 'string', 'description': "Optional ISO 3166-1 alpha-2 country code or country name (e.g. 'IR', 'Iran').…"}}}
self_test
Service health probe: runs 6 internal checks and reports how many passed. Confirms the server is up and responding - it does NOT probe each tool individually. Use to verify connectivity before production use. [free, no key]
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}}
verify_company_record
Free, live lookup of a company official registry record. Queries the GLEIF global LEI registry (primary, 2.6 million legal entities worldwide) and SEC EDGAR (US public companies) to return the official legal name, LEI, entity status, jurisdiction, registered address, and registry authority. Never fabricates: if the company is not found in these free registries, returns an honest not_found with the sources that were queried. [free in quota, then $0.02/call]
Read only Idempotent
Input schema
{'type': 'object', 'required': ['name'], 'properties': {'lei': {'type': 'string', 'description': 'Optional 20-character Legal Entity Identifier for a direct, precise lookup.'}, 'name': {'type': 'string', 'description': 'Legal company name to look up, e.g. Apple Inc or Volkswagen AG.'}, 'country': {'type': 'string', 'description': 'Optional ISO 3166-1 alpha-2 country filter (e.g. US, DE, GB). Narrows GLEIF…'}}}
Changed
map_trade_restriction
Sept. 23, 2026, 2:41 a.m.
Changed
screen_sanctions
Sept. 23, 2026, 2:41 a.m.
Changed
check_compliance
Sept. 23, 2026, 2:41 a.m.
Added
map_trade_restriction
Sept. 17, 2026, 12:39 p.m.
Added
screen_sanctions
Sept. 17, 2026, 12:39 p.m.
Added
verify_company_record
Sept. 17, 2026, 12:39 p.m.
Added
check_compliance
Sept. 17, 2026, 12:39 p.m.
Added
self_test
Sept. 17, 2026, 12:39 p.m.
Added
preview_cost
Sept. 17, 2026, 12:39 p.m.
Added
get_outcome
Sept. 17, 2026, 12:39 p.m.
Added
get_status
Sept. 17, 2026, 12:39 p.m.