Skip to main content
Glama

Search NFIP Flood Insurance Claims

fema_search_nfip
Read-only

Search National Flood Insurance Program (NFIP) claims data by state, county, ZIP code, and year range. Returns claim counts, amounts paid on building and contents, flood zones, and loss years. state is required — the full NFIP dataset is 2.7 million rows; unfiltered access is prohibited. When DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb) and results exceed the inline preview, the full result set is staged on a canvas for SQL aggregation via fema_dataframe_query. Use fema_dataframe_describe to inspect the staged table schema before writing SQL. Without canvas, results are returned inline up to the limit.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum claim rows to return in the inline preview (1–10000, default 1000). When DataCanvas is enabled, the canvas stages the full matching result set regardless of this value.
stateYesTwo-letter US state code (required). NFIP dataset is 2.7M rows — state filter is mandatory.
year_toNoEnd year of loss, inclusive (e.g., 2023).
zip_codeNoZIP code to narrow results to a specific area (5-digit, e.g., 77002).
canvas_idNoOptional canvas ID from a prior call. Omit to create a fresh canvas. The response returns the canvas_id to pass to fema_dataframe_query.
year_fromNoStart year of loss, inclusive (e.g., 2020).
county_codeNoCounty code to narrow results within the state. Accepts the full 5-digit state+county FIPS (e.g., 48201 for Harris County TX) or the 3-digit county portion (e.g., 201) when state is provided — the server prepends the state FIPS automatically.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
claimsNoInline preview of claim records (first N rows). Full dataset available via canvas_id when spilled=true.
noticeNoGuidance on canvas usage or result scope.
spilledNoTrue when the full result set was staged on DataCanvas; use canvas_id + fema_dataframe_query for SQL analysis. False when all results fit inline.
canvas_idNoCanvas ID for the staged full result set. Pass to fema_dataframe_query and fema_dataframe_describe. Present only when spilled=true.
truncatedNoTrue when the canvas row cap (50,000) was reached before the full matching set was staged — the canvas holds a partial result. Apply tighter filters (county_code, zip_code, year range) to stage the complete set.
total_countNoTotal matching claims in the filtered dataset before the limit.
canvas_tableNoDuckDB table name on the canvas holding all fetched rows. Reference in SQL FROM clauses. Present when spilled=true.
returned_countNoNumber of claim records in the inline preview.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds important behavior beyond annotations: the staging of full results on a canvas when DataCanvas is enabled, the inline preview limit behavior, and the prohibition of unfiltered access. This gives the agent a clear mental model of result delivery and constraints without contradicting the annotations.

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?

The description is 3 sentences, well-structured: first states purpose, second imposes constraint, third explains canvas behavior and alternatives. Every sentence earns its place; it is concise without omitting critical workflow details. Slight length is justified by the complexity of the canvas integration.

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

Completeness4/5

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

The description covers the essential workflow: required filters, output fields, canvas staging for large results, and how to interact with staged data. Given the output schema exists and annotations cover safety (readOnly), there is no major missing context. It does not explain pagination or error handling, but these are typically implicit and not critical for a search tool.

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 coverage is 100% with detailed descriptions for every parameter (limit, state, year_to, zip_code, canvas_id, year_from, county_code). The description reinforces the mandatory state requirement and explains the rationale (2.7M rows), but does not add new parameter semantics beyond what the schema already provides. Baseline 3 is appropriate since schema does the heavy lifting.

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 clearly states the tool searches NFIP claims data with specific filters (state, county, ZIP, year range) and lists the output fields (claim counts, amounts paid, flood zones, loss years). It is distinct from sibling tools by focusing specifically on NFIP claims, and the required state filter is highlighted.

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

Usage Guidelines4/5

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

Provides clear context on when to use the canvas workflow (when DataCanvas is enabled and results exceed inline preview), explicitly directing the agent to fema_dataframe_query for aggregation and fema_dataframe_describe for schema inspection. It states the mandatory state filter due to dataset size, but does not explicitly compare with other FEMA dataset tools, though the NFIP focus is implicitly exclusive.

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.

TDQS

A4.5/5.0
Disambiguation5/5

Each tool has a distinct purpose: search vs get, specific NFIP vs generic OData, and staging/query helpers. Descriptions clarify boundaries, minimizing confusion.

Naming Consistency5/5

All tools follow a consistent 'fema_<verb>_<target>' snake_case pattern (e.g., fema_search_disasters, fema_get_disaster). No mixed conventions or vague verbs.

Tool Count5/5

With 8 tools covering search, retrieval, NFIP claims, generic OData, and data staging, the count is well-scoped for the FEMA data domain without excess or insufficiency.

Completeness4/5

The set covers core workflows (disaster search/details, housing/PA assistance, NFIP search, generic query). Minor gap: detailed NFIP claim records require the generic query with timeout risks, but overall coverage is strong.