io.github.cyanheads/eia-energy-mcp-server

io.github.cyanheads/eia-energy-mcp-server

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

Connect this server

Add this to your MCP client config — claude_desktop_config.json (Claude Desktop) or .cursor/mcp.json (Cursor).Suits: Claude Desktop · Cursor.

{
  "mcpServers": {
    "eia-energy-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/eia-energy-mcp-server@0.5.1"
      ],
      "env": {
        "EIA_API_KEY": "<your EIA_API_KEY>",
        "EIA_DATASET_TTL_SECONDS": "86400",
        "EIA_DATAFRAME_DROP_ENABLED": "false",
        "EIA_CANVAS_MAX_ROWS": "25000",
        "EIA_FACET_VALUE_CAP": "50",
        "EIA_CLAMP_LIMITS": "true",
        "CANVAS_PROVIDER_TYPE": "duckdb",
        "MCP_LOG_LEVEL": "info"
      }
    }
  }
}
Environment variables
  • EIA_API_KEYrequiredFree API key from api.eia.gov. Required — all requests use this as the api_key query parameter.
  • EIA_DATASET_TTL_SECONDSSliding per-dataframe TTL in seconds, extended by every query that references the dataframe. At most 31536000 (365 days).
  • EIA_DATAFRAME_DROP_ENABLEDSet to 'true' to expose eia_dataframe_drop for manual canvas cleanup. Has no effect with CANVAS_PROVIDER_TYPE=none.
  • EIA_CANVAS_MAX_ROWSCumulative 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.
  • EIA_FACET_VALUE_CAPFacet 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.
  • EIA_CLAMP_LIMITSLower 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.
  • CANVAS_PROVIDER_TYPEDataCanvas 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.
  • MCP_LOG_LEVELSets the minimum log level for output (e.g., 'debug', 'info', 'warn').

A starting point — check the repository for exact arguments and setup. Restart your client after editing the config.

Category
Developer Tools
Version
0.5.1
Registry
active
Published
11/4/2026

Remotes

  • streamable-httphttps://eia-energy.caseyjhand.com/mcp
Browse all Developer Tools →

Add the badge to your site

Show visitors that io.github.cyanheads/eia-energy-mcp-server is listed here — it’s also the link we check for a free listing.

io.github.cyanheads/eia-energy-mcp-server — listed on Serverdex

HTML — for your website

<a href="https://serverdex.io/server/io-github-cyanheads-eia-energy-mcp-server?utm_source=badge"><img src="https://serverdex.io/brand/badge.svg" alt="io.github.cyanheads/eia-energy-mcp-server — listed on Serverdex" width="123" height="40" loading="lazy"></a>

Recommended. A dofollow link from your own domain is the one that counts for search engines, and it's the link we check for a free listing.

Markdown — for your README

[![io.github.cyanheads/eia-energy-mcp-server — listed on Serverdex](https://serverdex.io/brand/badge.svg)](https://serverdex.io/server/io-github-cyanheads-eia-energy-mcp-server?utm_source=badge)

Nice for visibility, but GitHub marks README links nofollow, so it doesn't pass authority. Use the HTML badge on your site as well.