{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/eurostat-mcp-server","description":"Search and query the Eurostat catalogue — EU economy, demography, trade, and NUTS regional data.","repository":{"url":"https://github.com/cyanheads/eurostat-mcp-server","source":"github"},"version":"0.11.2","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/eurostat-mcp-server","version":"0.11.2","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Clamp positive integer preview/search/dimension limits to 500/100/1000 with a notice. False restores schemas rejecting over-cap inputs.","format":"boolean","default":"true","name":"EUROSTAT_CLAMP_LIMITS"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"},{"description":"Eurostat API base URL. Override when using a mirror or proxy.","format":"string","default":"https://ec.europa.eu/eurostat/api/dissemination","name":"EUROSTAT_BASE_URL"},{"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.","format":"string","default":"https://ec.europa.eu/eurostat/api/comext/dissemination","name":"EUROSTAT_COMEXT_BASE_URL"},{"description":"Total allowance for one Eurostat request across retries, backoff and body consumption, in milliseconds.","format":"string","default":"30000","name":"EUROSTAT_REQUEST_TIMEOUT_MS"},{"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.","format":"string","default":"120000","name":"EUROSTAT_METADATA_TIMEOUT_MS"},{"description":"How long a fetched catalogue TOC stays usable before the next catalogue call refreshes it, in milliseconds. Defaults to 12 hours.","format":"string","default":"43200000","name":"EUROSTAT_TOC_CACHE_TTL_MS"},{"description":"Total allowance for one eurostat_download_dataset transfer across request retries, backoff and streaming body consumption, in milliseconds. Defaults to 120000.","format":"string","default":"120000","name":"EUROSTAT_BULK_TIMEOUT_MS"},{"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.","format":"string","default":"52428800","name":"EUROSTAT_BULK_MAX_BYTES"},{"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.","format":"string","default":"duckdb","name":"CANVAS_PROVIDER_TYPE"},{"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.","format":"string","name":"CANVAS_TEMP_PATH"},{"description":"Sliding lifetime of a staged dataframe canvas in milliseconds; every call against it extends the window. Defaults to 24 hours.","format":"string","default":"86400000","name":"CANVAS_TTL_MS"},{"description":"Maximum complete rows a single eurostat_dataframe_query returns before reporting truncated.","format":"string","default":"10000","name":"CANVAS_DEFAULT_ROW_LIMIT"},{"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.","format":"boolean","default":"false","name":"EUROSTAT_DATAFRAME_DROP_ENABLED"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/eurostat-mcp-server","version":"0.11.2","runtimeHint":"npx","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"environmentVariables":[{"description":"Selects the HTTP transport.","format":"string","value":"http","name":"MCP_TRANSPORT_TYPE"},{"description":"Clamp positive integer preview/search/dimension limits to 500/100/1000 with a notice. False restores schemas rejecting over-cap inputs.","format":"boolean","default":"true","name":"EUROSTAT_CLAMP_LIMITS"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Public origin override for deployments behind a TLS-terminating reverse proxy (e.g. https://mcp.example.com).","format":"string","name":"MCP_PUBLIC_URL"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"},{"description":"Eurostat API base URL. Override when using a mirror or proxy.","format":"string","default":"https://ec.europa.eu/eurostat/api/dissemination","name":"EUROSTAT_BASE_URL"},{"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.","format":"string","default":"https://ec.europa.eu/eurostat/api/comext/dissemination","name":"EUROSTAT_COMEXT_BASE_URL"},{"description":"Total allowance for one Eurostat request across retries, backoff and body consumption, in milliseconds.","format":"string","default":"30000","name":"EUROSTAT_REQUEST_TIMEOUT_MS"},{"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.","format":"string","default":"120000","name":"EUROSTAT_METADATA_TIMEOUT_MS"},{"description":"How long a fetched catalogue TOC stays usable before the next catalogue call refreshes it, in milliseconds. Defaults to 12 hours.","format":"string","default":"43200000","name":"EUROSTAT_TOC_CACHE_TTL_MS"},{"description":"Total allowance for one eurostat_download_dataset transfer across request retries, backoff and streaming body consumption, in milliseconds. Defaults to 120000.","format":"string","default":"120000","name":"EUROSTAT_BULK_TIMEOUT_MS"},{"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.","format":"string","default":"52428800","name":"EUROSTAT_BULK_MAX_BYTES"},{"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.","format":"string","default":"duckdb","name":"CANVAS_PROVIDER_TYPE"},{"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.","format":"string","name":"CANVAS_TEMP_PATH"},{"description":"Sliding lifetime of a staged dataframe canvas in milliseconds; every call against it extends the window. Defaults to 24 hours.","format":"string","default":"86400000","name":"CANVAS_TTL_MS"},{"description":"Maximum complete rows a single eurostat_dataframe_query returns before reporting truncated.","format":"string","default":"10000","name":"CANVAS_DEFAULT_ROW_LIMIT"},{"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.","format":"boolean","default":"false","name":"EUROSTAT_DATAFRAME_DROP_ENABLED"}]}],"remotes":[{"type":"streamable-http","url":"https://eurostat.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-11-03T04:40:10.368428Z","publishedAt":"2026-11-03T04:40:10.368428Z","updatedAt":"2026-11-03T04:40:10.368428Z","isLatest":true}}}
