Skip to main content
Glama

Get Eurostat Dataset Info

eurostat_get_dataset_info
Read-onlyIdempotent

Fetch metadata for a Eurostat dataset: dimensions with valid values, time range, observation count, and last-update date. Call this before eurostat_query_dataset or eurostat_download_dataset to discover what dimension codes are valid (unit, na_item, geo, etc.); eurostat_download_dataset builds its positional filter key from this dimension list, so a filter naming a dimension absent here is rejected outright. Returns up to 10 sample values per dimension for orientation; use eurostat_get_dimension_values to list the full set for large dimensions. A DS-* code (detailed trade and PRODCOM, in any case) is read from the Comext dissemination host, which reports no period coverage or observation count, so timeRange and obsCount come back unreported; the first call on a large Comext collection downloads its full structure (23 MB for DS-045409) and takes longer, and repeat calls within the hour reuse it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataset_codeYesDataset code (e.g., "nama_10_gdp", or "DS-045409" for a Comext collection). Use eurostat_search_datasets or eurostat_browse_themes to find codes.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeNoDataset code as provided.
errorNoPresent when the call failed. Absent on success.
labelNoHuman-readable dataset title.
obsCountNoTotal number of observations in the full dataset (all periods). Omitted when Eurostat does not report it — an omitted count is unknown, not zero.
timeRangeNoOverall data coverage period for this dataset. Each bound is omitted when Eurostat does not report it — an omitted bound is unknown, not empty.
dimensionsNoAll dimensions of the dataset with their valid codes and labels.
lastUpdatedNoISO 8601 timestamp of the most recent data update. Omitted when Eurostat does not report it.
metadataUrlNoURL to the ESMS HTML metadata page for this dataset. Omitted when not provided by Eurostat.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / dataset_code / description
      Previous value: -"Dataset code (e.g., \"nama_10_gdp\"). Use eurostat_search_datasets or eurostat_browse_themes to find codes."New value: +"Dataset code (e.g., \"nama_10_gdp\", or \"DS-045409\" for a Comext collection). Use eurostat_search_datasets or eurostat_browse_themes to find codes."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `not_found`: The dataset code does not exist or is not available for dissemination. `async_response`: Eurostat returned an async response (query too large for the API). Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `not_found`: The dataset code does not exist or is not available for dissemination. `upstream_fault`: Eurostat returned a dataset structure or content constraint this server cannot read: malformed, truncated, not XML, or missing the requested dataset's dataflow. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "not_found",
      -  "async_response"
      -]New value: +[
      +  "not_found",
      +  "upstream_fault"
      +]
  2. Changed2 schema fields changed
    • changedOutput schema / properties / dimensions / items / properties / sampleValues / description
      Previous value: -"First 10 dimension values for orientation. Use eurostat_get_dimension_values for the full list. Omitted alongside valuesCount when the value set could not be measured."New value: +"First 10 dataset-available values for orientation. Use eurostat_get_dimension_values for the full constrained list. Omitted alongside valuesCount when Eurostat does not supply a measurable value set."
    • changedOutput schema / properties / dimensions / items / properties / valuesCount / description
      Previous value: -"Number of distinct values in this dimension. For \"time\" this is the dataset's full period count; every other dimension is counted from the most recent period. Omitted when the value set could not be measured — only \"time\" can be, and an omitted count is unknown, not one. Call eurostat_get_dimension_values for that dimension to obtain it."New value: +"Number of dataset-available values in this dimension, taken from the dataset content constraint. For \"time\" this is the full period count. Omitted only when Eurostat does not supply a measurable value set."
  3. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "code",
      +      "label",
      +      "dimensions",
      +      "timeRange"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Present when the call failed. Absent on success.",
      +  "properties": {
      +    "code": {
      +      "description": "JSON-RPC error code for this failure.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "data": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "reason": {
      +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The dataset code does not exist or is not available for dissemination. `async_response`: Eurostat returned an async response (query too large for the API). Other values are possible when a failure originates below the handler.",
      +          "examples": [
      +            "not_found",
      +            "async_response"
      +          ],
      +          "type": "string"
      +        },
      +        "recovery": {
      +          "additionalProperties": {},
      +          "description": "Actionable next step for the caller.",
      +          "properties": {
      +            "hint": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "hint"
      +          ],
      +          "type": "object"
      +        },
      +        "retryable": {
      +          "description": "Whether retrying may succeed.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "Human-readable description of what went wrong.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "code",
      -  "label",
      -  "dimensions",
      -  "timeRange"
      -]
  4. Changed1 schema field changed
    • changedOutput schema / properties / dimensions / items / properties / code / description
      Previous value: -"Dimension code (e.g., \"unit\", \"geo\", \"na_item\"). Use these as filter keys in eurostat_query_dataset."New value: +"Dimension code (e.g., \"unit\", \"geo\", \"na_item\"). Use these as filter keys in eurostat_query_dataset and eurostat_download_dataset."
  5. Changed3 schema fields changed
    • changedOutput schema / properties / dimensions / items / properties / sampleValues / description
      Previous value: -"First 10 dimension values for orientation. Use eurostat_get_dimension_values for the full list."New value: +"First 10 dimension values for orientation. Use eurostat_get_dimension_values for the full list. Omitted alongside valuesCount when the value set could not be measured."
    • changedOutput schema / properties / dimensions / items / properties / valuesCount / description
      Previous value: -"Number of distinct values in this dimension. For \"time\" this is the dataset's full period count; every other dimension is counted from the most recent period."New value: +"Number of distinct values in this dimension. For \"time\" this is the dataset's full period count; every other dimension is counted from the most recent period. Omitted when the value set could not be measured — only \"time\" can be, and an omitted count is unknown, not one. Call eurostat_get_dimension_values for that dimension to obtain it."
    • changedOutput schema / properties / dimensions / items / required
      Previous value: -[
      -  "code",
      -  "label",
      -  "valuesCount",
      -  "sampleValues"
      -]New value: +[
      +  "code",
      +  "label"
      +]
  6. Changed8 schema fields changed
    • changedOutput schema / properties / dimensions / items / properties / valuesCount / description
      Previous value: -"Number of distinct values in this dimension for the most recent period."New value: +"Number of distinct values in this dimension. For \"time\" this is the dataset's full period count; every other dimension is counted from the most recent period."
    • changedOutput schema / properties / lastUpdated / description
      Previous value: -"ISO 8601 timestamp of the most recent data update."New value: +"ISO 8601 timestamp of the most recent data update. Omitted when Eurostat does not report it."
    • changedOutput schema / properties / obsCount / description
      Previous value: -"Total number of observations in the full dataset (all periods)."New value: +"Total number of observations in the full dataset (all periods). Omitted when Eurostat does not report it — an omitted count is unknown, not zero."
    • changedOutput schema / properties / timeRange / description
      Previous value: -"Overall data coverage period for this dataset."New value: +"Overall data coverage period for this dataset. Each bound is omitted when Eurostat does not report it — an omitted bound is unknown, not empty."
    • changedOutput schema / properties / timeRange / properties / end / description
      Previous value: -"Most recent available period (e.g., \"2024\")."New value: +"Most recent available period (e.g., \"2024\"). Omitted when Eurostat does not report it."
    • changedOutput schema / properties / timeRange / properties / start / description
      Previous value: -"Earliest available period (e.g., \"1975\")."New value: +"Earliest available period (e.g., \"1975\"). Omitted when Eurostat does not report it."
    • removedOutput schema / properties / timeRange / required
      Removed value: -[
      -  "start",
      -  "end"
      -]
    • changedOutput schema / required
      Previous value: -[
      -  "code",
      -  "label",
      -  "dimensions",
      -  "timeRange",
      -  "obsCount",
      -  "lastUpdated"
      -]New value: +[
      +  "code",
      +  "label",
      +  "dimensions",
      +  "timeRange"
      +]
  7. First observed

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/openWorld annotations, the description discloses important behavioral traits: sample-value limits, missing timeRange/obsCount for DS-* codes, a 23 MB first-call download for large Comext collections, and one-hour caching. This materially helps an agent anticipate latency and incomplete results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: purpose, usage routing, sample-value behavior, and DS-* caveats. It front-loads the core purpose and keeps related caveats grouped, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter metadata tool with an output schema and strong annotations, the description covers all necessary operational context: when to call it, what it returns, how it differs from related tools, and special-case behavior. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes dataset_code with examples, so the baseline is 3. The description adds meaningful semantic nuance by explaining that DS-* codes route to the Comext host and behave differently, which goes beyond the schema's basic type and example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Fetch metadata for a Eurostat dataset' and enumerates the exact contents (dimensions, valid values, time range, observation count, last-update date). It also distinguishes itself from siblings by explicitly naming eurostat_query_dataset, eurostat_download_dataset, and eurostat_get_dimension_values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'Call this before eurostat_query_dataset or eurostat_download_dataset.' It also provides an alternative for a different need: 'use eurostat_get_dimension_values to list the full set for large dimensions.' This is clear routing with no ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.