US Federal Emergency Management Agency open data MCP server. Provides access to FEMA disaster declarations, public assistance, hazard mitigation, and other emergency management datasets via OData queries.
Three well-structured tools with clear naming (verb_noun pattern: disaster_declarations, query_dataset, list_datasets) and comprehensive descriptions (194 - 250 chars, within baseline 34 - 392). All tools have complete input schemas with typed properties and descriptions. disaster_declarations and query_dataset accept natural parameters (state, year, incidentType) matching user intent. However, output schemas are not documented, callers cannot see what fields to expect from responses. Error handling is minimal; no guidance on retryability, user-fixable vs fatal errors, or recovery paths. No tool annotations (readOnlyHint, idempotentHint) despite all three being read-only, safe operations.
Look up FEMA disaster declarations (DisasterDeclarationsSummaries). Convenience filters for state (2-letter), year (fyDeclared, the federal fiscal year of declaration), incidentType (e.g. 'Fire', 'Flood', 'Hurricane', 'Severe Storm'), and declarationType ('DR' major disaster, 'EM' emergency, 'FM' fire management). Returns the most recent first by default.
List the OpenFEMA datasets this pack knows about, with their entity name, current version, and a description. Also documents the OData filter syntax and response shape. Call this first to discover what query_dataset can target.
Generic OData query against any OpenFEMA dataset. Specify the entity name (and optionally version; defaults to the verified current version) plus OData params: filter, select, orderby, top, skip. Use list_datasets to see available entities/versions and the filter syntax. Returns { metadata, records }.
Output schemas not documented. Callers cannot see what fields responses contain (metadata structure, record fields, pagination info). LLMs cannot plan downstream operations or extract required data.
No error handling guidance. Responses may fail (invalid entity, malformed filter, API timeout) but tool descriptions do not explain error categories, retryability, or recovery steps. LLMs cannot self-correct.
Missing tool annotations. All three tools are read-only and idempotent (safe to retry), but lack readOnlyHint and idempotentHint annotations. Agents cannot infer safety properties.
query_dataset version parameter lacks validation guidance. Description says 'defaults to verified current version' but does not explain what happens if an unknown version is passed, or how to discover valid versions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
No pagination guidance in descriptions. query_dataset accepts top/skip but does not document max result limits, whether total count is returned, or how to detect end-of-results. Large datasets may exhaust context.