
Tariff Resolver
io.github.opsloft由 GitHub 帳號 opsloft 發布v1.1.0更新於 Oct 24, 2026
US import duty research: HTS codes, Chapter 99 duties, MPF/HMF fees, landed cost. USITC data.
概覽
一個本地的美國進口關稅研究工具,能協助AI助理根據官方USITC資料查找HTS代碼並計算到岸成本。
- 可以做什麼
- 從產品描述中找出HTS代碼候選項目,並附上CBP CROSS裁決連結。使用MFN/FTA基礎稅率加上第99章關稅和費用計算到岸成本組成部分。透過監控特定HTS代碼或檢查修訂差異來追蹤關稅變動。管理用於監控的本地HTS代碼觀察清單。
- 適用情境
- 當您需要研究美國進口關稅、估算進入美國貨物的到岸成本或追蹤美國關稅時間表變動時使用此工具。
- 執行需求
- 需要Node.js ≥ 18。作為本地程序運行。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Tariff Resolver,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
tariff-resolver
[npm version] [CI] [coverage: ≥95% lines, CI-enforced] [npm downloads] [node] [MCP Registry] [license: MIT]
An MCP server that turns your AI assistant into a US import duty research tool — built on official USITC Harmonized Tariff Schedule data (US Government public domain, 35,000+ tariff lines).
- 🔍 HTS code candidates from plain product descriptions, with CBP CROSS ruling links
- 🧮 Landed-cost components: MFN/FTA base rates + Chapter 99 additional duties (IEEPA / Section 301 / 232) + MPF/HMF fees
- 📡 Tariff change tracking: watchlist your HTS codes, diff rates between HTS revisions
- 🤖 AI-optimized, hallucination-resistant: returns the actual Chapter 99 rule text with parsed rates, so your LLM reasons over real exception chains instead of inventing 2024-era numbers
Why now: since the de minimis exemption ended (Aug 29, 2025), every US-bound shipment needs an HTS code and duty payment — and 2025–26 rates keep changing by executive order.
Not affiliated with any government agency. Outputs are candidates/estimates for pre-broker screening — not customs, legal, or tax advice. Estimates exclude AD/CVD duties.
Install
Requires Node.js ≥ 18.
Or in any MCP client config:
Claude Desktop (one-click): download tariff-resolver-<version>.mcpb from Releases and double-click it — no terminal needed.
💡 Try these prompts
- Basic search: "Find the HTS code for a men's 100% cotton t-shirt."
- Full scenario: "Calculate the tariff scenario for HTS 6109.10.00, origin China, customs value $5,000, ocean freight."
- Sourcing decision: "I'm importing $10k of stainless steel vacuum flasks. Compare landed cost if I source from China vs Vietnam."
- Stay current: "Watch tariff changes for my catalog: 6109.10.00, 8507.60.00, 9617.00.10."
Tools
Design
The server does the retrieval; your LLM does the reasoning. Chapter 99 rules are returned verbatim (with parsed adder_pct where applicable) so the model reads the actual exception chains instead of trusting a black-box calculation. Rates for 10-digit statistical suffixes inherit from their parent rate line. Headings the schedule marks as dead — terminated, suspended, expired — are filtered out and counted, and the USITC's own compiler_note rides along with any rule that carries one.
Status overrides. data/status_overrides.json is a short, sourced list of Chapter 99 headings whose collection has stopped, expired, or been suspended even though the schedule still prints them. A layer matching an entry is returned under possibly_expired with the entry's status, reason, source URL and as_of date instead of in layers. Every entry carries a CBP, Federal Register or USITC source; pull requests adding entries must include one.
What the data cannot tell you. The published schedule is wrong in both directions at any given moment, so every result carries a stacking_warning and the snapshot date. Provisions whose collection has already stopped keep printing with no end date — IEEPA and Section 122 headings are the recurring case — and newly proclaimed actions appear in the schedule days after they take effect. Totalling every layer the schedule prints yields a rate nobody is charged. Treat the layers as candidates, and verify collection status against CBP CSMS messages before relying on a stack.
One core, two front doors. All duty logic lives in tariff-resolver/core (pure TypeScript, no filesystem or network): resolveDuty(dataset, { hts, origin, value_usd?, ocean? }) — origin takes an ISO-3166 alpha-2 code or an English country name — returns the base line, separate MPF/HMF, every candidate Chapter 99 layer with match and confidence, a sourced possibly_expired bucket, and the snapshot date. The MCP tool calls it; so can any Node or edge runtime. A country name that is not recognised returns the ORIGIN_UNKNOWN error rather than a partial match, so a misspelled origin can never quietly resolve to a thinner stack of layers.
Data
Ships with a full HTS snapshot, fetched from USITC's official JSON API (US Government public domain). Refresh anytime:
dataset_info reports the revision date your queries run against.
Privacy Policy
tariff-resolver runs entirely on your machine and collects nothing:
- Data collection: none. No queries, telemetry, analytics, or usage data are collected or transmitted.
- Usage and storage: your watchlist is stored in a local JSON file on your machine; all lookups run against the bundled local dataset.
- Third-party sharing: none. The server makes no network requests at runtime. (The optional
scripts/fetch_hts.pyrefresh script contacts only the official USITC API.) - Data retention: nothing to retain — delete the local watchlist file at any time.
- Contact: [email protected]
Full policy: https://opsloft.dev/privacy
License
MIT. Tariff data is a work of the US Government (public domain).
來源:README.md,提交 3968b88
工具
0版本歷史
1- v1.1.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分