AI agents

Hazards Read

Flood, wetland, wildfire and severe-weather exposure for one site, cited to FEMA, USFWS, USGS, NOAA and state fire-agency sources.

One location or a short list · Tools: fetch_location, fetch_batch · 1 lookup per location (23 fields).

Example prompt

“Do a hazards read for 9 Dock St, Cedar Key, FL. Is it in a flood zone, near wetlands, or exposed to wildfire?”

Or pick the hazards_read prompt from the Isopleth MCP server in your client.

How it works

  1. Call fetch_location with the location, preset "flood_risk" and the extra hazard fields listed below.
  2. Flood: report the FEMA flood zone (nfhl_flood_zone), whether the point is inside the mapped floodplain, coastal high-hazard status, elevation and distance to the coast.
  3. Water and wetlands: say whether the point intersects a mapped wetland or water area, the wetland type, and how many wetlands are within 100 m and 500 m.
  4. Fire and weather: report the fire hazard severity zone and the distance to the nearest past fire perimeter with its year (both from CAL FIRE, so mainly California), and the annual wildfire, tornado and hail frequencies (nationwide). Add the seismic design category and landslide susceptibility.
  5. Keep "absent" (nothing mapped there) separate from "failed" (temporary). Never call a site safe because a field failed.

Fields used

Tool call

What the agent sends to fetch_location:

{
  "lat": 30.2672,
  "lng": -97.7431,
  "preset": "flood_risk",
  "fields": [
    "nfhl_flood_zone",
    "coastal_high_hazard",
    "fire_hazard_severity_zone_class",
    "nearest_fire_perimeter_distance_m",
    "most_recent_burn_year",
    "wildfire_annual_frequency",
    "tornado_annual_frequency",
    "hail_annual_frequency",
    "seismic_design_category",
    "landslide_susceptibility_index"
  ]
}

Output

A one-paragraph risk summary, then a table grouped as Flood, Water and wetlands, Fire, Weather and ground, each row with its source.

SKILL.md

Save this as isopleth-hazards-read/SKILL.md in your agent's skills folder (for Claude Code, ~/.claude/skills/), or download it.

---
name: isopleth-hazards-read
description: Flood, wetland, wildfire and severe-weather exposure for one site, cited to FEMA, USFWS, USGS, NOAA and state fire-agency sources. Uses the Isopleth MCP server (https://api.isopleth.dev/mcp).
---

# Hazards Read

Flood, wetland, wildfire and severe-weather exposure for one site, cited to FEMA, USFWS, USGS, NOAA and state fire-agency sources.

## Requirements

- The Isopleth MCP server connected at `https://api.isopleth.dev/mcp` with an API key in the `Authorization: Bearer` header (see https://isopleth.dev/docs/mcp).
- Tools used: `fetch_location`, `fetch_batch`.
- Cost: 1 lookup per location (23 fields).

## Steps

1. Call fetch_location with the location, preset "flood_risk" and the extra hazard fields listed below.
2. Flood: report the FEMA flood zone (nfhl_flood_zone), whether the point is inside the mapped floodplain, coastal high-hazard status, elevation and distance to the coast.
3. Water and wetlands: say whether the point intersects a mapped wetland or water area, the wetland type, and how many wetlands are within 100 m and 500 m.
4. Fire and weather: report the fire hazard severity zone and the distance to the nearest past fire perimeter with its year (both from CAL FIRE, so mainly California), and the annual wildfire, tornado and hail frequencies (nationwide). Add the seismic design category and landslide susceptibility.
5. Keep "absent" (nothing mapped there) separate from "failed" (temporary). Never call a site safe because a field failed.

## Arguments

```json
{
  "preset": "flood_risk",
  "fields": [
    "nfhl_flood_zone",
    "coastal_high_hazard",
    "fire_hazard_severity_zone_class",
    "nearest_fire_perimeter_distance_m",
    "most_recent_burn_year",
    "wildfire_annual_frequency",
    "tornado_annual_frequency",
    "hail_annual_frequency",
    "seismic_design_category",
    "landslide_susceptibility_index"
  ]
}
```

## Output

A one-paragraph risk summary, then a table grouped as Flood, Water and wetlands, Fire, Weather and ground, each row with its source.

Every value carries its source, license and attribution. Keep the source next to each value, and show the attributions if you share the results.

Connect your agent

ChatGPT

ChatGPT connects with your Isopleth sign-in, no key needed. Custom MCP servers are available on ChatGPT web for Pro, Business, Enterprise and Edu accounts (workspace admins may need to allow them).

  1. Open Plugins in ChatGPT, select +, then Add custom MCP server. (Older layouts: Settings → Apps → Create, with developer mode on.)
  2. Name it Isopleth and enter the server URL https://api.isopleth.dev/mcp.
  3. Choose OAuth for authentication and leave the client ID and secret blank. ChatGPT registers itself.
  4. Accept the risk notice and create it. ChatGPT opens the Isopleth sign-in: enter your email, open the sign-in link we send you in the same browser, and choose Allow access.
  5. Start a chat, type @ and pick Isopleth.

Claude.ai (web, desktop and mobile)

Claude connects with your Isopleth sign-in too. Custom connectors are on Pro, Max, Team and Enterprise plans; on Team and Enterprise an owner adds the connector first, then each person connects their own Isopleth account.

  1. Go to Customize → Connectors (formerly Settings → Connectors), select Add, then Add custom connector.
  2. Name it Isopleth and enter https://api.isopleth.dev/mcp. Keep the detected sign-in settings and leave the OAuth client fields blank.
  3. Select Connect, sign in to Isopleth with your email and choose Allow access.
  4. Turn Isopleth on from the connectors menu in a chat. A connector added on claude.ai also shows up in Claude Desktop and the mobile apps.

How app sign-in works

Claude Code

claude mcp add --transport http isopleth https://api.isopleth.dev/mcp --header "Authorization: Bearer $ISOPLETH_KEY"

Or skip the key: add it without the header, then run /mcp in Claude Code and choose to authenticate.

Claude Desktop

The simplest route is the connector set up on claude.ai, which Claude Desktop picks up. To use an API key instead, go through the mcp-remote bridge (needs Node.js 18 or later): open Settings → Developer → Edit Config, add this to claude_desktop_config.json, then restart Claude Desktop.

{
  "mcpServers": {
    "isopleth": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.isopleth.dev/mcp",
        "--header",
        "Authorization:${ISOPLETH_AUTH}"
      ],
      "env": {
        "ISOPLETH_AUTH": "Bearer YOUR_ISOPLETH_KEY"
      }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project). Leave out headers to sign in with your Isopleth account instead of a key.

{
  "mcpServers": {
    "isopleth": {
      "url": "https://api.isopleth.dev/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_ISOPLETH_KEY"
      }
    }
  }
}

VS Code (Copilot agent mode)

Add to .vscode/mcp.json. VS Code asks for the key once and stores it securely. Without the headers block VS Code offers to sign in with your Isopleth account.

{
  "servers": {
    "isopleth": {
      "type": "http",
      "url": "https://api.isopleth.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${input:isopleth-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "isopleth-key",
      "description": "Isopleth API key",
      "password": true
    }
  ]
}

OpenAI Codex CLI

Add to ~/.codex/config.toml and export ISOPLETH_KEY in your shell.

[mcp_servers.isopleth]
url = "https://api.isopleth.dev/mcp"
bearer_token_env_var = "ISOPLETH_KEY"

Other MCP clients

Any client that supports Streamable HTTP works: server URL https://api.isopleth.dev/mcp, then either the header Authorization: Bearer <your key> or the client's OAuth sign-in. Clients that only speak stdio can use the mcp-remote bridge shown for Claude Desktop.