Browse and query the EIA API v2 — electricity, petroleum, natural gas, coal, forecasts via MCP.
Browse and query the EIA API v2 — electricity, petroleum, natural gas, coal, forecasts via MCP. That is what the eia mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.
The server publishes 9 tools. What each one is for:
eia_browse_routes — Lists child routes under a given path in the EIA dataset taxonomy. Start at root to see top-level categories, then drill into subcategories and leafeia_describe_route — Returns metadata for a leaf route: available facets with valid values, data column names, frequency options, units, and date range. Call beforeeia_search_routes — Fuzzy text search across route names, descriptions, category labels, STEO series names, and facet values. Resolves natural-language queries likeeia_query_route — Fetches data from a leaf route with optional facet filters, date range, frequency, and column selection. Pages past the inline preview to stage largeeia_dataframe_describe — Lists active DataCanvas dataframes created by prior eia_query_route calls. Shows table name, column names and types, row count, expiry, and the queryeia_dataframe_query — Runs a read-only SQL SELECT across DataCanvas dataframes, referenced by their df_ table nameseia_dataframe_drop — Drops a DataCanvas dataframe, freeing its memory. Only exposed when EIA_DATAFRAME_DROP_ENABLED=truePrerequisites — The Prerequisites tool exposed by this serverInstallation — The Installation tool exposed by this serverBecause this one is hosted, setup is mostly authentication — you point your client at the endpoint and approve access. Nothing runs on your machine, so there is no runtime to keep patched.
Configuration is passed through the environment: MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, EIA_API_KEY, DEMO_KEY, EIA_BASE_URL, MCP_HTTP_ENDPOINT_PATH, MCP_PUBLIC_URL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
DEMO_KEY hits rate limits quickly; a real key is required for sustained use.Among the database access options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Eia's toolset — eia_browse_routes, eia_describe_route, eia_search_routes and 6 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.
This entry was verified against Eia's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.
| Tool | What it does |
|---|---|
| eia_browse_routes | Lists child routes under a given path in the EIA dataset taxonomy. Start at root to see top-level categories, then drill into subcategories and leaf routes. |
| eia_describe_route | Returns metadata for a leaf route: available facets with valid values, data column names, frequency options, units, and date range. Call before eia_query_route to understand filter options. Facet values come back capped, |
| eia_search_routes | Fuzzy text search across route names, descriptions, category labels, STEO series names, and facet values. Resolves natural-language queries like "electricity retail sales by state" or a fuel type like "wind" to matching |
| eia_query_route | Fetches data from a leaf route with optional facet filters, date range, frequency, and column selection. Pages past the inline preview to stage large result sets as a DataCanvas table for SQL analysis. |
| eia_dataframe_describe | Lists active DataCanvas dataframes created by prior eia_query_route calls. Shows table name, column names and types, row count, expiry, and the query that produced it. A handle that is not staged comes back as a miss alo |
| eia_dataframe_query | Runs a read-only SQL SELECT across DataCanvas dataframes, referenced by their df_<id> table names. |
| eia_dataframe_drop | Drops a DataCanvas dataframe, freeing its memory. Only exposed when EIA_DATAFRAME_DROP_ENABLED=true. |
| Prerequisites | The Prerequisites tool exposed by this server. |
| Installation | The Installation tool exposed by this server. |
{
"mcpServers": {
"eia-energy-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/eia-energy-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info",
"EIA_API_KEY": "your-api-key"
}
}
}
}Configuration as documented by the project. Restart the client after saving.
DEMO_KEY hits rate limits quickly; a real key is required for sustained use.| Variable | Description | Required |
|---|---|---|
| MCP_TRANSPORT_TYPE | Configuration value read at startup. | Optional |
| MCP_LOG_LEVEL | Configuration value read at startup. | Optional |
| EIA_API_KEY | Credential the server authenticates with. | Yes |
| DEMO_KEY | Credential the server authenticates with. | Yes |
| EIA_BASE_URL | Endpoint or connection string the server talks to. | Yes |
| MCP_HTTP_ENDPOINT_PATH | Filesystem location the server is allowed to use. | Optional |
| MCP_PUBLIC_URL | Endpoint or connection string the server talks to. | Yes |
Read-only SQL access to Postgres — let your assistant inspect schemas and answer questions from real data.
Manage your whole Supabase project in conversation — database, auth, storage, Edge Functions and branches.
Query, modify and analyse local SQLite databases in conversation — the fastest way to chat with a data file.
Metabase ships its own MCP endpoint — search your BI content, build and run queries, and save questions and dashboards without leaving the chat.
Official MongoDB server covering data, schemas and Atlas management — from find queries to spinning up clusters.
Serverless Postgres with database branching — point your assistant at Neon and let it work on disposable copies.