Skip to main content
Glama

GroundTruth - Environmental Records

Server Details

Federal environmental records near any US location, with dates and provenance; never a safety score.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 52 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation4/5

The four tools target largely distinct data domains: broadband, drinking water, nearby EPA records, and location scores. The main potential confusion is between environment_near (returns actual environmental records) and location_scores (returns model-based environmental layers like Superfund proximity and groundwater contamination), but their descriptions clarify the difference.

Naming Consistency4/5

All names use lowercase snake_case, which is consistent. However, they are noun phrases rather than a verb_noun pattern, and environment_near uses a preposition while the others do not, making the naming slightly less predictable.

Tool Count5/5

Four tools is a well-scoped set for a read-only location data server, and each tool covers a substantial, distinct dataset. No tool feels redundant or trivially narrow.

Completeness4/5

The surface covers several environmental record types (Superfund, TRI, ECHO), drinking water violations, and composite location scores, with clear caveats. Minor gaps exist, such as no tool for raw air or groundwater measurements beyond scores, but core environmental record workflows are represented.

Available Tools

4 tools
broadband_availabilityList FCC broadband availability for a locationA
Read-onlyIdempotent
Inspect

Fixed broadband availability for a US location from the FCC Broadband Data Collection (BDC), counted per 2020 Census block: each provider and technology the FCC data lists in the block, with advertised maximum download and upload tiers in Mbps and how many of the block's locations each covers (residential and business-only counts). FCC data as of 2025-12-31 (release D25_29sep2026). Wired and fixed wireless service comes first; satellite service is listed last, in its own section. Where a point is in no Census block with FCC data, counts are for the surrounding H3 cell. Speeds are advertised maximums reported by providers, not measured speeds. The FCC data has no street addresses, so it cannot confirm service at one house. Input is either a street address (geocoded by the US Census geocoder) or lat/lon coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude (US)
lonNoLongitude (US; negative except Guam, NMI and the western Aleutians)
addressNoUS street address incl. city/state (alternative to lat/lon)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, open-world, non-destructive), yet the description adds substantial context beyond them: data vintage (2025-12-31, release D25_29sep2026), per-block counting semantics, the H3-cell fallback when a point is in no FCC block, satellite listed last, and the crucial caveat that speeds are advertised maximums, not measured. This is unusually rich behavioral disclosure.

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?

Dense but front-loaded: the core identity, data source, and counting model come first, then secondary ordering and caveats, then input formats. Nearly every clause carries information, though the single-block prose could be broken into shorter sentences for faster scanning.

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?

With no output schema, the description carries the return-shape burden and does so: providers, technologies, download/upload tiers in Mbps, residential vs business-only location counts, and the wired/fixed-wireless-before-satellite ordering. Input modes and data limitations are both covered, leaving nothing an agent needs missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining that the address parameter is geocoded via the US Census geocoder and that coordinates must be US-based, though it does not state precedence if both address and lat/lon are supplied.

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?

States a specific verb and resource: fixed broadband availability for a US location from the FCC Broadband Data Collection, counted per 2020 Census block. The resource is unambiguous enough that an agent can distinguish it from drinking_water, environment_near, and location_scores without opening any schema.

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?

Gives clear applicability context (US locations only, accept either a geocoded street address or lat/lon) and an important limitation ('cannot confirm service at one house'). It never names an alternative tool or states when a sibling should be preferred, so it stops short of full routing guidance.

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

drinking_waterLook up public water systems for an areaA
Read-onlyIdempotent
Inspect

Public water systems serving a US state + county and/or city, with health-based SDWA violation summaries. Matching is approximate (service boundaries are not public); the user's water bill names their actual utility.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity served (optional)
stateYesTwo-letter state code, e.g. MD
countyNoCounty name (optional)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, non-destructive profile, so the bar is lower, and the description still adds real behavioral context: matching is approximate because service boundaries are not public, and the authoritative source is the user's water bill. It does not cover pagination or result-size behavior, but the key caveat is disclosed.

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?

Two sentences with zero padding. The scope statement comes first and the accuracy caveat second, which is the right front-loading for a lookup tool.

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?

No output schema exists, and the description compensates by naming what comes back (SDWA violation summaries) plus the approximation caveat. Safety semantics are covered by annotations, so little is missing; only result shape/pagination detail is absent.

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 coverage is 100% and all three parameters carry their own descriptions, so the schema does the heavy lifting. The description adds the combination semantics ('state + county and/or city'), which slightly clarifies that city and county can be used independently or together, but no format or edge-case detail beyond that.

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

Purpose4/5

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

The description states a specific verb+resource (look up public water systems), the scope (a US state plus county and/or city), and the payload (health-based SDWA violation summaries). It is clearly distinct from the sibling tools due_diligence and environment_near, though it never explicitly names them.

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

Usage Guidelines3/5

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

Usage is implied by the resource description, but there is no explicit when-to-use vs. when-not or any reference to the alternatives (due_diligence, environment_near). The note about the water bill points at a fallback when matching fails, which is a useful hint but not a full use-condition.

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

environment_nearFind federal environmental records near an addressA
Read-onlyIdempotent
Inspect

Environmental records within a radius of a US location, from GroundTruth's monthly snapshot of three EPA datasets: National Priorities List (Superfund) sites, facilities from the newest Toxics Release Inventory (TRI) reporting year, and active facilities with a current significant-noncompliance or high-priority-violation flag in EPA ECHO. Each record carries its date, distance, and source, and provenance gives each dataset's snapshot date (as_of). Input is either a street address (geocoded by the US Census geocoder) or lat/lon coordinates. Results are records, not a safety assessment. An empty list means the snapshot holds no such record within the radius. EPA holds other records this tool does not search (Superfund sites not on the NPL, earlier TRI years, facilities without a current noncompliance flag), and an empty result does not mean the area is free of contamination.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude (US)
lonNoLongitude (US; negative except Guam, NMI and the western Aleutians)
addressNoUS street address incl. city/state (alternative to lat/lon)
radius_kmNoSearch radius in km (default 10, max 50)

TDQS

A4/5.0
Behavior5/5

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

Annotations already declare a safe, idempotent, read-only, open-world read, and the description adds far more: monthly snapshot staleness, per-dataset as_of provenance, US Census geocoding of addresses, and the exact negative-space limits (NPL-only Superfund, newest TRI year, current noncompliance flags only). The 'empty result does not mean the area is free of contamination' caveat is precisely the kind of behavioral framing an agent needs.

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?

Purpose and data sources are front-loaded, then caveats, with essentially no filler sentences. It is a single dense block rather than clearly structured, which costs a point, but every clause carries information.

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?

With no output schema, the description carries the return-value burden and discharges it: each record carries date, distance, and source, and provenance supplies each dataset's snapshot date. Combined with coverage limits and empty-result semantics, nothing an agent needs to call this correctly 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 the schema already documents lat, lon, address, and radius_km including defaults and bounds, making baseline 3 appropriate. The description adds only that address is geocoded by the US Census geocoder and is an alternative to lat/lon, a modest addition over the schema.

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

Purpose4/5

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

States a specific verb and resource ('Environmental records within a radius of a US location') and enumerates exactly which three EPA datasets are covered, so scope is unambiguous. It never names or contrasts the sibling tools (drinking_water, due_diligence), so it stops short of the sibling differentiation a 5 requires.

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

Usage Guidelines3/5

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

It gives strong interpretive guidance ('Results are records, not a safety assessment', empty result semantics, and an explicit list of EPA records it does not search), which is real when-to-expect-what context. However, it offers no guidance on when to pick this tool over its obvious sibling due_diligence, leaving tool selection to inference.

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

location_scoresScore a location's public-record layersA
Read-onlyIdempotent
Inspect

Layer scores for a US location: school quality, natural hazards, groundwater contamination, Superfund proximity, air quality, highway noise, walkability, crime, and climate pleasantness (pleasant days/year). Scores are 0-1 with 1.0 = favorable; null = cannot score that layer here. The scores are model estimates drawn from public datasets, not safety ratings. no_coverage marks a layer whose number is a placeholder outside that layer's coverage: the value means no data, not a score. When a layer's number has limits the score alone does not show (a placeholder value, a proxy, partial source data), caveats. states them. The scores are not a safety assessment, and an absence of adverse signals is not a clean bill of health. Coverage: Superfund/toxic-release proximity national; air quality, groundwater, and natural hazards a San Francisco Bay Area grid (about lat 37.0 to 38.6, lon -122.8 to -121.4, which also takes in Sacramento), with no_coverage placeholders elsewhere; highway noise Bay Area; walkability California; schools all 50 states and DC (2023-2025 results); climate CONUS (gridMET 4km, 2015-2024); Alaska, the Florida Keys, Hawaii, Puerto Rico and the US Virgin Islands (Daymet V4, 2011-2020); within 40 km of 3 NOAA weather stations in American Samoa, the Northern Mariana Islands and Guam (2016-2025); null elsewhere; crime SF/Oakland/Chicago. Input is either a street address (geocoded by the US Census geocoder) or lat/lon coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude (US)
lonNoLongitude (US; negative except Guam, NMI and the western Aleutians)
addressNoUS street address incl. city/state (alternative to lat/lon)

TDQS

A4/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, openWorld, non-destructive), and the description adds substantial meaning on top: scores are model estimates not safety ratings, 0-1 with 1.0 favorable, null means unscoreable, no_coverage marks placeholder numbers, caveats.<layer> carries limits, and it explicitly warns that absence of adverse signals is not a clean bill of health. It also discloses the geocoding source and per-layer geographic coverage.

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

Conciseness3/5

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

The opening sentence is well front-loaded with the layer list, but the remainder is one dense run-on paragraph mixing caveat semantics, coverage geography, and grid references. Much of it earns its place, yet the coverage enumeration is verbose and hard to scan for an agent deciding whether to call 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?

With no output schema, the description carries the full burden of explaining returns and does so thoroughly: value range, null vs no_coverage placeholders, caveats.<layer> structure, model-estimate provenance, and per-layer coverage. An agent has everything needed to interpret results correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, and the description adds real value beyond it: it names the US Census geocoder used for addresses and clarifies that input is either an address or lat/lon coordinates. The lon sign caveat (negative except Guam, NMI, western Aleutians) largely duplicates the schema, but the geocoder detail is genuinely new.

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

Purpose4/5

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

The description states a specific resource (layer scores for a US location) and enumerates the exact layers returned (schools, hazards, groundwater, Superfund, air, noise, walkability, crime, climate), so an agent knows precisely what it gets. It does not, however, explicitly differentiate itself from the siblings broadband_availability, drinking_water, and environment_near, which overlap on environmental layers.

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

Usage Guidelines3/5

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

There is no explicit when-to-use or when-not-to-use statement, and no sibling is named as an alternative. Usage is only implied through the extensive per-layer coverage list, which tells the agent where results will be real versus null/placeholder but leaves the routing decision to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Removeddue_diligence
    • Addedlocation_scores
  2. 1 tool update
    • Addedbroadband_availability
  3. 2 tool updates
    • Changeddue_diligence5 fields changed
      • addedInput schema / properties / lat / maximum
        Added value: +90
      • addedInput schema / properties / lat / minimum
        Added value: +-90
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude (US, negative)"New value: +"Longitude (US; negative except Guam, NMI and the western Aleutians)"
      • addedInput schema / properties / lon / maximum
        Added value: +180
      • addedInput schema / properties / lon / minimum
        Added value: +-180
    • Changedenvironment_near6 fields changed
      • addedInput schema / properties / lat / maximum
        Added value: +90
      • addedInput schema / properties / lat / minimum
        Added value: +-90
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude (US, negative)"New value: +"Longitude (US; negative except Guam, NMI and the western Aleutians)"
      • addedInput schema / properties / lon / maximum
        Added value: +180
      • addedInput schema / properties / lon / minimum
        Added value: +-180
      • addedInput schema / properties / radius_km / maximum
        Added value: +50
  4. 1 tool update
    • Addeddue_diligence
  5. 2 tool updates
    • First observeddrinking_water
    • First observedenvironment_near

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides AI agents with structured access to U.S. EPA environmental data including nearby regulated facilities, chemical releases, water violations, and hazardous waste sites for any U.S. location. Enables comprehensive environmental impact analysis through the EPA Envirofacts API with geocoding support and distance-based filtering.
    5
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    ollect comprehensive environmental data from 80+ US federal sources (FEMA, EPA, USGS, NOAA, NRCS, USFWS, DOE, DOT, CDC, Census) for any US location. One tool returns flood zones, soils, wetlands, rainfall, water quality, contamination, seismic risk, infrastructure, ecology, energy, and demographics.
    3
    22 npm
    7
    MIT
  • 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.
    201 npm
    1
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources