dyph

MCP Server for EPA ECHO

16 tools

EPA's Enforcement and Compliance History Online (ECHO) reports US facility-level environmental compliance: inspections, violations, penalties and enforcement actions under the Clean Air Act, Clean Water Act and RCRA. Facility search needs no key; some output formats (map, GeoJSON, clustered) need a QueryID from a prior search rather than a fresh key.

Tools
16
Read-only
8
Write
8
Destructive
0
Verified
6
Free tier
yes
Auth
none

Tool definitions

16 ready-to-use tool definitions in JSON. Drop the file into your agent configuration; no need to read the API documentation first.

epa-echo.json
Download

All 16 tools

16 of 16 shown

create_echo_rest_servicesget_downloadPOST /echo_rest_services.get_downloadBased on the QID obtained from a get_facilities or get_facility_info query, return a comma separated value (CSV) file of the facilities found.qidwritesnot verified

Based on the QID obtained from a get_facilities or get_facility_info query, return a comma separated value (CSV) file of the facilities found.

ParameterInTypeRequired
outputformDatastringno
qidformDatastringyes
qcolumnsformDatastringno
p_pretty_printformDatanumberno
create_echo_rest_servicesget_facilitiesPOST /echo_rest_services.get_facilitiesValidates query search parameters and returns query identifier.nonewritesnot verified

Validates query search parameters and returns query identifier. Use the responseset parameter to set the page size

ParameterInTypeRequired
outputformDatastringno
p_fnformDatastringno
p_saformDatastringno
p_sa1formDatastringno
p_ctformDatastringno
p_coformDatastringno
p_fipsformDatastringno
p_stformDatastringno
p_zipformDatastringno
p_frsformDatastringno
p_regformDatastringno
p_sicformDatastringno
p_ncsformDatastringno
p_penformDatastringno
p_c1latformDatanumberno
p_c1lonformDatanumberno
p_c2latformDatanumberno
p_c2lonformDatanumberno
p_usmexformDatastringno
p_sic2formDatastringno
p_sic4formDatastringno
p_faformDatastringno
p_ffformDatastringno
p_actformDatastringno
p_majformDatastringno
p_mactformDatastringno
p_feaformDatastringno
p_feayformDatanumberno
p_feaaformDatastringno
p_feacformDatastringno
p_fea_5yrformDatastringno
p_ieaformDatastringno
p_ieayformDatanumberno
p_ieaaformDatastringno
p_iea_5yrformDatastringno
p_csformDatanumberno
p_qivformDatastringno
p_naaformDatastringno
p_impwformDatastringno
p_trepformDatastringno
p_ocrformDatastringno
p_octformDatastringno
p_pmformDatastringno
p_pdformDatastringno
p_icoformDatastringno
p_hucformDatastringno
p_pidformDatastringno
p_medformDatastringno
p_istatuteformDatastringno
p_yslformDatastringno
p_yslyformDatanumberno
p_yslaformDatastringno
p_qsformDatastringno
p_sfsformDatastringno
p_tribeidformDatanumberno
p_tribenameformDatastringno
p_tribedistformDatanumberno
p_wbdformDatastringno
p_fntypeformDatastringno
p_icooformDatastringno
p_fac_icosformDatastringno
p_ejscreenformDatastringno
p_limit_addrformDatastringno
p_latformDatanumberno
p_longformDatanumberno
p_radiusformDatanumberno
p_ejscreen_over80cntformDatastringno
p_agooformDatastringno
p_neiuformDatastringno
querysetformDatanumberno
responsesetformDatanumberno
tablelistformDatastringno
maplistformDatastringno
summarylistformDatastringno
callbackformDatastringno
qcolumnsformDatastringno
create_echo_rest_servicesget_facility_infoPOST /echo_rest_services.get_facility_infoReturns either an array of Facilities or an array of Clusters that meet the specified search criteria.nonewritesnot verified

Returns either an array of Facilities or an array of Clusters that meet the specified search criteria.

ParameterInTypeRequired
outputformDatastringno
p_fnformDatastringno
p_saformDatastringno
p_sa1formDatastringno
p_ctformDatastringno
p_coformDatastringno
p_fipsformDatastringno
p_stformDatastringno
p_zipformDatastringno
p_frsformDatastringno
p_regformDatastringno
p_sicformDatastringno
p_ncsformDatastringno
p_penformDatastringno
xminformDatanumberno
yminformDatanumberno
xmaxformDatanumberno
ymaxformDatanumberno
p_usmexformDatastringno
p_sic2formDatastringno
p_sic4formDatastringno
p_faformDatastringno
p_ffformDatastringno
p_actformDatastringno
p_majformDatastringno
p_mactformDatastringno
p_feaformDatastringno
p_feayformDatanumberno
p_feaaformDatastringno
p_feacformDatastringno
p_feac_5yrformDatastringno
p_ieaformDatastringno
p_ieayformDatanumberno
p_ieaaformDatastringno
p_iea_5yrformDatastringno
p_csformDatanumberno
p_qivformDatastringno
p_naaformDatastringno
p_impwformDatastringno
p_trepformDatastringno
p_ocrformDatastringno
p_octformDatastringno
p_pmformDatastringno
p_pdformDatastringno
p_icoformDatastringno
p_hucformDatastringno
p_pidformDatastringno
p_medformDatastringno
p_istatuteformDatastringno
p_yslformDatastringno
p_yslyformDatanumberno
p_yslaformDatastringno
p_qsformDatastringno
p_sfsformDatastringno
p_tribeidformDatanumberno
p_tribenameformDatastringno
p_tribedistformDatanumberno
p_wbdformDatastringno
p_fntypeformDatastringno
p_icooformDatastringno
p_fac_icosformDatastringno
p_ejscreenformDatastringno
p_limit_addrformDatastringno
p_latformDatanumberno
p_longformDatanumberno
p_radiusformDatanumberno
p_ejscreen_over80cntformDatastringno
p_agooformDatastringno
p_neiuformDatastringno
responsesetformDatanumberno
callbackformDatastringno
qcolumnsformDatastringno
p_pretty_printformDatanumberno
create_echo_rest_servicesget_geojsonPOST /echo_rest_services.get_geojsonBased on the QID obtained from a get_facilities or get_facility_info query, return GeoJSON of the facilities found.qidwritesnot verified

Based on the QID obtained from a get_facilities or get_facility_info query, return GeoJSON of the facilities found.

ParameterInTypeRequired
outputformDatastringno
qidformDatastringyes
callbackformDatastringno
newsortformDatanumberno
descendingformDatastringno
qcolumnsformDatastringno
p_pretty_printformDatanumberno
create_echo_rest_servicesget_info_clustersPOST /echo_rest_services.get_info_clustersBased on the QID obtained from a clustered get_facility_info query, download cluster facility information as either a CSV or GEOJSON file.p_qidwritesnot verified

Based on the QID obtained from a clustered get_facility_info query, download cluster facility information as either a CSV or GEOJSON file.

ParameterInTypeRequired
outputformDatastringno
p_qidformDatastringyes
p_pretty_printformDatanumberno
create_echo_rest_servicesget_mapPOST /echo_rest_services.get_mapThe purpose of the GET_MAP service is to display facility coordinates and facility clusters related to a get_facilities facility query.qid, p_idwritesnot verified

The purpose of the GET_MAP service is to display facility coordinates and facility clusters related to a get_facilities facility query. Currently, the maximum number of coordinates returned is 500. GET_MAP performs automatic clustering at the state, county, and zip code levels to maximize the number of coordinates returned.

ParameterInTypeRequired
outputformDatastringno
qidformDatastringyes
callbackformDatastringno
tablelistformDatastringno
c1_latformDatanumberno
c1_longformDatanumberno
c2_latformDatanumberno
c2_longformDatanumberno
p_idformDatastringyes
create_echo_rest_servicesget_qidPOST /echo_rest_services.get_qidGET_QID is passed with a query ID corresponding to a previously run get_facilities query.qidwritesnot verified

GET_QID is passed with a query ID corresponding to a previously run get_facilities query. It then returns a Facility object containing all matching facilities. The main purpose of GET_QID is for large querysets that contain multiple pages (responsesets) of output. GET_QID allows for pagination and for the selection and sorting of columns.

ParameterInTypeRequired
outputformDatastringno
qidformDatastringyes
pagenoformDatanumberno
callbackformDatastringno
newsortformDatanumberno
descendingformDatastringno
qcolumnsformDatastringno
create_echo_rest_servicesmetadataPOST /echo_rest_services.metadataReturns the JSON Object Name and ColumnId for usage with the qcolumns parameter for get_qid, get_facility_info and other service endpoints.nonewritesnot verified

Returns the JSON Object Name and ColumnId for usage with the qcolumns parameter for get_qid, get_facility_info and other service endpoints.

ParameterInTypeRequired
outputformDatastringno
callbackformDatastringno
get_echo_rest_servicesget_downloadGET /echo_rest_services.get_downloadBased on the QID obtained from a get_facilities or get_facility_info query, return a comma separated value (CSV) file of the facilities found.qidreadsmismatch

Based on the QID obtained from a get_facilities or get_facility_info query, return a comma separated value (CSV) file of the facilities found.

ParameterInTypeRequired
outputquerystringno
qidquerystringyes
qcolumnsquerystringno
p_pretty_printquerynumberno
get_echo_rest_servicesget_facilitiesGET /echo_rest_services.get_facilitiesValidates query search parameters and returns query identifier.nonereadsverified 2026-10-10

Validates query search parameters and returns query identifier. Use the responseset parameter to set the page size

ParameterInTypeRequired
outputquerystringno
p_fnquerystringno
p_saquerystringno
p_sa1querystringno
p_ctquerystringno
p_coquerystringno
p_fipsquerystringno
p_stquerystringno
p_zipquerystringno
p_frsquerystringno
p_regquerystringno
p_sicquerystringno
p_ncsquerystringno
p_penquerystringno
p_c1latquerynumberno
p_c1lonquerynumberno
p_c2latquerynumberno
p_c2lonquerynumberno
p_usmexquerystringno
p_sic2querystringno
p_sic4querystringno
p_faquerystringno
p_ffquerystringno
p_actquerystringno
p_majquerystringno
p_mactquerystringno
p_feaquerystringno
p_feayquerynumberno
p_feaaquerystringno
p_feacquerystringno
p_fea_5yrquerystringno
p_ieaquerystringno
p_ieayquerynumberno
p_ieaaquerystringno
p_iea_5yrquerystringno
p_csquerynumberno
p_qivquerystringno
p_naaquerystringno
p_impwquerystringno
p_trepquerystringno
p_ocrquerystringno
p_octquerystringno
p_pmquerystringno
p_pdquerystringno
p_icoquerystringno
p_hucquerystringno
p_pidquerystringno
p_medquerystringno
p_istatutequerystringno
p_yslquerystringno
p_yslyquerynumberno
p_yslaquerystringno
p_qsquerystringno
p_sfsquerystringno
p_tribeidquerynumberno
p_tribenamequerystringno
p_tribedistquerynumberno
p_wbdquerystringno
p_fntypequerystringno
p_icooquerystringno
p_fac_icosquerystringno
p_ejscreenquerystringno
p_limit_addrquerystringno
p_latquerynumberno
p_longquerynumberno
p_radiusquerynumberno
p_ejscreen_over80cntquerystringno
p_agooquerystringno
p_neiuquerystringno
querysetquerynumberno
responsesetquerynumberno
tablelistquerystringno
maplistquerystringno
summarylistquerystringno
callbackquerystringno
qcolumnsquerystringno
get_echo_rest_servicesget_facility_infoGET /echo_rest_services.get_facility_infoReturns either an array of Facilities or an array of Clusters that meet the specified search criteria.nonereadsverified 2026-10-10

Returns either an array of Facilities or an array of Clusters that meet the specified search criteria.

ParameterInTypeRequired
outputquerystringno
p_fnquerystringno
p_saquerystringno
p_sa1querystringno
p_ctquerystringno
p_coquerystringno
p_fipsquerystringno
p_stquerystringno
p_zipquerystringno
p_frsquerystringno
p_regquerystringno
p_sicquerystringno
p_ncsquerystringno
p_penquerystringno
xminquerynumberno
yminquerynumberno
xmaxquerynumberno
ymaxquerynumberno
p_usmexquerystringno
p_sic2querystringno
p_sic4querystringno
p_faquerystringno
p_ffquerystringno
p_actquerystringno
p_majquerystringno
p_mactquerystringno
p_feaquerystringno
p_feayquerynumberno
p_feaaquerystringno
p_feacquerystringno
p_feac_5yrquerystringno
p_ieaquerystringno
p_ieayquerynumberno
p_ieaaquerystringno
p_iea_5yrquerystringno
p_csquerynumberno
p_qivquerystringno
p_naaquerystringno
p_impwquerystringno
p_trepquerystringno
p_ocrquerystringno
p_octquerystringno
p_pmquerystringno
p_pdquerystringno
p_icoquerystringno
p_hucquerystringno
p_pidquerystringno
p_medquerystringno
p_istatutequerystringno
p_yslquerystringno
p_yslyquerynumberno
p_yslaquerystringno
p_qsquerystringno
p_sfsquerystringno
p_tribeidquerynumberno
p_tribenamequerystringno
p_tribedistquerynumberno
p_wbdquerystringno
p_fntypequerystringno
p_icooquerystringno
p_fac_icosquerystringno
p_ejscreenquerystringno
p_limit_addrquerystringno
p_latquerynumberno
p_longquerynumberno
p_radiusquerynumberno
p_ejscreen_over80cntquerystringno
p_agooquerystringno
p_neiuquerystringno
responsesetquerynumberno
callbackquerystringno
qcolumnsquerystringno
p_pretty_printquerynumberno
get_echo_rest_servicesget_geojsonGET /echo_rest_services.get_geojsonBased on the QID obtained from a get_facilities or get_facility_info query, return GeoJSON of the facilities found.qidreadsverified 2026-10-10

Based on the QID obtained from a get_facilities or get_facility_info query, return GeoJSON of the facilities found.

ParameterInTypeRequired
outputquerystringno
qidquerystringyes
callbackquerystringno
newsortquerynumberno
descendingquerystringno
qcolumnsquerystringno
p_pretty_printquerynumberno
get_echo_rest_servicesget_info_clustersGET /echo_rest_services.get_info_clustersBased on the QID obtained from a clustered get_facility_info query, download cluster facility information as either a CSV or GEOJSON file.p_qidreadsmismatch

Based on the QID obtained from a clustered get_facility_info query, download cluster facility information as either a CSV or GEOJSON file.

ParameterInTypeRequired
outputquerystringno
p_qidquerystringyes
p_pretty_printquerynumberno
get_echo_rest_servicesget_mapGET /echo_rest_services.get_mapThe purpose of the GET_MAP service is to display facility coordinates and facility clusters related to a get_facilities facility query.qid, p_idreadsverified 2026-10-10

The purpose of the GET_MAP service is to display facility coordinates and facility clusters related to a get_facilities facility query. Currently, the maximum number of coordinates returned is 500. GET_MAP performs automatic clustering at the state, county, and zip code levels to maximize the number of coordinates returned.

ParameterInTypeRequired
outputquerystringno
qidquerystringyes
callbackquerystringno
tablelistquerystringno
c1_latquerynumberno
c1_longquerynumberno
c2_latquerynumberno
c2_longquerynumberno
p_idquerystringyes
get_echo_rest_servicesget_qidGET /echo_rest_services.get_qidGET_QID is passed with a query ID corresponding to a previously run get_facilities query.qidreadsverified 2026-10-10

GET_QID is passed with a query ID corresponding to a previously run get_facilities query. It then returns a Facility object containing all matching facilities. The main purpose of GET_QID is for large querysets that contain multiple pages (responsesets) of output. GET_QID allows for pagination and for the selection and sorting of columns.

ParameterInTypeRequired
outputquerystringno
qidquerystringyes
pagenoquerynumberno
callbackquerystringno
newsortquerynumberno
descendingquerystringno
qcolumnsquerystringno
get_echo_rest_servicesmetadataGET /echo_rest_services.metadataReturns the JSON Object Name and ColumnId for usage with the qcolumns parameter for get_qid, get_facility_info and other service endpoints.nonereadsverified 2026-10-10

Returns the JSON Object Name and ColumnId for usage with the qcolumns parameter for get_qid, get_facility_info and other service endpoints.

ParameterInTypeRequired
outputquerystringno
callbackquerystringno

Authentication

No key and no published rate limit

Where this came from

Built from the APIs.guru OpenAPI specification, version 2019.10.15. Rebuilt on our side on 2026-10-10.

View the source specification