{"server":{"name":"com.thestackunderflow/datum-property","title":"US Flood Zone & Property Risk (FEMA, NOAA, USGS, Census)","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://mcp.thestackunderflow.com/mcp/property","type":"streamable-http"}],"version":"0.2.0","websiteUrl":"https://apify.com/the-stack-underflow/datum-property","description":"FEMA flood zone, hazard history and demographics for any US address, with sources on every answer."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-13T04:07:48.559461Z","publishedAt":"2026-10-13T04:07:48.559461Z","statusChangedAt":"2026-10-13T04:07:48.559461Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://mcp.thestackunderflow.com/mcp/property","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2025-06-18"],"stateless":true},"health":{"reachable":true,"uptime_30d":0.9677419,"latency_ms_p50":228,"consecutive_failures":0,"last_probe_at":"2026-10-19T22:28:40.831Z","last_ok_at":"2026-10-19T22:28:40.831Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"address_profile","title":"Address Profile","description":"One-call US property report for an address or coordinate: FEMA flood zone (SFHA, base flood elevation, FIRM panel), county demographics, and 10-year hazard history (FEMA disaster declarations, NOAA storm events, USGS earthquakes), with a plain-English summary and a source for every part.\n\nEverything the property pack knows about one US address, in one call:\n- **location**: the point used, and the state, county and census tract. - **flood**: the FEMA flood zone at the point, exactly as `flood_zone`\n  returns it.\n- **demographics**: county population and median household income (ACS\n  5-year estimates).\n- **hazards**: counts of FEMA declarations (and major disasters) and their\n  types, NOAA storm events, deaths and reported damage, and USGS earthquakes within 100 km\n  (since 1950), over the last ten years.\n\nEvery section has a `status`. The flood zone is required: if FEMA's map cannot be read, no report is produced and the call is not charged. Any other section that fails is marked unavailable and the report still returns. Informational screening only; see the disclaimer in the answer.\n\nWhen to use: Use when the user wants an overview of a US property or address (flood risk, neighbourhood, disaster history) rather than one specific fact. One call replaces flood_zone, hazard_history and area_demographics; quote the `summary` and keep the `disclaimer`.\n\nBilled as property.address_profile at 8c.\n\nEvery response includes a sources[] array naming the data origin and licence.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T22:28:40.831Z"},{"name":"admin_areas","title":"Admin Areas","description":"State and county for a coordinate, with Census GEOIDs. Free - answered from boundaries the platform ingests and holds, with no provider call.\n\nPoint-in-polygon against Census TIGER/Line boundaries (§22.2). Returns the administrative areas containing the point, most specific first, each with the GEOID that every other census dataset is keyed by. Tract, ZCTA and place follow when those layers are ingested.\nA coordinate exactly on a county line is genuinely in both counties and both are returned - the alternative is an address falling into a gap. Take the first if you need one answer.\n\nWhen to use: Use to turn a coordinate into a county or state GEOID before asking for any census-keyed data. Free, so there is no reason to guess a FIPS code.\n\nThis tool is free and does not consume plan credits.\n\nEvery response includes a sources[] array naming the data origin and licence.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T22:28:40.831Z"},{"name":"area_demographics","title":"Area Demographics","description":"Population and median household income for the county containing a point, from American Community Survey 5-year estimates.\n\nComposes two ingested datasets (§22.2): TIGER/Line resolves the coordinate to a county GEOID, then the ACS layer is read by that key. Pass `geoid` directly to skip the boundary lookup.\nValues are survey ESTIMATES with margins of error, not counts, and a suppressed estimate is returned as null rather than filled in. The release that produced them is in `dataset_version` and in each metric's `period`.\n\nWhen to use: Use for \"how many people live in this area\" or \"what is the median income there\". Give a coordinate, or a county GEOID from admin_areas.\n\nBilled as property.area_demographics at 1c.\n\nEvery response includes a sources[] array naming the data origin and licence.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T22:28:40.831Z"},{"name":"census_geocode","title":"Census Geocode","description":"Free. Turns a US street address into a latitude/longitude plus the state, county and census tract it is in (with GEOIDs), using the U.S. Census Bureau geocoder. Use it first, then pass the point to the paid property tools.\n\nOne-line address to point, with the Census Bureau's own match: the matched address, ZIP code, coordinates and the state, county and tract containing them. An address the geocoder cannot place is reported as not found, never guessed. US addresses only; PO boxes and rural routes often do not match.\n\nWhen to use: Use when you have a US street address and need its coordinates, county or census tract. Free. flood_zone, hazard_history and address_profile also accept the address directly, so call this only when the user wants the location itself.\n\nThis tool is free and does not consume plan credits.\n\nEvery response includes a sources[] array naming the data origin and licence.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T22:28:40.831Z"},{"name":"flood_zone","title":"Flood Zone","description":"FEMA flood zone for a US address or coordinate: zone (A, AE, VE, X ...), whether it is in the Special Flood Hazard Area (where lenders generally require flood insurance), base flood elevation with its datum, FIRM panel and effective date, NFIP community, and any Letter of Map Revision. Live from FEMA's National Flood Hazard Layer, with a plain-English summary.\n\nReads FEMA's National Flood Hazard Layer at one point, live, so the answer is FEMA's current effective map: the flood zone and subtype, a risk level (high, coastal high, moderate, minimal, undetermined, unmapped), whether the point is in the Special Flood Hazard Area or a floodway, the base flood elevation in its unit and vertical datum (null, never 0, where no single elevation is published: it then varies along the flooding source and is read from the FIRM profile), the FIRM panel and its effective date, the NFIP community, any Letter of Map Revision in effect, and notes where FEMA's own flags disagree with the zone. Answers are cached for up to 30 days.\nAn address is geocoded with the Census Bureau geocoder first, and the point used is returned; an ambiguous address is refused with its candidates. A point FEMA has not mapped digitally is reported as unmapped, not as low risk, and a point with no FEMA data at all (outside the US) is not found and not charged. On a zone boundary the higher-risk zone is reported and the others listed.\nInformational screening only: not an official flood zone determination (Standard Flood Hazard Determination Form), not an elevation certificate, and not insurance or lending advice. Every answer carries that disclaimer.\n\nWhen to use: Use when asked whether a US property is in a flood zone, needs flood insurance, is in the SFHA or a floodway, or for its FEMA zone, base flood elevation or FIRM panel. Quote the `summary` and keep the `disclaimer` with it. For flood plus everything else about an address in one call, use address_profile.\n\nBilled as property.flood_zone at 2c.\n\nEvery response includes a sources[] array naming the data origin and licence.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T22:28:40.831Z"},{"name":"hazard_history","title":"Hazard History","description":"Natural-hazard history for a US county or address: FEMA declarations (major disasters, emergencies and fire management, by type, with links), NOAA storm events with deaths and reported property damage by type and year, and USGS earthquakes within 100 km since 1950. One call, each source reported apart.\n\nThree federal sources, fetched together:\n- **FEMA declarations** for the county since 1 January of the first year:\n  the total (major disasters, emergencies and fire management), major\n  disasters alone, count by incident type, and the declarations themselves\n  with FEMA ids and links. Statewide declarations are included.\n- **NOAA Storm Events** for the county: events, deaths, injuries and reported\n  property and crop damage (nominal dollars; unreported damage counts as 0,\n  so it is a floor), by type and by year, plus the worst events. Events NOAA\n  records for a forecast zone covering only this county (most heat and\n  winter-storm deaths) count as the county's own; a zone covering several\n  counties is counted, but its casualties and damage are reported apart in\n  `zone_based`, because they are shared. The current year is incomplete;\n  NOAA can trail by months.\n- **USGS earthquakes** of magnitude 2.5 or more within 100 km of the point\n  since 1950: the count and the five largest. This needs a point, so it is\n  skipped when only a county GEOID is given.\n\nEach section has its own `status`; if one source is down the others still answer. If neither FEMA nor NOAA can answer, the call fails and is not charged. Connecticut's planning regions (since 2022) are not yet matched to the old counties FEMA and NOAA still use, so they are not answered; the old county GEOIDs (09001-09015) work. A GEOID that is not a county is not found. A `geoid` is used only when no address or coordinate is given.\n\nWhen to use: Use for \"has this area had floods, hurricanes or earthquakes\", disaster declarations, storm damage history, or natural-hazard due diligence for a US property or county. For the flood zone at a property use flood_zone; for everything about an address in one call use address_profile.\n\nBilled as property.hazard_history at 2c.\n\nEvery response includes a sources[] array naming the data origin and licence.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T22:28:40.831Z"}],"dev.protogrid/trust":{"score":82,"components":{"hygiene":80,"liveness":99,"freshness":100,"provenance":55},"drivers":["+dns-namespace","+website","+reachable","+uptime-97%","+updated-7d-ago","-no-repository"],"flags":["no-repository"],"blocked":false,"computed_at":"2026-10-20T01:39:48.550Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":88,"label":"good","components":{"auth":null,"hygiene":93,"protocol":75,"stability":100,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28","status":"warn","category":"protocol"},{"id":"protocol.stateless","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"3 tools have descriptions over 1,024 characters, which crowds the context","status":"warn","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"6 of 6 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint","status":"pass","category":"hygiene"},{"id":"tools.token_cost","detail":"about 2,720 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"4 tool changes in 30 days","status":"pass","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["~protocol.modern","~tools.description_length"],"flags":[],"tool_count":6,"token_estimate":2720,"tools_hash":"8b412eb619a900db2be9b80ac9a229bf","tools_changed_at":"2026-10-13T09:53:41.183Z","computed_at":"2026-10-20T01:29:05.231Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"com.thestackunderflow/datum-property","aliases":[],"alias_count":0,"repository_key":null,"owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/com.thestackunderflow%2Fdatum-property/tools","arguments":{"name":"com.thestackunderflow/datum-property"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/com.thestackunderflow%2Fdatum-property/connection?target=mcpServers","arguments":{"name":"com.thestackunderflow/datum-property","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}