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.

EU Trade Explorer

REMOTE · MCP.TRADEDASHBOARD.EU · SCANNED SEP 22

EU customs-trade & industrial-production statistics (Eurostat Comext/PRODCOM)

0 this week 80 Trust /100
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 Security66
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • Authorisation not fully verified: no authorisation is required to call this server, and 37 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
  • HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
  • The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
  • DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
Schema Quality & AI Usability64
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 10356 tokens (~279/item across 37 items; 37 tools + 0 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
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 37 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 38 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
Install

How do I install the EU Trade Explorer MCP server?

EU Trade Explorer is a hosted endpoint at https://mcp.tradedashboard.eu/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 · mcp.tradedashboard.eu

# add to Claude Code
claude mcp add --transport http eu-tradedashboard-eu-trade-explorer 'https://mcp.tradedashboard.eu/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "eu-tradedashboard-eu-trade-explorer": {
      "url": "https://mcp.tradedashboard.eu/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "eu-tradedashboard-eu-trade-explorer": {
      "type": "http",
      "url": "https://mcp.tradedashboard.eu/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.eu-tradedashboard-eu-trade-explorer]
url = "https://mcp.tradedashboard.eu/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "eu-tradedashboard-eu-trade-explorer": {
      "type": "remote",
      "url": "https://mcp.tradedashboard.eu/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add eu-tradedashboard-eu-trade-explorer --url 'https://mcp.tradedashboard.eu/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  eu-tradedashboard-eu-trade-explorer:
    url: "https://mcp.tradedashboard.eu/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "eu-tradedashboard-eu-trade-explorer": {
      "Transport": "http",
      "Url": "https://mcp.tradedashboard.eu/mcp"
    }
  }
}
# add to Vellum
assistant mcp add eu-tradedashboard-eu-trade-explorer -t streamable-http -u 'https://mcp.tradedashboard.eu/mcp'
// mcp.json
{
  "mcpServers": {
    "eu-tradedashboard-eu-trade-explorer": {
      "type": "http",
      "url": "https://mcp.tradedashboard.eu/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

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.

  • 26 Aug 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Aug 26 0
    • Stability: 0.97 → pass security
  • 22 Aug 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Server version: 4.0.0b2 → 4.0.0b3 functional
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 8 Aug 26 0
    • Tool “get_reporter_benchmark” rewrote its description, which is the text the model reads security
    • Server version: 4.0.0b1 → 4.0.0b2 functional
    • Tool “get_autonomy_summary” changed its title: Get Autonomy Summary cosmetic
    • Tool “get_chapters” changed its title: Get Chapters cosmetic
    • Tool “get_concentration” changed its title: Get Concentration cosmetic
    • Tool “get_concentration_compare” changed its title: Get Concentration Compare cosmetic
    • Tool “get_concentration_map” changed its title: Get Concentration Map cosmetic
    • Tool “get_countries” changed its title: Get Countries cosmetic
    • Tool “get_data_range” changed its title: Get Data Range cosmetic
    • Tool “get_export_propensity” changed its title: Get Export Propensity cosmetic
    • Tool “get_full_report” changed its title: Get Full Report cosmetic
    • Tool “get_map_data” changed its title: Get Map Data cosmetic
    • Tool “get_market_structure_summary” changed its title: Get Market Structure Summary cosmetic
    • Tool “get_market_summary” changed its title: Get Market Summary cosmetic
    • Tool “get_net_import_reliance” changed its title: Get Net Import Reliance cosmetic
    • Tool “get_overview” changed its title: Get Overview cosmetic
    • Tool “get_partner_detail” changed its title: Get Partner Detail cosmetic
    • Tool “get_pattern_shift” changed its title: Get Pattern Shift cosmetic
    • Tool “get_price_shocks” changed its title: Get Price Shocks cosmetic
    • Tool “get_product_compare” changed its title: Get Product Compare cosmetic
    • Tool “get_product_profile” changed its title: Get Product Profile cosmetic
    • Tool “get_production_concentration” changed its title: Get Production Concentration cosmetic
    • Tool “get_production_series” changed its title: Get Production Series cosmetic
    • Tool “get_reporter_benchmark” changed its title: Get Reporter Benchmark cosmetic
    • Tool “get_reporter_detail” changed its title: Get Reporter Detail cosmetic
    • Tool “get_specialisation” changed its title: Get Specialisation cosmetic
    • Tool “get_subcontracting” changed its title: Get Subcontracting cosmetic
    • Tool “get_subcontracting_members” changed its title: Get Subcontracting Members cosmetic
    • Tool “get_subtree” changed its title: Get Subtree cosmetic
    • Tool “get_supply_shocks” changed its title: Get Supply Shocks cosmetic
    • Tool “get_top_entities” changed its title: Get Top Entities cosmetic
    • Tool “get_trade_intensity” changed its title: Get Trade Intensity cosmetic
    • Tool “get_volatility” changed its title: Get Volatility cosmetic
    • Tool “get_volatility_summary” changed its title: Get Volatility Summary cosmetic
    • Tool “guidelines_for_a_long_report” changed its title: Guidelines For A Long Report cosmetic
    • Tool “guidelines_for_a_short_report” changed its title: Guidelines For A Short Report cosmetic
    • Tool “resolve_product_code” changed its title: Resolve Product Code cosmetic
    • Tool “search_codes” changed its title: Search Codes cosmetic
    • Tool “validate_code” changed its title: Validate Code cosmetic
  • 6 Aug 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “get_autonomy_summary” rewrote its description, which is the text the model reads security
    • Tool “get_chapters” rewrote its description, which is the text the model reads security
    • Tool “get_concentration” rewrote its description, which is the text the model reads security
    • Tool “get_concentration_compare” rewrote its description, which is the text the model reads security
    • Tool “get_concentration_map” rewrote its description, which is the text the model reads security
    • Tool “get_countries” rewrote its description, which is the text the model reads security
    • Tool “get_data_range” rewrote its description, which is the text the model reads security
    • Tool “get_export_propensity” rewrote its description, which is the text the model reads security
    • Tool “get_full_report” rewrote its description, which is the text the model reads security
    • Tool “get_map_data” rewrote its description, which is the text the model reads security
    • Tool “get_market_structure_summary” rewrote its description, which is the text the model reads security
    • Tool “get_market_summary” rewrote its description, which is the text the model reads security
    • Tool “get_net_import_reliance” rewrote its description, which is the text the model reads security
    • Tool “get_overview” rewrote its description, which is the text the model reads security
    • Tool “get_partner_detail” rewrote its description, which is the text the model reads security
    • Tool “get_pattern_shift” rewrote its description, which is the text the model reads security
    • Tool “get_price_shocks” rewrote its description, which is the text the model reads security
    • Tool “get_product_compare” rewrote its description, which is the text the model reads security
    • Tool “get_product_profile” rewrote its description, which is the text the model reads security
    • Tool “get_production_concentration” rewrote its description, which is the text the model reads security
    • Tool “get_production_series” rewrote its description, which is the text the model reads security
    • Tool “get_reporter_benchmark” rewrote its description, which is the text the model reads security
    • Tool “get_reporter_detail” rewrote its description, which is the text the model reads security
    • Tool “get_specialisation” rewrote its description, which is the text the model reads security
    • Tool “get_subcontracting” rewrote its description, which is the text the model reads security
    • Tool “get_subcontracting_members” rewrote its description, which is the text the model reads security
    • Tool “get_subtree” rewrote its description, which is the text the model reads security
    • Tool “get_supply_shocks” rewrote its description, which is the text the model reads security
    • Tool “get_top_entities” rewrote its description, which is the text the model reads security
    • Tool “get_trade_intensity” rewrote its description, which is the text the model reads security
    • Tool “get_volatility” rewrote its description, which is the text the model reads security
    • Tool “get_volatility_summary” rewrote its description, which is the text the model reads security
    • Tool “guidelines_for_a_long_report” rewrote its description, which is the text the model reads security
    • Tool “guidelines_for_a_short_report” rewrote its description, which is the text the model reads security
    • Tool “resolve_product_code” rewrote its description, which is the text the model reads security
    • Tool “search_codes” rewrote its description, which is the text the model reads security
    • Tool “validate_code” rewrote its description, which is the text the model reads security
    • Tool coverage: 5% → 100% functional
    • Tool “get_autonomy_summary” now declares an output schema functional
    • Tool “get_chapters” now declares an output schema functional
    • Tool “get_concentration” now declares an output schema functional
    • Tool “get_concentration_compare” now declares an output schema functional
    • Tool “get_concentration_map” now declares an output schema functional
    • Tool “get_countries” now declares an output schema functional
    • Tool “get_data_range” now declares an output schema functional
    • Tool “get_export_propensity” now declares an output schema functional
    • Tool “get_full_report” now declares an output schema functional
    • Tool “get_map_data” now declares an output schema functional
    • Tool “get_market_structure_summary” now declares an output schema functional
    • Tool “get_market_summary” now declares an output schema functional
    • Tool “get_net_import_reliance” now declares an output schema functional
    • Tool “get_overview” now declares an output schema functional
    • Tool “get_partner_detail” now declares an output schema functional
    • Tool “get_pattern_shift” now declares an output schema functional
    • Tool “get_price_shocks” now declares an output schema functional
    • Tool “get_product_compare” now declares an output schema functional
    • Tool “get_product_profile” now declares an output schema functional
    • Tool “get_production_concentration” now declares an output schema functional
    • Tool “get_production_series” now declares an output schema functional
    • Tool “get_reporter_benchmark” now declares an output schema functional
    • Tool “get_reporter_detail” now declares an output schema functional
    • Tool “get_specialisation” now declares an output schema functional
    • Tool “get_subcontracting” now declares an output schema functional
    • Tool “get_subcontracting_members” now declares an output schema functional
    • Tool “get_subtree” now declares an output schema functional
    • Tool “get_supply_shocks” now declares an output schema functional
    • Tool “get_top_entities” now declares an output schema functional
    • Tool “get_trade_intensity” now declares an output schema functional
    • Tool “get_volatility” now declares an output schema functional
    • Tool “get_volatility_summary” now declares an output schema functional
    • Tool “resolve_product_code” now declares an output schema functional
    • Tool “search_codes” now declares an output schema functional
    • Tool “validate_code” now declares an output schema functional
    • The server no longer declares the “experimental” capability functional
    • The server now declares the “logging” capability functional
    • MCP protocol: Implements a current MCP spec version (2026-07-28). functional
    • MCP protocol version: 2025-11-25 → 2026-07-28 functional
    • Server version: 1.28.1 → 4.0.0b1 functional
  • 31 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
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 22 Sept 2026 · Probed https://mcp.tradedashboard.eu/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.tradedashboard.eu CN=YE1,O=Let's Encrypt,C=US 11 Sept 2026 10 Dec 2026 ECDSA 256 ECDSA-SHA384 64302a2d9d7da16630ca20af79f7c2274b5
SANs: mcp.tradedashboard.eu
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of mcp.tradedashboard.eu. Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
eu. present 35926 8 Verified
tradedashboard.eu. present 44608 13 Verified
mcp.tradedashboard.eu. 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=31536000; includeSubDomains
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin

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

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.tradedashboard.eu/mcp Verified 200
http (plaintext) http://mcp.tradedashboard.eu/mcp HTTPS enforced 308 https://mcp.tradedashboard.eu/mcp
MCP tools · 37 exposed · ~9,884 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
get_autonomy_summary ~265

Report-section helper ("Autonomy & vulnerability"): net import reliance (`get_net_import_reliance`) is always the headline fact/chart. Trade intensity and export propensity (`get_trade_intensity` / `get_export_propensity`) are both computed, then a deterministic salience score -- distance from an unremarkable ~50% band, plus the magnitude of its own change -- decides which one leads the narrative; this choice is never left to the caller. `trade_intensity_pct` is returned fully unit-consistent (first/last/min/max all expressed as a percentage, matching `export_propensity_pct`). Sub-contracting is deliberately not included in this section at all -- it is an unrelated, tiny-base PRODCOM series that only muddied the narrative. Returns `{narrative_facts, chart_data, available, reason}`.

NameTypeReqDescription
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_chapters ~109

List all top-level Combined Nomenclature chapters (2-digit codes). Bootstraps browsing the nomenclature top-down; drill into a chapter with `get_subtree`.

NameTypeReqDescription
langstringLanguage for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.

Structured output declared, but exposes no named fields.

No examples provided.

get_concentration ~332

Herfindahl-Hirschman Index (HHI) of trade concentration across partners or member states, per period (0 = perfectly spread, 10000 = one entity holds the whole market), plus the top-8-by-value share breakdown (rest bundled as 'Others'). Higher HHI = more dependent on a handful of counterparties.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
entity_levelstringDimension to analyse. 'partner' -- how concentrated/volatile is the reporter's trade across its trading partners? 'reporter' -- how concentrated/volatile is a given partner's trade across EU member s…
partner_namePartner country name (English). Required when entity_level='reporter'.
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_concentration_compare ~240

Partner-concentration (HHI) compared across sub-products: one HHI line per sub-product rather than per flow, to see which sub-products drive a parent code's overall concentration.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
n_subcodesintegerMax number of sub-products to plot as separate HHI lines.
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_concentration_map ~354

Cross-sectional HHI per country for one year -- the choropleth counterpart of get_concentration. 'partner' entity_level = for every EU member state, HHI of its trade across partners; 'reporter' = for every partner, HHI of its trade across EU member states (subject to the Rotterdam/Antwerp entry-point distortion).

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
entity_levelstringDimension to analyse. 'partner' -- how concentrated/volatile is the reporter's trade across its trading partners? 'reporter' -- how concentrated/volatile is a given partner's trade across EU member s…
partner_namePartner country name (English). Required when entity_level='reporter'.
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…
yearYear for the snapshot. Defaults to the latest full year with data.

Structured output declared, but exposes no named fields.

No examples provided.

get_countries ~81

Reference data for reporters/partners: selectable EU/Euro-area/member states, named partner presets, predefined reporter/partner groups, and per-language country-name translations. Use this to find valid values for the `reporter`, `partner_set`, `partners` and `reporter_members` fields used throughout the other tools' `query` argument.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_data_range ~79

Return the period coverage (`data_min`/`data_max`, 'YYYY-MM') actually cached for the given product code(s) -- use before picking `period_start`/`period_end` so you don't request an empty window.

NameTypeReqDescription
productsCN code(s) to check coverage for. Omit for the overall store range.

Structured output declared, but exposes no named fields.

No examples provided.

get_export_propensity ~251

Export Propensity = Exports / Production, annual: the share of EU production that is exported. Not clamped -- values above 100% are legitimate (re-exports, stock drawdown, scope differences). Returns the export-propensity matrix, a sibling/per-code comparison, resolved PRODCOM codes and availability notes.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_full_report ~468

Fetch every report section (scope, overview, market structure, volatility, autonomy) for one shared `query` in a single call, instead of calling `get_product_profile` / `get_market_summary` / `get_market_structure_summary` / `get_volatility_summary` / `get_autonomy_summary` separately yourself. Guarantees all five sections describe the exact same product/reporter/partner/period slice -- five separate calls have no such guarantee, since nothing stops `query` from being re-typed slightly differently across them, or one of the five simply being forgotten. `query`'s own field defaults (`reporter='European Union'`, `partner_set='non-EU countries'`, `period_start='2015-01'`, `frequency='quarter'`, `remove_outliers=true`, ...) are exactly the sensible defaults for a first-cut report; override any of them for a different slice -- e.g. a specific member state, a custom partner group, a narrower period. Returns `{"query": {...}, "sections": {<name>: {narrative_facts, chart_data, links, available, reason}, ...}}` for `<name>` in `product_profile`, `market_summary`, `market_structure`, `volatility`, `autonomy`. `links` maps each `narrative_facts` key to a ready-made `https://tradedashboard.eu/...` URL for that same fact -- never construct one of these yourself; use the one already provided.

NameTypeReqDescription
langstringLanguage for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_map_data ~216

Choropleth-ready aggregates: per-period totals (quantity, value, price) for imports and exports, keyed by GISCO country code on both the reporter and partner sides.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_market_structure_summary ~314

Report-section helper ("Market structure"): combines, in priority order, the intra-EU specialisation snapshot (`get_specialisation`, already map-ready), partner-concentration detail (`get_concentration`, keeping the top-8-by-value share breakdown as `chart_data` alongside the condensed HHI trend) and, when a PRODCOM mapping exists for the product, EU production volumes (`get_production_series`). These three are independent data sources bundled only because they all describe "market structure" -- the specialisation RSCA is trade-based and has no relation to the PRODCOM production figures; treat them as separate findings, not a single connected story. `most_specialised_reporters` / `least_specialised_reporters` are pre-sorted by actual RSCA (highest/ lowest first respectively) -- use them as-is rather than re-deriving a ranking. `query.prodcom_code` is passed through untouched -- picking among ambiguous PRODCOM mappings is left to the caller, never guessed here. Returns `{narrative_facts, chart_data, available, reason}`.

NameTypeReqDescription
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_market_summary ~481

Report-section helper ("General overview"): condensed, report-ready digest of how a market has evolved over the chosen window -- one call instead of separately fetching and cross-referencing get_overview + get_reporter_detail + get_concentration + get_net_import_reliance yourself. Set `query.frequency = "year"` for a multi-year evolution summary (recommended over the model's default of "quarter"). Every figure reflects `query` exactly as given -- the same product/reporter/partner_set/period slice a dashboard user would have selected. Nothing here substitutes a different reporter or partner_set (e.g. to contrast intra-EU against extra-EU trade): call this again with a different `query.partner_set` for that, the same way a dashboard user would switch the sidebar's selector. Returns `{narrative_facts, chart_data, available, reason}`. `narrative_facts` combines, for the flow selected by `query.partner_set`: - Headline trade: first/last/min/max/pct_change for export & import value, quantity and price, plus the trade-balance trend. - Partner concentration: first/last/pct_change of the value-based HHI for imports and exports. - Top partners *and* top EU reporters by value: each one's first/last/pct_change -- i.e. who is gaining or losing share. - Net import reliance: first/last/pct_change of the annual NIR % for `query`'s own `reporter`/`partner_set` (only `frequency` is normalised to "year", since NIR is structurally annual and the upstream API always returns it that way regardless); omitted if the product has no PRODCOM mapping. `chart_data` carries the full-fidelity headline trade and top-partner/ top-reporter series for charting.

NameTypeReqDescription
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_net_import_reliance ~320

Net Import Reliance (NIR) = (Imports - Exports) / Apparent consumption, annual, joining PRODCOM production with Comext trade. E.g. 40% means 40% of EU consumption is met by imports; negative means the EU is a net exporter. Returns the NIR % series, its supply/disposition components, sibling-category/per-code comparisons, the resolved PRODCOM codes and availability notes (CN-to-PRODCOM mapping is not always 1:1; see the `self.notes` / `unavailability_type` fields in the response). Use `query.prodcom_code` to pin a specific mapping.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_overview ~222

Headline figures: total import/export quantities, values and weighted-average prices per period, the trade balance, and a top-partner breakdown. The best first call for any new product/reporter slice.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_partner_detail ~237

Per-partner import/export breakdown. For each flow, the top-N trading partners ranked both by quantity and by value (so you can compare volume-based vs. value-based rankings), each with its own quantity, value and price time series, plus an optional 'Other' bucket.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_pattern_shift ~293

Before/after trade-pattern shift around a split point (`query.midpoint`): for each entity, compares average quantity and price before vs. after, and returns scatter points (quantity-change % vs. price-change %) with quadrant labels -- top-right = demand-driven growth, top-left = supply constraint/monopoly risk, bottom-right = dumping/oversupply risk, bottom-left = market contraction. Suggested workflow: spot a shock date via get_supply_shocks / get_price_shocks first, then set it as `query.midpoint` here.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_price_shocks ~419

Detect sudden price regime shifts ("rapid price changes"), accounting for each flow's usual volatility so naturally volatile flows aren't over-flagged. Returns ranked shock events per flow with timeline phases (price spike/drop, volatile trade, return to baseline, ...), magnitude and series.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
cumulative_sharenumberOnly the top trading partners that together account for this share of total trade are analysed.
entity_levelstringDimension to analyse. 'partner' -- how concentrated/volatile is the reporter's trade across its trading partners? 'reporter' -- how concentrated/volatile is a given partner's trade across EU member s…
lookback_yearsintegerYears before the shock used to establish the coefficient-of-variation baseline.
max_shocks_per_pairintegerNumber of non-overlapping shocks kept per trading partner.
min_abnormalitynumberMinimum unusualness of the price shift vs. baseline volatility (CV multiples). Lower = more (weaker) shocks flagged.
partner_namePartner country name (English). Required when entity_level='reporter'.
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_product_compare ~256

Sub-product comparison: for a single parent CN code, expands into its children (or, for a multi-code request, compares the entered codes directly) and returns per-subcode quantity/value/price series for both flows -- so each sub-product plots as its own line instead of being aggregated away. A leaf code with no children returns `leaf: true`.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_product_profile ~273

Report-section helper ("Scope & definitions"): the resolved product code + label, a one-sentence caveat when the code bundles several sub-products (`has_subcodes`), the data-coverage window actually cached for it, and whether it has a usable PRODCOM mapping (gating the autonomy/vulnerability section). Deliberately thin -- no full CN hierarchy breadcrumb or sibling enumeration. Returns `{narrative_facts, chart_data, available, reason}` -- see `get_market_summary` for the shape this convention follows across all of this bridge's report-section helpers.

NameTypeReqDescription
langstringLanguage for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_production_concentration ~275

How concentrated production of a product is across all DS-059358 reporting countries (PRODCOM; EU member states plus EFTA/candidate/other reporters -- not only the EU-27). HHI of PRODVAL across countries over time, plus each country's production share. Suppressed/absent country figures come back as null, not zero. Use `query.prodcom_code` to pin a specific PRODCOM mapping.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_production_series ~280

EU27 and per-country PRODCOM production series: EU quantity, EU production unit value, and the same two per reporting country (all DS-059358 reporters, not just EU-27, since production data carries no trade columns). Country-level figures are heavily confidentiality -suppressed; suppressed/absent values come back as null, not zero. Use `query.prodcom_code` to pin a specific PRODCOM mapping when a CN code maps to several.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_reporter_benchmark ~360

Every EU reporter ranked by value for one year -- the country-view counterpart of `get_reporter_detail`. Returns a single-year snapshot (every real EU member state's quantity, value and price per flow, ranked by value) plus a benchmark price time series: the weighted average across whichever reporters `query.reporter` resolves to (the whole EU by default, or narrower when `query.reporter` is itself an aggregate -- euro area, a named group, or an ad hoc custom group), the cross-reporter min/max envelope, and the selected reporter's own line when `query.reporter` is a single real member state. Use it to answer "how does this country -- or reporter group -- compare to every other reporter?".

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…
yearYear for the cross-sectional snapshot. Defaults to the latest full year with data.

Structured output declared, but exposes no named fields.

No examples provided.

get_reporter_detail ~240

Per-EU-member-state import/export breakdown -- the reporter-side counterpart of `get_partner_detail`. Top-N member states (by quantity and by value) with their quantity, value and price series. Aggregate reporters (EU, Euro area, groups) are excluded from the ranking.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_specialisation ~277

Intra-EU revealed symmetric comparative advantage (RSCA) per member state -- a Balassa index benchmarked against the EU instead of the world. Runs -1 (under-specialised) to +1 (strongly specialised), value -based and intra-EU only. Treat with caution: intra-EU flows are distorted by the Rotterdam/Antwerp quasi-transit effect.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…
yearYear for the snapshot. Defaults to the latest full year with data.

Structured output declared, but exposes no named fields.

No examples provided.

get_subcontracting ~249

EU27 sub-contracting intensity: the share of sold production that is toll (sub-contracted) manufacturing rather than own-account output. Returns intensity (%) across value/quantity, its component series, per-period data-quality status, resolved PRODCOM codes and availability notes. The own/sub split only exists from 2021 onward.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_subcontracting_members ~259

Per-country sub-contracting intensity (PRODCOM): for each reporting country, the share of its sold production that is toll manufacturing -- which countries act as processing hubs vs. autonomous producers. Spans all DS-059358 reporters that report the own/sub split; others simply don't appear. Country cells are heavily confidentiality-suppressed (null, not zero, when absent).

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_subtree ~170

Return the Combined Nomenclature sub-tree rooted at `code` (its children, and their children, ...), each with a `code` and a `text` description. Use this to see whether a heading you're about to use (e.g. as `query.product` elsewhere) is actually a clean match, or bundles several distinct sub-products together.

NameTypeReqDescription
codestringyesCombined Nomenclature code to expand, e.g. '7010'.
langstringLanguage for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.

Structured output declared, but exposes no named fields.

No examples provided.

get_supply_shocks ~460

Detect abnormal collapses in trade volumes ("sudden volume changes"). Flags periods where a partner/product pair's volume drops well below its historical average (>2 sigma by default). Returns ranked shock events per flow, each with timeline phases (baseline, decline, disruption, recovery, ...), magnitude, abnormality score and underlying series.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
cumulative_sharenumberOnly the top trading partners that together account for this share of total trade are analysed.
entity_levelstringDimension to analyse. 'partner' -- how concentrated/volatile is the reporter's trade across its trading partners? 'reporter' -- how concentrated/volatile is a given partner's trade across EU member s…
max_tolerated_gapintegerConsecutive quiet periods allowed within an otherwise stable trading relationship.
min_abnormalitynumberMinimum statistical abnormality of the volume crash, in sigma. Lower = more (weaker) shocks flagged.
min_active_yearsintegerConsecutive years of regular trade required before a collapse can be flagged.
partner_namePartner country name (English). Required when entity_level='reporter'.
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…
relative_thresholdnumberMinimum drop relative to peak volume to count as a collapse (0.10 = 10% drop).

Structured output declared, but exposes no named fields.

No examples provided.

get_top_entities ~183

Just the ordered list of top entities for a slice -- no time series. A lightweight helper for populating entity pickers or quickly checking who the top partners/reporters are without pulling full series.

NameTypeReqDescription
entity_levelstringDimension to rank: 'partner' (trading partners) or 'reporter' (EU member states).
flowstringTrade flow to use.
nNumber of top entities to return. Defaults to query.n_top when omitted.
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_trade_intensity ~266

Trade Intensity (TI) = (Imports + Exports) / (Imports + Production), annual. Near 1 = highly trade-exposed sector; near 0 = predominantly domestic. Used in the Commission's CEEAG methodology for carbon-leakage / State-aid eligibility. Returns the TI series, its components, sibling-category/per-code comparisons, resolved PRODCOM codes and availability notes.

NameTypeReqDescription
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_volatility ~476

Coefficient-of-variation (CV = stdev / mean) volatility per partner/reporter x product pair, over inactive-period-excluded history. Higher CV = the flow swings more relative to its typical level. Returns per-entity CV bars (with drill-down series) and, unless include_heatmap=false, an entity x sub-product CV heatmap.

NameTypeReqDescription
combosComma-separated flow x indicator keys to compute at once: imp-qty, imp-price, exp-qty, exp-price. When set, overrides flow/indicator and returns a dict keyed by combo.
compactbooleanIf true, condense long numeric time series (more than ~6 points -- typically monthly/quarterly windows or wide multi-partner/multi-period breakdowns) into summary statistics (first, last, min, max, m…
entity_levelstringDimension to analyse. 'partner' -- how concentrated/volatile is the reporter's trade across its trading partners? 'reporter' -- how concentrated/volatile is a given partner's trade across EU member s…
flowstringTrade flow to use.
include_heatmapbooleanWhether to compute the entity x sub-product CV heatmap (false is faster, bar chart only).
indicatorstringMeasure for single-grid mode (ignored when combos is set).
n_top_entitiesintegerNumber of top entities to include in the volatility bar chart.
n_top_productsintegerMax number of sub-products in the entity x product heatmap.
partner_namePartner country name (English). Required when entity_level='reporter'.
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

get_volatility_summary ~285

Report-section helper ("Volatility & shocks"): the entities analysed are picked by `get_volatility` (ranks by trade volume, reports each one's CV) and by `get_price_shocks`/`get_supply_shocks` at default parameters (both already scoped to top-value partners via `cumulative_share=0.8`) -- never re-picked from the shocks themselves. Retries shock detection once with loosened thresholds before concluding "no shocks"; an empty result is itself a reportable finding, not a gap. When shocks are found, the top events by abnormality and their series are the section's findings; when none are found (even after the retry), stability is the finding. `get_pattern_shift` is intentionally not part of this bundle -- its before/after quadrant framing is too easily misread; call it directly if you specifically need it. Returns `{narrative_facts, chart_data, available, reason}`.

NameTypeReqDescription
queryobjectyesThe product/reporter/partner-set/period/frequency slice to query -- the same request body every tradedashboard.eu analytical endpoint takes. See its own field descriptions (product, reporter, partner…

Structured output declared, but exposes no named fields.

No examples provided.

guidelines_for_a_long_report ~85

Read this first for an in-depth report. Returns the long-report workflow: which of the 35+ tools to combine per angle (partners, concentration, volatility & shocks, autonomy), the dashboard menu/tab structure for pointing readers at views, and the methodological notes needed to interpret and cite figures correctly. Call this before guessing at tool use.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

guidelines_for_a_short_report ~78

Read this first for a quick report. Returns the short-report workflow: resolve a product code, then call `get_full_report` for the five most important report sections in one shot -- enough for a quick, simple report. Also covers access/quota, the shared `query` object and the `compact` option.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

resolve_product_code ~337

Resolve a free-text query or CN code(s) into validated product code(s) with descriptions -- the recommended first step before using a code as `product` in any other tool's `query`. Saves the search -> validate -> (optional) subtree round-trip: a bare keyword runs a search, a single code (or comma-separated list) is validated and described directly. Tip: Comext/CN nomenclature is frequently coarser than a colloquial product name (e.g. there is no code for "glass jars" alone -- only heading 7010, which bundles jars with bottles, flasks and closures). Check `has_subcodes` and, if useful, set `include_children=true` to see whether a finer sub-code is actually a better match before committing to one code for a whole report.

NameTypeReqDescription
include_childrenbooleanWhen resolving a single direct code, also fetch its immediate CN subtree so finer-grained alternatives are visible in one call.
langstringLanguage for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.
limitintegerMax keyword-search results (ignored for direct code validation).
querystringyesFree-text keyword (e.g. 'glass jars') OR one or more CN codes, comma-separated (e.g. '7010' or '7010, 7013').

Structured output declared, but exposes no named fields.

No examples provided.

search_codes ~198

Keyword/code search over the Combined Nomenclature (or PRODCOM). Returns ranked `{code, label, path}` candidates. Prefer `resolve_product_code` for a one-call keyword-or-code helper; use this directly if you specifically want the raw ranked candidate list.

NameTypeReqDescription
langstringLanguage for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.
limitintegerMax number of candidates to return.
qstringyesKeyword or code fragment to search for.
sourcestringNomenclature to search. A dotted PRODCOM code (e.g. '23.13') is auto-detected either way and reverse-mapped to CN codes.

Structured output declared, but exposes no named fields.

No examples provided.

validate_code ~196

Validate and describe one or more Combined Nomenclature codes. For a single code, returns the full hierarchy of description levels (`levels`), the resolved `product_name`, and `has_subcodes`. For a comma-separated list, returns `{"results": [...]}` with one entry per code (each either a success dict or an `{"code", "error"}` pair).

NameTypeReqDescription
codestringyesOne CN code, or a comma-separated list of up to 50 codes (e.g. '73030010, 73030090'). The literal 'TOTAL' is also accepted.
langstringLanguage for translated labels in the response. One of: bg, cs, da, de, el, en, es, et, fi, fr, ga, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, sk, sl, sv.

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the EU Trade Explorer MCP server?

EU Trade Explorer is an MCP server listed in the public MCP registry as eu.tradedashboard/eu-trade-explorer. EU customs-trade & industrial-production statistics (Eurostat Comext/PRODCOM). This page covers its hosted endpoint (https://mcp.tradedashboard.eu/mcp).

Is the EU Trade Explorer MCP server safe to use?

EU Trade Explorer scores 80 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 EU Trade Explorer MCP server expose?

EU Trade Explorer exposes 37 tools: guidelines_for_a_short_report, guidelines_for_a_long_report, get_countries, get_chapters, get_subtree, and 32 more. Their descriptions and schemas cost roughly 9,884 tokens of context every time the server is loaded.

Does the EU Trade Explorer MCP server require authentication?

No. We connected to EU Trade Explorer without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the EU Trade Explorer MCP server still maintained?

EU Trade Explorer is still listed as active in the MCP registry. We last reached this channel on 22 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.