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

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

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. Changed1 schema field changed
    • 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. `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 — or the structure endpoint answered HTTP 5xx or could not be reached on every retry, which the error marks retryable. 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; the structure endpoint answered HTTP 501, which is not retried; or it answered another HTTP 5xx or could not be reached on every retry, which the error marks retryable. Other values are possible when a failure originates below the handler."
  2. Changed1 schema field changed
    • 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. `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."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 — or the structure endpoint answered HTTP 5xx or could not be reached on every retry, which the error marks retryable. Other values are possible when a failure originates below the handler."
  3. 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"
      +]
  4. 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."
  5. 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"
      -]
  6. 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."
  7. 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"
      +]
  8. 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"
      +]
  9. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the readOnly/idempotent/openWorld annotations, the description discloses the 10-sample-per-dimension cap, the unreported timeRange and obsCount on DS-* Comext codes, the 23 MB first-call structure download, and the one-hour cache reuse. These are exactly the behaviors an agent needs and cannot infer from annotations, though the phrasing is dense enough that a skimming agent could miss the Comext caveat.

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

Conciseness4/5

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

The purpose is front-loaded in the first sentence, then constraints and alternatives follow in a logical order. The final sentence packs several distinct facts (host, missing coverage, download size, caching) into one long clause, which costs some readability but the content is all actionable rather than filler.

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?

With an output schema available, the description need not document return values, and it still covers the practical gaps: call ordering, sample-value limits, and the DS-* exception path. Nothing an agent needs to invoke this tool or interpret its output correctly appears to be missing.

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

Parameters3/5

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

The single parameter has full schema coverage including its description and example values ("eurostat_search_datasets or eurostat_browse_datasets" pointer), so the schema carries the burden. The description adds no meaning about dataset_code itself, so the baseline of 3 applies.

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 immediately enumerates the returned content: dimensions with valid values, time range, observation count, and last-update date. This is clearly distinct from the sibling tools that query, download, or list 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?

It states explicitly when to call it ("Call this before eurostat_query_dataset or eurostat_download_dataset") and why (to discover valid dimension codes and to avoid a rejected positional filter key). It also names eurostat_get_dimension_values as the alternative when the 10-sample cap is insufficient, so the agent knows both the ordering constraint and the sibling to use for exhaustiveness.

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.