MCP servers / EU Import Preflight
EU Import Preflight
Preflight an EU import before it happens: identity, classification candidates, applicable measures and landed cost.
Jithox · EU capability · global access · Trade and customs · Available
What a call costs
Overview
Who it is for: Manufacturers, sellers, marketplaces and agents anywhere in the world shipping goods into the EU.
- Endpoint
- https://import.mcp.jithox.com/mcp
- Protocol
- 2025-06-18
- Authentication
- OAuth 2.1 with PKCE (S256). Its own OAuth resource — an E-Invoice token is refused here.
- Source
- An officially ingested TARIC baseline with a stated publication date and checksum. Every answer carries its source; a gap makes the answer truthfully unavailable rather than invented.
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.
validate_eori
Structural EORI check, plus authoritative existence when the provider opt-in is on.
When to use it: Before treating a counterparty as a registered EU economic operator.
- Required input
- eori
- Optional input
- —
- Output fields
- state, countryCode, normalisedEori, reasons[], sources[]
- Price
- €0.25 per accepted call
Example input
{ "eori": "BE0403170701" }Example output
{ "state": "valid",
"countryCode": "BE",
"normalisedEori": "BE0403170701" }- Charges you
- valid, invalid, needs_review
- Costs €0.00
- unavailable, plus every error
search_taric_codes
Candidate TARIC/CN codes for a product description.
When to use it: When you have a description and need plausible classifications to review.
- Required input
- —
- Optional input
- productDescription, knownProperties
- Output fields
- state, candidates[], confidenceNote, sources[]
- Price
- €0.25 per accepted call
Example input
{ "productDescription": "cotton t-shirt, knitted, men's" }Example output
{ "state": "candidates",
"candidates": [{ "code": "6109100010", "description": "T-shirts, of cotton" }],
"sources": [{ "name": "TARIC", "publishedAt": "2026-07-01" }] }- Charges you
- needs_review
- Costs €0.00
- candidates, unavailable, plus every error
check_eu_import_measures
Import measures applying to a candidate code on a given date.
When to use it: Once a candidate code exists and you need the measures attached to it.
- Required input
- —
- Optional input
- code, originCountry, destinationCountry, date, goodsValueEur
- Output fields
- state, measures[], dutyRate, sources[]
- Price
- €0.25 per accepted call
Example input
{ "code": "6109100010", "originCountry": "IN", "destinationCountry": "BE" }Example output
{ "state": "measures",
"measures": [{ "type": "third_country_duty", "rate": "12.00%" }],
"sources": [{ "name": "TARIC", "publishedAt": "2026-07-01" }] }- Charges you
- needs_review
- Costs €0.00
- measures, unavailable, plus every error
estimate_low_value_import_cost
Landed-cost estimate for consignments up to EUR 150.
When to use it: For a quick duty and VAT picture on low-value shipments.
- Required input
- —
- Optional input
- items, originCountry, destinationCountry, iossUsed
- Output fields
- state, goodsValueEur, dutyEur, vatEur, totalEur, assumptions[]
- Price
- €0.25 per accepted call
Example input
{ "items": [{ "valueEur": 40, "code": "6109100010" }],
"originCountry": "IN", "destinationCountry": "BE", "iossUsed": true }Example output
{ "state": "estimated",
"goodsValueEur": 40, "dutyEur": 0, "vatEur": 8.4, "totalEur": 48.4,
"assumptions": ["Consignment under EUR 150", "IOSS used"] }- Charges you
- needs_review
- Costs €0.00
- estimated, missing, plus every error
prepare_import_preflight_receipt
An Ed25519 receipt over the preflight inputs, sources and validity.
When to use it: When you need attestable evidence of the checks you performed.
- Required input
- bundle, createdAt
- Optional input
- —
- Output fields
- state, receipt, keyId, algorithm, validUntil
- Price
- €0.25 per accepted call
Example input
{ "bundle": { "eori": "BE0403170701", "code": "6109100010" },
"createdAt": "2026-08-03T09:12:04Z" }Example output
{ "state": "prepared",
"algorithm": "Ed25519",
"keyId": "import-2026-07",
"validUntil": "2026-09-02T09:12:04Z" }- Charges you
- prepared, partial, needs_review
- Costs €0.00
- 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.
Shared usage and balance
One workspace has one free trial and one prepaid balance. Both are shared across every available Jithox MCP server — you do not buy a balance per server, and a credential never holds money of its own.
Free trial
25 accepted calls
14 days, shared across the available MCP servers. No card. The trial starts at your first call, not at sign-up.
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 shared trial → one shared EUR balance → several authorized MCP servers → paid calls → receipts.
- You do not buy a balance per MCP server — one balance covers all of them.
- 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.
- Future paid Jithox MCP servers draw on this same balance; 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 (Streamable HTTP) https://import.mcp.jithox.com/mcp # Your client discovers OAuth automatically: https://import.mcp.jithox.com/.well-known/oauth-protected-resource # Placeholders — never commit real values YOUR_CLIENT_ID YOUR_CREDENTIAL
Example call
POST https://import.mcp.jithox.com/mcp
{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"validate_eori","arguments":{ /* see required input above */ }}}The response carries a decision state, the evidence behind it, and _meta.receipt. If the call is accepted and chargeable, €0.25 is captured from your balance — otherwise the hold is released.
Errors
| Code | Meaning |
|---|---|
| 401 | Authentication required — re-run the OAuth flow. |
| 403 | Insufficient scope, or a token for a different server. |
| 402 | Free calls used up and the balance cannot cover this call. Nothing ran, nothing was charged. |
| 429 | Rate limited. Honour retry-after; nothing was charged. |
| 503 | The 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
- Candidates and estimates, never a binding customs classification or a clearance decision.
- Read-only: it files nothing with any authority.
- A missing baseline returns unavailable rather than a fabricated code.