Sanctions Screening
by hatchloop.dev · remote · no sign-in to list tools · v0.2.13 · published by dev.hatchloop
Screen a name or entity against OFAC SDN, the EU Consolidated list and the UK list.
8 tools: 5 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things5Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http sanctions-screening https://hatchloop.dev/mcp/sanctions-screeningTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Changes things 5Claude Code: ask
check_complianceFree, 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 …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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]
Annotations the server declares
- title: Check Compliance
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
map_trade_restrictionFree 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 unrestric…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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, no key]
Annotations the server declares
- title: Map Trade Restriction
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
screen_sanctionsFree screening of a name/entity (Latin or Arabic script) against sanctions lists: OFAC SDN (US Treasury), EU consolidated list (European Commission), UK Sanctions List (FCDO).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Free screening of a name/entity (Latin or Arabic script) 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, no key]
Annotations the server declares
- title: Screen Sanctions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
self_testService health probe: runs 6 internal checks and reports how many passed.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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]
Annotations the server declares
- title: Self Test
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
verify_company_recordFree, live lookup of a company official registry record.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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, no key]
Annotations the server declares
- title: Verify Company Record
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 3Claude Code: allow
get_outcomeRetrieve the final OutcomeReceipt for a completed operation.No findings
Why it is in this group
- The name "get_outcome" says "get": a word for reading.
Description, as the server wrote it Retrieve the final OutcomeReceipt for a completed operation. [free, no key]
Annotations the server declares
- title: Get Outcome
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_statusQuery the current state of any in-flight async operation by operation_id.No findings
Why it is in this group
- The name "get_status" says "get": a word for reading.
Description, as the server wrote it Query the current state of any in-flight async operation by operation_id. [free, no key]
Annotations the server declares
- title: Get Status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
preview_costReturn an expected cost estimate, latency estimate, and success-probability estimate for a proposed call before execution.No findings
Why it is in this group
- The name "preview_cost" says "preview": a word for reading.
Description, as the server wrote it 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]
Annotations the server declares
- title: Preview Cost
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.2.13. Values in angle brackets are yours to fill in.
claude mcp add --transport http sanctions-screening https://hatchloop.dev/mcp/sanctions-screeningRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__sanctions-screening__get_status",
"mcp__sanctions-screening__get_outcome",
"mcp__sanctions-screening__preview_cost"
],
"ask": [
"mcp__sanctions-screening__self_test",
"mcp__sanctions-screening__check_compliance",
"mcp__sanctions-screening__verify_company_record",
"mcp__sanctions-screening__screen_sanctions",
"mcp__sanctions-screening__map_trade_restriction"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as sanctions-screening. Review it before you use it.