{"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.6.3","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/eurostat-mcp-server","version":"0.6.3","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"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":"HTTP request timeout in milliseconds for Eurostat API calls.","format":"string","default":"30000","name":"EUROSTAT_REQUEST_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":"HTTP timeout for one eurostat_download_dataset transfer, in milliseconds. Held separate from EUROSTAT_REQUEST_TIMEOUT_MS because a bulk body streams for minutes where a metadata call answers in seconds. Defaults to 2 minutes.","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":"Set to 'duckdb' to enable the dataframe canvas, which 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. The DuckDB binding ships with the server, so this variable is the only switch.","format":"string","default":"none","name":"CANVAS_PROVIDER_TYPE"},{"description":"Directory DuckDB writes canvas spill files to. Must be writable by the server process. Defaults to a 'mcp-canvas' directory under 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 the result is reported as truncated.","format":"string","default":"10000","name":"CANVAS_DEFAULT_ROW_LIMIT"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/eurostat-mcp-server","version":"0.6.3","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"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":"HTTP request timeout in milliseconds for Eurostat API calls.","format":"string","default":"30000","name":"EUROSTAT_REQUEST_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":"HTTP timeout for one eurostat_download_dataset transfer, in milliseconds. Held separate from EUROSTAT_REQUEST_TIMEOUT_MS because a bulk body streams for minutes where a metadata call answers in seconds. Defaults to 2 minutes.","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":"Set to 'duckdb' to enable the dataframe canvas, which 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. The DuckDB binding ships with the server, so this variable is the only switch.","format":"string","default":"none","name":"CANVAS_PROVIDER_TYPE"},{"description":"Directory DuckDB writes canvas spill files to. Must be writable by the server process. Defaults to a 'mcp-canvas' directory under 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 the result is reported as truncated.","format":"string","default":"10000","name":"CANVAS_DEFAULT_ROW_LIMIT"}]}],"remotes":[{"type":"streamable-http","url":"https://eurostat.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-31T06:03:00.471676Z","publishedAt":"2026-08-31T06:03:00.471676Z","updatedAt":"2026-08-31T06:03:00.471676Z","isLatest":true}}}
