
Research
/Security News
77 Firefox Extensions Linked to Crypto Wallet and Credential Theft
Socket uncovered 77 linked Firefox extensions, including 40 that steal wallet secrets or credentials and 37 deceptive sports-score shells.
@toolstop/export-control
Advanced tools
MCP server that answers whether the US Commerce Country Chart requires an export licence for a given ECCN to a given destination, from the published CFR tables.
Does the US Commerce Country Chart require an export licence for a given ECCN to a given destination?
It reads two published tables, both US federal regulation and therefore public domain:
Both are embedded in the package from the 2026-01-01 edition. There is no upstream API call, no key, and no account.
// Claude Desktop, Cursor, VS Code
{ "mcpServers": { "export-control": { "url": "https://export-control.toolstop.dev" } } }
npx @toolstop/export-control # stdio, nothing leaves your machine
| Tool | Answers |
|---|---|
check_export_license | ECCN + destination, does the chart require a licence, and which reasons trigger it |
lookup_eccn | One Control List entry: title, reasons for control, scope caveats |
lookup_country | Which of the 16 control columns a destination carries |
explain_reason_code | What NS, AT, CB and the rest stand for |
check_export_license { eccn: "3A001", country: "Japan" }
-> licenseRequired: true, triggered by NS1 and RS1, with the scope text
for each control
check_export_license { eccn: "3A001", country: "Canada" }
-> licenseRequired: false, plus the RS controls on that entry that the
chart does not decide
It cannot classify an item into an ECCN, and you must not guess one. Classification depends on an item's technical parameters, not its name, and it is the exporter's legal responsibility. Without an ECCN, this server has no useful answer, and feeding it a plausible-looking guess produces a confident meaningless one.
licenseRequired: false is not permission to export. It means the country
chart alone does not require a licence for that ECCN to that destination. Every
answer carries a notCovered list, because all of the following still apply:
Four destinations never get a chart answer. Cuba, Iran, North Korea and Syria
return embargoed with a referral to part 746, because the chart does not govern
them and reading their row as permission would be badly wrong.
Ambiguous country names are not guessed. "Congo" returns both Congos and asks you to choose. So does anything else matching more than one row.
It is a snapshot, and the regulation is the authority. The CFR changes by Federal Register amendment. If this disagrees with the current regulation, the regulation wins and the disagreement is a bug worth reporting.
This is not legal advice.
Nothing you submit is recorded. Telemetry captures the shape of a call, not its values: field names with types and lengths, never an ECCN or a destination.
What is recorded. One row per request, retained 90 days:
| The call | Server name and version, MCP method, tool name, outcome, error class (never the message), duration, result size |
| The client | Client name, version and protocol version as your software reports them, plus a truncated user agent |
| Coarse location | Country and Cloudflare data centre. Never a precise location |
| Argument shape | Field names with types and lengths, for example str:5. Never a value |
| A session id | A hash of your user agent, the date, this server's name, and the network block your request came from, truncated to a /24 or /48 first. It counts distinct sessions in a day, does not link across days, and cannot distinguish two callers behind one network |
Running over stdio, none of this happens. The server runs on your machine and deliberately does not phone home.
data.mjs is generated from eCFR, which is keyless and public:
curl "https://www.ecfr.gov/api/versioner/v1/full/<date>/title-15.xml?part=738" -o chart.xml
curl "https://www.ecfr.gov/api/versioner/v1/full/<date>/title-15.xml?part=774" -o ccl.xml
The country chart is one table keyed by a 16-column header (CB 1 through
AT 2); the Control List is one entry per <FP-2><B> heading whose text starts
with an ECCN, each carrying a Reason for Control: line and a two-column table
mapping a control to its chart column.
Two shapes in that source will silently lose data if a rewrite misses them.
Some control tables merge both cells into one colspan="2" cell, and the four
embargoed destinations carry a referral sentence instead of X marks rather than
appearing as an empty row.
MIT for the code. The underlying tables are US federal regulation and are in the public domain.
FAQs
MCP server that answers whether the US Commerce Country Chart requires an export licence for a given ECCN to a given destination, from the published CFR tables.
The npm package @toolstop/export-control receives a total of 675 weekly downloads. As such, @toolstop/export-control popularity was classified as not popular.
We found that @toolstop/export-control demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket uncovered 77 linked Firefox extensions, including 40 that steal wallet secrets or credentials and 37 deceptive sports-score shells.

Security News
NIST disclosed an unreleased AI tool called V-etalon and opened a broad inquiry into NVD modernization after years of automation plans produced no public enrichment system.

Security News
In his AI Council 2026 talk, Feross Aboukhadijeh covers recent package compromises, vulnerability discovery, and a more automated security model.