EPA Envirofacts MCP. Query US Environmental Data & Forecasts
Works with every AI agent you already use
…and any MCP-compatible client
Just plug in your AI agents and start using Vinkius.
EPA Envirofacts provides direct access to US environmental data from the EPA. Use this MCP to query toxic release inventories, analyze Superfund sites, or track UV index forecasts—hourly and daily—by ZIP code or city/state.
Pull official government records on air, water, and waste without complex registration or manual API calls.
What your AI agents can do
Graphql query
Runs complex queries across the entire EPA Envirofacts database using GraphQL syntax.
Rest query
Queries specific tables within the Envirofacts API, allowing filtering by structure like 'tri.facility'.
Uv daily city state
Retrieves a full day's UV index forecast based on a specified City and State.
Retrieves the full day's UV index forecast using either a specific ZIP code or City/State location.
Provides a detailed, hour-by-hour breakdown of the UV index for both ZIP codes and specified metropolitan areas.
Allows you to perform cross-table analysis across multiple EPA datasets using GraphQL queries.
Searches any table in the Envirofacts database, like facility records or toxic inventories, with custom filters and pagination.
Ask AI about this MCP
Supported MCP Clients
OAuth 2.0 CompatibleWaiting for input…
EPA Envirofacts (Environmental Data) with 6 Tools
Use these tools to query facility data, generate UV forecasts by ZIP code or city/state, and run complex environmental aggregations across EPA databases.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using EPA Envirofacts (Environmental Data) on Vinkius019e3891graphql query
Runs complex queries across the entire EPA Envirofacts database using GraphQL syntax.
019e3891rest query
Queries specific tables within the Envirofacts API, allowing filtering by structure like 'tri.facility'.
019e3891uv daily city state
Retrieves a full day's UV index forecast based on a specified City and State.
019e3891uv daily zip
Gets the daily UV index forecast for any given ZIP code.
019e3891uv hourly city state
Provides an hour-by-hour breakdown of the UV index using a City and State location.
019e3891uv hourly zip
Retrieves the detailed, hour-by-hour UV index forecast for a specific ZIP code.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with EPA Envirofacts (Environmental Data), then connect any of our 5,000+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,000+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by EPA Envirofacts. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This server provides 6 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.
Tracking Environmental Data Used to Be a Manual Nightmare
Today, pulling environmental stats means jumping between multiple EPA websites. You have to run separate searches for the Toxic Release Inventory (TRI), then maybe another search on Superfund databases. If you need UV data, you check one site; if you need air quality, it's a different login and a completely different set of filters. It’s copy-pasting identifiers from tab to tab until you hit burnout.
With this MCP, that entire process vanishes. You ask your agent for the required metric—say, hourly UV index by ZIP code—and it handles all the backend complexity. You get clean, structured data instantly; no manual clicks needed.
Accessing EPA Envirofacts with `graphql_query`
Previously, running a cross-table analysis—like counting TRI facilities across multiple states and comparing that count to current UV forecast data—required writing custom scripts using multiple libraries and managing several distinct API calls. Each call was a point of failure.
Now you simply tell your agent what aggregation you need. The MCP uses `graphql_query` to map the entire relationship structure within the EPA database, giving you one unified result set without the scripting headache.
What you can do with this MCP connector
This connector pulls a wealth of environmental data straight from the United States Environmental Protection Agency. You can query everything from toxic release inventories to UV index forecasts simply by asking your agent. Need to know how much radiation a specific ZIP code gets over a day? Or maybe you need facility records for an old Superfund site? The MCP handles it, letting you run complex queries against official government databases without ever needing an API key.
It's like having the EPA database right inside your chat window. When you connect this to Vinkius, all those environmental datasets become available through one central point, making data exploration simple for anyone—developer, researcher, or safety professional.
019e3891-7e46-73ed-90e4-8be9110456fc How EPA Envirofacts MCP Works
- 1 Start by asking your agent for specific environmental data. For example, request a daily UV index forecast for a ZIP code.
- 2 The MCP translates that request into the correct query—like calling
uv_daily_zipor running a general GraphQL aggregation. - 3 Your agent receives and presents the structured results (e.g., a list of facility IDs or an indexed UV chart), ready for you to use.
The bottom line is, your agent handles all the complex API calls so you just get clean, usable data back.
Who Is EPA Envirofacts MCP For?
Environmental scientists and developers who routinely need reliable access to public government data. If manual database querying or tracking geo-specific environmental hazards is part of your job, this MCP saves hours of work.
Needs to pull facility records from the Toxic Release Inventory (TRI) for client impact reports.
Uses GraphQL to run complex, cross-database aggregations of environmental metrics into a single data model.
Checks hourly UV index forecasts for job sites to ensure workers have accurate safety protocols.
What Changes When You Connect
- You get detailed UV forecasts for every location type. Use
uv_hourly_ziporuv_daily_city_stateto provide precise, time-sensitive safety data. - Stop writing custom API wrappers. The general
graphql_querytool lets you run complex aggregations across multiple EPA datasets in one shot. - The MCP handles the complexity of government databases. Use
rest_querywhen you need to search a specific table, like finding all Superfund sites near an address. - Data is immediately usable. Whether you're tracking toxic releases or just monitoring air quality, the output formats are clean and ready for analysis.
- Save time on repetitive lookups. You don't need separate endpoints for every single data type; this MCP centralizes EPA access.
Real-World Use Cases
Assessing site contamination risks
An environmental consultant needs to check if a potential development site has been flagged in the historical records. They ask their agent, which runs rest_query against the Superfund (SEMS) database, and immediately receive a list of relevant facility IDs for review.
Planning outdoor construction work
A safety manager needs to schedule workers around peak sun exposure. They ask their agent to use uv_hourly_zip for the job site's ZIP code, getting a precise timeline showing when UV levels exceed safe limits.
Writing an academic paper on pollution trends
A data scientist requires total counts of facilities by state from the Toxic Release Inventory (TRI). They execute graphql_query, aggregating and counting records across all states to generate a comprehensive report dataset.
Building real-time safety dashboards
A health professional needs continuous data streams for multiple locations. They connect the MCP via Vinkius, using uv_daily_city_state to pull forecasts for an entire metropolitan region into a single dashboard.
The Tradeoffs
Trying to query everything with one tool
Using only the generic rest_query when you actually need hourly UV data. This forces you to write complex, brittle queries for a simple lookup.
→
For structured time-based lookups like UV index, always use the dedicated tools: uv_hourly_zip or uv_daily_city_state. Use rest_query only when the data structure is unknown.
Ignoring API limitations
Attempting to run massive, unoptimized queries on all tables at once. This will likely time out or hit rate limits.
→
If you need aggregation, start with graphql_query. If you just need a specific dataset (like TRI records), use the targeted rest_query format.
Not checking location granularity
Asking for general 'city' data when the required precision is ZIP code level. The results will be uselessly broad.
→
Always confirm if you need city/state or ZIP code detail, and select the corresponding tool: uv_daily_zip vs. uv_daily_city_state.
When It Fits, When It Doesn't
Use this MCP if your data needs involve US environmental metrics from the EPA—specifically UV forecasts (hourly or daily) or records related to Superfund sites and toxic releases. If you need general, unstructured internet data (like current stock prices or weather outside of UV index), this won't help; use a different catalog tool instead. Do not use this if your goal is merely to search for local business information; the EPA database focuses on regulated industrial and environmental activity. Always prefer the specialized tools (uv_hourly_* or uv_daily_*) over generic calls when dealing with UV data, as they are faster and more reliable.
Common Questions About EPA Envirofacts MCP
How do I get UV index data for a specific ZIP code using uv_hourly_zip? +
You provide your agent with the target ZIP code. It uses uv_hourly_zip to fetch the hour-by-hour forecast, giving you a precise timeline of UV levels for that area.
Can I query facility records using rest_query? +
Yes, rest_query lets you search specific tables. You can target fields like the Toxic Release Inventory (TRI) to find environmental records for known sites by filtering on table names.
What is the difference between graphql_query and rest_query? +
graphql_query is for complex data aggregation across multiple related tables. rest_query is better when you know exactly which specific table and fields you want to pull from.
Do I need an API key to use uv_daily_city_state? +
No, the MCP handles connecting to public EPA data. You just talk to your agent; it manages the authentication behind the scenes for you.
When running complex searches with `rest_query`, how should I handle pagination or limit the records returned? +
You must specify limits and offsets within your query parameters. This prevents over-fetching data and ensures you can retrieve large result sets page by page.
Using `graphql_query`, can I combine filters, like searching for both 'Superfund' sites and specific contamination types? +
Yes, GraphQL supports complex input objects. You pass multiple criteria (e.g., site ID AND contamination type) as structured arguments to perform precise cross-field filtering.
When I use `uv_hourly_city_state`, what time zone is the returned UV Index forecast based on? +
The forecasts are provided in standard local time for the specified City and State. Always treat the data as being specific to that region's local clock.
If I get an error using `rest_query`, how do I check which tables or schemas are available before writing a query? +
The API documentation provides a schema lookup function. Use this resource first to verify the exact table names and field structures for your desired data.
How can I check the UV Index for a specific location? +
Use the uv_hourly_zip or uv_hourly_city_state tools. Simply provide a 5-digit US ZIP code or the city name and 2-letter state abbreviation to receive the latest hourly forecast data.
Can I search for specific facilities in the EPA database? +
Yes! Use the rest_query tool. You can specify tables like 'tri.tri_facility' or 'sems.envirofacts_site' and apply filters using operators like 'equals' or 'contains' to find specific sites and their environmental records.
Does this server support complex data aggregations? +
Absolutely. The graphql_query tool allows you to execute custom GraphQL strings to perform advanced data fetching, aggregations, and subqueries across the EPA's DMAP API infrastructure.
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.