Skip to main content
Glama
seelpeed-debug

export-controls-agent

Search the Commerce Control List

classify_eccn

Search the Commerce Control List for paragraphs matching your item's technical terms and return verbatim text plus license exception flags. A match is a pointer, not a classification.

Instructions

Search the text of the Commerce Control List (15 C.F.R. Part 774, Supplement No. 1) for entries and paragraphs that mention the technical terms in an item description, and quote the controlling language verbatim together with the entry's Reason for Control and List Based License Exception flags. This tool does NOT classify the item: a text match means the paragraph is worth reading, and the absence of a match does not establish EAR99 status.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
industryNoNarrows which CCL categories are searched. Use 'other' to search all categories.semiconductor
itemTypeNoequipment
keySpecsNoKey technical parameters, e.g. exposure wavelength, etch selectivity, node size, cathode chemistry.
itemDescriptionYesTechnical description of the item, software or technology. Technical nouns produce better matches than commercial names.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.1

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full disclosure burden and uses it well: it reveals the tool is a text-match searcher rather than a classifier, and explains the interpretation of both positive ('a text match means the paragraph is worth reading') and negative ('absence of a match does not establish EAR99 status') outcomes. It also pre-states the return envelope (verbatim quotes, Reason for Control, license exception flags). It stops short of disclosing limits such as result caps or pagination behavior.

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?

Two sentences with zero waste: the first front-loads the search-and-quote behavior, the second delivers the critical non-classification caveat. Every clause earns its place, and no schema content is needlessly repeated.

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?

Absent an output schema, the description covers the return-value contract (verbatim language, Reason for Control, List Based License Exception flags) and the no-match interpretation (does not establish EAR99). It could add workflow guidance — e.g., that actual classification should continue in a sibling like determine_license_requirement — but for a text-search tool the essential coverage is present.

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 coverage is high at 75% — industry, keySpecs, and itemDescription all have meaningful schema descriptions, and industry/itemType have enums — so the schema carries the semantic load. The description reinforces that itemDescription should contain 'technical terms' to be matched, but adds no new parameter-level meaning beyond what the schema already provides. Baseline 3 is appropriate when the schema does the heavy lifting.

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 precise verb+resource: 'Search the text of the Commerce Control List (15 C.F.R. Part 774, Supplement No. 1)' and specifies the exact output ('quote the controlling language verbatim together with the entry's Reason for Control and List Based License Exception flags'). The explicit 'does NOT classify the item' boundary clearly differentiates it from siblings like classify_transaction_risk, determine_license_requirement, and assess_ear_jurisdiction.

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?

Delivers explicit when-not guidance: 'This tool does NOT classify the item' and 'the absence of a match does not establish EAR99 status,' which prevents an agent from misusing it as a classification decision tool. However, it never names the alternative tools (e.g., determine_license_requirement, assess_ear_jurisdiction) that should be used instead, leaving that routing to inference rather than instruction.

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