| EIA_API_KEY | Yes | Free API key from api.eia.gov. Required — all requests use this as the api_key query parameter. |
| EIA_DATASET_TTL_SECONDS | No | Sliding per-dataframe TTL in seconds, extended by every query that references the dataframe. |
| EIA_DATAFRAME_DROP_ENABLED | No | Set to 'true' to expose eia_dataframe_drop for manual canvas cleanup. Also requires CANVAS_PROVIDER_TYPE=duckdb. |
| EIA_CANVAS_MAX_ROWS | No | Cumulative row ceiling for eia_query_route DataCanvas staging on a stage: true call. Five requests at EIA's 5000-row-per-request ceiling. |
| EIA_FACET_VALUE_CAP | No | Facet values eia_describe_route returns per facet before truncating. Page past it with the tool's facet and values_offset inputs. |
| CANVAS_PROVIDER_TYPE | No | Set to 'duckdb' to enable DataCanvas (Node.js only). Registers the three eia_dataframe_* tools and lets eia_query_route stage rows when called with stage: true. |
| MCP_LOG_LEVEL | No | Sets the minimum log level for output (e.g., 'debug', 'info', 'warn'). |
| MCP_TRANSPORT_TYPE | No | Selects the HTTP transport. |
| EIA_API_KEY | Yes | Free API key from api.eia.gov. Required — all requests use this as the api_key query parameter. |
| EIA_DATASET_TTL_SECONDS | No | Sliding per-dataframe TTL in seconds, extended by every query that references the dataframe. |
| EIA_DATAFRAME_DROP_ENABLED | No | Set to 'true' to expose eia_dataframe_drop for manual canvas cleanup. Also requires CANVAS_PROVIDER_TYPE=duckdb. |
| EIA_CANVAS_MAX_ROWS | No | Cumulative row ceiling for eia_query_route DataCanvas staging on a stage: true call. Five requests at EIA's 5000-row-per-request ceiling. |
| EIA_FACET_VALUE_CAP | No | Facet values eia_describe_route returns per facet before truncating. Page past it with the tool's facet and values_offset inputs. |
| CANVAS_PROVIDER_TYPE | No | Set to 'duckdb' to enable DataCanvas (Node.js only). Registers the three eia_dataframe_* tools and lets eia_query_route stage rows when called with stage: true. |
| 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'). |