Skip to main content
Glama

usitc-tariffs-mcp-server

Server Details

Search USITC tariff schedules, inspect heading trees, and look up published duty rates.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP ยท MCP 2025-11-25
URL
Repository
cyanheads/usitc-tariffs-mcp-server
GitHub Stars
0
Server Listing
usitc-tariffs-mcp-server

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation4/5

Each tool has a distinct primary role: search, chapter browse, heading ancestry, rate lookup, Chapter 99 duty research, and reference metadata. The boundaries between usitc_lookup_duty_rate, usitc_check_additional_duties and usitc_get_heading could be confused at first glance, but the descriptions explicitly cross-reference each other and state when to use which.

Naming Consistency5/5

All tools use a uniform usitc_ prefix followed by a clear verb_noun or verb_object pattern (browse_chapter, get_heading, list_reference, lookup_duty_rate, search_hts, check_additional_duties). snake_case is used throughout with no deviations.

Tool Count5/5

Six tools is well within the ideal 3-15 range and each maps to a distinct step in the tariff research workflow (discover, browse, inspect, price, cross-check Chapter 99, resolve identifiers). No tool appears redundant or bloated.

Completeness4/5

The surface covers the core lifecycle of HTS research: search, chapter browsing, heading/ancestry inspection, exact rate lookup, Chapter 99 candidates, and reference metadata with pagination. Minor gaps exist, such as no historical edition lookup (explicitly disclaimed) and no bulk export, but agents can work around these via the provided cursors and follow-up identifiers.

Available Tools

6 tools
usitc_browse_chapterBrowse published HTS chapter headingsB
Read-onlyIdempotent
Inspect

Browse numbered headings with complete distinct eight-digit rate-line relationships and independent ten-digit statistical counts. A unique combined ten-digit source row can establish an absent eight-digit relationship. Published subchapter titles group following headings when present. Chapters 98 and 99 expose actual published entries without synthetic four-digit headings; grouping is unavailable without sourced markers. Reserved chapters can return a successful empty collection.

NameRequiredDescriptionDefault
limitNoRequested items as a positive safe integer; effectiveLimit discloses clamping to at most 100, and pages may be byte limited. Keep the same requested limit for continuation.
cursorNoOpaque nextCursor from the same tool with identical arguments.
chapterYesChapter 01โ€“99, accepting one or two digits.

Output Schema

NameRequiredDescription
pageNoComplete heading collection and continuation.
errorNoPresent when the call failed. Absent on success.
noticeNoActionable next call for this particular empty result.
sourceNoSource provenance.
chapterNoNormalized two-digit chapter.
noticesNoPersistent source and coverage limitations.
releaseNoEdition checked for this result.
headingsNoSource-order numbered entries.
totalCountNoComplete locally filtered item count.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only and idempotent, but the description adds useful domain-specific behavior: Chapters 98 and 99 expose actual published entries, grouping depends on sourced markers, and reserved chapters can return a successful empty collection. The wording is dense, but the extra behavioral context is substantive and does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably short and starts with the browse action, but it is written as a dense run of domain jargon rather than clearly structured guidance. The edge-case sentences earn their place, but the overall phrasing is harder to parse than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existing output schema and complete parameter schema, the description supplies the main non-obvious behavioral caveats an agent would need. It does not cover routing among siblings, but for calling the tool correctly the edge-case coverage is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so chapter, limit, and cursor are already well documented in the schema. The description does not add parameter-specific semantics beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: browsing numbered headings, with rate-line and statistical-count details. It is clear enough to identify this as an HTS chapter browsing tool, but it does not explicitly differentiate the tool from siblings such as usitc_get_heading or usitc_search_hts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus the sibling lookup/search tools. It mentions edge cases like Chapters 98 and 99 and reserved chapters, but those are behavioral notes rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usitc_check_additional_dutiesResearch Chapter 99 additional-duty evidenceA
Read-onlyIdempotent
Inspect

Find Chapter 99 candidate headings and source references for an exact eight- or ten-digit commodity number. Coverage is partial and empty candidates never establish clearance. Use candidates, evidence with a returned candidateCode, or unmapped views; follow returned noteId and noteCursor for complete source passages. Country comparisons retain unknown and different-country evidence. No applicability, current legal status, exclusions, stacking or combined duties are determined.

NameRequiredDescriptionDefault
codeYesExact eight- or ten-digit base commodity number, bare or conventionally dotted; Chapter 99 input is invalid.
viewNoOne result collection; evidence requires candidateCode.candidates
limitNoRequested items as a positive safe integer; effectiveLimit discloses clamping to at most 100, and pages may be byte limited. Keep the same requested limit for continuation.
cursorNoOpaque nextCursor from the same tool with identical arguments.
noteIdNoReturned supporting passage identifier; cannot combine with candidateCode, cursor or a nondefault view.
noteCursorNoReturned nextNoteCursor; requires the same noteId and original selectors.
countryCodeNoAssigned ISO alpha-2 country; comparison only, never sent upstream.
candidateCodeNoReturned Chapter 99 candidate number, only with view evidence.

Output Schema

NameRequiredDescription
codeNoCanonical exact commodity number.
pageNoComplete selected-collection pagination.
viewNoOnly the selected collection is included.
errorNoPresent when the call failed. Absent on success.
foundNoWhether that exact base number exists; a statistical miss never falls back.
noticeNoActionable next call for this particular empty result.
sourceNoSource provenance.
noticesNoPersistent source and coverage limitations.
releaseNoEdition checked for this result.
baseLineNoBase-line identification without duplicating the full source row.
coverageNoPartial coverage facts, never a completeness or clearance claim.
evidenceNoSelected complete evidence references for one candidate.
guidanceNoActionable follow-up for an exact base miss.
nextCallNoExact selected-collection continuation arguments.
notesPageNoComplete passage retrieval, without candidate arrays.
candidatesNoSelected whole candidates, without nested evidence passages.
totalCountNoComplete locally filtered item count.
notComputedNoLegal, qualification and arithmetic questions not determined.
candidateCodeNoSelected candidate in evidence view.
countryFilterNoFactual prioritization counts over the full candidate collection.
normalizationNoNotes decoding and normalization provenance; absent when notes were not searched.
collectionTotalsNoComplete collection totals before page selection.
unmappedEvidenceNoSelected unmatched references, including unresolved compiler notices.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld, yet the description adds real behavioral caveats an agent cannot infer: coverage is partial, empty candidates never establish clearance, and unknown/different-country evidence is retained in comparisons. It also enumerates what is deliberately out of scope (applicability, stacking, combined duties), which prevents over-trusting the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action and its input constraint, then the caveats; nearly every sentence carries distinct information. Density borders on cryptic ('unmapped views', 'different-country evidence') and could be slightly more readable, but nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema and rich annotations, the description covers domain limits, coverage gaps, and mode selection adequately. Paging behavior and return shape are handled by the schema, so remaining gaps are minor; a brief note on what a candidate result means for follow-up would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already fully documented structurally. The description only restates the candidateCode/noteId/noteCursor constraints already present in the schema, adding no syntax, format, or edge-case value beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Find Chapter 99 candidate headings and source references') scoped to an exact eight- or ten-digit commodity number. The closing disclaimer ('No applicability, current legal status... are determined') implicitly separates it from the duty-rate and search siblings, though no sibling is named directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete selection guidance across the three modes ('Use candidates, evidence with a returned candidateCode, or unmapped views') and a workflow instruction for noteId/noteCursor. It omits an explicit 'use this instead of usitc_lookup_duty_rate / usitc_browse_chapter' routing statement, so the alternative-selection half is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usitc_get_headingInspect an HTS heading and ancestryA
Read-onlyIdempotent
Inspect

Inspect a four-, six- or eight-digit HTS classification and its complete indented descendants, including unnamed superior rows. Published section titles are retained separately in sections, outside legal ancestry. Ancestry is built from the whole containing heading before filtering. Each parent and inherited-rate source has an exact nodeId follow-up. Chapters 98 and 99 preserve published forest roots without inventing four-digit records.

NameRequiredDescriptionDefault
codeYesFour-, six- or eight-digit HTS code, bare or conventionally dotted.
limitNoRequested items as a positive safe integer; effectiveLimit discloses clamping to at most 100, and pages may be byte limited. Keep the same requested limit for continuation.
cursorNoOpaque nextCursor from the same tool with identical arguments.
nodeIdNoExact returned node identifier within this classification subtree; omit to browse.

Output Schema

NameRequiredDescription
codeNoCanonical requested code.
pageNoComplete selected subtree and continuation.
errorNoPresent when the call failed. Absent on success.
foundNoWhether the requested classification has published nodes.
nodesNoFlat source-order nodes with legal parents and rate provenance.
noticeNoActionable next call for this particular empty result.
rootIdNoFirst selected source node; special chapters can have multiple published roots.
sourceNoSource provenance.
noticesNoPersistent source and coverage limitations.
releaseNoEdition checked for this result.
guidanceNoExecutable research guidance for a successful classification miss.
sectionsNoComplete published section markers from the containing heading, separate from legal ancestry.
totalCountNoComplete locally filtered item count.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, openWorld), and the description adds genuine behavioral context beyond them: ancestry is computed from the whole containing heading before filtering, section titles live in a separate 'sections' field outside legal ancestry, and chapters 98/99 preserve published forest roots without inventing four-digit records. These are non-obvious semantic rules an agent could not get from annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The what-is-it sentence is front-loaded, and each subsequent sentence carries a distinct fact (ancestry construction order, section titles, nodeId follow-ups, chapter 98/99 edge case). It is dense with domain jargon ('published forest roots', 'unnamed superior rows') that an unfamiliar agent may find opaque, but nothing reads as filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description instead covers the non-obvious edge cases (whole-heading ancestry, section titles kept separate, chapter 98/99 roots). Together with a fully documented 4-parameter schema and safety annotations, this is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents code, limit, cursor and nodeId thoroughly; the baseline is 3. The description adds some meaning to nodeId via the 'exact nodeId follow-up' note, but it does not explain the dotted/bare code convention or limit behavior beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Inspect a four-, six- or eight-digit HTS classification and its complete indented descendants'), which clearly separates it from a flat search tool. It never names the sibling tools (e.g. usitc_browse_chapter, usitc_search_hts), so an agent still has to infer the boundary itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the phrasing: 'omit to browse' (on nodeId) and 'Each parent and inherited-rate source has an exact nodeId follow-up' hint at drill-down behavior, but there is no explicit when-to-use versus search_hts or browse_chapter. No exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usitc_list_referenceDecode HTS references and published editionsA
Read-onlyIdempotent
Inspect

List accepted identifier formats, edition-pinned Special Program Indicators, chapter/section navigation labels, quantity units or published release metadata. Program names are decoded separately from country membership, which remains unknown without independently verified lists. Release records identify published editions but do not enable historical tariff lookup. Follow nextCursor for all entries.

NameRequiredDescriptionDefault
limitNoRequested items as a positive safe integer; effectiveLimit discloses clamping to at most 100, and pages may be byte limited. Keep the same requested limit for continuation.
topicYesReference table to retrieve.
cursorNoOpaque nextCursor from the same tool with identical arguments.

Output Schema

NameRequiredDescription
pageNoComplete reference count and continuation.
errorNoPresent when the call failed. Absent on success.
itemsNoComplete topic-specific records selected for this page.
topicNoRequested decoder or metadata topic.
noticeNoActionable next call for this particular empty result.
sourceNoSource provenance.
noticesNoPersistent source and coverage limitations.
releaseNoEdition checked for this result.
totalCountNoComplete locally filtered item count.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, open-world behavior. The description adds meaningful context beyond that: country membership remains unknown without verified lists, release records identify editions but do not enable historical lookup, and pagination must be followed via nextCursor. That is useful behavioral scope for a reference-list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is front-loaded and compact, with no filler. However, the first sentence is a dense list of disparate topics, and the relation between clauses is not always immediately clear. It earns its place but could be more scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values. It covers the topic families, pagination expectation, and important exclusions about country membership and historical lookup. It is complete enough for correct invocation, though a clearer when-to-use statement would strengthen it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents limit clamping, cursor opacity, and topic enumeration. The description only restates that several topic families exist and says to follow nextCursor, adding little semantic detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific retrieval action and enumerates the five reference topics (identifiers, SPIs, chapters, units, releases), matching the topic enum. It also implicitly distinguishes itself from sibling tariff-lookup tools by noting that release records do not enable historical tariff lookup. It is clear, though somewhat terse about being a reference-table tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides useful exclusions: program names are decoded separately from country membership, and release metadata does not support historical tariff lookup. This helps an agent avoid misusing the tool. It does not explicitly name sibling alternatives or state the primary 'use this before/after' workflow, keeping it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usitc_lookup_duty_rateLook up published base duty columnsA
Read-onlyIdempotent
Inspect

Retrieve an eight-digit rate line or exact ten-digit statistical number with all published General, Special and Column 2 cells. An explicit eight-digit row takes precedence; an absent one resolves only through a unique ten-digit source row, retaining its identity. Multiple suffixes stay unresolved. Blank statistical cells inherit only from the matching eight-digit legal ancestor. With countryCode, report edition-matched General Note 3(b) listing; Special-program membership stays unknown. Neither comparison establishes qualification or selects a column. Follow usitc_check_additional_duties for partial Chapter 99 research.

NameRequiredDescriptionDefault
codeYesExact eight- or ten-digit HTS identifier, bare or conventionally dotted.
countryCodeNoAssigned ISO 3166-1 alpha-2 country; comparison only, never sent upstream.

Output Schema

NameRequiredDescription
rowNoOriginal published source row, including a unique combined row when resolving an absent eight-digit number.
codeNoCanonical requested exact identifier.
errorNoPresent when the call failed. Absent on success.
foundNoWhether an exact source row or unique combined eight-digit relationship resolves.
noticeNoActionable next call for this particular empty result.
sourceNoSource provenance.
noticesNoPersistent source and coverage limitations.
releaseNoEdition checked for this result.
guidanceNoExact research follow-up for a successful miss.
totalCountNoComplete locally filtered item count.
resolvedRatesNoAll resolved duty columns when the exact number exists.
specialProgramsNoDecoded nonblank Special cell, preserving unmatched text.
chapter99PointersNoResearch pointer with no fabricated candidate count.
countryAssessmentNoEdition-pinned Column 2 listing with unresolved Special-program membership, qualification and column choice.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, open-world behavior, yet the description adds real substance: eight-digit rows take precedence, absent rows resolve only through a unique ten-digit source row, multiple suffixes stay unresolved, blank statistical cells inherit from the matching eight-digit ancestor. It also discloses limits (Special-program membership stays unknown; neither comparison establishes qualification or selects a column). Deduction only because several clauses ("retaining its identity") are cryptic rather than clarifying.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, which is good, but the body is a run of dense, comma-chained legal-technical clauses with no structure; sentences like "Multiple suffixes stay unresolved" and "retaining its identity" cost parsing effort without clear payoff. Shorter, separated statements would serve better.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. For a two-parameter, read-only lookup the description covers the essential caveats an agent needs: resolution precedence, unresolved cases, inheritance of blank cells, and the countryCode limitation. Complete enough to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning for `code` by explaining how eight- versus ten-digit forms resolve and what happens when resolution is ambiguous. It reinforces that countryCode is a local comparison never sent upstream โ€” though that is already in the schema, so the gain is modest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: retrieve an eight-digit rate line or ten-digit statistical number with all General, Special and Column 2 cells. It is clearly distinguishable from browse/search/get_heading siblings and explicitly hands off Chapter 99 work to usitc_check_additional_duties. It stops short of a plain one-line statement of purpose, burying the core action under resolution jargon.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only explicit routing is "Follow usitc_check_additional_duties for partial Chapter 99 research." Nothing tells the agent when to use this rather than usitc_get_heading or usitc_search_hts, which is the more likely confusion given the sibling set. Usage is largely implied by the tool's narrow input (a single HTS code).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usitc_search_htsSearch published HTS classificationsA
Read-onlyIdempotent
Inspect

Search published USITC descriptions or complete HTS code prefixes in source order. Matches are flat published rows with unresolved rates; call usitc_get_heading for legal ancestry and usitc_lookup_duty_rate for exact base rate columns. Follow nextCursor with identical arguments for all remaining matches.

NameRequiredDescriptionDefault
limitNoRequested items as a positive safe integer; effectiveLimit discloses clamping to at most 100, and pages may be byte limited. Keep the same requested limit for continuation.
queryYesNonblank commodity text or an HTS code prefix; preserve leading zeros.
cursorNoOpaque nextCursor from the same tool with identical arguments.

Output Schema

NameRequiredDescription
pageNoComplete matching collection and continuation.
rowsNoComplete source rows selected for this page.
errorNoPresent when the call failed. Absent on success.
queryNoNormalized query actually sent to USITC.
noticeNoActionable next call for this particular empty result.
sourceNoSource provenance.
contextNoFlat matches without reconstructed ancestry.
noticesNoPersistent source and coverage limitations.
releaseNoEdition checked for this result.
totalCountNoComplete locally filtered item count.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and openWorld, so the bar is lower; the description still adds the valuable caveat that matches carry unresolved rates and that pagination requires identical arguments. It stops short of describing result shape or page-size behavior, which are covered elsewhere, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences: purpose and scope first, then alternatives, then pagination mechanics. Each sentence carries distinct information and none restates the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full parameter documentation, the description only needs to cover routing, the unresolved-rate caveat, and continuation semantics, and it does all three. An agent can call and resume this tool correctly from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds meaning by clarifying that the query accepts either commodity text or a code prefix and that the cursor must be replayed with unchanged arguments. The limit parameter is left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Search') and resource ('published USITC descriptions or complete HTS code prefixes') plus ordering ('source order'), which is enough to distinguish it from usitc_browse_chapter and usitc_get_heading. The clause about flat published rows with unresolved rates further pins down what kind of result this is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to two named alternatives with the condition that selects each: usitc_get_heading for legal ancestry and usitc_lookup_duty_rate for exact base rate columns. It also gives the continuation rule ('follow nextCursor with identical arguments'), leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • First observedusitc_browse_chapter
    • First observedusitc_check_additional_duties
    • First observedusitc_get_heading
    • First observedusitc_list_reference
    • First observedusitc_lookup_duty_rate
    • First observedusitc_search_hts

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides access to US import tariff rates via the USITC Harmonized Tariff Schedule, enabling natural language queries for tariff data.
    22 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables US import compliance by providing CBP customs ruling letter searches and antidumping/countervailing duty order lookups, answering how Customs has classified products and whether trade-remedy duties apply.
    6 npm
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Turns your AI assistant into a US import duty research tool, enabling HTS code lookup, landed-cost calculation, and tariff change tracking using official USITC data.
    5
    36 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables looking up UK commodity codes and their full tariff details, including duty rates by origin, VAT, excise, import/export conditions, and live quota balances.
    19 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.