Skip to main content
Glama

EPA Air Quality & Toxics

Server Details

Toxics Release Inventory, Superfund sites, air quality data, and AQI

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 5 of 5 tools scored.

Server CoherenceA
Disambiguation4/5

The two air quality tools (current and forecast) are clearly separated by time frame, and the historical summary is distinct. The two toxics tools (Superfund and TRI) are both state-based hazard listings but differ in content (cleanup sites vs. reporting facilities). Minor potential confusion between Superfund and TRI, but descriptions clarify.

Naming Consistency5/5

All tools use the consistent 'get_' prefix followed by descriptive noun phrases in snake_case. The pattern is uniform across the set.

Tool Count5/5

Five tools cover the server's stated scope of air quality and toxics without redundancy. Each tool addresses a distinct data need, and the count is within the ideal 3-15 range.

Completeness4/5

The air quality surface covers current, forecast, and annual historical data. The toxics surface covers site and facility listings. Missing are detailed facility-level emissions or site-specific cleanup data, but core queries are supported.

Available Tools

5 tools
get_annual_air_qualityAInspect

Get annual air quality summary data for a US state.

Returns annual statistics from the EPA Air Quality System (AQS),
including mean concentrations, max values, and exceedance counts
for the specified pollutant across all monitoring sites in the state.

Args:
    state: Two-letter US state abbreviation (e.g. 'CA', 'NY').
    parameter: Pollutant to query. Options: 'PM2.5', 'Ozone', 'SO2', 'NO2', 'CO'.
               Default is 'PM2.5'.
    start_year: Start year for the query range (e.g. 2020). Default is 2020.
    end_year: End year for the query range (e.g. 2023). Default is 2023.
ParametersJSON Schema
NameRequiredDescriptionDefault
stateYes
end_yearNo
parameterNoPM2.5
start_yearNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

With no annotations provided, the description carries the full burden of disclosure. It specifies the data source (EPA AQS), the aggregation across all monitoring sites, and the types of statistics returned (mean concentrations, max values, exceedance counts). It does not mention edge cases or rate limits, but for a read-only query tool, this is adequate.

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 well-structured with a clear overview, followed by a concise Args list that adds valuable parameter details. It is front-loaded and avoids unnecessary fluff, though the Args block is somewhat redundant with the schema.

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

Completeness4/5

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

The tool has an output schema, so return format is already specified. The description covers the data source, aggregation level, and parameter options, making it complete enough for an agent to decide when and how to invoke the tool. It does not explicitly address error handling, but that is not critical for this use case.

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

Parameters5/5

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

The description's Args section provides detailed semantics for all four parameters, including allowed values for 'parameter' (PM2.5, Ozone, etc.) and explicit defaults for years. This compensates for the 0% schema description coverage, adding value beyond the raw input schema.

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 clearly states the tool 'Get annual air quality summary data for a US state' with a specific verb and resource. It distinguishes itself from sibling tools by focusing on historical annual summaries (EPA AQS) rather than current AQI or forecasts, making its purpose unambiguous.

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?

The description implies usage for historical annual air quality data, differentiating it from current AQI and forecast tools. While no explicit exclusions or alternative tool names are mentioned, the context provides clear guidance for when to use this tool over its siblings.

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

get_aqi_forecastAInspect

Get the air quality forecast for a ZIP code.

Returns forecast AQI values and health categories for upcoming days,
typically covering today and the next 1-2 days.

Args:
    zip_code: US ZIP code (e.g. '20001').
ParametersJSON Schema
NameRequiredDescriptionDefault
zip_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

With no annotations provided, the description carries the full transparency burden. It discloses the return content (forecast AQI values and health categories) and a behavioral caveat ('typically covering today and the next 1-2 days'), which is useful context for a read-only retrieval tool.

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

Conciseness5/5

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

The description is brief and front-loaded, with the core purpose stated first, followed by a concise return summary and a clear Args section. Every sentence adds value, with no redundancy or filler.

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?

This is a simple one-parameter tool with an output schema present, so the description need not explain return structures. It covers the parameter format, the nature of the forecast, and the typical horizon, making it complete for the tool's complexity.

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

Parameters5/5

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

The schema only defines zip_code as a string with no description. The tool description adds essential meaning by specifying it is a US ZIP code and providing a concrete example ('20001'), fully compensating for the 0% schema coverage.

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 uses a specific verb ('Get') and resource ('air quality forecast') and identifies the ZIP code input, clearly distinguishing it from sibling tools like get_current_aqi, which covers current conditions. The forecast horizon ('upcoming days') further differentiates its purpose.

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?

The description clearly implies this tool is for forecasting rather than current conditions, saying it returns values for upcoming days. It does not explicitly name alternatives or exclusions, but the context is sufficient for a user to select it when they need a forecast.

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

get_current_aqiAInspect

Get the current Air Quality Index (AQI) for a location.

Provide either a zip_code OR latitude/longitude coordinates.
Returns AQI values, pollutant levels, and health category for
each measured pollutant at the nearest monitoring station.

Args:
    zip_code: US ZIP code (e.g. '20001').
    latitude: Latitude of the location (e.g. 38.9).
    longitude: Longitude of the location (e.g. -77.0).
ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeNo
zip_codeNo
longitudeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the tool uses the 'nearest monitoring station' and returns pollutant-specific data, which is useful context beyond the simple 'Get' verb. It could be more explicit about being read-only, but the name and verb make that obvious.

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

Conciseness5/5

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

The description is concise and front-loaded with the core purpose. The Args section is cleanly structured and every sentence adds value. No unnecessary words or repetition.

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

Completeness4/5

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

The description covers the essential aspects for a simple lookup tool: input constraints, algorithm (nearest station), and what is returned. The output schema exists, so detailed return structure is handled elsewhere. Minor gaps like error cases or exact output schema references are not critical for using the tool.

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

Parameters5/5

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

The schema has no parameter descriptions (0% coverage), but the `Args` section thoroughly explains each parameter with format examples (e.g., '20001', 38.9) and clarifies the mutual exclusivity of zip_code versus latitude/longitude. This fully compensates for the schema's lack of detail.

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 the current Air Quality Index (AQI) for a location.' The word 'current' clearly distinguishes this from siblings like get_aqi_forecast and get_annual_air_quality. It also specifies what is returned (AQI values, pollutant levels, health category).

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?

Provides clear guidance on parameter usage by stating 'Provide either a zip_code OR latitude/longitude coordinates,' which is important for correct invocation. However, it does not explicitly compare with alternative tools (e.g., forecast or annual), though the 'current' context implies when to use this versus siblings.

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

get_superfund_sitesAInspect

Get active Superfund (National Priorities List) sites in a state.

Returns hazardous waste cleanup sites listed on the EPA's National
Priorities List, including site names, locations, and status information.
No API key required.

Args:
    state: Two-letter US state abbreviation (e.g. 'NJ', 'CA').
    limit: Maximum number of sites to return (default 50, max 500).
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
stateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that 'No API key required' (auth requirement), returns active sites only, and provides a max limit of 500 beyond the schema. It does not mention rate limits or error behavior, but the added context about API key and constraints is meaningful.

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

Conciseness5/5

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

The description is concise and well-structured: a one-line purpose, a brief return explanation, a note on API key, and a clear Args list. Every sentence adds value, and the front-loaded purpose makes it immediately scannable.

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?

Despite having an output schema, the description still clarifies the return contents (site names, locations, status). It covers the essential operational detail (no API key, parameter constraints) and is complete for a simple list-style tool with two parameters.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. The Args section adds clear meaning: state is a two-letter abbreviation, and limit is the maximum number of sites with default 50 and max 500. This fully explains both parameters beyond the raw schema.

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 starts with a clear, specific verb+resource+scope: 'Get active Superfund (National Priorities List) sites in a state.' It further explains that it returns hazardous waste cleanup sites with names, locations, and status. This clearly distinguishes it from siblings like air quality or TRI tools.

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?

The description provides clear context for when to use the tool (when Superfund/NPL site data for a state is needed) but does not explicitly mention alternatives or exclusions. It implies usage through the specific scope, but does not name sibling tools or state 'use this instead of X'.

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

get_tri_facilitiesAInspect

Get Toxics Release Inventory (TRI) facilities in a state.

Returns facilities that report toxic chemical releases to the EPA,
including facility names, addresses, and industry information.
No API key required.

Args:
    state: Two-letter US state abbreviation (e.g. 'CA', 'TX').
    city: Optional city name to filter results.
    limit: Maximum number of facilities to return (default 50, max 500).
ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
limitNo
stateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

No annotations are provided, so the description carries the burden. It discloses that no API key is required, lists the returned data, and documents the limit constraint (default 50, max 500). It does not explicitly state read-only behavior, but 'Get' and 'Returns' strongly imply it, and there is no contradiction.

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

Conciseness5/5

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

The description is concise and well-structured. The purpose is front-loaded, followed by a brief behavior summary and a clear Args list. Every sentence provides useful information without redundancy.

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?

The tool is simple, and the description covers the query scope, output fields, and API key requirement. Since an output schema exists, the return values are further defined, and the description leaves no critical gaps for a getter tool of this complexity.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates: it explains state format ('two-letter US state abbreviation' with examples), clarifies city is optional, and specifies limit is the maximum number to return (default 50, max 500). This adds meaning beyond the schema's defaults.

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 clearly states the tool retrieves TRI facilities in a state, naming specific fields returned (facility names, addresses, industry info). This action is distinct from sibling tools (air quality, superfund sites), so purpose is unambiguous.

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?

The description clearly implies this tool is for querying TRI facilities by state, with optional city and limit filters. It does not explicitly name alternatives or exclusions, but the context and sibling tool names make it obvious that this is the TRI facility lookup tool.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Access EPA environmental data — facility compliance (ECHO), toxic releases (TRI), Superfund sites, drinking water systems, environmental justice screening (EJScreen), and real-time air quality (AirNow) via MCP.
    140
    1
    Apache 2.0
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides natural language access to environmental data including air quality measurements, greenhouse gas emissions, and facility records. It enables users to perform geographic searches, trend analysis, and proximity-based queries using data from sources like OpenAQ and Climate TRACE.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources