{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/eia-energy-mcp-server","description":"Browse and query the EIA API v2 — electricity, petroleum, natural gas, coal, forecasts via MCP.","repository":{"url":"https://github.com/cyanheads/eia-energy-mcp-server","source":"github"},"version":"0.5.1","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/eia-energy-mcp-server","version":"0.5.1","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Free API key from api.eia.gov. Required — all requests use this as the api_key query parameter.","isRequired":true,"format":"string","name":"EIA_API_KEY"},{"description":"Sliding per-dataframe TTL in seconds, extended by every query that references the dataframe. At most 31536000 (365 days).","format":"string","default":"86400","name":"EIA_DATASET_TTL_SECONDS"},{"description":"Set to 'true' to expose eia_dataframe_drop for manual canvas cleanup. Has no effect with CANVAS_PROVIDER_TYPE=none.","format":"string","default":"false","name":"EIA_DATAFRAME_DROP_ENABLED"},{"description":"Cumulative row ceiling for eia_query_route DataCanvas staging on a stage: true call. Five requests at EIA's 5000-row-per-request ceiling. At most 250000.","format":"string","default":"25000","name":"EIA_CANVAS_MAX_ROWS"},{"description":"Facet values eia_describe_route returns per facet before truncating. Page past it with the tool's facet and values_offset inputs, or narrow a facet with values_query. At most 1000.","format":"string","default":"50","name":"EIA_FACET_VALUE_CAP"},{"description":"Lower an over-cap eia_query_route length, eia_dataframe_query row_limit or preview, or eia_search_routes limit to its cap with a notice. 'false' advertises and enforces each cap as a schema maximum instead.","format":"string","default":"true","name":"EIA_CLAMP_LIMITS"},{"description":"DataCanvas provider. 'duckdb', the default, registers eia_dataframe_describe and eia_dataframe_query and lets eia_query_route stage rows when called with stage: true; eia_dataframe_drop also requires EIA_DATAFRAME_DROP_ENABLED=true. 'none' disables DataCanvas.","format":"string","default":"duckdb","name":"CANVAS_PROVIDER_TYPE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/eia-energy-mcp-server","version":"0.5.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":"Free API key from api.eia.gov. Required — all requests use this as the api_key query parameter.","isRequired":true,"format":"string","name":"EIA_API_KEY"},{"description":"Sliding per-dataframe TTL in seconds, extended by every query that references the dataframe. At most 31536000 (365 days).","format":"string","default":"86400","name":"EIA_DATASET_TTL_SECONDS"},{"description":"Set to 'true' to expose eia_dataframe_drop for manual canvas cleanup. Has no effect with CANVAS_PROVIDER_TYPE=none.","format":"string","default":"false","name":"EIA_DATAFRAME_DROP_ENABLED"},{"description":"Cumulative row ceiling for eia_query_route DataCanvas staging on a stage: true call. Five requests at EIA's 5000-row-per-request ceiling. At most 250000.","format":"string","default":"25000","name":"EIA_CANVAS_MAX_ROWS"},{"description":"Facet values eia_describe_route returns per facet before truncating. Page past it with the tool's facet and values_offset inputs, or narrow a facet with values_query. At most 1000.","format":"string","default":"50","name":"EIA_FACET_VALUE_CAP"},{"description":"Lower an over-cap eia_query_route length, eia_dataframe_query row_limit or preview, or eia_search_routes limit to its cap with a notice. 'false' advertises and enforces each cap as a schema maximum instead.","format":"string","default":"true","name":"EIA_CLAMP_LIMITS"},{"description":"DataCanvas provider. 'duckdb', the default, registers eia_dataframe_describe and eia_dataframe_query and lets eia_query_route stage rows when called with stage: true; eia_dataframe_drop also requires EIA_DATAFRAME_DROP_ENABLED=true. 'none' disables DataCanvas.","format":"string","default":"duckdb","name":"CANVAS_PROVIDER_TYPE"},{"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"}]}],"remotes":[{"type":"streamable-http","url":"https://eia-energy.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-11-04T05:45:11.879273Z","publishedAt":"2026-11-04T05:45:11.879273Z","updatedAt":"2026-11-04T05:45:11.879273Z","isLatest":true}}}
