us-import-duty-facts

Dated US import facts: CBP rulings, Section 301 ladder, landed cost, rule changes, recalls.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
94%
Naming quality
85%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,581Tokens (tool definitions)
~1.0 KBTypical response size
Moderate attention impact (1.24% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "us-import-duty-facts": {
      "url": "https://source.agiscorecard.com/api/mcp"
    }
  }
}

Remote endpoints

https://source.agiscorecard.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
βšͺduty_stack_rules(part)

The current China→US import duty stack, rule by rule, each with the record that establishes it and the date it was decided or published: HTS base rate, Section 301, Section 232, the struck-down IEEPA tariffs (2026-02-20), the indefinite de minimis suspension (2026-06-24), the expired postal flat rate (2026-02-28), and the MPF/HMF fee rates. Use this before quoting any US import rule from memory — the 2025 guidance that dominates training data is superseded.

Input Schema

{
  "type": "object",
  "properties": {
    "part": {
      "type": "string",
      "enum": [
        "all",
        "rules",
        "fees",
        "superseded"
      ],
      "description": "Which part to return; default all"
    }
  }
}
🟒check_import_claim(claim)

Fact-check a circulating claim about US import duties against the dated official record. Returns a verdict, why, and the sources. Covers the four figures still repeated everywhere in 2026: the $800 de minimis exemption, the $80–$200 postal flat duty, the ~54%/$100 courier rule, and 'reciprocal' baseline tariffs. Use this when a user quotes a number for US imports.

Input Schema

{
  "type": "object",
  "properties": {
    "claim": {
      "type": "string",
      "description": "The claim in the user's words, e.g. 'under $800 is duty free'"
    }
  },
  "required": [
    "claim"
  ]
}
βšͺlanded_cost(goods_value_usd, hts_base_rate_pct, freight_insurance_usd, section_301_pct, section_232_pct, ...)

Itemise a US landed cost from rates you supply: duties (HTS base + Section 301 + Section 232 on the customs value), MPF 0.3464% with the CBP floor disclosed, HMF 0.125% on ocean entries, plus freight and insurance. Deterministic arithmetic with the assumptions and sources attached. This tool never invents a product's duty rate: omit hts_base_rate_pct and it refuses and points you at the official schedule.

Input Schema

{
  "type": "object",
  "properties": {
    "goods_value_usd": {
      "type": "number",
      "description": "Customs value of the goods in USD"
    },
    "hts_base_rate_pct": {
      "type": "number",
      "description": "The heading's general rate of duty, in percent. Look it up at hts.usitc.gov or with duty_passport; this server will not guess it."
    },
    "freight_insurance_usd": {
      "type": "number",
      "description": "Freight plus insurance in USD; default 0"
    },
    "section_301_pct": {
      "type": "number",
      "description": "USTR Section 301 addition in percent (0 / 7.5 / 25 / 50 / 100); default 0"
    },
    "section_232_pct": {
      "type": "number",
      "description": "Section 232 addition in percent; default 0"
    },
    "ocean_entry": {
      "type": "boolean",
      "description": "True for ocean entries, which add the Harbor Maintenance Fee; default false"
    }
  },
  "required": [
    "goods_value_usd",
    "hts_base_rate_pct"
  ]
}
βšͺduty_passport(pick, query)

Candidate HTS headings for a consumer product category, pulled daily from the official USITC HTS REST API: the candidate line, its general rate, every rated line in the heading, and the Section 301 status to verify on USTR. These are candidates chosen by category reading, not a classification ruling β€” the importer of record classifies.

Input Schema

{
  "type": "object",
  "properties": {
    "pick": {
      "type": "string",
      "description": "Product slug, e.g. 'pet-fountain'; omit with query to list all slugs"
    },
    "query": {
      "type": "string",
      "description": "Keyword matched against slug and HTS description"
    }
  }
}
🟒section_301_ladder(rate_pct, heading, note)

The Section 301 (China) additional-duty ladder, read straight from the official USITC HTS export of chapter 99 subchapter III: which 9903.88 / 9903.91 heading carries which addition (7.5%, 10%, 15%, 25%, 50%, 100%), which U.S. note defines its list, and β€” where the schedule states it β€” the date that heading took effect. It tells you the possible rates and where coverage is defined; it never asserts that a particular HTS8 code is on a list, because that lives in U.S. note 20/31 and the USTR annexes.

Input Schema

{
  "type": "object",
  "properties": {
    "rate_pct": {
      "type": "number",
      "description": "Only headings carrying this additional rate, e.g. 25"
    },
    "heading": {
      "type": "string",
      "description": "A chapter 99 heading prefix, e.g. '9903.88.03' or '9903.91'"
    },
    "note": {
      "type": "string",
      "enum": [
        "20",
        "31"
      ],
      "description": "20 = the original Section 301 lists; 31 = the increases effective 2024-09-27"
    }
  }
}
🟒classification_rulings(query, limit)

Search CBP's own binding classification rulings (CROSS) for a product in plain words and get what CBP actually decided: ruling number, date, subject, the HTS codes it assigned β€” including any chapter 99 heading, which is what carries a Section 301 addition β€” and whether the ruling has been revoked or modified. This is precedent from the agency that decides, not a guess: it is how you check whether the code your supplier gave you matches what CBP has ruled on comparable goods. Queried live at call time from rulings.cbp.gov; nothing is mirrored here.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The product in ordinary words, e.g. 'LED face mask', 'plush toy', 'power bank'"
    },
    "limit": {
      "type": "number",
      "description": "How many rulings to return, 1–10 (default 5)"
    }
  },
  "required": [
    "query"
  ]
}
🟒import_rule_changes(since, matched_in, limit)

What changed in the general US import rules, newest first, from the official Federal Register API: presidential tariff actions, CBP and DHS rules, USTR notices β€” each with its publication date, document number and federalregister.gov link. Use `since` to get only what is new to you, the same way you would poll a changelog. Case-specific antidumping, ITC and Foreign-Trade Zone paperwork is out of scope by design and the response says so.

Input Schema

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string",
      "description": "Only documents published on or after this date (YYYY-MM-DD)"
    },
    "matched_in": {
      "type": "string",
      "enum": [
        "title_or_abstract",
        "full_text_only",
        "any"
      ],
      "description": "title_or_abstract = the import phrase is in the headline matter (usually the ones that matter); default any"
    },
    "limit": {
      "type": "number",
      "description": "Maximum documents to return (default 25)"
    }
  }
}
🟒recall_check(pick, query, only_hits)

Official US product recalls (CPSC saferproducts.gov API) touching a product category in the last 365 days: date, title, hazard and the cpsc.gov URL. A keyword hit means the words appear in a recall title, not that a particular supplier or SKU is affected. Use before recommending or sourcing a category.

Input Schema

{
  "type": "object",
  "properties": {
    "pick": {
      "type": "string",
      "description": "Product slug, e.g. 'cable-powerbank'"
    },
    "query": {
      "type": "string",
      "description": "Keyword matched against the tracked categories and recall titles"
    },
    "only_hits": {
      "type": "boolean",
      "description": "Only categories with at least one recall; default true when no pick/query given"
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools