URBANKIT/STUDIO
    Sign inFREE TOOLS · NO SIGNUP
    URBANKIT/STUDIO · EST. 2026 · ONLINEFREE · BROWSER-ONLY · NO TELEMETRY · OPEN SOURCE
    Published, @urbankitstudio/mcp-atlas v0.1.4

    Parcel-Data MCP Server

    Give Claude, Cursor, or any MCP client direct access to 155 verified US county parcel endpoints, no API key, no screen-scraping. One command:

    npx -y @urbankitstudio/mcp-atlas

    npm package

    @urbankitstudio/mcp-atlas

    Transport

    stdio. Runs locally, works with every MCP client.

    Coverage

    155 counties across 50 states, each with a verified ArcGIS REST endpoint.

    Available on

    The same atlas, 155 US counties, each with a verified ArcGIS REST parcel endpoint, owner / APN / address lookup, and no API key, published across the major MCP registries and on npm. Pull it from wherever your client looks for servers.

    MCP server
    npx -y @urbankitstudio/mcp-atlas
    TypeScript SDK
    npm i @urbankitstudio/atlas

    Quick start, Claude Desktop

    Open claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/; Windows: %APPDATA%\Claude\) and add or merge in this block, then restart Claude Desktop:

    {
      "mcpServers": {
        "urbankit-atlas": {
          "command": "npx",
          "args": ["-y", "@urbankitstudio/mcp-atlas"]
        }
      }
    }

    Claude Desktop launches the server via npx on startup. In a fresh conversation ask: "What urbankit-atlas tools do you have?", you'll see all four. Try "What's the parcel REST endpoint for Travis County, TX?"

    The same config block works for Cursor and any other client that supports stdio MCP servers.

    The 4 tools

    The AI client discovers these via tools/list and calls them as needed during a conversation.

    list_counties

    List all 155 counties with verified parcel REST endpoints, optionally filtered by state slug.

    find_county

    Fuzzy-match a county by name or 5-digit FIPS code. Returns endpoint URLs and the set of searchable fields.

    get_parcel_endpoint

    Retrieve the complete ArcGIS REST URL, layer index, and a ready-to-run sample query for one specific county.

    build_owner_query

    Construct an ArcGIS REST query URL for owner/taxpayer lookup using the county's verified field name and case-insensitive partial matching.

    Example exchange

    A real conversation with Claude Desktop after connecting the server:

    User:   What's the parcel REST endpoint for Travis County, TX?
    
    Claude: [calls get_parcel_endpoint({ state: "texas", county: "travis-county" })]
    
    Tool:   {
              "url": "https://maps.traviscountytx.gov/arcgis/rest/services/GIS/TaxParcelQuery/MapServer/0",
              "searchFields": [
                { "name": "PROP_ID",      "searchable": true },
                { "name": "LEGAL_NAME",   "searchable": true },
                { "name": "SITUS_ADDR",   "searchable": true }
              ],
              "ownerField": "LEGAL_NAME",
              "sampleQuery": "...where PROP_ID='123456'"
            }
    
    Claude: Travis County uses MapServer layer 0. To look up an owner, query
            the LEGAL_NAME field. Here's a ready URL for partial-match
            owner search. Let me know if you want me to run it.

    The model chose get_parcel_endpoint, got back the verified ArcGIS URL, the owner field name, and a ready query, no manual tab-switching or ArcGIS convention knowledge required.

    Need the atlas inside your own code?

    If you want the atlas data inside your own TypeScript code, not through an AI client, install @urbankitstudio/atlas instead. It bundles all 155 counties offline with zero runtime network calls, TypeScript types, and a buildParcelLookupDeepLink helper.

    Also available: remote HTTP endpoint

    Clients that connect to MCP servers by URL (no local subprocess) can point directly at https://urbankitstudio.com/api/mcp. It runs on Vercel and speaks JSON-RPC 2.0 over HTTP per the MCP 2025-06-18 spec. It exposes six tools including address geocoding and full parcel-by-address resolution.

    Claude Desktop, HTTP config

    {
      "mcpServers": {
        "urbankit-atlas": {
          "url": "https://urbankitstudio.com/api/mcp"
        }
      }
    }

    Try it from the terminal

    The server speaks plain JSON-RPC, so you can verify connectivity with curl:

    curl -X POST https://urbankitstudio.com/api/mcp \
      -H 'content-type: application/json' \
      -d '{"jsonrpc":"2.0","id":1,"method":"initialize"}'

    The response includes serverInfo, protocolVersion, and a short instructions string Claude reads before deciding which tool to call.

    HTTP endpoint tools reference

    The HTTP endpoint exposes 6 tools. Click "Example call" to see the JSON-RPC payload for testing without a client.

    find_parcel_by_address

    HTTP tool

    Resolve a U.S. street address to its county parcel record end-to-end. Returns the geocoded match, the county FIPS, and, if the county is indexed, the REST endpoint, searchable fields, and a deep link.

    Example call
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "find_parcel_by_address",
        "arguments": {
          "address": "100 N Lake St Aurora IL"
        }
      }
    }

    geocode_address

    HTTP tool

    Resolve a U.S. address to lat/lon, state FIPS, and county FIPS via the U.S. Census Geocoder. Use when you only need the geographic resolution.

    Example call
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "geocode_address",
        "arguments": {
          "address": "1600 Pennsylvania Ave NW Washington DC"
        }
      }
    }

    list_indexed_states

    HTTP tool

    List the states the UrbanKit atlas covers, with county counts. Discovery surface.

    Example call
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "list_indexed_states",
        "arguments": {}
      }
    }

    list_counties_in_state

    HTTP tool

    List the indexed counties for a state, with their REST endpoint URLs and searchable field names.

    Example call
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "list_counties_in_state",
        "arguments": {
          "state_slug": "illinois"
        }
      }
    }

    find_county_by_fips

    HTTP tool

    Look up a county in the atlas by 5-digit FIPS code (state + county). Use after geocode_address to chain into atlas tools.

    Example call
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "find_county_by_fips",
        "arguments": {
          "fips": "17089"
        }
      }
    }

    get_county_endpoint

    HTTP tool

    Fetch the canonical record for one specific county, endpoint URL, all searchable fields, sample query, and contact info.

    Example call
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "get_county_endpoint",
        "arguments": {
          "state_slug": "illinois",
          "county_slug": "kane-county"
        }
      }
    }

    What you can ask

    • "What's the parcel REST endpoint for Travis County, TX?", Claude calls get_parcel_endpoint.
    • "Build me an owner query for someone named Smith in Kane County, IL.", Claude calls build_owner_query.
    • "Which counties in Texas are in the atlas?", Claude calls list_counties filtered by state.
    • "Find the county with FIPS 48453.", Claude calls find_county.

    Frequently asked questions

    What is the Model Context Protocol (MCP)?

    MCP is an open standard for connecting AI assistants like Claude Desktop, Cursor, and ChatGPT to external tools and data sources. Anthropic published the spec in late 2024; Claude Desktop, Cursor, and the OpenAI Apps SDK all added MCP support within a year. An MCP server exposes tools (functions the AI can call) over JSON-RPC. When you configure your AI client to talk to a server, the AI discovers the available tools via tools/list and calls them as needed.

    What is the difference between the npm package and the HTTP endpoint?

    npx @urbankitstudio/mcp-atlas is a stdio-based MCP server you run locally. It ships with the full atlas baked in, no network call to our servers needed. The HTTP endpoint at urbankitstudio.com/api/mcp is a remote MCP server your client points at by URL. Both serve the same atlas data. The npm package is the recommended default: it works with every MCP client, runs offline, and always reflects the atlas version you have installed.

    Do I need an API key from UrbanKit?

    No. Both the npm package and the HTTP endpoint are public read-only. There is no usage cap on the server side. Your AI client (Claude Desktop, Cursor, etc.) pays the LLM-token cost on its own subscription.

    How is this different from just searching urbankitstudio.com?

    Two things. First, the AI calls tools directly and stitches the results into its reasoning, no 'open this link, then open this other link' dance. Second, the response is structured JSON, not HTML, so the AI can chain results into follow-up questions like 'now build an owner query for Travis County.' The website is for humans; the MCP server is for agents.

    What clients can connect?

    Any MCP-spec-compliant client. Claude Desktop is the canonical one (config snippet below). Cursor, Continue, and other IDE-integrated AI tools have MCP support. The OpenAI Apps SDK added remote MCP support in 2025. Any client that can launch a local subprocess with stdio transport will work with the npm package.

    Is the source open?

    Yes. The npm package source is at github.com/LEOyrh/mcp-atlas (MIT license). The atlas data files backing the HTTP endpoint are served from the same domain and are the source of truth, no hidden database. You can fork the server, point it at a different atlas, and ship your own.

    Production use

    The MCP server is free and public for evaluation. Teams that need higher Parcel Data API rate limits, bulk county downloads as JSON or CSV, the radius-notice tool with seats for staff, and an uptime SLA have a tier for that. Built for proptech, title and escrow, land-use law, and GIS consultancies.

    UrbanKit for Teams

    Related