mcpbeat Sign in

Eia Energy MCP Server

answering

Eia Energy MCP Server is answering right now. Last checked 1 min ago. 722 installs a week from npm. It exposes 6 tools. Last commit 29 Oct 2026.

Browse and query the EIA API v2 — electricity, petroleum, natural gas, coal, forecasts via MCP.

Installs per day peak 233 · avg 55 · +129% w/w
a month agotoday
Uptime history 91 days of history · worst day 0%
91 days agonow
100.0%
Uptime 24h
92 of 92 checks
6
Tools
read from the server
587 ms
Response time
average over 24h
722
Installs / week
npm and PyPI

What changed 36

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 25 August 2026. No other catalogue keeps this.

29 Oct 3 tools changed the parameters they ask for eia_dataframe_query, eia_query_route, eia_search_routes
29 Oct 2 tool descriptions were rewritten eia_dataframe_query, eia_describe_route
29 Oct a tool changed version
23 Oct 3 tools changed the parameters they ask for eia_describe_route, eia_query_route, eia_search_routes
23 Oct 2 tool descriptions were rewritten eia_describe_route, eia_search_routes
23 Oct a tool changed version
22 Oct 5 tools changed the parameters they ask for eia_browse_routes, eia_dataframe_query, eia_describe_route and 2 more
22 Oct a tool changed version
13 Oct 5 tool descriptions were rewritten eia_browse_routes, eia_dataframe_query, eia_describe_route and 2 more
13 Oct 3 tools changed the parameters they ask for eia_dataframe_query, eia_query_route, eia_search_routes
and 10 more, back to 25 August 2026

Eia Energy MCP Server missed one check this week

Everything else answered, so this is steady rather than shaky. We check every 15 minutes, which is how a one-off gets told apart from the start of a pattern, and how you hear about the next one within the hour instead of from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 1 min ago.

run in your terminal
claude mcp add eia-energy-mcp-server --transport http https://eia-energy.caseyjhand.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://eia-energy.caseyjhand.com/mcp
~/.codex/config.toml
[mcp_servers.eia-energy-mcp-server]
url = "https://eia-energy.caseyjhand.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "eia-energy-mcp-server": {
      "url": "https://eia-energy.caseyjhand.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "eia-energy-mcp-server": {
      "type": "http",
      "url": "https://eia-energy.caseyjhand.com/mcp"
    }
  }
}

Available tools 6

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

eia
eia_browse_routes
Lists child routes under a given path in the EIA dataset taxonomy. Start with no path to get the 14 top-level categories (electricity, petroleum, natural-gas, steo, aeo, ieo, seds, etc.), then drill into subcategories. Each result includes an isLeaf flag — leaf routes are queryable endpoints; non-leaf routes have children to browse. When isLeaf is true on the browsed path itself, switch to eia_describe_route. The first call after server start waits up to 20s for the route tree to warm, then answers from EIA directly.
eia_dataframe_describe
List canvas dataframes (df_<id>) materialized by eia_query_route calls that passed stage: true, with provenance, expiry, row count, and column schema. Nothing is staged until such a call runs, so an empty list on a fresh session means no query has staged yet, not that staging failed. Drops entries for dataframes the canvas no longer holds before responding, so the list is always current. Pass a specific name to inspect one dataframe; omit to list all active dataframes for this tenant. A name that is not staged comes back as found=false alongside the handles that are, never as an empty list. Listing is not use: only an eia_dataframe_query statement naming a dataframe extends its expiry, so a dataframe polled with this tool and never queried still lapses on schedule.
eia_dataframe_query
Run a single-statement SELECT against canvas dataframes registered by eia_query_route calls that passed stage: true — a query that staged nothing leaves no table to select from. Standard DuckDB SQL — joins, aggregates, window functions, CTEs all supported. Reference dataframes by the df_<id> handles returned by eia_query_route or listed by eia_dataframe_describe. Read-only: writes, DDL, DROP, COPY, PRAGMA, ATTACH, file reads (read_* functions or a quoted file path), engine-setting functions (current_setting), and SQL built from a string (query_table) are rejected. System catalogs (information_schema, pg_catalog, sqlite_master, duckdb_*) are denied. EIA data values are VARCHAR — use CAST(col AS DOUBLE) for arithmetic and aggregation. Optional register_as chains results as a new dataframe with a fresh expiry. Every dataframe named in the statement has its expiry extended by the query. Inline rows stop at preview; a result cut short says how to reach the rest, including paging a register_as table with LIMIT/OFFSET and no ORDER BY, which keeps the order the preview showed.
eia_describe_route
Returns metadata for a leaf route: available facets with their valid values, data column names and units, frequency options, and date range. Call this before eia_query_route to discover valid facet IDs, facet values, column IDs, and frequency codes. Each facet returns a capped window of its values with value_count and values_truncated alongside; pass facet and values_offset to page through the rest of one facet. To find a value by name in a large facet (plant, entity, and mine IDs run to thousands), pass values_query: each facet keeps only the values whose id, name, or alias contains it, values_matched counts them, and values_offset pages the matches. A values_offset past the last value of a facet returns an empty window for it and a notice naming the count to page against. Facet values are fetched from separate EIA endpoints, merged, and cached per route for 24 hours, after which the next call fetches the route again; a facet whose values EIA did not return is left out of facets, named in unavailable_facets, and fetched again by the next call. When a refresh fails, the cached values are served instead, with a notice naming when they were fetched.
eia_query_route
Fetches data from a leaf route with optional facet filters, date range, frequency, and column selection. Use eia_describe_route first to discover valid facet IDs, facet values, column IDs, and frequency codes. Data values are strings in the response (EIA API returns all numeric values as strings, e.g. "9.13"); cast to DOUBLE in SQL when arithmetic is needed. Returns a preview inline and stages nothing by default — one upstream request, whatever total says. Pass stage: true to also page past the preview and stage the accumulated set as a DataCanvas table, then pass the returned dataset name to eia_dataframe_describe for its column names and eia_dataframe_query for SQL. Every dataset a tenant stages lands in the same canvas, so tables from different routes cross-join by name with nothing to thread between calls.
eia_search_routes
Fuzzy text search across route names, descriptions, and category labels. Resolves natural-language queries like "electricity retail sales by state" or "natural gas imports" to matching route paths. Multi-term queries are also matched term by term, so combining a commodity, a metric, and a sector — "electricity price residential", "coal generation industrial sector" — reaches the route carrying that data even when no single entry reads like the whole phrase. A query spelling the end of a route path in words — "retail sales" for electricity/retail-sales — ranks that route first. STEO and SEDS series names are indexed so queries like "crude oil production forecast" or "motor gasoline total consumption" also resolve, and so are facet values, so a fuel type or sector term like "wind" or "anthracite coal" resolves to the route that exposes it, with filter_hint carrying the filter to pass on. That includes the series and product names of the daily and weekly petroleum and natural-gas routes and the RTO balancing authorities, so benchmarks like "Henry Hub", "WTI crude spot price", "Cushing", or "Electric Reliability Council of Texas" resolve before any describe. A legacy APIv1 series ID as the EIA website and Excel add-in write them — "PET.RWTC.W", "ELEC.PRICE.TX-RES.M" — is resolved through the EIA series lookup into one result with its route, filter_hint, frequency, and columns, ready for eia_query_route, without waiting on the index. Results include isLeaf so you know whether to browse further or query directly. Results with score > 0.72 are weak matches — try a more specific query or use eia_browse_routes to explore the taxonomy. The first call after server start waits 20-40s while the index warms, and at most 45s; later calls answer from the built index. Check indexComplete before reading anything into a short or empty result set.

Endpoints

URLTransportStateLatencyChecked
https://eia-energy.caseyjhand.com/mcp streamable-http answering 537 ms 1 min ago

Alternatives to Eia Energy MCP Server

same job, measured the same way
A0nexus Bitcoin MCP
by a0nexus-bit

Crypto (BTC/ETH) + ERCOT electricity data & forecasts as MCP tools. Pay-per-call via x402.

86 installs/wk local only
Grid Carbon MCP
by nexlab

Electricity grid carbon intensity for Great Britain from the National Grid ESO Carbon Intensity API

answering
Blumira
by wyre-ai

MCP server for Blumira SIEM — query findings, evidence, and detection data via the Blumira API.

local only
Blumira
by wyre-technology

MCP server for Blumira SIEM — query findings, evidence, and detection data via the Blumira API.

local only
Revit Converter MCP
by labsfuture

Convert Revit files to XKT, IFC, or DWG and query BIM data via natural language.

answering
Datris
by datris

The data control plane for AI agents — acquire, validate, land, and query data over MCP.

3 227 installs/wk local only
GridPulse: U.S. Energy Data
by noah-silver

U.S. grid mix, retail electricity prices and Henry Hub gas prices (EIA), paid per call via x402.

local only
Open-Meteo Weather
by myai-2025

Current weather and hourly forecasts for any place name, via the free Open-Meteo API. No API key.

102 installs/wk local only

Eia Energy MCP Server — questions

Answers built from our own checks of this server.

What can Eia Energy MCP Server do?
It exposes 6 tools, read directly from the server on our last check. Among them: eia_browse_routes, eia_dataframe_describe, eia_dataframe_query, eia_describe_route, eia_query_route, eia_search_routes. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Eia Energy MCP Server working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 587 ms. The bar chart above shows every period we have measured.
How do I connect Eia Energy MCP Server?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Eia Energy MCP Server need an API key?
No. Eia Energy MCP Server completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 6 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Eia Energy MCP Server?
It answers our handshake in 587 ms on average, which is faster than 19% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Eia Energy MCP Server?
The npm package @cyanheads/eia-energy-mcp-server was installed 722 times in the last week. Week over week that is +129%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Eia Energy MCP Server open source?
The code is open source: it is published under the Apache-2.0 licence, written in TypeScript, 3 stars on GitHub and 2 open issues. The licence covers the code in the repository, not the hosted service at eia-energy.caseyjhand.com, which runs on its operator's own terms.