Skip to main content
Glama
rozetyp

emission-factors MCP server

plant_emissions

Read-only

Retrieve EPA CAMD emissions and generation data for US power plants or states to support plant carbon accounting, compare fossil emissions, or find high-emitting facilities.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
endNoCustom end date YYYY-MM-DD (optional, overrides days).
daysNoNumber of most recent days to include (1-90, default 7).
beginNoCustom begin date YYYY-MM-DD (optional, overrides days).
limitNoSummary only: return the top N facilities by CO2 (default 25); facilities_total gives the full count.
stateNo2-letter US state code for state-wide aggregate (e.g. TX, CA, PA).
formatNo"summary" (default) aggregates by facility; "hourly" returns raw CAMD unit-hour records, about 0.8 KB each (a 9-unit plant-day was 172 KB), so use it with facility_id and 1-2 days.
facility_idNoEPA CAMD/ORIS facility code (e.g. 3 for Barry, AL). Find codes in the summary_by_facility of a state query, or at https://campd.epa.gov/.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.7.1

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=true, so the description carries the behavioral burden and does so well. It discloses the quarterly publication cadence, the default 7-day window based on the latest published quarter, data unavailability for later dates, return fields, and the hourly format's size implications. This is rich operational context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and data scope, then moves logically to defaults, format behavior, and use cases. It is dense but every sentence earns its place. Slightly long but justified by the complexity of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only data retrieval tool with no output schema and 100% parameter coverage, the description is complete: it explains data source, scope, defaults, format trade-offs, return fields, and use cases. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already well documented. The description adds meaning by explaining the default window ('last 7 days of the latest published quarter') and the relationship between state and facility_id, but it does not add syntax or constraints beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get emissions from EPA Clean Air Markets Division (CAMD)') and defines the precise data scope (fossil units over 25 MW reporting to the Acid Rain Program and CSAPR). It clearly distinguishes the tool from general emissions tools by emphasizing plant- and state-level CAMD data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear contexts for use: 'plant-specific carbon accounting, state-level fossil emissions and "dirtiest plants in [state]" queries.' It also explains when to use format=hourly versus default summary. However, it does not name explicit alternatives among siblings such as calculate_emissions or cleanest_hours, so routing remains partially inferential.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.