Skip to content
Squatch MCP

io.github.cyanheads/eurostat-mcp-server

io.github.cyanheads/eurostat-mcp-server

by io.github.cyanheads· v0.11.3Source: Official MCP Registry

All versions

VersionRegistry status
0.11.3latestActive
0.11.2Active
0.11.1Active
0.11.0Active
0.10.1Active
0.9.0Active
0.8.1Active
0.8.0Active
0.7.0Active
0.6.5Active
0.6.4Active
0.6.3Active
0.6.2Active
0.6.1Active
0.6.0Active
0.5.0Active
0.4.0Active
0.3.0Active
0.2.0Active
0.10.0Active
0.1.9Active
0.1.8Active
0.1.7Active
0.1.6Active
0.1.5Active
0.1.4Active
0.1.3Active
0.1.2Active
0.1.16Active
0.1.15Active
0.1.14Active
0.1.13Active
0.1.12Active
0.1.11Active
0.1.10Active

Version details

Version
0.11.3
Source
Source: Official MCP Registry
Published
Registry last updated
First observed by Squatch
Content fingerprint
6638cd590bd2969392141fbede05a7646d7ff8d96486403bfc0aef5d3d54cddc

Transports in this version

  • remotestreamable-httphttps://eurostat.caseyjhand.com/mcpNo authentication
  • packagestdionpm @cyanheads/eurostat-mcp-serverUnknown
  • packagestreamable-httpnpm @cyanheads/eurostat-mcp-serverUnknown
Registry metadata (server.json, sanitized)
{
  "_meta": {
    "io.modelcontextprotocol.registry/official": {
      "status": "active",
      "isLatest": true,
      "updatedAt": "2026-11-08T19:38:11.140048Z",
      "publishedAt": "2026-11-08T19:38:11.140048Z",
      "statusChangedAt": "2026-11-08T19:38:11.140048Z"
    }
  },
  "server": {
    "name": "io.github.cyanheads/eurostat-mcp-server",
    "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
    "remotes": [
      {
        "url": "https://eurostat.caseyjhand.com/mcp",
        "type": "streamable-http"
      }
    ],
    "version": "0.11.3",
    "packages": [
      {
        "version": "0.11.3",
        "transport": {
          "type": "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, and for each download that builds the dimension value index, 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."
          }
        ]
      },
      {
        "version": "0.11.3",
        "transport": {
          "url": "http://localhost:3010/mcp",
          "type": "streamable-http"
        },
        "identifier": "@cyanheads/eurostat-mcp-server",
        "runtimeHint": "npx",
        "registryType": "npm",
        "registryBaseUrl": "https://registry.npmjs.org",
        "environmentVariables": [
          {
            "name": "MCP_TRANSPORT_TYPE",
            "value": "http",
            "format": "string",
            "description": "Selects the HTTP transport."
          },
          {
            "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_HTTP_HOST",
            "format": "string",
            "default": "127.0.0.1",
            "description": "The hostname for the HTTP server."
          },
          {
            "name": "MCP_HTTP_PORT",
            "format": "string",
            "default": "3010",
            "description": "The port to run the HTTP server on."
          },
          {
            "name": "MCP_HTTP_ENDPOINT_PATH",
            "format": "string",
            "default": "/mcp",
            "description": "The endpoint path for the MCP server."
          },
          {
            "name": "MCP_PUBLIC_URL",
            "format": "string",
            "description": "Public origin override for deployments behind a TLS-terminating reverse proxy (e.g. https://mcp.example.com)."
          },
          {
            "name": "MCP_AUTH_MODE",
            "format": "string",
            "default": "none",
            "description": "Authentication mode to use: 'none', 'jwt', or 'oauth'."
          },
          {
            "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, and for each download that builds the dimension value index, 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."
          }
        ]
      }
    ],
    "repository": {
      "url": "https://github.com/cyanheads/eurostat-mcp-server",
      "source": "github"
    },
    "description": "Search and query the Eurostat catalogue — EU economy, demography, trade, and NUTS regional data."
  }
}