Skip to main content
Glama

KeyVex

get_fema_disasters

Read-only

Returns federal disaster declarations from OpenFEMA — every DR (major disaster), EM (emergency), and FM (fire management) declaration since 1953, one record per (declaration, designated county). ~70K records. Use this when the user asks about: hurricanes / floods / wildfires / severe storms hitting a state or county, which counties were designated for FEMA assistance, active vs closed-out disasters, or to anchor an insurance / construction / utility / muni-credit question to the official federal declaration. Record shape: fema_declaration_string ('DR-4728-CA'), declaration type + date, incident_type ('Hurricane', 'Flood', 'Fire', 'Severe Storm'...), declaration_title ('HURRICANE IAN'), designated_area (county) + FIPS codes, and the four assistance-program flags (individual_assistance, individuals_households_program, public_assistance, hazard_mitigation) — public_assistance=true is the infrastructure-rebuild-money flag. A single disaster spans MANY records (one per designated county): filter fema_declaration_string or disaster_number for all areas of one event; filter state + since for a state's recent disasters. Cross-source: follow a declaration with get_federal_contracts / get_federal_grants (recipient_name or date-windowed) for the rebuild spend, and get_material_events for insurer 8-Ks after major events. Pure-publisher posture: FEMA's declarations as published — no derived damage estimates or exposure scores.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoDirect lookup: '{declarationString}-{fips}' (e.g., 'DR-4728-CA-06037').
limitNoMaximum records to return. Default 50, max 500.
sinceNoDeclaration date lower bound (YYYY-MM-DD inclusive).
stateNoTwo-letter state / territory code (e.g., 'FL', 'PR').
titleNoCase-insensitive substring against declaration title + designated area (e.g., 'ian', 'maui').
untilNoDeclaration date upper bound (YYYY-MM-DD inclusive).
sort_orderNoDefault: desc (most recent declarations first).
incident_typeNoExact incident type (e.g., 'Hurricane', 'Flood', 'Fire', 'Severe Storm', 'Tornado', 'Earthquake').
disaster_numberNoExact FEMA disaster number (e.g., 4728).
declaration_typeNoDR = major disaster, EM = emergency, FM = fire management.
fema_declaration_stringNoExact declaration (e.g., 'DR-4728-CA') — returns every designated county for that event.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly/openWorld/non-destructive; the description adds genuine behavioral context beyond those — the ~70K record volume, the one-record-per-(declaration, county) fan-out (critical, since a single disaster spans MANY rows), and the 'pure-publisher posture' stating no derived damage estimates or exposure scores. It does not mention pagination behavior or default result ordering beyond sort_order's schema note, so a 4 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Measured in paragraphs: purpose/scale first, then a when-to-use trigger list, then record shape, then filter guidance, then cross-source and posture. It is dense but every section earns its place. Slightly long, keeping it off a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-param, no-output-schema, read-only tool, the description is complete: it defines record granularity, all major filters, the assistance-flag semantics (public_assistance as the infrastructure-rebuild-money flag), and the cross-source workflow. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 11 parameters thoroughly. The description reinforces the right filter idioms ('filter fema_declaration_string or disaster_number for all areas of one event; filter state + since for a state's recent disasters'), which adds small routing value over the schema, but nothing beyond it. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (returns) and resource (federal disaster declarations from OpenFEMA), scopes it to every DR/EM/FM declaration since 1953, and states the record granularity. No sibling tool covers this data, so the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit trigger list ('hurricanes / floods / wildfires ... when the user asks about ...') and names cross-source follow-ups (get_federal_contracts, get_federal_grants, get_material_events). The agent knows exactly when to reach for it and what to do next.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources