Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

US civic & property data: geocoding, census tracts, Opportunity Zones, FEMA flood zones.

README.md

civic-library-mcp

An MCP server that gives AI agents clean, token-efficient access to US civic & property data — geocoding, census tracts, Opportunity Zones, ACS demographics, and FEMA flood zones — sourced entirely from free federal open data.

No scraping, no paid keys for the core tools, no proprietary databases. Just the official sources (U.S. Census Bureau, U.S. Treasury CDFI Fund, FEMA), wrapped in a small set of well-described tools that return compact JSON instead of the bloated payloads most data MCPs dump into your context window.

Built for developers working on proptech, real-estate, fintech, civic tech, GIS, and housing research with AI agents.

---

Tools

| Tool | What it does | API key? | |---|---|---| | geocode_address | US street address → lat/lng + state, county, and 2020 census tract GEOID | None | | lookup_census_tract | lat/lng → the 2020 census tract (with county/state) containing that point | None | | check_opportunity_zone | Is this address / point / tract in a designated Qualified Opportunity Zone? | None | | get_tract_demographics | ACS 5-Year indicators (income, population, home value, poverty rate, …) for a tract | Free Census key | | check_flood_zone | lat/lng → FEMA flood-hazard zone + whether it's a Special Flood Hazard Area | None |

Four of the five tools work with zero configuration. Only get_tract_demographics needs a free Census API key (see below).

---

Install

Claude Desktop / Cursor / any MCP client

Add to your MCP config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "civic-library": {
      "command": "npx",
      "args": ["-y", "civic-library-mcp"],
      "env": {
        "CENSUS_API_KEY": "your-free-census-key-optional"
      }
    }
  }
}

Claude Code

claude mcp add civic-library -- npx -y civic-library-mcp

The CENSUS_API_KEY line is optional — leave it out and four of the five tools still work.

Census API key (only for demographics)

get_tract_demographics calls the U.S. Census ACS Data API, which requires a free key. Get one in ~30 seconds at <https://api.census.gov/data/key_signup.html> and set it as CENSUS_API_KEY in the server's environment.

---

Examples

Check whether a property is in an Opportunity Zone:

// check_opportunity_zone({ "address": "900 Camp St, New Orleans, LA 70130" })
{
  "is_opportunity_zone": true,
  "tract_geoid_2010": "22071013400",
  "designation_type": "Low-Income Community",
  "round": "1.0",
  "authority": "Tax Cuts and Jobs Act of 2017 (26 U.S.C. § 1400Z-1)",
  "resolved_from": "address",
  "source": "U.S. Treasury CDFI Fund (designated 2018-12-14)"
}

Flood risk for a coordinate:

// check_flood_zone({ "latitude": 29.9511, "longitude": -90.0715 })
{
  "flood_zone": "X",
  "zone_subtype": "0.2 PCT ANNUAL CHANCE FLOOD HAZARD",
  "in_special_flood_hazard_area": false,
  "zone_description": "Moderate-to-minimal risk (outside the 1% annual-chance floodplain).",
  "source": "FEMA National Flood Hazard Layer"
}

Tract demographics (needs a key):

// get_tract_demographics({ "tract_geoid": "22071013400",
//   "fields": ["population", "median_household_income", "poverty_rate"] })
{
  "tract_geoid": "22071013400",
  "tract_name": "Census Tract 134, Orleans Parish, Louisiana",
  "acs_dataset": "ACS 5-Year 2023",
  "population": 2276,
  "median_household_income": 41250,
  "poverty_rate": 0.231
}

---

A note on correctness: Opportunity Zones use 2010 census tracts

Opportunity Zone designations are keyed to 2010 census tract boundaries, but the default Census geocoder returns 2020 tracts — and tract GEOIDs changed between the two vintages. A naive lookup that matches a 2020 GEOID against the OZ list will silently return wrong answers near any boundary that moved.

check_opportunity_zone handles this correctly: it re-resolves the address/coordinate to its 2010 tract before matching. (You can see the difference — the same address can yield GEOID …980000 from geocode_address and …006202 from check_opportunity_zone.) If you pass tract_geoid directly, it's treated as a 2010 GEOID.

---

Data sources & licensing

| Data | Source | Notes | |---|---|---| | Geocoding & census tracts | U.S. Census Bureau Geocoder | Public domain | | Opportunity Zones | U.S. Treasury CDFI Fund | Round 1 (2018) designations, 8,764 tracts, bundled | | Demographics | U.S. Census ACS 5-Year | Public domain; free key required | | Flood zones | FEMA National Flood Hazard Layer | Public domain |

All underlying data is U.S. federal open data (public domain). This software is MIT-licensed.

The bundled Opportunity Zone list is regenerated with npm run build:oz.

---

Roadmap

  • OZ 2.0 — designations under the One Big Beautiful Bill Act (2025) once finalized/published.
  • More ACS fields — educational attainment, race/ethnicity, housing tenure, commute.
  • County parcel / CAD lookups — added per-county only where the source's terms of use permit automated access.
  • Census place & ZIP geographies, FEMA base flood elevations.

---

Disclaimer

This tool surfaces public government data for informational purposes. It is not legal, financial, tax, insurance, or investment advice. Opportunity Zone, flood-zone, and demographic determinations should be confirmed against the official source of record before relying on them for any transaction. Data is provided "as is" with no warranty.

Contributing

Issues and PRs welcome — especially additional federal open-data sources and ACS fields. Keep responses compact (token cost is a feature) and every data point attributed to its source.

License

MIT © 2026 Adrian Cisneros

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Maps & Location servers.