fema-nfhl-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fema-nfhl-mcp Check the flood zone for 40.7128, -74.0060"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FEMA NFHL MCP Server
An MCP (Model Context Protocol) server that gives AI assistants direct access to the FEMA National Flood Hazard Layer (NFHL) — the official source for flood zone data in the United States.
Built on the official FEMA ArcGIS REST API.
Built by Revex.agency.
Tools
Tool | Description |
| Look up the FEMA flood zone for a lat/lon. Returns zone code (AE, X, VE, etc.), SFHA status, floodway, BFE, and FIRM source panel. |
| Get the FIRM (Flood Insurance Rate Map) panel number and effective date for a location. |
| Check whether FEMA has NFHL flood map coverage for a location. |
| Get Letters of Map Revision (LOMRs) affecting a location. |
| Get Letters of Map Amendment (LOMAs) near a location. |
| Get Base Flood Elevation (BFE) lines near a location. |
Related MCP server: mcp-hazards
Remote Usage (No Setup Required)
The server is deployed at:
https://fema-nfhl-mcp.vercel.app/api/mcpClaude.ai (Browser)
Go to claude.ai → Settings → Integrations
Click Add custom MCP
Enter the URL:
https://fema-nfhl-mcp.vercel.app/api/mcpAll 6 flood tools are immediately available in your conversations
Any MCP-Compatible Client
Add the remote server URL to your client's MCP configuration. No Node.js, no npm install, no build step required.
Local Installation
Quick Start (npm)
npx fema-nfhl-mcpCursor
Add to .cursor/config.json:
{
"mcpServers": {
"fema-nfhl": {
"command": "npx",
"args": ["fema-nfhl-mcp"]
}
}
}Claude Desktop
Add to %AppData%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"fema-nfhl": {
"command": "npx",
"args": ["fema-nfhl-mcp"]
}
}
}Development
Requirements
Node.js 18+
npm
Setup
git clone https://github.com/Revex-Agency/fema-nfhl-mcp.git
cd fema-nfhl-mcp
npm install
npm run buildRun from Source (no build step)
{
"mcpServers": {
"fema-nfhl": {
"command": "npx",
"args": ["tsx", "src/index.ts"]
}
}
}Run from Build
{
"mcpServers": {
"fema-nfhl": {
"command": "node",
"args": ["/absolute/path/to/fema-nfhl-mcp/dist/src/index.js"]
}
}
}Data Source
All data is sourced in real time from the official FEMA NFHL ArcGIS REST service:
https://hazards.fema.gov/arcgis/rest/services/public/NFHL/MapServerNo API key required. No data is stored or cached locally.
Flood Zone Reference
Zone | Description |
A / AE / AH / AO / AR | High-risk flood zone (SFHA) — mandatory flood insurance for federally-backed mortgages |
VE / V | High-risk coastal zone with wave action (SFHA) |
X (shaded) | Moderate risk — 0.2% annual chance flood |
X (unshaded) | Minimal risk |
D | Undetermined risk (area not studied) |
License
MIT
Available Tools
6 toolscheck_nfhl_availabilityA
Check whether the FEMA National Flood Hazard Layer (NFHL) has official flood map coverage for a given location. Run this first if other tools return no data — it tells you whether FEMA has mapped this area at all.
Inputs: lat (required), lon (required).
get_base_flood_elevationsA
Get Base Flood Elevation (BFE) lines near a location from the NFHL. The BFE is the elevation (in feet above datum) that floodwaters are expected to reach during a 1% annual chance (100-year) flood. Critical for construction requirements and insurance rating. Searches within ~100m of the coordinate. BFEs are not present in all flood zones (e.g. Zone X).
Inputs: lat (required), lon (required).
get_firm_panelA
Get the FEMA FIRM (Flood Insurance Rate Map) panel number and metadata for a location. Returns the official panel number, suffix, effective date, and panel type. Use this to identify which flood map covers a location and when it was last updated.
Inputs: lat (required), lon (required).
get_flood_zoneA
Look up the FEMA flood zone designation for a lat/lon coordinate using the official National Flood Hazard Layer (NFHL). Returns the zone code (e.g. AE, X, VE, AO), whether the location is in a Special Flood Hazard Area (SFHA), floodway status, static BFE, and the FIRM panel citation. This is the primary tool for flood risk lookup.
Inputs: lat (required), lon (required).
get_lomasA
Get Letters of Map Amendment (LOMAs) near a location. A LOMA is an official FEMA letter that removes a specific structure or parcel from a Special Flood Hazard Area without physically revising the Flood Insurance Rate Map. Searches within ~100m of the coordinate.
Inputs: lat (required), lon (required).
get_lomrsA
Get Letters of Map Revision (LOMRs) that affect a location. LOMRs are official FEMA revisions to the Flood Insurance Rate Map — they can change flood zone designations. Returns case number, project name, effective date, and status for each revision.
Inputs: lat (required), lon (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a distinct FEMA flood data concern, but get_flood_zone and get_firm_panel overlap slightly since both return panel-related information, and get_lomrs/get_lomas are easy to confuse by name. The descriptions do clearly distinguish them, so ambiguity is limited.
Tool names follow a consistent get_* verb-noun pattern, with check_nfhl_availability being the only deviation but still following the same predictable style. All names are lowercase snake_case and clearly indicate their resource or action.
Six tools is a well-scoped set for a FEMA flood hazard lookup server. Each tool provides a meaningful, non-redundant capability and the count is appropriate for the domain.
The surface covers the core workflow: checking availability, getting the flood zone, identifying the FIRM panel, finding revisions/amendments, and retrieving BFE data. Minor gaps such as address-based lookup or more detailed NFHL layer queries are possible but not critical to the stated purpose.
Maintenance
Related MCP Connectors
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
MCP server for querying Tulsa County, Oklahoma property and parcel data for AI agents.
An MCP server that integrates with Discord to provide AI-powered features.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that gives AI agents clean, token-efficient access to US civic & property data — geocoding, census tracts, Opportunity Zones, ACS demographics, and FEMA flood zones — sourced entirely from free federal open data.578 npm1MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives AI agents grounded access to US natural-hazard data — weather alerts, forecasts, earthquakes, and FEMA flood zones — from free, keyless US government APIs.MIT
- FlicenseNot gradedqualityCmaintenanceRemote MCP server exposing US Census (ACS 5-year) and FEMA flood data. Works as a connector in both Claude and ChatGPT.-
- FlicenseNot gradedqualityDmaintenanceMCP server that queries FEMA's National Flood Hazard Layer (NFHL) for flood zone information, including flood zone codes, Base Flood Elevation, FIRM panel numbers, and identifies LOMRs/LOMAs from provided coordinates, enabling automated flood risk lookups.-