{"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.10.1","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/eurostat-mcp-server","version":"0.10.1","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Clamp positive integer preview/search limits to 500/100 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 the eurostat_dataframe_describe and eurostat_dataframe_query tools, lets eurostat_query_dataset stage a match larger than its 5,000-row inline cap as a SQL table, and lets eurostat_download_dataset retain a whole bulk download instead of only its inline preview. Set to 'none' to disable the canvas and those tools. The DuckDB binding ships with the server, so this variable is the only switch.","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 rows a single eurostat_dataframe_query returns before reporting truncated. A separate 64,000-byte budget applies to each serialized response surface, retaining at least one complete row even if oversized.","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.10.1","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 limits to 500/100 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 the eurostat_dataframe_describe and eurostat_dataframe_query tools, lets eurostat_query_dataset stage a match larger than its 5,000-row inline cap as a SQL table, and lets eurostat_download_dataset retain a whole bulk download instead of only its inline preview. Set to 'none' to disable the canvas and those tools. The DuckDB binding ships with the server, so this variable is the only switch.","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 rows a single eurostat_dataframe_query returns before reporting truncated. A separate 64,000-byte budget applies to each serialized response surface, retaining at least one complete row even if oversized.","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-10-23T05:42:43.22921Z","publishedAt":"2026-10-23T05:42:43.22921Z","updatedAt":"2026-10-23T05:42:43.22921Z","isLatest":false}}}
