Emission Factors
by rozetyp · remote · no sign-in to list tools · v1.8.0 · published by GitHub user rozetyp
Keyless US grid carbon + power cost by ZIP: eGRID Scope 2, Scope 1 fuels, site ranking, clean hours
11 tools: 2 change things and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads9Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http emission-factors https://emission-factors.com/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
11 tools
Changes things 2Claude Code: ask
calculate_emissionsCalculate Scope 2 CO2e for a facility from its ZIP and kWh, using both GHG Protocol methods: location-based (eGRID subregion rate) and market-based (Green-e residual mix applied to…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Calculate Scope 2 CO2e for a facility from its ZIP and kWh, using both GHG Protocol methods: location-based (eGRID subregion rate) and market-based (Green-e residual mix applied to kWh not covered by RECs, PPAs or green tariffs). Returns kg CO2e for each method with the factors used.
Annotations the server declares
- readOnlyHint: true
calculate_fuel_emissionsCalculate Scope 1 stationary-combustion emissions (CO2, CH4, N2O and CO2e) for fuels burned on site, using the GHG Emission Factors Hub 2026 (Cornerstone, successor to EPA's Hub; I…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Calculate Scope 1 stationary-combustion emissions (CO2, CH4, N2O and CO2e) for fuels burned on site, using the GHG Emission Factors Hub 2026 (Cornerstone, successor to EPA's Hub; IPCC AR6 GWPs) by default, or EPA's 2025 edition (AR5) with edition=2025. Pass one or more items with fuel, quantity and unit, e.g. natural gas in therms/ccf/mcf/scf, propane/diesel/heating oil in gallons, coal in short tons. Biomass CO2 is reported separately (biogenic). Stationary sources only: for vehicle fuel the CO2 per gallon is the same, but CH4/N2O factors differ and are not included. Returns per-item and total CO2e. Pair with calculate_emissions for a facility's electricity (Scope 2).
Annotations the server declares
- readOnlyHint: true
Only reads 9Claude Code: allow
cleanest_hoursFind the cleanest (lowest grid carbon) contiguous window of N hours in the day to run a flexible load (batch jobs, EV charging, pumping, HVAC pre-cooling) at a US ZIP code or balan…No findings
Why it is in this group
- The description's first verb is "find": a word for reading.
Description, as the server wrote it Find the cleanest (lowest grid carbon) contiguous window of N hours in the day to run a flexible load (batch jobs, EV charging, pumping, HVAC pre-cooling) at a US ZIP code or balancing authority. Based on the hour-of-day pattern of the last 7 days (168 hours) of EIA-930 data, in local time. Returns the cleanest and dirtiest windows, % saved vs the daily average, and all hours ranked; between limits the windows to given local hours (e.g. overnight). A scheduling guide from recent history, not a forecast.
Annotations the server declares
- readOnlyHint: true
compare_sitesCompare and rank 2-25 candidate US sites (ZIP codes) for a facility, data center or EV/flexible load on grid carbon and electricity cost in one call.No findings
Why it is in this group
- The name "compare_sites" says "compare": a word for reading.
Description, as the server wrote it Compare and rank 2-25 candidate US sites (ZIP codes) for a facility, data center or EV/flexible load on grid carbon and electricity cost in one call. Per site: eGRID CO2e kg/kWh (location-based), Green-e residual mix (market-based), carbon-free %, $/kWh for the sector (the state's latest full-year average, EIA-861 annual; the ZIP's own 2023 utility average is shown as a reference), and the cleanest daily window from the 7-day hourly profile of its balancing authority, in the ZIP's local time. lowest_cost and best_combined are null unless every site has a rate. With annual_kwh, also annual tCO2e and cost. Returns competition ranks by carbon, cost and combined, gap percentages, and best_* = null with *_tied lists when sites tie.
Annotations the server declares
- readOnlyHint: true
electricity_rateGet the latest monthly average retail electricity rate ($/kWh and cents/kWh) for any US ZIP code, broken out by sector (residential, commercial, industrial, etc.).No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get the latest monthly average retail electricity rate ($/kWh and cents/kWh) for any US ZIP code, broken out by sector (residential, commercial, industrial, etc.). Data is state-level from EIA Form 861 - a ballpark, not utility- or ZIP-specific tariffs (use utility_tariff for those).
Annotations the server declares
- readOnlyHint: true
hourly_intensityGet hourly grid carbon intensity (kg CO2e per kWh) for any US ZIP code, derived from EIA-930 hourly fuel-mix data.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get hourly grid carbon intensity (kg CO2e per kWh) for any US ZIP code, derived from EIA-930 hourly fuel-mix data. Data lags up to about a day (not real-time). Returns time series with per-hour fuel mix, total generation, and carbon intensity. For timing and analysis (demand response, load shifting, grid patterns), not inventory reporting: it uses fixed per-fuel combustion factors on in-BA generation (no imports), so its values don't match eGRID's annual factors. For live or forecast intensity, WattTime or Electricity Maps are better options.
Annotations the server declares
- readOnlyHint: true
lookup_batchLook up emission factors for up to 100 ZIP codes in one call (split longer lists).No findings
Why it is in this group
- The name "lookup_batch" says "lookup": a word for reading.
Description, as the server wrote it Look up emission factors for up to 100 ZIP codes in one call (split longer lists). Returns one compact row per ZIP - subregion, CO2e kg/kWh (location-based), residual mix (market-based), carbon-free %, utility - unless full is true, which returns every field (about 2 KB per ZIP).
Annotations the server declares
- readOnlyHint: true
lookup_by_coordinatesLook up emission factors by latitude/longitude.No findings
Why it is in this group
- The name "lookup_by_coordinates" says "lookup": a word for reading.
Description, as the server wrote it Look up emission factors by latitude/longitude. Uses US Census Geocoder to resolve to ZIP first, then returns the same data as lookup_emission_factor. Useful when you have a facility address or lat/lon but no ZIP.
Annotations the server declares
- readOnlyHint: true
lookup_emission_factorLook up EPA eGRID electricity emission factors for a US ZIP code.No findings
Why it is in this group
- The name "lookup_emission_factor" says "lookup": a word for reading.
Description, as the server wrote it Look up EPA eGRID electricity emission factors for a US ZIP code. Returns CO2e (kg/kWh and lb/MWh), CO2, CH4, N2O, NOx, SO2, non-baseload rate, carbon-free %, generation mix (coal/gas/nuclear/hydro/wind/solar etc.), eGRID subregion code, the data year, and the Green-e residual mix rate (the market-based Scope 2 factor). For Scope 2 emissions from a kWh total, use calculate_emissions, which does the arithmetic for both methods.
Annotations the server declares
- readOnlyHint: true
plant_emissionsGet emissions from EPA Clean Air Markets Division (CAMD) for a specific US power plant or a state: fossil units over 25 MW reporting to the Acid Rain Program and CSAPR.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get emissions from EPA Clean Air Markets Division (CAMD) for a specific US power plant or a state: fossil units over 25 MW reporting to the Acid Rain Program and CSAPR. Per facility returns total CO2 (short tons), gross generation (MWh), heat input (mmBtu), NOx and SO2 (lb), primary fuel type, operating hours, and derived emissions rate (kg CO2/MWh). CAMD publishes by quarter, so the default window is the last 7 days of the latest published quarter (latest_published_date in the response); later dates are not available yet. Default output is a per-facility summary from daily data; format=hourly returns unit-hour records for small windows. Use for plant-specific carbon accounting, state-level fossil emissions and "dirtiest plants in [state]" queries.
Annotations the server declares
- readOnlyHint: true
utility_tariffGet the actual utility-specific electricity rate (not state average) for a US ZIP code or named utility.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get the actual utility-specific electricity rate (not state average) for a US ZIP code or named utility. Returns the current default tariff with effective rate ($/kWh), fixed monthly charge, tier count, TOU indicator, and effective date. Data source: OpenEI URDB (NREL-hosted). With a ZIP, matches the ZIP's utility by EIA ID. Returns currently-effective tariffs; when URDB has none flagged as default (common for Commercial/Industrial) it returns the most recent ones and says so in warnings, including when the newest available tariff has expired. Does not cover Texas retail electric providers (deregulated market) - use electricity_rate there.
Annotations the server declares
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.8.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http emission-factors https://emission-factors.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__emission-factors__lookup_emission_factor",
"mcp__emission-factors__lookup_by_coordinates",
"mcp__emission-factors__lookup_batch",
"mcp__emission-factors__hourly_intensity",
"mcp__emission-factors__plant_emissions",
"mcp__emission-factors__utility_tariff",
"mcp__emission-factors__electricity_rate",
"mcp__emission-factors__compare_sites",
"mcp__emission-factors__cleanest_hours"
],
"ask": [
"mcp__emission-factors__calculate_emissions",
"mcp__emission-factors__calculate_fuel_emissions"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as emission-factors. Review it before you use it.
