Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.cyanheads/un-comtrade-mcp-server

REMOTE · UN-COMTRADE.CASEYJHAND.COM · 2 COMPONENTS

UN Comtrade international trade statistics via MCP. Country/HS lookups, flows, balances, rankings.

+3 this week 86 Trust /100

Last scanned (1 hour ago)

Scores higher than 93% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Data and Analytics

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security83
Transport & Reachability100
Schema Quality & AI Usability76
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3457 tokens (~246/item across 14 items; 9 tools + 5 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management77
  • Stability observed for 23 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “comtrade_get_trade_balance” rewrote its description, which is the text the model reads security
    • Tool “comtrade_get_top_partners” rewrote its description, which is the text the model reads security
    • Tool “comtrade_get_services_trade” rewrote its description, which is the text the model reads security
    • Tool “comtrade_list_service_categories” rewrote its description, which is the text the model reads security
    • Tool “comtrade_lookup_countries” rewrote its description, which is the text the model reads security
    • Tool “comtrade_search_commodities” rewrote its description, which is the text the model reads security
    • Tool “comtrade_get_trade_flows” rewrote its description, which is the text the model reads security
    • Schema quality: 197 → 246 ▼ functional
    • Server version: 0.3.0 → 0.3.1 functional
    • “comtrade_get_top_partners” added an optional parameter “classification” cosmetic
    • “comtrade_get_services_trade” added an optional parameter “classification” cosmetic
    • “comtrade_list_service_categories” added an optional parameter “offset” cosmetic
    • “comtrade_search_commodities” added an optional parameter “offset” cosmetic
    • “comtrade_get_trade_balance” reworded the description of “freq” cosmetic
    • “comtrade_get_top_partners” reworded the description of “limit” cosmetic
    • “comtrade_get_top_partners” reworded the description of “cmd_code” cosmetic
    • “comtrade_get_top_commodities” reworded the description of “reporter_code” cosmetic
    • “comtrade_get_top_commodities” reworded the description of “partner_code” cosmetic
    • “comtrade_get_top_commodities” reworded the description of “limit” cosmetic
    • “comtrade_get_services_trade” reworded the description of “service_code” cosmetic
    • “comtrade_get_services_trade” reworded the description of “period” cosmetic
    • “comtrade_get_data_availability” reworded the description of “freq” cosmetic
    • “comtrade_get_trade_balance” reworded the description of “reporter_code” cosmetic
    • “comtrade_get_trade_balance” reworded the description of “period” cosmetic
    • “comtrade_get_trade_flows” reworded the description of “period” cosmetic
    • “comtrade_get_trade_flows” reworded the description of “reporter_code” cosmetic
    • “comtrade_list_service_categories” reworded the description of “limit” cosmetic
    • “comtrade_list_service_categories” reworded the description of “parent_code” cosmetic
    • “comtrade_search_commodities” reworded the description of “classification” cosmetic
    • “comtrade_search_commodities” reworded the description of “limit” cosmetic
    • “comtrade_get_trade_flows” reworded the description of “freq” cosmetic
  • 3 Nov 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “comtrade_search_commodities” rewrote its description, which is the text the model reads security
    • Tool “comtrade_list_service_categories” rewrote its description, which is the text the model reads security
    • Tool “comtrade_get_top_commodities” rewrote its description, which is the text the model reads security
    • Tool “comtrade_get_services_trade” rewrote its description, which is the text the model reads security
    • Tool “comtrade_get_data_availability” rewrote its description, which is the text the model reads security
    • New resource “un-comtrade-guide” functional
    • Server version: 0.2.0 → 0.3.0 functional
    • “comtrade_get_trade_balance” added an optional parameter “partner_code” cosmetic
    • “comtrade_get_data_availability” added an optional parameter “offset” cosmetic
    • “comtrade_get_data_availability” added an optional parameter “limit” cosmetic
    • “comtrade_get_services_trade” reworded the description of “flow_code” cosmetic
    • “comtrade_search_commodities” reworded the description of “query” cosmetic
    • “comtrade_search_commodities” reworded the description of “classification” cosmetic
    • “comtrade_search_commodities” reworded the description of “aggr_level” cosmetic
    • “comtrade_list_service_categories” reworded the description of “query” cosmetic
    • “comtrade_list_service_categories” reworded the description of “parent_code” cosmetic
    • “comtrade_get_trade_flows” reworded the description of “reporter_code” cosmetic
    • “comtrade_get_trade_flows” reworded the description of “freq” cosmetic
    • “comtrade_get_trade_flows” reworded the description of “cmd_code” cosmetic
    • “comtrade_get_trade_flows” reworded the description of “classification” cosmetic
    • “comtrade_get_trade_balance” reworded the description of “reporter_code” cosmetic
    • “comtrade_get_trade_balance” reworded the description of “freq” cosmetic
    • “comtrade_get_top_partners” reworded the description of “reporter_code” cosmetic
    • “comtrade_get_top_partners” reworded the description of “period” cosmetic
    • “comtrade_get_top_commodities” reworded the description of “period” cosmetic
    • “comtrade_get_top_commodities” reworded the description of “partner_code” cosmetic
    • “comtrade_get_services_trade” reworded the description of “service_code” cosmetic
    • “comtrade_get_services_trade” reworded the description of “reporter_code” cosmetic
    • “comtrade_get_services_trade” reworded the description of “period” cosmetic
    • “comtrade_get_data_availability” reworded the description of “freq” cosmetic
    • “comtrade_get_trade_flows” made “reporter_code” optional cosmetic
    • Tool “comtrade_search_commodities” changed its title: Search HS Commodity Codes → Search Commodity Codes cosmetic
    • Tool “comtrade_list_service_categories” changed its title: List Service Trade Categories (EBOPS) → List Service Trade Categories (EB) cosmetic
  • 2 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 23 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://un-comtrade.caseyjhand.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=caseyjhand.com CN=WE1,O=Google Trust Services,C=US 2 Nov 2026 31 Jan 2027 ECDSA 256 ECDSA-SHA256 995a30681ab772540e934241ca1d576c
SANs: caseyjhand.com, *.caseyjhand.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of un-comtrade.caseyjhand.com. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
caseyjhand.com. present 2371 13 Verified
un-comtrade.caseyjhand.com. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
x-content-type-options nosniff

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://un-comtrade.caseyjhand.com/mcp Verified 200
http (plaintext) http://un-comtrade.caseyjhand.com/mcp HTTPS enforced 301 https://un-comtrade.caseyjhand.com/mcp
MCP tools · 9 exposed · ~3,130 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
comtrade_get_data_availability ~297

Check which reporter/period/classification combinations have published data before constructing expensive trade queries. Returns dataset records with period, classification, record count, and first/latest release dates. Call this before querying recent periods — annual data is typically published 3–12 months after the reference year and not all countries report every year. Omit filters to browse the availability index, 50 rows by default. Continue with nextOffset using the same filters and limit.

NameTypeReqDescription
classificationstring–Classification code filter (e.g. "HS", "H6", "EB10"). Omitted or blank defaults to HS for goods and EB10 for services.
freqstring–Frequency: A=annual YYYY, M=monthly YYYYMM (01–12). Omit to infer it from period, or annual when period is omitted too; an explicit value must match period.
limitinteger–Maximum datasets returned per page; defaults to 50.
offsetinteger–Number of matching datasets to skip; use nextOffset to continue.
periodstring–Period to check: YYYY (annual) or YYYYMM (monthly). Omit to see all available periods for the reporter.
reporter_codeinteger–M49 reporter code to check. Omit to browse availability across all reporters.
type_codestring–Trade type: C=commodities (goods), S=services.
NameTypeReqDescription
datasetsarray–Available datasets matching the query.
errorobject–Present when the call failed. Absent on success.
nextOffsetnumber–Offset for the next page; absent when no rows remain.
noticestring–Recovery hint when no availability records are found.
offsetnumber–Number of matching datasets skipped for this page.
shownnumber–Number of datasets returned on this page.
totalDatasetsnumber–Total number of available dataset records.
truncatedboolean–Whether this page contains only part of the matching dataset list.

No examples provided.

comtrade_get_services_trade ~477

Fetch annual international trade-in-services data. Classification EB (default) serves each reporter-period as reported, in its own scheme (EB10, EB10S or EB02 codes); EB10 or EB02 selects UN Comtrade's conversion of other schemes into that one. Each row names its classification and whether it is original or converted. Same bilateral structure as goods trade: returns flow value in USD, period, and reporter/partner/category metadata for each row. Use comtrade_list_service_categories to find a service code and its scheme before querying. Keyless preview makes one request per served period, at least 4 seconds apart, capped at 500 records per request. Services coverage is more limited than goods trade.

NameTypeReqDescription
classificationstring–Services classification. EB (default): each reporter-period as reported, in its own scheme (EB10, EB10S or EB02 codes). EB10 or EB02: UN Comtrade's conversion of reports from other schemes into that…
flow_codestringyesTrade flow: M=imports (debits), X=exports (credits).
partner_codeinteger–M49 partner code. Use 0 for all partners combined. Omit for a disaggregated by-partner breakdown.
periodarrayyesAnnual periods YYYY. Serves the first 8 keyless (12 with authenticated access); the rest, and any period whose request is rate limited or runs out of time, are listed in unservedPeriods. Input ceilin…
reporter_codeintegeryesM49 numeric code of the reporting country (0–999).
service_codestring–Service category code in one scheme: "7" (EB10), "SG" (EB10S) and "260" (EB02) are each financial services. Under EB a code returns rows only for periods reported in its scheme; comtrade_list_service…
NameTypeReqDescription
errorobject–Present when the call failed. Absent on success.
noticestring–Why data is missing: periods that were rate limited (with the wait) or ran out of time, and, when no records are returned, the requested code's EB scheme or a partner-only reporter's counterpart, wit…
recordsarray–Services trade flow records.
referenceNoticestring–Reference descriptions unavailable; codes and values retained.
shownnumber–Number of records returned.
totalCountnumber–Sum of upstream response counts before local filtering; not a full match count when capped.
truncatedboolean–True when any preview response reached 500 and may be incomplete.
truncationHintstring–Query narrowing and authenticated access guidance when possibly incomplete.
unservedPeriodsarray–Periods not served: past the period cap (8 keyless, 12 authenticated) or whose requests were rate limited or ran out of time; query them separately.

No examples provided.

comtrade_get_top_commodities ~245

Rank HS chapters (2-digit) or headings (4-digit) by trade value for one reporter, flow, and annual or monthly period. Retrieves matching TOTAL and the reporter’s HS edition, then queries explicit commodity codes in chunks; capped chunks are subdivided. Shares use matching TOTAL. Incomplete coverage returns available categories without ranks or shares and identifies unresolved codes. Defaults to World; optionally select one bilateral partner. Counterpart to comtrade_get_top_partners.

NameTypeReqDescription
aggr_level––HS aggregation level: 2 = chapter (broader), 4 = heading (more specific).
flow_codestringyesTrade flow: M=imports, X=exports.
limitinteger–Number of top commodity categories to return; totalCommodities counts every category retrieved.
partner_codeinteger–M49 partner code (0–999) for a bilateral relationship; omit for World aggregate (0).
periodstringyesSingle period: annual (YYYY) or monthly (YYYYMM, month 01–12).
reporter_codeintegeryesM49 numeric code of the reporting country (0–999).
NameTypeReqDescription
aggrLevelnumber–HS aggregation level used.
classificationCodestring–HS edition identified by matching TOTAL.
commoditiesarray–Top commodity categories sorted by descending trade value.
coverageCompleteboolean–Whether every code in the matching HS edition was queried without a capped response.
coverageNoticestring–Explanation of coverage and ranking availability.
denominatorValueUsdnumber–Matching TOTAL value used as the share denominator, separate from the retrieved-category sum.
errorobject–Present when the call failed. Absent on success.
flowCodestring–Flow direction queried.
missingCodesarray–Codes whose retrieval failed, remained capped, or did not fit the call's time budget; empty when the code universe is unavailable.
noticestring–Recovery hint when no data is returned.
periodstring–Period queried.
reporterCodenumber–M49 reporter code.
reporterDescstring–Reporter country name.
totalCommoditiesnumber–Total commodity categories returned by API.
totalValueUsdnumber–Sum of primary values across all returned categories (before limit).
truncatedboolean–True when complete commodity-code coverage could not be established.

No examples provided.

comtrade_get_top_partners ~273

Rank trading partners for a reporter by trade value for a given commodity and flow direction. Returns the top N partners sorted by descending value — answers "who does country X mainly export product Y to?" or "where does country X mainly import product Z from?" for a single period. Fetches a disaggregated breakdown across all partners then sorts locally. Takes an HS or SITC code in the selected classification; omit cmd_code to rank partners for total trade.

NameTypeReqDescription
classificationstring–Goods classification: HS as reported, H0–H6 with authenticated access, or SITC S1–S4/SS.
cmd_codestring–Single goods code in the selected classification: HS (e.g. "84", "8471") or SITC (e.g. "071"). Omit or pass "TOTAL" to rank partners for total merchandise trade.
flow_codestringyesTrade flow: M=imports, X=exports.
limitinteger–Number of top partners to return; totalPartners counts every partner retrieved.
periodstringyesSingle period: annual YYYY or monthly YYYYMM, month 01–12; frequency is inferred.
reporter_codeintegeryesM49 numeric code of the reporting country (0–999).
NameTypeReqDescription
classificationstring–Goods classification the commodity code was read in.
cmdCodestring–Commodity code queried (TOTAL when omitted).
errorobject–Present when the call failed. Absent on success.
flowCodestring–Flow direction queried.
noticestring–Recovery hint when no data is returned.
partnersarray–Top partners sorted by descending trade value.
periodstring–Period queried.
referenceNoticestring–Reference descriptions unavailable; codes and values retained.
reporterCodenumber–M49 reporter code.
reporterDescstring–Reporter country name.
totalPartnersnumber–Partners retrieved before the limit, excluding the World (0) aggregate.
totalValueUsdnumber–Sum of primary values across all returned partners (before limit truncation).
truncatedboolean–True when API returned 500 records and results may be incomplete.

No examples provided.

comtrade_get_trade_balance ~397

Compute the trade balance for a country over one or more periods — total exports minus total imports — with optional HS or SITC commodity filter. Keyless preview makes two requests per served period, at least 4 seconds apart; authenticated calls batch periods. Returns the signed balance (USD), export value, import value, and coverage ratio (exports / imports). Note: mirror asymmetry is common — balance reflects values as reported by this country; the same flow may be recorded differently by the partner. Uses comtrade_lookup_countries to resolve reporter codes.

NameTypeReqDescription
classificationstring–Goods classification: HS/H0–H6 or SITC S1–S4/SS.
cmd_codearray–HS or SITC commodity codes to restrict the balance calculation. Serves the first 20 and discloses the remainder; input ceiling 200. Omit to compute the overall trade balance across all commodities.
freqstring–Frequency for both flows: A=annual YYYY, M=monthly YYYYMM (01–12). Omit to infer it from the periods; an explicit value must match them.
partner_codeinteger–M49 partner code (0–999); defaults to World (0). The balance uses the reporter’s values.
periodarrayyesPeriods, all annual (YYYY) or all monthly (YYYYMM); mixed lengths are rejected. Serves the first 4 keyless (12 with authenticated access); the rest, and any period whose export or import request is r…
reporter_codeintegeryesM49 numeric code of the reporting country (0–999). A partner-only code (0 World, 250 Metropolitan France) with no data fails with partner_only_reporter, naming the reporter-valid code when one exists…
NameTypeReqDescription
cmdCodesarray–Commodity codes used in the query (absent when querying all commodities).
errorobject–Present when the call failed. Absent on success.
mirrorCaveatstring–Standard caveat about mirror asymmetry — balance reflects this country's reported values.
noticestring–Periods left out because a flow was rate limited (with the wait) or ran out of time, and possible incompleteness when a preview response reaches its cap.
partnerCodenumber–M49 partner code used.
partnerDescstring–Partner name supplied by the returned records, or its numeric code when unavailable.
periodsarray–Balance computation per period.
referenceNoticestring–Reference descriptions unavailable; codes and trade values retained.
reporterCodenumber–M49 reporter code used.
reporterDescstring–Reporter country name.
unservedCmdCodesarray–Commodity codes beyond the 20-code work cap; query them separately.
unservedPeriodsarray–Periods not served: past the period cap (4 keyless, 12 authenticated) or whose export or import request was rate limited or ran out of time; query them separately.

No examples provided.

comtrade_get_trade_flows ~544

Fetch bilateral trade flow records — the primary data retrieval tool. Returns trade value in USD (primaryValue — FOB for exports, CIF for imports), quantity, net weight, and period/commodity/partner metadata for each row. Accepts multiple periods and commodity codes per call; pass partner_code 0 to get totals aggregated across all partners. Omit cmd_code or pass "TOTAL" to aggregate all commodities. Keyless preview makes one request per served period, at least 4 seconds apart, with a 500-record cap per request. Use comtrade_lookup_countries to resolve reporter/partner codes and comtrade_search_commodities to resolve HS codes. For SITC, supply codes from the selected SITC revision.

NameTypeReqDescription
classificationstring–Goods classification: HS as reported, H0–H6 with authenticated access, or SITC S1–S4/SS.
cmd_codearray–HS or SITC commodity codes to query. Serves the first 20 codes and discloses the remainder; input ceiling 200. Pass ["TOTAL"] or omit to aggregate all commodities. Use comtrade_search_commodities for…
flow_codestringyesTrade flow direction: M=imports, X=exports, RX=re-exports, RM=re-imports.
freqstring–Frequency: A=annual YYYY, M=monthly YYYYMM (01–12). Omit to infer it from the periods; an explicit value must match them.
partner_codeinteger–M49 code of the trade partner. Use 0 to aggregate across all partners (World total). Omit to get a disaggregated breakdown by partner country.
periodarrayyesOne or more periods to query, all annual "YYYY" (e.g. ["2022", "2023"]) or all monthly "YYYYMM" (e.g. ["202201", "202202"]); mixed lengths are rejected. Serves the first 8 periods keyless (12 with au…
reporter_code––M49 reporter code or nonempty array (input ceiling 200). Deduplicates and serves the first 20 reporters, disclosing the remainder; served codes of an array that return no records are listed in report…
NameTypeReqDescription
errorobject–Present when the call failed. Absent on success.
noticestring–Why data is missing: periods that were rate limited (with the wait) or ran out of time, and a recovery hint when no records are returned, naming the reporter-valid counterpart of a partner-only repor…
recordsarray–Trade flow records.
referenceNoticestring–Notice when reference descriptions could not be loaded; codes and trade values remain available.
reportersWithoutRecordsarray–Served codes from a reporter_code array with no records in any served period. Omitted when truncated, since a capped response can hide a reporter’s rows.
shownnumber–Number of records returned in this response.
totalCountnumber–Sum of upstream response counts before local filtering; not a full match count when capped.
truncatedboolean–True when any preview response reached 500 and may be incomplete.
truncationHintstring–Query narrowing and authenticated access guidance when possibly incomplete.
unservedCmdCodesarray–Commodity codes beyond the 20-code work cap; query them separately.
unservedPeriodsarray–Periods not served: past the period cap (8 keyless, 12 authenticated) or whose requests were rate limited or ran out of time; query them separately.
unservedReportersarray–Reporter codes beyond the 20-reporter work cap; query them separately.

No examples provided.

comtrade_list_service_categories ~289

List service trade categories from the combined EB catalog, including numeric EBOPS and SDMX codes. Returns category codes, descriptions, parent codes, and the EBOPS scheme catalogs that list each code: EB10 (EBOPS 2010), EB10S (EBOPS 2010 SDMX codes), EB02 (EBOPS 2002). Filter by keyword (e.g. "transport", "financial", "travel") or browse direct children of a parent code; "200" lists the EB10 and EB02 top levels. Use the returned id as service_code in comtrade_get_services_trade. Code 3 is transport; SA is manufacturing services. Each page holds up to limit categories; continue with nextOffset using the same query and parent_code.

NameTypeReqDescription
limitinteger–Maximum categories returned per page; defaults to 100.
offsetinteger–Number of matching categories to skip; use nextOffset to continue.
parent_codestring–Return direct children of this EB category code. Examples: "3" for transport sub-categories, "3.1" for sea transport sub-categories, or "200" for the EB10 and EB02 top-level categories.
querystring–Keyword or category code prefix to filter results. Examples: "transport", "SA", "financial services". Omit to list all EB categories.
NameTypeReqDescription
categoriesarray–EB service categories on this page, in catalog order.
errorobject–Present when the call failed. Absent on success.
nextOffsetnumber–Offset for the next page; absent when no matching categories remain.
noticestring–Recovery hint when no categories match, matches remain past this page, the offset is past the end, or scheme tags are unavailable.
offsetnumber–Number of matching categories skipped for this page.
shownnumber–Number of categories returned on this page.
totalMatchesnumber–Total matching categories across all pages.
truncatedboolean–Whether this page holds only part of the matching categories (shown < totalMatches).

No examples provided.

comtrade_lookup_countries ~306

Resolve country and area names to Comtrade M49 numeric codes used in all data queries. Accepts a partial name, full name, or ISO alpha-2/alpha-3 code (e.g. "United States", "USA", "US"). Returns matching entries with their numeric code, ISO identifiers, a validAsReporter flag, and validity dates; historical entities such as Fed. Rep. of Germany (...1990) are listed after current ones. World (code 0) is a valid partner but not a valid reporter, while some groupings, such as the European Union (97), do report — check validAsReporter. Use this before any trade data tool that requires reporter_code or partner_code. To aggregate across all partners, use partner code 0 (World) — no lookup needed.

NameTypeReqDescription
include_groupsboolean–Whether to include regional and economic groupings (e.g. EU, ASEAN). Set to false to return only individual countries.
querystringyesCountry or area name fragment, full name, or ISO alpha-2/alpha-3 code to search for. Case-insensitive. Examples: "Germany", "DEU", "DE", "united states", "china".
rolestring–Filter by role: "reporter" returns only codes valid for the reporterCode parameter, "partner" returns only partner areas (includes regional groupings), "any" returns all matches regardless of role.
NameTypeReqDescription
errorobject–Present when the call failed. Absent on success.
matchesarray–Matching entries, plus entries sharing an ISO-3 code with a match, ordered by exact ISO match, reporter validity, current before expired (entryExpiredDate before today), name, then code.
noticestring–Recovery hint when no matches are found — echoes the query and suggests alternatives. Absent when results are non-empty.
totalMatchesnumber–Total number of matching entries.

No examples provided.

comtrade_search_commodities ~302

Find HS or SITC commodity codes by keyword, partial description, or code prefix in the selected classification. Returns descriptions, native aggregation levels, parents, leaf status, and recommendedQueryCode for subsequent trade queries. HS uses levels 2 (chapter), 4 (heading), and 6 (subheading); SITC uses levels 1–5. Select the edition matching the trade records when interpreting historical codes. Each page holds up to limit matches; continue with nextOffset using the same query, classification, and aggr_level.

NameTypeReqDescription
aggr_level––Native aggregation level: HS uses 2 (chapter), 4 (heading), 6 (subheading); SITC uses 1–5. Omit to return all matching levels.
classificationstring–Goods reference catalog, case-insensitive: HS uses the default HS.json discovery catalog, whose total identifies H6; it is not an authoritative historical-edition reference. Select H0–H6 for an expli…
limitinteger–Maximum matching codes returned per page; defaults to 50.
offsetinteger–Number of matching codes to skip; use nextOffset to continue.
querystringyesKeyword, partial description, or commodity code prefix. Examples: "motor vehicles", "8471", "coffee", "84" (HS chapter 84 = machinery).
NameTypeReqDescription
classificationstring–Reference catalog used for the search.
errorobject–Present when the call failed. Absent on success.
matchesarray–Commodity codes on this page matching the query in the selected classification, in catalog order.
nextOffsetnumber–Offset for the next page; absent when no matching codes remain.
noticestring–Recovery hint when no codes match, matches remain past this page, or the offset is past the end. Absent otherwise.
offsetnumber–Number of matching codes skipped for this page.
shownnumber–Number of codes returned on this page.
totalMatchesnumber–Total matching codes across all pages.
truncatedboolean–Whether this page holds only part of the matching codes (shown < totalMatches).

No examples provided.

Install

How do I install the io.github.cyanheads/un-comtrade-mcp-server server?

io.github.cyanheads/un-comtrade-mcp-server is a hosted endpoint at https://un-comtrade.caseyjhand.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · un-comtrade.caseyjhand.com

# add to Claude Code
claude mcp add --transport http cyanheads-un-comtrade-mcp-server 'https://un-comtrade.caseyjhand.com/mcp'
Common questions

What is the io.github.cyanheads/un-comtrade-mcp-server server?

io.github.cyanheads/un-comtrade-mcp-server is listed in the public MCP registry as io.github.cyanheads/un-comtrade-mcp-server. UN Comtrade international trade statistics via MCP. Country/HS lookups, flows, balances, rankings. This page covers its hosted endpoint (https://un-comtrade.caseyjhand.com/mcp).

Is the io.github.cyanheads/un-comtrade-mcp-server server safe to use?

io.github.cyanheads/un-comtrade-mcp-server scores 86 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.cyanheads/un-comtrade-mcp-server server expose?

io.github.cyanheads/un-comtrade-mcp-server exposes 9 tools: comtrade_lookup_countries, comtrade_search_commodities, comtrade_list_service_categories, comtrade_get_trade_flows, comtrade_get_trade_balance, and 4 more. Their descriptions and schemas cost roughly 3,130 tokens of context every time the server is loaded.

Does the io.github.cyanheads/un-comtrade-mcp-server server require authentication?

No. We connected to io.github.cyanheads/un-comtrade-mcp-server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the io.github.cyanheads/un-comtrade-mcp-server server still maintained?

io.github.cyanheads/un-comtrade-mcp-server is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.