| MCP_LOG_LEVEL | No | Sets the minimum log level for output (e.g., 'debug', 'info', 'warn'). |
| EUROSTAT_BASE_URL | No | Eurostat API base URL. Override when using a mirror or proxy. |
| EUROSTAT_COMEXT_BASE_URL | No | Base URL of the Comext dissemination host, which serves every DS-* dataset code (detailed trade and PRODCOM). Override when using a mirror or proxy. |
| EUROSTAT_REQUEST_TIMEOUT_MS | No | HTTP request timeout in milliseconds for Eurostat API calls. |
| EUROSTAT_METADATA_TIMEOUT_MS | No | HTTP timeout for one dataset's SDMX dataflow structure, in milliseconds. Held separate from EUROSTAT_REQUEST_TIMEOUT_MS because the structure carries a label for every code the dataset uses: 23 MB, uncompressed, for DS-045409. Defaults to 2 minutes. |
| EUROSTAT_TOC_CACHE_TTL_MS | No | How long a fetched catalogue TOC stays usable before the next catalogue call refreshes it, in milliseconds. Defaults to 12 hours. |
| EUROSTAT_BULK_TIMEOUT_MS | No | 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. |
| EUROSTAT_BULK_MAX_BYTES | No | 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. |
| CANVAS_PROVIDER_TYPE | No | 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. |
| CANVAS_TEMP_PATH | No | 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. |
| CANVAS_TTL_MS | No | Sliding lifetime of a staged dataframe canvas in milliseconds; every call against it extends the window. Defaults to 24 hours. |
| CANVAS_DEFAULT_ROW_LIMIT | No | Maximum rows a single eurostat_dataframe_query returns before the result is reported as truncated. |
| EUROSTAT_DATAFRAME_DROP_ENABLED | No | 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. Takes effect only with CANVAS_PROVIDER_TYPE=duckdb. |
| MCP_TRANSPORT_TYPE | No | Selects the HTTP transport. |
| MCP_HTTP_HOST | No | The hostname for the HTTP server. |
| MCP_HTTP_PORT | No | The port to run the HTTP server on. |
| MCP_HTTP_ENDPOINT_PATH | No | The endpoint path for the MCP server. |
| MCP_PUBLIC_URL | No | Public origin override for deployments behind a TLS-terminating reverse proxy (e.g. https://mcp.example.com). |
| MCP_AUTH_MODE | No | Authentication mode to use: 'none', 'jwt', or 'oauth'. |
| MCP_LOG_LEVEL | No | Sets the minimum log level for output (e.g., 'debug', 'info', 'warn'). |
| EUROSTAT_BASE_URL | No | Eurostat API base URL. Override when using a mirror or proxy. |
| EUROSTAT_COMEXT_BASE_URL | No | Base URL of the Comext dissemination host, which serves every DS-* dataset code (detailed trade and PRODCOM). Override when using a mirror or proxy. |
| EUROSTAT_REQUEST_TIMEOUT_MS | No | HTTP request timeout in milliseconds for Eurostat API calls. |
| EUROSTAT_METADATA_TIMEOUT_MS | No | HTTP timeout for one dataset's SDMX dataflow structure, in milliseconds. Held separate from EUROSTAT_REQUEST_TIMEOUT_MS because the structure carries a label for every code the dataset uses: 23 MB, uncompressed, for DS-045409. Defaults to 2 minutes. |
| EUROSTAT_TOC_CACHE_TTL_MS | No | How long a fetched catalogue TOC stays usable before the next catalogue call refreshes it, in milliseconds. Defaults to 12 hours. |
| EUROSTAT_BULK_TIMEOUT_MS | No | 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. |
| EUROSTAT_BULK_MAX_BYTES | No | 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. |
| CANVAS_PROVIDER_TYPE | No | 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. |
| CANVAS_TEMP_PATH | No | 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. |
| CANVAS_TTL_MS | No | Sliding lifetime of a staged dataframe canvas in milliseconds; every call against it extends the window. Defaults to 24 hours. |
| CANVAS_DEFAULT_ROW_LIMIT | No | Maximum rows a single eurostat_dataframe_query returns before the result is reported as truncated. |
| EUROSTAT_DATAFRAME_DROP_ENABLED | No | 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. Takes effect only with CANVAS_PROVIDER_TYPE=duckdb. |