Skip to main content
Glama

export_controls_screen

Screen goods for export-control restrictions to a destination country.

Combines the goods classification with the destination's restriction status and returns whether a license is required, the risk level, applicable license policies (e.g. presumption of denial), control reasons (NS, MT, NP, CB, AT), and proliferation/dual-use flags. Identify the goods by ANY of: ECCN, HS code, or a free-text description (English or Russian).

IMPORTANT — jurisdiction nexus: each jurisdiction's controls only bind a payment/shipment when there is a nexus to that jurisdiction (US EAR binds US persons, USD-clearing, and US-origin items; EU/UK/JP bind their persons, currencies, and origin). Use jurisdiction="ALL" for a comprehensive multi-jurisdiction view, or pick the one matching the actual touchpoints.

IMPORTANT, prefer eccn or hs_code: goods_description is a fallback: the classifier matches it lexically, so a vague description still returns one specific HS code and it is usually the wrong one ("industrial machinery" returns bakery and pasta machinery). When you pass a description only, the result carries classification_basis and classification_confidence_note; read them, never quote the inferred code back to the user as their HS code or ECCN, and ask for the code on their invoice or export declaration. The destination findings (embargo, transshipment risk, screening duties) are NOT affected by that doubt, so report them normally.

Args: destination_country: ISO 3166-1 alpha-2 destination code (e.g. "RU", "CN"). eccn: Optional Export Control Classification Number (e.g. "3A001"). hs_code: Optional Harmonized System code, 4-8 digits (e.g. "854231"). goods_description: Optional free-text goods description (EN or RU). jurisdiction: "US" (default), "EU", "UK", "JP", "ITAR", or "ALL".

Provide at least one of eccn / hs_code / goods_description.

Examples: export_controls_screen("RU", eccn="3A001") # electronics → Russia export_controls_screen("CN", eccn="3A090") # advanced computing → China export_controls_screen("IR", goods_description="industrial valves") export_controls_screen("RU", goods_description="drone", jurisdiction="ALL") export_controls_screen("DE", hs_code="854231") # → Germany (allied)

Use case: 'Can we ship integrated circuits to Russia?'

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
eccnNo
hs_codeNo
jurisdictionNoUS
goods_descriptionNo
destination_countryYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description fully carries the behavioral disclosure burden and does so richly. It explains the lexical classifier fallback, warns that vague descriptions return a likely-wrong HS code, instructs agents to never quote inferred codes as user-provided, and clarifies that destination findings are unaffected by classification doubt. These are meaningful behavioral traits beyond what any schema or annotation would show.

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 description is long but well-structured with clear paragraphs, IMPORTANT callouts, an Args section, and examples. It front-loads the core purpose before adding caveats. Some redundancy exists (e.g., the final use case restates the opening purpose), but the length is justified by the high-stakes, complex domain and the need to warn about classifier pitfalls.

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?

Given the tool's complexity, the description covers all essential aspects: input requirements, jurisdiction logic, classification uncertainty, return values (license, risk, policies, reasons, flags), and usage examples. An output schema is present, so the description does not need to enumerate every return field; it provides enough context for an agent to invoke the tool correctly and interpret results correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate, and it does. It explicitly lists each parameter, gives formats (ISO 3166-1 alpha-2, ECCN example, HS code digit range), acceptable jurisdiction values, and the 'at least one of' constraint. It also includes multiple usage examples that map parameters to real inputs, making parameter semantics far clearer than the raw 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?

The description opens with a specific verb+resource combination: 'Screen goods for export-control restrictions to a destination country.' It clearly explains the tool's combined function (goods classification + destination restriction status) and differentiates it from siblings by mentioning the multi-jurisdiction and license-determination aspects, which are not covered by other tools like goods_classify alone.

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?

The description gives a concrete use case ('Can we ship integrated circuits to Russia?') and provides guidance on when to use jurisdiction='ALL' versus a specific jurisdiction. It also warns against using goods_description when ECCN/HS code is available. However, it does not explicitly name alternative sibling tools or say 'use X instead when...', so it stops short of full when-not/alternatives guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.3/5.0
Disambiguation4/5

Most tools have distinct purposes, but some overlapping areas (goods_classify vs hs_code_lookup vs eccn_lookup; fx_rate vs fx_rate_history vs fx_volatility) require close reading of descriptions to select correctly. The detailed descriptions help, but the shear number of lookup tools creates mild ambiguity.

Naming Consistency3/5

Names mix verb-first (track_payment, mcp_verify) and noun-first patterns (iban_validate, fx_rate, ssi_lookup), with some phrase-like names (banks_using_correspondent, is_business_day_check). While readable, there is no single consistent convention.

Tool Count3/5

33 tools is heavy, but the server's broad scope (payments, FX, sanctions, export controls, company registries, SWIFT) justifies most of them. A few marginal tools (mcp_register, mcp_verify, company_search_result) add bulk without core value.

Completeness5/5

The tool set covers the payment lifecycle end-to-end: tracking, settlement, FX, compliance, sanctions, and company due diligence. There are no obvious dead ends; the tools chain together via next_steps and search_id flows.

Resources