Skip to content

MCP servers / EU Counterparty Sanctions Preflight

EU Counterparty Sanctions Preflight

Screen a counterparty against the EU consolidated financial sanctions list, with a vocabulary that never turns a no-match into clearance.

Jithox · EU capability · global access · Risk and sanctions · Available

What a call costs

€0.50 per acceptedcall, from your shared workspace balance. Your workspace’s first 25 accepted calls are free for 14 days from the moment you create your first key — one allowance for every Jithox MCP server, not 25 each. A failure, a refusal, a rate limit or an unavailable source costs €0.00. Introductory usage price. Subject to review as real usage data becomes available.

Overview

Who it is for: Any business or agent that must check EU-designated counterparties.

Endpoint
https://sanctions.mcp.jithox.com/mcp
Protocol
2026-07-28 (also 2025-11-25, 2025-06-18, 2025-03-26)
Authentication
OAuth 2.1 with PKCE (S256). Its own OAuth resource.
Source
The European Commission's consolidated financial sanctions list. The runtime re-fetches and re-verifies it automatically (six-hour cadence) and reports its own freshness; the moment the snapshot goes stale the server stops screening and answers a typed unavailable instead — a stale answer is never charged and never presented as a clearance.

Tool explorer

Every tool this server prices, with its input schema, its output shape and an example. This explorer is read-only documentation: nothing on this page calls the server, so reading it executes nothing and costs nothing.

screen_sanctioned_name

Screen a counterparty name against the dated official EU list — candidates, never verdicts.

When to use it: Before onboarding or paying a counterparty: fuzzy scoring ranks candidates for a human to review; it never decides.

Required input
name
Optional input
subjectType, country
Output fields
status, summary, candidates[], freshness, provenance
Price
€0.50 per accepted call

Example input

{ "name": "Example Trading FZE" }

Example output

{ "status": "not_listed_in_snapshot",
  "summary": "Not listed in this snapshot at or above the review threshold. This is NOT a guarantee of non-designation.",
  "candidates": [] }
Charges you
exact_match, possible_match, needs_review, not_listed_in_snapshot
Costs €0.00
missing_input, stale, unavailable, plus every error

screen_sanctioned_identifier

Deterministic exact match of a passport / national id / registration — no fuzzy matching.

When to use it: When you hold a document identifier: an exact, type-bound check with no scoring ambiguity.

Required input
identifier
Optional input
type
Output fields
status, summary, matches[], freshness, provenance
Price
€0.50 per accepted call

Example input

{ "identifier": "X1234567", "type": "passport" }

Example output

{ "status": "not_listed_in_snapshot",
  "summary": "Identifier not listed in this snapshot. NOT a guarantee of non-designation; EU list only.",
  "matches": [] }
Charges you
exact_match, not_listed_in_snapshot
Costs €0.00
missing_input, stale, unavailable, plus every error

get_sanctions_listing

The full official listing detail behind a screening candidate, with provenance.

When to use it: After a screen surfaces a candidate: names, programme, legal basis and listing date for the human review.

Required input
logicalId
Optional input
Output fields
status, summary, freshness, provenance
Price
€0.50 per accepted call

Example input

{ "logicalId": "eu-fsf-12345" }

Example output

{ "status": "found",
  "summary": "Listing eu-fsf-12345: programme, legal basis, listed names and identifier types." }
Charges you
found, not_found
Costs €0.00
missing_input, unavailable, plus every error

list_sanctions_regimes

Enumerate the EU sanctions programmes present in the snapshot — the policy-layer read.

When to use it: Orientation: which regimes exist, on what legal basis, with how many designations.

Required input
Optional input
Output fields
status, regimes[], freshness, provenance
Price
€0.50 per accepted call

Example input

{}

Example output

{ "status": "found",
  "regimes": [{ "programme": "UKR", "legalBasis": "Regulation (EU) 269/2014", "subjectCount": 2200 }] }
Charges you
found
Costs €0.00
unavailable, plus every error

prepare_screening_receipt

One signed, idempotent receipt attesting WHAT was screened and WHEN — hashed inputs, no raw PII.

When to use it: Close a screening session with offline-verifiable evidence for your compliance file.

Required input
bundle, createdAt
Optional input
Output fields
status, receipt, signature
Price
€0.50 per accepted call

Example input

{ "bundle": { "checks": [] }, "createdAt": "2026-08-08T12:00:00Z" }

Example output

{ "status": "screened",
  "receipt": { "snapshotChecksum": "…", "decisionStates": ["not_listed_in_snapshot"] } }
Charges you
screened, partial, needs_review
Costs €0.00
unavailable, plus every error

How charging works

  • Authorize — your credential, its scope and the product are checked.
  • Reserve — the price is held against your trial or balance before anything runs.
  • Execute — the tool does its work.
  • Capture or release — an accepted, usable answer captures; anything else releases the hold in full.
  • Receipt — an accepted call produces a signed receipt you can verify offline.

Failed calls cost €0.00. Errors, refusals, rate limits, kill switches and upstream outages never charge you and never consume a free call.

Your usage and balance

One workspace has one prepaid balance and one free allowance, both covering every available Jithox MCP server. You do not buy a balance per server, you do not get a fresh allowance per server, and a credential never holds money of its own.

Free allowance

25 accepted calls

14 days, once per workspace — not once per server. No card. The clock starts when you create your first key, and the allowance goes to the server you connect first.

Balance

One prepaid EUR balance

For all available Jithox MCP servers. Spend it wherever you like. No subscription and no automatic top-up.

How the balance works

One workspace → one free allowance → one prepaid EUR balance → a key per MCP server → paid calls → receipts.

  • You do not buy a balance per MCP server — one balance covers all of them.
  • Your workspace gets ONE free allowance: 25 accepted calls for 14 days, not 25 per server. Connecting a second server does not add more free calls.
  • The allowance is held on the first server you connect. A key for another server still works — its calls are charged from your balance.
  • Prices differ per server, so the same balance buys a different number of calls on each. The price list shows how many.
  • A credential holds no money. Rotating or replacing one leaves your balance and your free calls exactly as they were — and it does not restart the 14 days.
  • Future paid Jithox MCP servers draw on this same balance and this same allowance; they do not create a second one.
  • Tax is calculated separately and is never spendable balance.
  • There is no automatic top-up and no automatic subscription — funds are added only when you choose to add them.

Connect

  • Create an account and a workspace.
  • Create a credential — it is shown once.
  • Point your MCP client at the endpoint below.
  • Approve the consent screen with your access key.
  • initialize, then tools/list.
  • Call a tool and read the receipt in _meta.
# Remote MCP server — transport: streamable-http (Streamable HTTP)
https://sanctions.mcp.jithox.com/mcp

# Your client discovers OAuth automatically (RFC 9728):
https://sanctions.mcp.jithox.com/.well-known/oauth-protected-resource

# Client config (VS Code shape; other clients on the connect page):
{
  "servers": {
    "jithox-sanctions": {
      "type": "http",
      "url": "https://sanctions.mcp.jithox.com/mcp"
    }
  }
}

Example call

initialize and tools/list are free and need no credential. The first priced call, with the documented example arguments of screen_sanctioned_name:

POST https://sanctions.mcp.jithox.com/mcp
{"jsonrpc":"2.0","id":1,"method":"tools/call",
 "params":{"name":"screen_sanctioned_name",
           "arguments":{ "name": "Example Trading FZE" }}}

The response carries a decision state, the evidence behind it, and _meta.receipt. If the call is accepted and chargeable, €0.50 is captured from your balance — otherwise the hold is released.

What a first call proves

  • initialize and tools/list are discovery: free, no credential, and they execute nothing. Only tools/call runs a tool; a green handshake proves reachability, not a result.
  • tools/call needs a credential your MCP client obtains through the server's OAuth consent screen (or a connection you created once on your account page). Authentication is not payment: a call is charged from your prepaid balance only when it returns an accepted result; the first 25 accepted calls per workspace are free for 14 days.
  • A format check (validate_vat_number, check_registration_number_format) that answers valid or FORMAT_VALID proves only that the identifier is well-formed — not that it exists or is active; an invalid or needs_review answer proves the opposite or nothing. A registry check (verify_vat_vies, verify_company_registration) asks the official source and can answer unavailable when that source does not.
  • Add the server URL to your MCP client, let it complete the consent screen, then make one call from your client. If your client cannot open a browser, create a connection on your account page and send it as a bearer header — the same scopes, revocable there.
  • 401 means no valid credential reached the server — not that the tool is missing or that anything ran. A JSON-RPC error carries a stable code and a recovery.next_step; under the published pricing contract only accepted results are charged, so an error is not an accepted result — your account page lists every charge. A transport failure or 5xx after tools/call was sent means the outcome is UNKNOWN: check before you retry, never retry blindly.

Errors

CodeMeaning
401Authentication required — re-run the OAuth flow.
403Insufficient scope, or a token for a different server.
402Free calls used up and the balance cannot cover this call. Nothing ran, nothing was charged.
429Rate limited. Honour retry-after; nothing was charged.
503The product or its source is unavailable. This does NOT mean the server crashed — it means we will not answer without a source we trust.

Limits and disclaimers

  • A no-match is never legal clearance and never means 'not sanctioned elsewhere'.
  • Possible matches require human review — this is decision support, not a decision.
  • The Official Journal remains the authoritative source.
  • A stale snapshot answers unavailable rather than screening — and costs nothing.