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.8/5 across 4 of 4 tools scored.
Each tool has a distinct role: check_export_license combines ECCN and country for a verdict, lookup_eccn provides entry details, lookup_country provides destination chart rows, and explain_reason_code expands code definitions. There is no overlap that would cause an agent to select the wrong tool.
All tool names follow a consistent verb_noun pattern in snake_case: check_export_license, explain_reason_code, lookup_country, lookup_eccn. The convention is uniform and predictable.
Four tools is well-scoped for the focused purpose of export control license determination. Each tool earns its place as part of a coherent workflow, and the count is within the ideal range.
For the stated scope (Commerce Country Chart-based license checking), the tool set covers the full workflow: look up ECCN, look up country, check license, and expand reason codes. The descriptions explicitly note limitations, so there are no surprising gaps within the server's intended domain.
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.
Every verdict carries its own evidence and you should report it rather than the boolean alone. checked lists each chart cell that was read and what it held, so a negative answer can be verified against 15 CFR part 738 Supplement No. 1 without trusting this server; footnotes carries row conditions this tool does not apply and which can change the answer; sourceEdition says which CFR edition the tables came from, and a snapshot older than the current regulation gives a stale answer that still reads as confident.
| 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. |
| 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. |
| checked | No | Every chart-determined control on the entry, each with the column read, its reason code, the scope it applies to, and whether that column is marked for this destination. This is the citation for the verdict and it is the only way to check a `licenseRequired: false`, which otherwise arrives as a bare boolean. Verify it against 15 CFR part 738 Supplement No. 1 before relying on a negative answer. |
| country | No | The chart row that was matched. |
| message | No | Why no verdict was returned, when status is not `ok`. |
| footnotes | No | Footnotes on this chart row, each with its number and text. **They can change the answer and this tool does not apply them.** Footnote 6 is the Russia and Belarus sanctions and footnote 8 is Crimea. A `licenseRequired: false` on a row carrying footnotes is not a clear result until the footnote text has been read. |
| 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. |
| sourceEdition | Yes | The CFR edition the tables were taken from. Present on every response, including errors. Data older than the current regulation is a stale answer, not a wrong one, and the regulation is the authority. |
| countryColumns | No | Every control column marked for this destination on the chart row, whether or not it bears on this ECCN. |
| 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 beyond the readOnlyHint by explaining nuanced behaviors: the meaning of `false` (chart alone does not require a license, not clearance), the `indeterminate` result (unanswered question), the evidence fields (`checked`, `footnotes`, `sourceEdition`), and the staleness caveat that an older snapshot gives a confident but stale answer. This is exceptionally 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 long but every sentence earns its place, covering purpose, usage, return semantics, evidence fields, and limitations. It is front-loaded with the core function and organized into logical paragraphs, with 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?
Given the tool's complexity and the presence of an output schema, the description thoroughly explains return values, the meaning of verdicts, evidence fields, and potential pitfalls like stale data. It is as complete as needed for an agent to select and trust the tool.
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 description coverage is 100%, with both parameters already described with examples and constraints. The description only repeats 'ECCN and a destination country' and adds no additional parameter-specific guidance, so 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 verb+resource+scope: 'report whether the Commerce Country Chart requires an export licence, and which reasons for control trigger it.' It clearly distinguishes itself from sibling tools by focusing on checking export license requirements, not explaining reason codes or looking up countries/ECCNs.
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 the tool: 'Use this when someone is about to ship or transfer a controlled item abroad and needs the licence question answered before it moves.' It also provides clear exclusions: 'This tool cannot classify an item into an ECCN and will not try,' and clarifies that a false result is not clearance and does not cover Entity List, embargoes, or end-use controls.
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.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
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
- AlicenseNot gradedqualityAmaintenanceProvides 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
- AlicenseAqualityBmaintenanceEnables AI agents to screen business partners against EU/US/HADDEX sanctions and PEP lists, and maintain the easycompliance daily monitoring list.614MIT
- AlicenseAqualityDmaintenanceLive 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.245MIT