Skip to content

Jithox EU Import Preflight

by jithox.com · remote · no sign-in to list tools · v0.4.1 · published by com.jithox

Read-only EU import preflight: EORI, TARIC candidates, measures, low-value cost. Evidence only.

Changes · 3

5 tools: 3 change things and 2 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http eu-import-preflight https://import.mcp.jithox.com/mcp --header 'Authorization: <your-authorization>'

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "check_eu_import_measures" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "check_eu_import_measures" says "import": a word for a change.

    What this check looks for
  • The server marks "estimate_low_value_import_cost" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "estimate_low_value_import_cost" says "import": a word for a change.

    What this check looks for
  • The server marks "prepare_import_preflight_receipt" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "prepare_import_preflight_receipt" says "import": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

5 tools

Changes things 3Claude Code: ask
  • check_eu_import_measuresFor a candidate TARIC code + origin, list EU-level import measures from a dated snapshot: third-country duty, tariff preferences, prohibitions/restrictions, surveillance.1 finding

    Why it is in this group

    • The name "check_eu_import_measures" says "import": a word for a change.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "check_eu_import_measures" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "check_eu_import_measures" says "import": a word for a change.

      What this check looks for
    Description, as the server wrote it
    For a candidate TARIC code + origin, list EU-level import measures from a dated snapshot: third-country duty, tariff preferences, prohibitions/restrictions, surveillance. A restriction hit is a 'not_ready' signal to review, not a legal determination; compound/unknown measures return 'needs_review'; no snapshot → 'unavailable'. Classifications/measures are CANDIDATES for a declarant to confirm; only a BTI binds. TARIC carries no national VAT/excise — those are separate. Every result carries its source, retrieval time and validity window.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • estimate_low_value_import_costEstimate the landed cost for a low-value consignment (intrinsic value ≤ EUR 150) to an EU state on a given date: EUR 150 duty relief until 2026-06-30, then the temporary EUR 3-per-…1 finding

    Why it is in this group

    • The name "estimate_low_value_import_cost" says "import": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "estimate_low_value_import_cost" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "estimate_low_value_import_cost" says "import": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Estimate the landed cost for a low-value consignment (intrinsic value ≤ EUR 150) to an EU state on a given date: EUR 150 duty relief until 2026-06-30, then the temporary EUR 3-per-item duty from 2026-07-01, plus destination import VAT. All amounts are candidates; missing data is returned as 'missing', never guessed. TARIC carries no national VAT/excise — those are separate. Every result carries its source, retrieval time and validity window.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • prepare_import_preflight_receiptBundle the preflight checks (EORI, candidate classification, measures, cost) into one idempotent Ed25519-signed receipt committing to the inputs, sources, retrieval times and valid…1 finding

    Why it is in this group

    • The name "prepare_import_preflight_receipt" says "import": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "prepare_import_preflight_receipt" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "prepare_import_preflight_receipt" says "import": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Bundle the preflight checks (EORI, candidate classification, measures, cost) into one idempotent Ed25519-signed receipt committing to the inputs, sources, retrieval times and validity dates — provable evidence of WHAT was checked and WHEN. Attests the checks, not a compliance or clearance outcome. Read-only preflight; not customs/tax/legal advice, not a customs decision or clearance.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
Only reads 2Claude Code: allow
  • search_taric_codesFrom a plain-language product description, return CANDIDATE TARIC/CN codes from a dated TARIC snapshot, ranked with the evidence used.No findings

    Why it is in this group

    • The name "search_taric_codes" says "search": a word for reading.
    Description, as the server wrote it
    From a plain-language product description, return CANDIDATE TARIC/CN codes from a dated TARIC snapshot, ranked with the evidence used. Returns 'needs_review' (candidates to confirm) or 'unavailable' when no snapshot is provisioned — never an invented code. Classifications/measures are CANDIDATES for a declarant to confirm; only a BTI binds. TARIC carries no national VAT/excise — those are separate. Every result carries its source, retrieval time and validity window.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • validate_eoriStructural check of an EORI number and, when the EU EOS provider is configured, an authoritative existence check.No findings

    Why it is in this group

    • The name "validate_eori" says "validate": a word for reading.
    Description, as the server wrote it
    Structural check of an EORI number and, when the EU EOS provider is configured, an authoritative existence check. Provider outage or unknown status returns 'unavailable'/'needs_review', never a false 'invalid'. Structural validity is not proof of customs authorisation. Read-only preflight; not customs/tax/legal advice, not a customs decision or clearance.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: 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.4.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http eu-import-preflight https://import.mcp.jithox.com/mcp --header 'Authorization: <your-authorization>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__eu-import-preflight__validate_eori",
      "mcp__eu-import-preflight__search_taric_codes"
    ],
    "ask": [
      "mcp__eu-import-preflight__check_eu_import_measures",
      "mcp__eu-import-preflight__estimate_low_value_import_cost",
      "mcp__eu-import-preflight__prepare_import_preflight_receipt"
    ],
    "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 eu-import-preflight. Review it before you use it.