@pipeworx/fema-nfhl
Connect: https://gateway.pipeworx.io/fema-nfhl/mcp · Install: one-click buttons
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
FEMA’s National Flood Hazard Layer — the authoritative digital flood map. Effective FIRM flood hazard zones, base flood elevations, floodways, levees, cross-sections, LOMRs and LOMAs, the FIRM panel index and political jurisdictions, served as a public ArcGIS REST MapServer.
Tools
nfhl_flood_zone_at_point(latitude, longitude, include_bfe?)— the effective FIRM flood zone at a coordinate: zone code and subtype, Special Flood Hazard Area flag, static BFE, governing DFIRM id, plus nearby BFE lines.nfhl_query(layer_id, where?, bbox?, out_fields?, limit?, offset?, order_by?, return_geometry?)— any NFHL layer by WHERE clause and optional envelope.nfhl_layers(filter?)— every layer with a plain-English guide to the ones that matter.
Auth
Keyless.
Data sources
- https://hazards.fema.gov/arcgis/rest/services/public/NFHL/MapServer — the MapServer.
- Layer 28
S_FLD_HAZ_AR(flood hazard zones), 27S_FLD_HAZ_LN(boundary lines), 16S_BFE, 1S_LOMR, 34S_LOMA, 3S_FIRM_PAN, 23S_LEVEE, 0 NFHL Availability.
Different API from the openfema pack. openfema serves the OpenFEMA
tabular datasets — disaster declarations, individual and public assistance,
NFIP claims and policies. This pack serves the geospatial flood map, which
OpenFEMA cannot answer. Pair them: NFHL for the zone, openfema for the claims
and declaration history of the county it sits in.
Traps
STATIC_BFEis-9999where no base flood elevation applies — a sentinel, not an elevation. This pack returns null for it.SFHA_TF('T'/'F'as strings) is what answers “is this a Special Flood Hazard Area”.FLD_ZONEalone does not: Zone X has two subtypes and one of them is the 0.2% annual chance (500-year) floodplain.- NFHL coverage is not national. A community that has never been digitally
mapped returns zero features, which means “not mapped”, not “no flood risk”.
nfhl_flood_zone_at_pointsays so explicitly rather than returning an empty array that reads as a clean all-clear. Layer 0 (NFHL Availability) tells you which is which. - Identifier fields are strings:
DFIRM_ID='48201C', not48201C.
Tools
- nfhl_flood_zone_at_point — Returns the effective FEMA FIRM flood zone at a coordinate — zone code, subtype, Special Flood Hazard Area flag and base elevation.
- nfhl_query — Query any layer of the FEMA National Flood Hazard Layer with an ArcGIS WHERE clause and optional bounding box — flood hazard zones, base flood elevations, floodways, LOMRs and LOMAs, FIRM panels with
- nfhl_layers — List every layer in the FEMA National Flood Hazard Layer MapServer with its id, name and geometry type, plus a plain-English guide to the layers that matter (flood hazard zones, base flood elevations,
Tools
nfhl_flood_zone_at_point— Returns the effective FEMA FIRM flood zone at a coordinate — zone code, subtype, Special Flood Hazard Area flag and base elevation.nfhl_layers— List every layer in the FEMA National Flood Hazard Layer MapServer with its id, name and geometry type, plus a plain-English guide to the layers that matter (flood hazard zones, base flood elevations,nfhl_query— Query any layer of the FEMA National Flood Hazard Layer with an ArcGIS WHERE clause and optional bounding box — flood hazard zones, base flood elevations, floodways, LOMRs and LOMAs, FIRM panels with