NEPA-MCP
Case study · Policy
22 MCP servers across 13 federal agencies, so an AI agent can screen a project site the way a NEPA analyst would.
- What
- Structured access to federal environmental, regulatory, biological, and jurisdictional data for NEPA screening and permitting research.
- Stack
- 22 MCP servers, 53 tools, 32 GIS layers; Python, published to PyPI. Built and maintained by PNNL.
- Status
- LIVE
- Dates
- Published August 2026 · Updated August 2026
- Links
- Live site · Source code
Background
What federal, state, and local rules actually govern environmental review for a given project site?
This one isn't mine. NEPA-MCP is PNNL's PermitAI toolkit: 22 MCP servers, 53 tools, and 32 GIS layers that give an AI agent structured access to the federal environmental, regulatory, biological, cultural, and jurisdictional data used in NEPA screening, from 13 federal agencies. I sponsored it from my role at DOE, leading the Data Center Engagement Team, and contributed one of the 22 servers.
It answers the problem that makes environmental review slow: listed species, soil surveys, floodplains, historic districts, nonattainment areas, and contaminated-site records live across a dozen-plus agencies, each with its own API or map service or none at all. Registered once, they become tools an agent can call for a sourced, current answer. It screens; it doesn't consult. Agency and Tribal consultation still come before anything is relied on.
My Contribution
NEPAssist, EPA's own screening tool, flags contaminated-site indicators near a project area but doesn't return the identifiable Brownfields properties behind them. I closed that gap with a standalone server, get_epa_acres_properties_in_roi, that queries EPA's Envirofacts Brownfields layer by coordinates and radius.
- Query: a point, a buffer radius (0.1–100 miles), and paging controls, validated before any upstream call is made.
- Returns: property name, address, county, EPA region, FRS and ACRES IDs, coordinates, distance from the query center, and a link to the EPA property page, nearest first.
- Limits stated in every response: ACRES is grant-reported properties and no complete inventory; a returned record is no determination that land is contaminated, available, or suitable; an empty result is marked unavailable instead of a clean no-hit.
It shipped as the toolkit's 20th server, with unit, integration, security, resilience, and performance tests, through PNNL's normal review (pnnl/nepa-mcp#24).
A Look Inside
Each view shown on mobile and desktop — tap any image to open the live site.



