Export Control
Server Details
Does the US Commerce Country Chart require an export licence for an ECCN to a destination?
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- toolstop/toolstop
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.7/5 across 4 of 4 tools scored.
Each tool has a distinct role: license check, glossary lookup, country chart lookup, and ECCN lookup. There is no functional overlap; while lookup_eccn provides chart columns, check_export_license combines ECCN and country, so the purposes are clearly separated.
All tool names follow a consistent verb_noun pattern: check_export_license, explain_reason_code, lookup_country, lookup_eccn. Two use 'lookup' but the pattern is uniform and predictable.
Four tools is a well-scoped size for the export control domain. Each tool covers a core operation: country lookup, ECCN lookup, reason code explanation, and the combined license check. No redundant tools exist, and the count is neither too thin nor excessive.
Within the stated scope of determining export license requirements using the Commerce Country Chart, the tools provide a complete workflow: look up the country, look up the ECCN, and check the license decision. The reason code expansion completes the picture. The tools explicitly note what they do not cover (e.g., classification, entity lists), which is outside the domain scope.
Available Tools
4 toolscheck_export_licenseDoes the country chart require an export licenceARead-onlyInspect
Given an ECCN and a destination country, report whether the Commerce Country Chart requires an export licence, and which reasons for control trigger it. Use this when someone is about to ship or transfer a controlled item abroad and needs the licence question answered before it moves. Returns the triggering reasons with the scope text from the Control List entry, because many controls apply to only part of an entry, plus any controls that are not decided by the chart at all. A false result means the chart alone does not require a licence; it is not clearance to export, and it says nothing about the Entity List, embargoes, end-use controls, or whether the ECCN is the right one. An entry the chart does not decide returns indeterminate with its requirement text instead of a verdict, which is an unanswered question rather than a negative answer. This tool cannot classify an item into an ECCN and will not try.
| Name | Required | Description | Default |
|---|---|---|---|
| eccn | Yes | Export Control Classification Number, e.g. 3A001. Digit, letter A to E, three digits. | |
| country | Yes | Destination country as spelled on the Commerce Country Chart, e.g. Japan or Korea, South. |
Output Schema
| Name | Required | Description |
|---|---|---|
| eccn | No | The normalised ECCN. |
| title | No | The Control List entry heading, on an indeterminate result. |
| status | Yes | Outcome of the lookup. Only `ok` carries an answer. `embargoed` means the chart does not govern the destination. `indeterminate` means the entry has no country-chart control in this data and the chart cannot answer for it, which is not the same as no licence being required. `ambiguous_country` means the name matched more than one row and you must ask which was meant. |
| country | No | The chart row that was matched. |
| message | No | Why no verdict was returned, when status is not `ok`. |
| candidates | No | Possible destinations, when the country name matched more than one row. |
| notCovered | No | What this answer does not address. Always present on an answered lookup. |
| triggeredBy | No | Each control whose chart column is marked for this destination, with its scope caveat. |
| licenseRequired | No | Whether the country chart requires a licence. Present only when status is `ok`. False does not mean the export is permitted. |
| controlsNotOnChart | No | Controls on this entry that the chart does not decide, with the requirement text verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnlyHint annotation by explaining the meaning of false and indeterminate results, the scope text behavior, and that controls not decided by the chart are returned. It also clarifies that the tool does not attempt classification, which is important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is six sentences but every sentence adds meaningful information about use cases, return semantics, and limitations. It is front-loaded with the core purpose and then elaborates. Slightly long but justifiable for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 still explains return behavior thoroughly, including possible indeterminate outcomes and the scope text nuance. It covers limitations and what the tool does not do, making it complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides detailed descriptions for both parameters with examples (3A001, Japan). The description restates them in the opening but adds no new parameter-specific semantics. Given 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action: reporting whether the Commerce Country Chart requires an export licence for a given ECCN and country. It clearly distinguishes from sibling tools like lookup_eccn and explain_reason_code by focusing on the licence decision rather than classification or reason code explanation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use: when exporting/transferring a controlled item abroad and needing the licence question answered. It also gives exclusions: not clearance, doesn't cover Entity List/embargoes/end-use controls, and cannot classify an ECCN. However, it does not name specific alternative tools from the sibling list, so it's slightly less explicit than ideal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_reason_codeExpand a reason-for-control codeARead-onlyInspect
Expand a reason-for-control code such as NS, AT or CB into its full name. Use this when reading a Control List entry or a chart column and the two-letter code is not obvious. Returns the code and the name it stands for, or the whole glossary when called with no argument. This is a glossary lookup only: it reports what a code means, never whether that control applies to anything you are shipping, and it cannot tell you whether a licence is required.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | A two-letter reason code, e.g. NS. Omit to list all of them. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | The code, uppercased. |
| name | No | What the code stands for. |
| codes | No | Every known code, when none was given. |
| status | Yes | Outcome of the lookup. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, it discloses the output behavior (returns code and name, or whole glossary when no argument) and explicitly states it cannot judge control applicability or license requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, then usage, then return and limitations; no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with one optional parameter, the description covers purpose, usage, return values, and limitations; the output schema exists to detail further, so nothing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'code' parameter with 100% coverage, so the description's main added value is concrete examples and clarifying the no-argument behavior; it reinforces but does not significantly extend the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Expand') and resource ('reason-for-control code'), provides concrete examples (NS, AT, CB), and explicitly distinguishes itself from license-checking tools by stating it is a glossary lookup only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use ('when reading a Control List entry or a chart column and the two-letter code is not obvious') and clearly excludes license determination, preventing misuse in favor of tools like check_export_license.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_countryWhich control columns a destination carriesARead-onlyInspect
Return the Commerce Country Chart row for a destination: which of the sixteen control columns are marked, with each reason expanded. Use this to see how heavily controlled a destination is, or to check the chart's spelling of a country before another lookup. Special-controls destinations such as Cuba, Iran, North Korea and Syria return embargoed with a referral, because the chart does not govern them and reading a blank row as permission would be badly wrong. A marked column means a licence is required for items controlled for that reason; it says nothing about any particular item until you pair it with an ECCN.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | Destination country name, e.g. Germany. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | Outcome of the lookup. Only `ok` carries an answer. `embargoed` means the chart does not govern the destination. `indeterminate` means the entry has no country-chart control in this data and the chart cannot answer for it, which is not the same as no licence being required. `ambiguous_country` means the name matched more than one row and you must ask which was meant. |
| columns | No | Marked control columns, each with its reason code and expanded name. |
| country | No | The chart row that was matched. |
| referral | No | Where to look instead, for a special-controls destination. |
| footnotes | No | Chart footnotes on this row, each with its number and text. They carry conditions the grid cannot show, such as the Russia and Belarus sanctions and the Crimea controls, and they can change the answer. |
| candidates | No | Possible destinations, when the name matched more than one row. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint, the description discloses important behavioral details: the 'embargoed' result with referral for special destinations, the meaning of marked columns (licence required), and the limitation that it says nothing about specific items until paired with an ECCN. This exceeds the annotation coverage and prevents misinterpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence adds value, including the special-case caveat and the clarification about licence meaning. It is front-loaded with the primary purpose and structured logically from general behavior to exceptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (sixteen columns, special cases, integration with ECCN lookups), the description covers the key behaviors and usage context thoroughly. The presence of an output schema means return details need not be elaborated, and the special-controls warning addresses a critical edge case that could otherwise lead to unsafe conclusions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the single 'country' parameter with 'Destination country name' and an example. The description adds minor context about checking spelling before other lookups, but this is not essential to parameter usage. With 100% schema coverage, baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool returns the Commerce Country Chart row for a destination, specifying exactly what data it provides (which of sixteen control columns are marked, with reasons expanded). This clearly differentiates it from sibling tools by focusing on the chart rather than license checks, reason codes, or ECCN lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is given: 'Use this to see how heavily controlled a destination is, or to check the chart's spelling of a country before another lookup.' It also warns about special-controls destinations, implying when this tool is not appropriate for those cases and when a referral is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_eccnRead a Control List entry's reasons for controlARead-onlyInspect
Look up one ECCN on the Commerce Control List and return its title, its reasons for control, and the chart column each reason maps to. Use this to understand why an item is controlled, or to see the scope caveats before relying on a licence answer, since a control often applies to only some sub-paragraphs of an entry. Some entries are not decided by the country chart at all, and those return chartDetermined: false with the requirement text instead, or indeterminate when the entry carries no chart control at all. Knowing an entry's reasons for control does not tell you whether a licence is required for a destination; pass the ECCN to check_export_license for that. This tool cannot tell you whether an item falls under this ECCN.
| Name | Required | Description | Default |
|---|---|---|---|
| eccn | Yes | Export Control Classification Number, e.g. 5A002. |
Output Schema
| Name | Required | Description |
|---|---|---|
| eccn | No | The normalised ECCN. |
| title | No | The entry heading as published. |
| status | Yes | Outcome of the lookup. Only `ok` carries an answer. `embargoed` means the chart does not govern the destination. `indeterminate` means the entry has no country-chart control in this data and the chart cannot answer for it, which is not the same as no licence being required. `ambiguous_country` means the name matched more than one row and you must ask which was meant. |
| reasons | No | Reason-for-control codes on the entry, with their expanded names. |
| controls | No | Each control, its scope text, and the chart column or other requirement it maps to. |
| chartDetermined | No | Whether any control on this entry is decided by the country chart. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds substantial behavioral nuance beyond that: it explains the various return shapes (chartDetermined false with requirement text, or indeterminate when no chart control), and warns about scope caveats (control often applies to only some sub-paragraphs). It also discloses what the tool cannot do, which is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core function, then usage, then edge cases, then the critical distinction from check_export_license. Each sentence earns its place; the length is justified by the tool's behavioral complexity, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the output schema existing, the description explains the key return variants (chartDetermined false/indeterminate), the relationship to licence checking, and the limitation about classification. This covers the tricky parts an agent needs to know to invoke the tool correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the eccn parameter as 'Export Control Classification Number, e.g. 5A002.' The description adds little beyond calling it 'one ECCN' and using the term repeatedly; no new format, constraints, or examples are provided beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Look up one ECCN on the Commerce Control List and return its title, its reasons for control, and the chart column each reason maps to.' This clearly distinguishes it from siblings: it doesn't check licenses (check_export_license), explain reason codes (explain_reason_code), or look up countries (lookup_country).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('to understand why an item is controlled, or to see the scope caveats') and gives an exclusion: 'Knowing an entry's reasons for control does not tell you whether a licence is required for a destination; pass the ECCN to check_export_license for that.' It also notes a limitation: 'This tool cannot tell you whether an item falls under this ECCN.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityAmaintenanceProvides export-control compliance research and transaction-risk analysis for Korean semiconductor and battery companies, with tools for classifying ECCN, analyzing license exceptions, and drafting export-control clauses.MIT
- AlicenseAqualityDmaintenanceProvides tools to access Japanese export control laws, annexes, and user lists via e-Gov API, enabling real-time compliance checks for dual-use goods.11MIT
- AlicenseAqualityCmaintenanceLive US import tariff calculator covering 19,856 HTS codes, allowing AI to look up stacked tariff rates and project the November 10, 2026 cliff impact on any product.233MIT
- Alicense-qualityCmaintenanceScreens names against the US Consolidated Screening List including OFAC SDN and BIS Entity List, keyless.2MIT