Agent Tools / MCP install guides / Shop Duty Desk in ChatGPT

Shop Duty Desk in ChatGPT

Duty and customs data checks. The MCP server is https://shopduty.openkrill.app/mcp. No key. The steps below are only for ChatGPT. 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

Tools

Add Shop Duty Desk in ChatGPT

ChatGPT does not read a local config file. A custom MCP server is added in the product, and only after developer mode is on. These steps were checked against OpenAI's plugin connect guide and the ChatGPT MCP guide on 2026-10-01. Developer mode can be hidden by a workspace policy, so a Team or Enterprise admin may have to allow it first.

  1. Open ChatGPT settings, then Security and login, and turn on Developer mode.
  2. Open ChatGPT plugins and select the plus button.
  3. Enter a name such as "Shop Duty Desk" and a one-line description of what you want it to answer.
  4. Under Connection, choose the public endpoint and paste https://shopduty.openkrill.app/mcp. Include the /mcp path. Do not add a tunnel id: this server is already public.
  5. Create the connection and review the tools ChatGPT lists. You should see eu_duty_estimate, customs_data_gap_check, bulk_hs_candidates, landed_cost_estimate. The feedback tools on the same server are optional and not required for the lookup.
  6. Start a new conversation, add the connection from the tools menu, and ask: What EU duty applies to these 6 order lines shipped under IOSS?

No API key and no OAuth client id are required. The server answers without a login. Calls are limited per network and per day, and a limit comes back as a tool error rather than a partial answer. If the tool list is stale after a server change, open the connection and select Refresh, then start a new conversation.

The ChatGPT desktop app, Codex CLI and IDE extension share a different config. In the desktop app, open Settings, then MCP servers, choose Add server, select Streamable HTTP, and paste the same URL. In ~/.codex/config.toml the equivalent is a table named mcp_servers.shop-duty with url = "https://shopduty.openkrill.app/mcp". ChatGPT on the web does not read that file. A published directory listing is also a different path: this page is the developer-mode connection, not a claim that Shop Duty Desk is already in the ChatGPT directory.

Treat the server as untrusted until you have read a few answers. A remote MCP server sees the arguments the model sends. Shop Duty Desk is read-only and documents what it sends onward on the privacy page.

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
        }
      ]
    }
  }
}

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.

Same server, other clients

Roles that use Shop Duty Desk

Terms used on this page

Source: plugin listing for shop-duty in this repository, and a live tools/call on 2026-10-01. As of 2026-10-01.