Tariff Resolver logo

Tariff Resolver

Researches US HTS classifications, duty layers, fees, and tariff changes using local USITC data.

Install Tariff Resolver

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "tariff-resolver": {
      "command": "npx",
      "args": [
        "-y",
        "tariff-resolver"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command started, but didn't respond the way we expected when we tried to talk to it.

npx -y tariff-resolver

initialize succeeded but no response to tools/list.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked Today.

Overview

The tariff-resolver MCP server helps AI assistants research US import duties from a bundled USITC Harmonized Tariff Schedule snapshot. It searches for likely HTS codes, calculates base rates, candidate Chapter 99 layers, MPF/HMF fees, and landed-cost components, and links relevant CBP CROSS rulings. Watchlists and revision diffs help track changes over time. Reach for it during pre-broker screening or sourcing analysis, while verifying results with current CBP guidance because outputs are estimates and exclude AD/CVD duties.

Use cases

  • Find candidate HTS codes from product descriptions
  • Estimate US import duty and landed-cost components
  • Compare sourcing origins for an imported product
  • Track rate changes across HTS revisions
  • Review possible Chapter 99 duty layers

Key features

  • HTS candidate search with CBP CROSS links
  • MFN, FTA, Chapter 99, MPF, and HMF estimates
  • Origin-aware tariff scenario calculations
  • Local HTS revision watchlists
  • Current-versus-previous rate diffs
  • USITC dataset metadata reporting

Tools5

What Tariff Resolver lets your agent do. Expand a tool for its parameters.

Self-reported~127 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

8/8 checks healthy over the last 51d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 11h ago via OSV.dev · tariff-resolver (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars3Stargazers on the source repository.
npm downloads457Package downloads in the last 30 days.
Last commit1mo agoMost recent push to the default branch.
Install checkInconclusiveStarted but did not complete the MCP handshake in our test.
Tools exposed5Callable tools this server registers over MCP.

How Tariff Resolver works

What tariff-resolver MCP server does

The tariff-resolver MCP server provides local research tools for US import classification and duty estimation. It uses a bundled snapshot of official USITC Harmonized Tariff Schedule data containing more than 35,000 tariff lines. The server can identify likely HTS candidates from a product description, show associated rates, and include links to CBP CROSS rulings.

For a selected HTS code, origin, and customs value, it returns the base MFN or FTA rate, possible Chapter 99 additions, and separate MPF and HMF calculations. Weight can also be supplied for scenario calculations. Results identify the match and confidence for each candidate Chapter 99 layer and preserve source information for provisions that may have expired.

The tariff-resolver MCP server is intended for pre-broker screening, landed-cost comparison, and tariff research. It is not customs, legal, or tax advice, and its estimates do not include antidumping or countervailing duties.

How it works

The server runs against its local dataset rather than making network requests during normal use. Its MCP tools retrieve data and structure the result; the connected language model is responsible for interpreting the returned rules and exception chains. Chapter 99 text is supplied with parsed rates where applicable, allowing the model to inspect the source rule rather than rely on an opaque total.

Ten-digit statistical suffixes inherit rates from their parent tariff line. Schedule headings marked as terminated, suspended, or expired are filtered from the active layers and counted separately. A status override can place a matching provision in possibly_expired, along with its status, reason, source URL, and effective date. Results also include the dataset snapshot date and a stacking warning because published schedules may not reflect the latest collection status.

Origin accepts an ISO-3166 alpha-2 code or an English country name. An unrecognized country produces an ORIGIN_UNKNOWN error instead of silently calculating a thinner set of duties.

Setup and configuration

Node.js 18 or later is required. The package can be started through npx:

Terminal
claude mcp add tariff-resolver -- npx -y tariff-resolver

Alternatively, add a stdio server entry to an MCP client configuration:

config.json
{
  "mcpServers": {
    "tariff-resolver": {
      "command": "npx",
      "args": ["-y", "tariff-resolver"]
    }
  }
}

Claude Desktop users can install the release .mcpb package by downloading it and opening it. The included dataset can be refreshed with python3 scripts/fetch_hts.py; this optional script retrieves data from the official USITC API and fails rather than writing an incomplete dataset. dataset_info reports the revision date, row count, source, and license.

Tools and capabilities

  • search_hs_candidates maps a product description to likely HTS codes, rates, and CBP CROSS ruling links.
  • calculate_tariff_scenario evaluates an HTS code, origin, value, and optional weight, returning base rates, candidate Chapter 99 layers, possible expired provisions, and MPF/HMF.
  • watch_tariff_changes stores HTS codes in a local watchlist.
  • check_tariff_updates compares the current data with the previous HTS revision and reports changed rates.
  • dataset_info describes the local data snapshot.

The watchlist is stored in a local JSON file. No queries, telemetry, analytics, or runtime data are transmitted.

Limitations and notes

Tariff layers are candidates, not a guaranteed amount charged at entry. Collection status can change before the published schedule reflects it, so current CBP CSMS messages should be checked before relying on a duty stack. The bundled data is US government public-domain material, while the server is licensed under MIT.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Tariff Resolver

tariff-resolver is an MCP server that connects AI assistants to a bundled local snapshot of official USITC Harmonized Tariff Schedule data. Its main tools search HTS candidates, calculate tariff scenarios with Chapter 99 layers and MPF/HMF, track watched codes, compare revisions, and report dataset information for US import research.

Install it with Node.js 18 or later by adding `claude mcp add tariff-resolver -- npx -y tariff-resolver`, or place the equivalent `npx` command and arguments in an MCP client’s stdio configuration. Claude Desktop also supports the release `.mcpb` package.

Yes, normal lookups run locally without runtime network requests. The server uses its bundled USITC dataset and stores the watchlist in a local JSON file. The optional refresh script does contact the official USITC API to obtain updated data.

It calculates base MFN or FTA rates, candidate Chapter 99 layers, MPF, and HMF from the supplied scenario. Results are estimates for pre-broker screening, may require verification against current CBP notices, and exclude antidumping and countervailing duties.

Register codes with `watch_tariff_changes`, then use `check_tariff_updates` to compare the current HTS snapshot with the previous revision. The comparison identifies which rates changed, while `dataset_info` reports the active snapshot’s revision date.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewTariff Resolver AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/tariff-resolver?style=directory)](https://allmcps.com/mcp/tariff-resolver)
HTML Embed
<a href="https://allmcps.com/mcp/tariff-resolver"><img src="https://allmcps.com/api/badge/tariff-resolver?style=directory" alt="Tariff Resolver on AllMCPs" /></a>