Koskamo

Eurostat MCP

An MCP server that allows agents to search, browse, and query the Eurostat catalogue for EU economic, demographic, trade, health, and NUTS regional data. It supports tools for searching datasets, browsing themes, fetching metadata, querying data slices, and bulk downloading via SDMX, with optional dataframe canvas integration for SQL queries.

Package and access

Local package with source-attributed installation metadata. Koskamo does not execute packages during review.

Eurostat MCP logo, by cyanheadsCommunity listingLocal stdioSource reviewed; not executedPublished by cyanheads
Vendor documentation

What you can do with it

  • Search the Eurostat catalogue by keyword to find relevant datasets
  • Query specific datasets with dimension filters and time-range controls
  • Browse the Eurostat theme hierarchy to discover datasets
  • Bulk-download entire datasets via the SDMX endpoint

Source and maintenance

Community listingRegistry 0.11.1
Maintenance checked

Packages and installation

Source-provided package data. Koskamo has not executed or live-probed this package.

@cyanheads/eurostat-mcp-server 0.11.1

npmnpx
@cyanheads/eurostat-mcp-server package definition
{
  "version": "0.11.1",
  "transport": "stdio",
  "identifier": "@cyanheads/eurostat-mcp-server",
  "runtimeHint": "npx",
  "registryType": "npm",
  "registryBaseUrl": "https://registry.npmjs.org",
  "environmentVariables": [
    {
      "name": "EUROSTAT_CLAMP_LIMITS",
      "format": "boolean",
      "default": "true",
      "description": "Clamp positive integer preview/search/dimension limits to 500/100/1000 with a notice. False restores schemas rejecting over-cap inputs."
    },
    {
      "name": "MCP_LOG_LEVEL",
      "format": "string",
      "default": "info",
      "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
    },
    {
      "name": "EUROSTAT_BASE_URL",
      "format": "string",
      "default": "https://ec.europa.eu/eurostat/api/dissemination",
      "description": "Eurostat API base URL. Override when using a mirror or proxy."
    },
    {
      "name": "EUROSTAT_COMEXT_BASE_URL",
      "format": "string",
      "default": "https://ec.europa.eu/eurostat/api/comext/dissemination",
      "description": "Base URL of the Comext dissemination host, which serves every DS-* dataset code (detailed trade and PRODCOM). Override when using a mirror or proxy."
    },
    {
      "name": "EUROSTAT_REQUEST_TIMEOUT_MS",
      "format": "string",
      "default": "30000",
      "description": "Total allowance for one Eurostat request across retries, backoff and body consumption, in milliseconds."
    },
    {
      "name": "EUROSTAT_METADATA_TIMEOUT_MS",
      "format": "string",
      "default": "120000",
      "description": "Total allowance for one dataset's SDMX dataflow structure across retries, backoff and body consumption, in milliseconds. Defaults to 120000; separate from EUROSTAT_REQUEST_TIMEOUT_MS for large structures."
    },
    {
      "name": "EUROSTAT_TOC_CACHE_TTL_MS",
      "format": "string",
      "default": "43200000",
      "description": "How long a fetched catalogue TOC stays usable before the next catalogue call refreshes it, in milliseconds. Defaults to 12 hours."
    },
    {
      "name": "EUROSTAT_BULK_TIMEOUT_MS",
      "format": "string",
      "default": "120000",
      "description": "Total allowance for one eurostat_download_dataset transfer across request retries, backoff and streaming body consumption, in milliseconds. Defaults to 120000."
    },
    {
      "name": "EUROSTAT_BULK_MAX_BYTES",
      "format": "string",
      "default": "52428800",
      "description": "Byte budget for one eurostat_download_dataset transfer, counted on the decoded TSV rather than on the wire. Eurostat sends the body chunked with no Content-Length, so the budget is enforced while streaming and the transfer is aborted when it is reached. Defaults to 50 MiB."
    },
    {
      "name": "CANVAS_PROVIDER_TYPE",
      "format": "string",
      "default": "duckdb",
      "description": "Dataframe canvas backend. The default, 'duckdb', lists eurostat_dataframe_describe and eurostat_dataframe_query, stages query matches with stage=true or above 5,000 observations, and retains bulk downloads beyond their previews. Set to 'none' to disable the canvas and those tools. The DuckDB binding ships with the server."
    },
    {
      "name": "CANVAS_TEMP_PATH",
      "format": "string",
      "description": "Parent directory for DuckDB canvas spill files: a private 'mcp-canvas-XXXXXX' directory is created inside it, so it must be writable by the server process. Defaults to the OS temp directory."
    },
    {
      "name": "CANVAS_TTL_MS",
      "format": "string",
      "default": "86400000",
      "description": "Sliding lifetime of a staged dataframe canvas in milliseconds; every call against it extends the window. Defaults to 24 hours."
    },
    {
      "name": "CANVAS_DEFAULT_ROW_LIMIT",
      "format": "string",
      "default": "10000",
      "description": "Maximum complete rows a single eurostat_dataframe_query returns before reporting truncated."
    },
    {
      "name": "EUROSTAT_DATAFRAME_DROP_ENABLED",
      "format": "boolean",
      "default": "false",
      "description": "Set to 'true' to list eurostat_dataframe_drop, which removes one staged table from a dataframe canvas and leaves its other tables in place. Off by default because a drop cannot be undone; staged tables expire with their canvas either way. Has no effect with CANVAS_PROVIDER_TYPE=none."
    }
  ]
}

Tools

Reported by the attributed source; not independently observed by Koskamo.

No tool definitions available.

Connect from your client

Each snippet configures the same source-provided package; replace placeholders before use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Cursor

Merge this local stdio configuration, replace every placeholder environment value, and restart Cursor. Koskamo has not executed this package.
Cursor configuration
{
  "mcpServers": {
    "eurostat-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/eurostat-mcp-server@0.11.1"
      ],
      "env": {
        "EUROSTAT_CLAMP_LIMITS": "<YOUR_EUROSTAT_CLAMP_LIMITS>",
        "MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>",
        "EUROSTAT_BASE_URL": "<YOUR_EUROSTAT_BASE_URL>",
        "EUROSTAT_COMEXT_BASE_URL": "<YOUR_EUROSTAT_COMEXT_BASE_URL>",
        "EUROSTAT_REQUEST_TIMEOUT_MS": "<YOUR_EUROSTAT_REQUEST_TIMEOUT_MS>",
        "EUROSTAT_METADATA_TIMEOUT_MS": "<YOUR_EUROSTAT_METADATA_TIMEOUT_MS>",
        "EUROSTAT_TOC_CACHE_TTL_MS": "<YOUR_EUROSTAT_TOC_CACHE_TTL_MS>",
        "EUROSTAT_BULK_TIMEOUT_MS": "<YOUR_EUROSTAT_BULK_TIMEOUT_MS>",
        "EUROSTAT_BULK_MAX_BYTES": "<YOUR_EUROSTAT_BULK_MAX_BYTES>",
        "CANVAS_PROVIDER_TYPE": "<YOUR_CANVAS_PROVIDER_TYPE>",
        "CANVAS_TEMP_PATH": "<YOUR_CANVAS_TEMP_PATH>",
        "CANVAS_TTL_MS": "<YOUR_CANVAS_TTL_MS>",
        "CANVAS_DEFAULT_ROW_LIMIT": "<YOUR_CANVAS_DEFAULT_ROW_LIMIT>",
        "EUROSTAT_DATAFRAME_DROP_ENABLED": "<YOUR_EUROSTAT_DATAFRAME_DROP_ENABLED>"
      }
    }
  }
}

Cline

Merge this local stdio configuration, replace every placeholder environment value, and restart Cline. Koskamo has not executed this package.
Cline configuration
{
  "mcpServers": {
    "eurostat-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/eurostat-mcp-server@0.11.1"
      ],
      "env": {
        "EUROSTAT_CLAMP_LIMITS": "<YOUR_EUROSTAT_CLAMP_LIMITS>",
        "MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>",
        "EUROSTAT_BASE_URL": "<YOUR_EUROSTAT_BASE_URL>",
        "EUROSTAT_COMEXT_BASE_URL": "<YOUR_EUROSTAT_COMEXT_BASE_URL>",
        "EUROSTAT_REQUEST_TIMEOUT_MS": "<YOUR_EUROSTAT_REQUEST_TIMEOUT_MS>",
        "EUROSTAT_METADATA_TIMEOUT_MS": "<YOUR_EUROSTAT_METADATA_TIMEOUT_MS>",
        "EUROSTAT_TOC_CACHE_TTL_MS": "<YOUR_EUROSTAT_TOC_CACHE_TTL_MS>",
        "EUROSTAT_BULK_TIMEOUT_MS": "<YOUR_EUROSTAT_BULK_TIMEOUT_MS>",
        "EUROSTAT_BULK_MAX_BYTES": "<YOUR_EUROSTAT_BULK_MAX_BYTES>",
        "CANVAS_PROVIDER_TYPE": "<YOUR_CANVAS_PROVIDER_TYPE>",
        "CANVAS_TEMP_PATH": "<YOUR_CANVAS_TEMP_PATH>",
        "CANVAS_TTL_MS": "<YOUR_CANVAS_TTL_MS>",
        "CANVAS_DEFAULT_ROW_LIMIT": "<YOUR_CANVAS_DEFAULT_ROW_LIMIT>",
        "EUROSTAT_DATAFRAME_DROP_ENABLED": "<YOUR_EUROSTAT_DATAFRAME_DROP_ENABLED>"
      }
    }
  }
}

VS Code

Merge this local stdio configuration, replace every placeholder environment value, and restart VS Code. Koskamo has not executed this package.
VS Code configuration
{
  "servers": {
    "eurostat-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/eurostat-mcp-server@0.11.1"
      ],
      "env": {
        "EUROSTAT_CLAMP_LIMITS": "<YOUR_EUROSTAT_CLAMP_LIMITS>",
        "MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>",
        "EUROSTAT_BASE_URL": "<YOUR_EUROSTAT_BASE_URL>",
        "EUROSTAT_COMEXT_BASE_URL": "<YOUR_EUROSTAT_COMEXT_BASE_URL>",
        "EUROSTAT_REQUEST_TIMEOUT_MS": "<YOUR_EUROSTAT_REQUEST_TIMEOUT_MS>",
        "EUROSTAT_METADATA_TIMEOUT_MS": "<YOUR_EUROSTAT_METADATA_TIMEOUT_MS>",
        "EUROSTAT_TOC_CACHE_TTL_MS": "<YOUR_EUROSTAT_TOC_CACHE_TTL_MS>",
        "EUROSTAT_BULK_TIMEOUT_MS": "<YOUR_EUROSTAT_BULK_TIMEOUT_MS>",
        "EUROSTAT_BULK_MAX_BYTES": "<YOUR_EUROSTAT_BULK_MAX_BYTES>",
        "CANVAS_PROVIDER_TYPE": "<YOUR_CANVAS_PROVIDER_TYPE>",
        "CANVAS_TEMP_PATH": "<YOUR_CANVAS_TEMP_PATH>",
        "CANVAS_TTL_MS": "<YOUR_CANVAS_TTL_MS>",
        "CANVAS_DEFAULT_ROW_LIMIT": "<YOUR_CANVAS_DEFAULT_ROW_LIMIT>",
        "EUROSTAT_DATAFRAME_DROP_ENABLED": "<YOUR_EUROSTAT_DATAFRAME_DROP_ENABLED>"
      }
    }
  }
}

Claude Desktop

Merge this local stdio configuration, replace every placeholder environment value, and restart Claude Desktop. Koskamo has not executed this package.
Claude Desktop configuration
{
  "mcpServers": {
    "eurostat-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/eurostat-mcp-server@0.11.1"
      ],
      "env": {
        "EUROSTAT_CLAMP_LIMITS": "<YOUR_EUROSTAT_CLAMP_LIMITS>",
        "MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>",
        "EUROSTAT_BASE_URL": "<YOUR_EUROSTAT_BASE_URL>",
        "EUROSTAT_COMEXT_BASE_URL": "<YOUR_EUROSTAT_COMEXT_BASE_URL>",
        "EUROSTAT_REQUEST_TIMEOUT_MS": "<YOUR_EUROSTAT_REQUEST_TIMEOUT_MS>",
        "EUROSTAT_METADATA_TIMEOUT_MS": "<YOUR_EUROSTAT_METADATA_TIMEOUT_MS>",
        "EUROSTAT_TOC_CACHE_TTL_MS": "<YOUR_EUROSTAT_TOC_CACHE_TTL_MS>",
        "EUROSTAT_BULK_TIMEOUT_MS": "<YOUR_EUROSTAT_BULK_TIMEOUT_MS>",
        "EUROSTAT_BULK_MAX_BYTES": "<YOUR_EUROSTAT_BULK_MAX_BYTES>",
        "CANVAS_PROVIDER_TYPE": "<YOUR_CANVAS_PROVIDER_TYPE>",
        "CANVAS_TEMP_PATH": "<YOUR_CANVAS_TEMP_PATH>",
        "CANVAS_TTL_MS": "<YOUR_CANVAS_TTL_MS>",
        "CANVAS_DEFAULT_ROW_LIMIT": "<YOUR_CANVAS_DEFAULT_ROW_LIMIT>",
        "EUROSTAT_DATAFRAME_DROP_ENABLED": "<YOUR_EUROSTAT_DATAFRAME_DROP_ENABLED>"
      }
    }
  }
}

Let your agent find its tools

Find servers like Eurostat MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.