# Tariff Code Compliance Explorer with MCP: Tools

These read-only tools cover account status, tariff-system discovery and native knowledge graphs. Call `tools/list` for the complete current catalog, including ruling and Customs Bulletin research.

## Core graph and account tools

This is a guide to tool families, not a fixed total. Use the live `tools/list` response for names, input schemas, and availability in your connection.

- `get_account_status`: read the connected account's balance, currency, allowance and recharge state. This tool remains available at zero balance and does not initiate payment or change settings.
- `list_tariff_systems`: list enabled tariff systems and exact versions.
- `describe_tariff_system`: return one system's native profile and version-specific guide.
- `resolve_nodes`: resolve a native node by source key or typed identifier.
- `search_nodes`: search native tariff nodes in an explicit system and version.
- `get_node`: fetch one native tariff node by opaque node ID.
- `list_node_edges`: list filtered incoming or outgoing edges for one node.
- `traverse_nodes`: traverse a bounded graph from one or more node IDs.

## HTS discovery and customs research

- `search_hts`: lexical full-text discovery across provisions, headings, ancestor context, and indexed notes in an exact selected US HTS build.
- `semantic_search_hts`: conceptual discovery in that same selected build. The query is sent to OpenAI for embedding; semantic similarity is not a legal conclusion.
- `search_cross_rulings`: lexical, reference, and exact ruling discovery in retained TCC snapshots. Exact ruling lookup also returns retained source text, with pinned continuations for longer documents.
- `semantic_search_cross_rulings`: conceptual CROSS ruling discovery in retained TCC data.
- `search_customs_bulletins`, `semantic_search_customs_bulletins`, and `get_customs_bulletin_document`: discover and read indexed Customs Bulletin evidence.

Ruling and Bulletin research uses retained TCC snapshots and prepared artifacts.
Official source links are citations, not request-time dependencies. Missing or
stale retained evidence remains a research gap; no direct CBP or Bulletin request
is used as a fallback. Retained lifecycle signals are not proof of current legal
status.

For HTS searches, obtain the version from `list_tariff_systems` and inspect `describe_tariff_system` before searching. Use `scope={type:chapter,number:"61"}` with `kinds=["note"]` for chapter 61 notes. Scope intersects with kinds before ranking. `scope={type:chapter,number:"*"}` with `kinds=["note"]` covers indexed chapter and section notes; `scope={type:general_note,number:"*"}` covers indexed General Notes. Follow the current tool schema for GRI and specific-note scopes.

Keep the returned version, graph node IDs, official evidence locators, and source links when fetching supporting records. A semantic hit is a lead to verify against the governing text, not a classification recommendation. Neither lexical nor semantic search should silently stand in for the other. If the selected build or evidence is unavailable, report that limitation rather than switching versions or implying complete coverage.

## Optional research panel

When exposed by your connection, `render_research_panel` presents already
researched candidate nodes, meaningful milestones and a next check in compatible
MCP Apps hosts. Clarification stays in chat. Its authority notebook opens on demand
and keeps source passages separate from model assessments and comparisons.
It resolves enabled systems and defaults from runtime discovery, retrieves up to
six unique graph records for up to three candidates in one exact version, and can
include up to two already researched CBP rulings with lifecycle metadata. Partial
passages and unavailable source text are marked explicitly.
An empty initial view performs discovery only; hydrating evidence uses ordinary
metered graph lookup access. The panel does not classify products autonomously
or change records. Use the normal text workflow when UI support is unavailable.

## Account recovery

Use `get_account_status` when a research call is denied. Distinguish missing authentication from verification or balance restrictions. Complete sign-in or verification in the service's own window; use any returned account or billing link yourself. Reading status does not initiate payment or authorize changing recharge settings. After resolving access, retry the same research request with its selected version.

## Recommended sequence

1. Call `list_tariff_systems`.
2. Use the returned `system` and `version` in later calls.
3. Call `describe_tariff_system` before assuming identifier schemes, node kinds, or relations.
4. Resolve or search for a node before using its opaque `node_id` in fetch or traversal calls.

## Pagination and bounds

Paged graph tools return at most 25 items. When `page.has_more` is true, pass `page.next_page_token` back as `page_token`. Paged graph tools do not return exact totals.

Traversal is bounded by `max_depth`, `max_nodes`, and `max_edges_per_node`. If `truncated` is true, narrow the traversal instead of treating it as complete.

An over-broad search returns `Search is too broad. Narrow your search and try again.` Narrow the query instead of retrying it unchanged.

Return to [Tariff Code Compliance Explorer with MCP](/docs/mcp), review the [prompts](/docs/mcp/prompts), or continue to the [examples](/docs/mcp/examples).
