An MCP server for browsing and querying the U.S. Energy Information Administration (EIA) API v2, covering datasets like electricity, petroleum, natural gas, coal, forecasts, and STEO series. It also supports querying spilled results with SQL through DataCanvas.
From the registry: Browse and query the EIA API v2 — electricity, petroleum, natural gas, coal, forecasts via MCP.
Please install the `eia-energy-mcp-server` MCP server into my current AI client (that's you).
Required prerequisites (do these first if not already done):
- **Get an EIA API key** — Create a free API key from api.eia.gov. A real key is required for sustained use; the demo key is rate-limited. (https://www.eia.gov/opendata/)
Optional prerequisites:
- Install Node.js or Bun — Install Bun v1.3.0+ or Node.js v24+ to run the server. The simplest portable path in the README uses npx, which requires Node.js. (https://bun.sh/)
Canonical MCP server config (stdio transport):
- command: `npx`
- args: ["-y","@cyanheads/eia-energy-mcp-server@latest"]
- required environment variables:
- `MCP_TRANSPORT_TYPE`: Transport type for the server. Use stdio for MCP client configuration. (example: `stdio`)
- `EIA_API_KEY`: Free API key from api.eia.gov, sent on every EIA API request. (example: `<your-api-key>`)
- optional environment variables:
- `MCP_LOG_LEVEL`: Log level for server logging. (example: `info`)
- `EIA_BASE_URL`: Override the EIA API base URL. (example: `<your-eia-base-url>`)
- `EIA_DATASET_TTL_SECONDS`: TTL for DataCanvas dataframes in seconds. (example: `<ttl-seconds>`)
- `EIA_DATAFRAME_DROP_ENABLED`: Set to true to expose the eia_dataframe_drop tool. (example: `<true-or-false>`)
- `CANVAS_PROVIDER_TYPE`: Set to duckdb to enable DataCanvas spillover for large result sets (Node only). (example: `duckdb`)
- `MCP_HTTP_PORT`: HTTP server port when using HTTP transport. (example: `<http-port>`)
- `MCP_HTTP_ENDPOINT_PATH`: HTTP endpoint path when using HTTP transport. (example: `<http-endpoint-path>`)
- `MCP_PUBLIC_URL`: Public origin override for reverse-proxy deployments. (example: `<your-public-url>`)
- `MCP_AUTH_MODE`: Authentication mode: none, jwt, or oauth. (example: `<none-or-jwt-or-oauth>`)
- `LOGS_DIR`: Directory for log files (Node.js only). (example: `<your-logs-dir>`)
- `STORAGE_PROVIDER_TYPE`: Storage backend type. (example: `<your-storage-provider-type>`)
- `OTEL_ENABLED`: Enable OpenTelemetry instrumentation. (example: `<true-or-false>`)
Note: README also documents Streamable HTTP support, but the simplest portable MCP client configuration shown is stdio via npx. HTTP startup is described separately using environment variables such as MCP_TRANSPORT_TYPE=http, MCP_HTTP_PORT, and EIA_API_KEY, with the server listening at the configured endpoint path.
Add this MCP server to my current client's config in the correct format for you. If you need secrets or credentials I haven't provided, ASK me — do not invent values or leave raw placeholders. After adding it, tell me how to verify the server is connected.EIA_API_KEYrequiredFree EIA API key appended as api_key on every request.Meta Ads MCP (Facebook + Instagram) - analyze performance, manage budgets, pause campaigns.