Address to Census Tract MCP

io.github.theluckystrikePublished by GitHub account theluckystrikev1.0.0Updated Nov 5, 2026

US address to census tract, block group, county FIPS and districts, from the Census Geocoder.

VerifiedStreamable HTTPWeb executableLocation & LifestyleData & Analytics

Overview

AI-generated overview

Hosted MCP server that turns a US street address or coordinates into exact census tract, block group, block, FIPS and district geographies via the US Census…

What you can do
  • Look up census geographies for a US street address: matched address, coordinates, tract GEOID and number, block group and block, state and county FIPS, place, districts and urban area
  • Look up the same geographies for a latitude and longitude
  • Decode a state, county, tract, block group or block GEOID into its FIPS parts and the tract number as Census displays it, without a network call
  • Choose a geography vintage per lookup: current, census2020, or an ACS release from acs2017 to acs2026
  • Return structured JSON with a summary, as_of date, the exact Census Geocoder request, a data.census.gov tract profile link and alternate matches
When to use it
Useful when an assistant must answer which census tract, block group, FIPS code or legislative district a US address or point falls in, for example for grant, CRA or LIHTC eligibility work or joining census data by GEOID. Models cannot derive tract boundaries from an address, so this fills a real gap.
Requirements
Remote streamable HTTP endpoint; no token, sign-up or API key. Add the server URL as a custom connector or MCP entry in Claude, ChatGPT developer mode, Cursor or VS Code. Network access to the Census Geocoder is required for the two lookup tools; the GEOID explainer works offline. A local npm package is mentioned but not yet published.
Before you install
Addresses and coordinates you submit are sent to the US Census Bureau Geocoder, a third party. Results are US-only and may miss PO boxes, rural routes and very new streets; when several records match, the first is used and the rest are listed separately. Lookups can be slow and time out after about 30 seconds. The tools only read data and do not modify anything.

Installation

In SourceWeft

  1. Open Address to Census Tract MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.theluckystrike%2Faddress-to-census-tract-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "address-to-census-tract": {
      "type": "http",
      "url": "https://address-to-census-tract-mcp.lipmichal.workers.dev/mcp"
    }
  }
}

README

address-to-census-tract-mcp

Address to census tract for AI assistants. Give a US street address or a latitude and longitude and get the exact census tract, block group, block, county FIPS and districts from the US Census Bureau Geocoder.

This is a Model Context Protocol (MCP) server. It calls the Census Geocoder at call time. It needs no API key.

Tools

ToolWhat it returns
get_census_tract_for_addressThe matched address, latitude and longitude, 11-digit tract GEOID and tract number, block group and block GEOIDs, state and county FIPS, incorporated place, county subdivision, congressional district, state senate and house districts, urban area and combined statistical area.
get_census_tract_for_coordinatesThe same geographies for a latitude and longitude.
explain_census_geoidA state, county, tract, block group or block GEOID split into its FIPS parts, with the tract number as Census shows it (012405 is 124.05). Works offline.

Both lookup tools take an optional vintage. The default current uses today's geographies. census2020 uses the 2020 Census geographies, and acs2017 to acs2026 match an American Community Survey release.

Every result has structured JSON, a one-paragraph summary, as_of, source (the exact Census Geocoder request), a data.census.gov profile link for the tract and more (a page on mcpstamp.com).

What it knows that your model does not

  • Which census tract a given address is in. Tract lines follow streets, rivers and rail lines, and the two sides of one street can be in different tracts. A model cannot work that out from an address.
  • The 11, 12 and 15 digit GEOIDs that census data, CRA, LIHTC and grant eligibility lists are keyed on.
  • The congressional and state legislative districts the Census Bureau currently publishes for that point.

Install

Hosted (Claude.ai custom connector, ChatGPT developer mode)

Paste this URL. No token, no sign-up. It works now.

https://address-to-census-tract-mcp.lipmichal.workers.dev/mcp

Claude Code

claude mcp add --transport http census-tract https://address-to-census-tract-mcp.lipmichal.workers.dev/mcp

Claude Desktop

Claude Desktop adds remote servers under Settings, Connectors, Add custom connector. Paste the URL above.

Cursor

Add to ~/.cursor/mcp.json:

json
{  "mcpServers": {    "census-tract": { "url": "https://address-to-census-tract-mcp.lipmichal.workers.dev/mcp" }  }}

VS Code

Add to .vscode/mcp.json:

json
{  "servers": {    "census-tract": { "type": "http", "url": "https://address-to-census-tract-mcp.lipmichal.workers.dev/mcp" }  }}

Local stdio (after npm release)

The npm package is not published yet. After it is, run it locally with Node 20 or newer:

claude mcp add census-tract -- npx -y address-to-census-tract-mcp

Example prompts

  • "What census tract is 1 Dr Carlton B Goodlett Pl, San Francisco, CA 94102 in?"
  • "Give me the 11-digit tract GEOID and block group for this address."
  • "Which census tract and congressional district is 41.8827, -87.6237 in?"
  • "What is the 2020 census tract for 1600 Pennsylvania Ave NW, Washington, DC?"
  • "What does GEOID 060750124053007 mean?"

Data sources

Full list with fetch dates in DATA_SOURCES.md.

Limitations

  • US addresses only.
  • The Census Geocoder matches street addresses from Census address ranges. PO boxes, rural routes and very new streets may not match. Use the coordinates tool for those.
  • When an address matches more than one record, the first match is used and the others are listed in other_matches.
  • The geocoder can be slow. The tool waits up to 30 seconds and then returns a clear error instead of a guess.

More

More MCP servers that answer questions your assistant cannot answer alone are on mcpstamp.com.

Part of the Zovo MCP collection: https://mcp.zovo.one

Built by theluckystrike.

Development

npm installnpm test                              # builds, then runs the fixture tests and an offline stdio testnode scripts/stdio-transcript.mjs     # live stdio round trip, writes .live/stdio-transcript.jsonl

License

MIT

Source: README.md at commit 1e02f83

Tools

3

get_census_tract_for_address

Get census tract for an address

Look up the census tract for a US street address with the official US Census Bureau Geocoder. Returns the matched address, latitude and longitude, the 11-digit tract GEOID and tract number, block group and block GEOIDs, state and county FIPS, incorporated place, county subdivision, congressional district, state senate and house districts, urban area and combined statistical area. Use it for CRA, LIHTC, opportunity zone, grant eligibility and demographic lookups that start from an address.

Parametersaddressrequiredvintage

get_census_tract_for_coordinates

Get census tract for coordinates

Census tract, block group, block, county, place and congressional and state legislative districts for a latitude and longitude, from the US Census Bureau Geocoder.

Parametersvintagelatituderequiredlongituderequired

explain_census_geoid

Explain a census GEOID

Split a census GEOID (2 digits state, 5 county, 11 tract, 12 block group, 15 block, or with a 1400000US style prefix) into state and county FIPS, tract code, the tract number as Census displays it (012405 is 124.05), block group and block. No network call.

Parametersgeoidrequired

Version history

1
  1. v1.0.0LatestNov 5, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts