Shop Duty Desk in Claude
Duty and customs data checks. The MCP server is https://shopduty.openkrill.app/mcp. No key. The steps below are only for Claude. A call to eu_duty_estimate was checked against that server on 2026-10-01.
What this server answers
Check the customs side of selling online across borders.
Ask "what EU duty applies to my 6 order lines shipped under IOSS?", "which products in my Shopify inventory export have no HS code or country of origin?", "find candidate tariff codes for these 15 products" or "what is the landed cost of this item shipped to the UK?".
Shop Duty Desk estimates the 3 euros per item EU customs duty on low-value consignments (Council Regulation (EU) 2026/382, with the item definition in Commission Delegated Regulation (EU) 2026/1022), and shows how many items a set of order lines counts as, with and without merging identical lines.
It checks a Shopify Inventory CSV (the file that holds HS code and country of origin) or product CSV for missing or malformed HS codes, origins, item identifiers and barcodes, and lists the rows to fix.
It suggests candidate tariff codes for product titles from the UK Trade Tariff and the US Harmonized Tariff Schedule, and estimates the landed cost of an item from a tariff line using those official duty rates and a small dated VAT table with a source for each rate.
Every HS code it returns is a candidate, not a binding classification; confirm it with customs or a customs broker.
It does not look up EU TARIC rates or Canadian rates, does not include US chapter 99 additional duties, and covers the 3 euros rule only for consignments up to 150 euros.
Order lines carry no customer data: lines with a name, address or other customer field are refused. Nothing you send is stored; there is no account and no IP address is kept, only a daily count of calls per tool.
What it can do
- Estimates the 3 euros per item EU customs duty for consignments up to 150, euros citing the regulations
- Counts items for the duty both as lines are given and with identical lines merged
- Checks a Shopify Inventory or product CSV for missing HS codes, origins, identifiers and invalid barcodes
- Suggests candidate UK and US tariff codes for up to 20 product titles, labelled not binding
- Estimates duty, VAT and landed cost of an item from a UK or US tariff line
Tools
eu_duty_estimate, Estimate EU duty on a low-value consignment. Estimate the EU customs duty on a consignment of up to 150 euros imported under IOSS or by post: 3 euros per item from 1 July 2026 until 1 July 2028 (Council Regulation (EU) 2026/382, Delegated Regulation (EU) 2026/1022). Use it for questions like "what duty applies to these order lines?", "how many items does this parcel count as?". Pass lines (description, origin, qty, unit_value_eur, optional hs_code) and channel (ioss or postal); optional consignment_value_eur and date. Lines must not carry customer fields. Returns the item count as given and with identical lines merged, the duty for each, the legal basis, and the assumptions. Consignments over 150 euros and dates outside the period return no duty and say why.customs_data_gap_check, Check a Shopify CSV for customs data gaps. Check the text of a Shopify Inventory CSV (it holds HS Code and COO, country of origin) or product CSV for missing or malformed HS codes, countries of origin, item identifiers (SKU or barcode) and invalid barcodes. Use it for "which products have no HS code?", "is my export ready for customs?". Pass the csv text exactly as exported, up to 2 MB. Returns counts (null where the file has no such column), up to 200 rows with the problem on each, and notes on columns the file lacks. Nothing is stored: the input is used for this answer and dropped.bulk_hs_candidates, Find candidate tariff codes for products. Suggest candidate tariff (HS) codes for up to 20 product titles from the UK Trade Tariff and, if asked, the US Harmonized Tariff Schedule. Use it for "what HS code could this product use?". Pass products (title, optional description) and optional markets (UK, US). Returns up to 3 candidates per product and market with code, description and source. Every code is a candidate, not binding; a large list may be cut short and says so per product.landed_cost_estimate, Estimate duty, VAT and landed cost. Estimate the duty, VAT and total landed cost of an item shipped to the UK, US or EU from a tariff line. Use it for "what will import duty and VAT be on this?". Pass hs_code (a full tariff line, a candidate, not binding), destination (UK, US, EU), goods_value and shipping in one currency; optional origin, and country (member state) for EU VAT. UK and US duty rates are read from the official tariffs; EU duty is not looked up. Returns duty, VAT and total with the rate, basis, sources and date. A rate that is not a plain percentage is returned as text with no amount. US chapter 99 additional duties are not included.
Add Shop Duty Desk in Claude
Claude connects to a remote MCP server as a custom connector. The connection is made from Anthropic's cloud, not from your laptop, so the server must be on the public internet. Shop Duty Desk is. These steps were checked against Claude's custom-connector article (updated 2026-08-11) and the Claude Code MCP docs on 2026-10-01.
On a Pro or Max plan:
- Open Customize, then Connectors.
- Select the plus button, then Add custom connector.
- Paste
https://shopduty.openkrill.app/mcp. Leave Advanced settings empty: this server does not need an OAuth client id or secret. - Select Add. The connector is yours. Anthropic has not reviewed it, and it is not a Directory listing.
- In a conversation, open the plus button, then Connectors, and enable Shop Duty Desk. Ask: What EU duty applies to these 6 order lines shipped under IOSS?
On Team and Enterprise, an Owner adds the connector first at Organization settings, then Connectors, then Add, then Custom, then Web, and pastes the same URL. Members then connect it from Customize. A Free plan can add one custom connector.
In Claude Code, add it from the project directory:
claude mcp add --transport http shop-duty https://shopduty.openkrill.app/mcp
That writes a local or user config. A JSON entry needs "type": "http" (or streamable-http) plus the url. An entry with a url and no type is skipped. Confirm with claude mcp get shop-duty. The tools you should see are eu_duty_estimate, customs_data_gap_check, bulk_hs_candidates, landed_cost_estimate.
Enable the connector only in conversations that need it. Claude can call the tools while you work, including during research, so turn off any tool you do not want invoked. Shop Duty Desk does not write to your accounts. It still receives the arguments of each call. Read the privacy page before you paste anything that is not public.
A call checked on 2026-10-01
Two identical low-value lines exercise the IOSS estimate. No customer fields are sent. The request below was posted to https://shopduty.openkrill.app/mcp as tools/call. HTTP 200. Source: the Shop Duty Desk server, read 2026-10-01.
{
"method": "tools/call",
"params": {
"name": "eu_duty_estimate",
"arguments": {
"channel": "ioss",
"lines": [
{
"description": "cotton t-shirt",
"origin": "CN",
"qty": 2,
"unit_value_eur": 12
}
]
}
}
}
- legal basis. 2 returned
- consignments. 1 returned
Repeat the call yourself if you need a newer reading. Cached answers expire. A rate limit is not a result: wait and try again. Nothing in the call is a ranking, a filing, or advice.