emission-factors MCP server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@emission-factors MCP serverWhat's the Scope 2 emission factor for ZIP 94105?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
emission-factors MCP server
Give Claude, Cursor, Cline, or any MCP client live access to US electricity data by ZIP code - grid-carbon emission factors, retail rates, hourly grid carbon intensity, power-plant emissions, and utility tariffs.
Backed by emission-factors.com, which wraps EPA eGRID, EIA-861, EIA-930, EPA CAMD, and OpenEI URDB into one ZIP-keyed API.
Free. No API key, no signup. The API is rate-limited per IP (2,000 requests/hour).
What you can ask
Once connected, your agent can answer things like:
"My HQ in ZIP 94105 uses 1.2M kWh/year. What's our Scope 2 carbon footprint and annual electricity cost?"
"Compare Denver, Austin, and Columbus for a new data center on grid carbon intensity and electricity price."
"What hour of the day is cleanest to run a 500 kW batch job in California this week?"
"Enrich this list of 40 store ZIP codes with each site's emission factor and carbon-free percentage."
"Which are the dirtiest power plants in Texas by CO2 over the last week?"
"Rank Ashburn VA, Abilene TX and The Dalles OR for a 10 MW data center on carbon and power cost."
"Our plant burns 40,000 therms of gas and 3,000 gallons of diesel a year - what's our Scope 1?"
"What's the actual PG&E residential tariff for 94105, not the state average?"
Related MCP server: @cyanheads/eia-energy-mcp-server
Why use it
Scope 2 carbon accounting - GHG Protocol location-based emission factors for all 33,616 US ZIP codes (CDP, CSRD, California SB 253 inputs).
Site selection - compare candidate locations on both carbon intensity and electricity cost in one conversation.
Time-weighted / demand-response analysis - hourly grid carbon from EIA-930 for load-shifting and post-hoc Scope 2.
Plant-level emissions - EPA CAMD hourly data for ~1,300 fossil units, a paywall-free alternative to commercial datasets.
Agents and automation - a clean tool surface so an LLM can fetch authoritative government data instead of hallucinating factors.
Quick start
There are two ways to run this. Most people want Option A.
Option A - Remote server (recommended, zero install)
Nothing to install, always up to date. The hosted endpoint is https://emission-factors.com/mcp (Streamable HTTP, no key).
Claude (web, desktop app, mobile) - Add to Claude. The link opens Claude's custom-connector dialog with the name and URL filled in; select Add, then Connect. By hand: Customize -> Connectors -> Add custom connector, URL https://emission-factors.com/mcp, OAuth fields empty.
Claude Code
claude mcp add --transport http emission-factors https://emission-factors.com/mcpCursor - add to ~/.cursor/mcp.json:
{
"mcpServers": {
"emission-factors": {
"url": "https://emission-factors.com/mcp"
}
}
}Cline / Continue / Zed / other clients - add a remote (Streamable HTTP) MCP server with URL https://emission-factors.com/mcp. No key needed.
Claude Desktop's
claude_desktop_config.jsononly starts local (stdio) servers - a"url"entry there does nothing. Use the connector link above, or Option B.
Option B - Local stdio server (this package)
Runs the server as a local process that proxies the same public API. Useful for clients that only support stdio transport, or if you want to self-host.
Run straight from GitHub (builds on install, requires Node 18+):
{
"mcpServers": {
"emission-factors": {
"command": "npx",
"args": ["-y", "github:rozetyp/emission-factors-mcp"]
}
}
}Or clone and run from source:
git clone https://github.com/rozetyp/emission-factors-mcp.git
cd emission-factors-mcp
npm install # builds dist/ via the prepare script{
"mcpServers": {
"emission-factors": {
"command": "node",
"args": ["/absolute/path/to/emission-factors-mcp/dist/index.js"]
}
}
}Optional environment variable: EMISSION_FACTORS_API_BASE (defaults to https://emission-factors.com) if you run your own instance of the API.
Tools
Eleven tools, keyed by US ZIP code (or a direct code where noted). The remote server and this stdio build expose the same set.
Tool | Purpose | Key inputs |
| EPA eGRID CO2e + full generation mix for a ZIP |
|
| Same, resolved from lat/lon via Census geocoder |
|
| Emission factors for up to 100 ZIPs at once |
|
| Scope 2 CO2e for a ZIP + kWh, location-based and market-based (Green-e residual mix) |
|
| Hourly grid carbon intensity (EIA-930, ~24h lag) |
|
| Hourly unit-level plant emissions (EPA CAMD) |
|
| Utility-specific tariff, not state average (OpenEI URDB) |
|
| State-average retail rate by sector (EIA-861) |
|
| Rank 2-25 candidate sites on grid carbon, $/kWh and cleanest daily window |
|
| Cleanest N-hour window of the day to run a flexible load, in local time |
|
| Scope 1 CO2e for fuels burned on site (EPA GHG Emission Factors Hub) |
|
All tools return JSON. See full API docs for exact response shapes.
Data sources
Data | Source | Notes |
Grid emission factors | EPA eGRID2023 Rev2 (+2024 preliminary) | Annual, location-based, 27 subregions |
Residual mix (market-based Scope 2) | Green-e Residual Mix 2025 (2023 data) | Per eGRID subregion |
Fuel combustion factors (Scope 1) | EPA GHG Emission Factors Hub 2025 | 63 fuels, AR5 GWPs |
Retail electricity rates | EIA Form 861 | State-level monthly average by sector |
Hourly grid carbon intensity | EIA-930 | Derived from hourly fuel mix, ~24h lag |
Plant-level emissions | EPA CAMD | ~1,300 fossil units >25 MW, ~21 day lag |
Utility-specific tariffs | OpenEI URDB (NREL) | ~85% of US utilities |
ZIP / lat-lon resolution | US Census (ZCTA + Geocoder) | ZIP -> eGRID subregion mapping |
Rate limits and auth
No API key, no signup. Every request is anonymous.
2,000 requests/hour per IP. Generous for interactive use; if you hit it you get an HTTP 429 with a
retryAfterhint.The external-data endpoints are cached server-side (24h rates, 1h hourly intensity, 7d tariffs, 24h plant emissions), so repeated calls are fast and don't burn upstream quotas.
Also available
REST API - the same data over plain HTTP:
curl "https://emission-factors.com/api/lookup?zip=94105". See the API docs and OpenAPI spec.Hosted MCP setup guide - emission-factors.com/mcp-setup
Machine-readable summary for agents - emission-factors.com/llms.txt
Development
npm install # install deps and build (prepare -> tsc)
npm run build # compile TypeScript to dist/
npm run dev # watch mode
npm start # run the built server over stdioQuick smoke test with the MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.jsThe server is a thin proxy: each tool maps to one /api/* endpoint on emission-factors.com, validates inputs, and returns the JSON response. There is no local state and no key handling.
License
MIT - see LICENSE. Data belongs to its respective US government sources (EPA, EIA, Census) and NREL/OpenEI; this project and the API are an unofficial wrapper, not affiliated with those agencies.
This server cannot be deployed
Maintenance
Related MCP Connectors
Carbon MCP — UK Carbon Intensity API (free, no auth)
EPA Emissions MCP — wraps EPA Envirofacts REST API (free, no auth)
GridStatus MCP — wraps the GridStatus.io REST API (api.gridstatus.io/v1)
Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server for real-time electricity prices, carbon intensity, and energy analytics across 41+ zones in Europe, Great Britain, the United States, and Australia. Query live prices, compare zones, check gas storage levels, get green scores, find optimal charging windows, and access advanced analytics. Free Basic tier requires no API key. Install via npx gridpulse-mcp or connect directly via Streamab-
- AlicenseNot gradedqualityAmaintenanceBrowse and query the U.S. Energy Information Administration API v2 — electricity, petroleum, natural gas, coal, forecasts, and more via MCP. STDIO or Streamable HTTP.103 npm2Apache 2.0
- FlicenseAqualityBmaintenanceEnables natural-language querying of US utility emissions, generation mix, and climate alignment data through any MCP client.7-
- AlicenseAqualityBmaintenanceLive and historical electricity prices, demand, generation mix and carbon intensity for 25 grid zones (US, Europe, GB, Australia). Hosted endpoint plus local stdio bridge; free sample mode, free API key, or x402 pay-per-call.6MIT