# EU Trade Explorer MCP server

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

## Links
- Registry page: https://www.getdrio.com/mcp/eu-tradedashboard-eu-trade-explorer
- Website: https://tradedashboard.eu

## Install
- Endpoint: https://mcp.tradedashboard.eu/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://mcp.tradedashboard.eu/mcp

## Tools
- guidelines_for_a_short_report - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- guidelines_for_a_long_report - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_countries - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_chapters - List all top-level Combined Nomenclature chapters (2-digit codes).

    Bootstraps browsing the nomenclature top-down; drill into a chapter with
    `get_subtree`.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_subtree - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- validate_code - 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).
     Endpoint: https://mcp.tradedashboard.eu/mcp
- search_codes - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_data_range - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_overview - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_partner_detail - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_reporter_detail - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_reporter_benchmark - 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 EU-wide
    weighted average, 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 compare to
    every other EU reporter?".
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_map_data - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_top_entities - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_production_series - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_product_compare - 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`.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_concentration - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_concentration_compare - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_concentration_map - 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).
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_specialisation - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_production_concentration - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_volatility - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_pattern_shift - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_supply_shocks - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_price_shocks - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_net_import_reliance - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_trade_intensity - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_export_propensity - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_subcontracting - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_subcontracting_members - 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).
     Endpoint: https://mcp.tradedashboard.eu/mcp
- resolve_product_code - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_product_profile - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_market_summary - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_market_structure_summary - 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}`.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_volatility_summary - 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}`.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_autonomy_summary - 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}`.
     Endpoint: https://mcp.tradedashboard.eu/mcp
- get_full_report - 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.
     Endpoint: https://mcp.tradedashboard.eu/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: eu.tradedashboard
- Version: 1.0.1
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 24, 2026
- Source: https://registry.modelcontextprotocol.io
