# mcp-atlas [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/LEOyrh/mcp-atlas  
**GitHub Stars:** 1  
**npm Downloads (last month):** 4056  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mcp-atlas

## Description
Query verified US county parcel ArcGIS REST endpoints for owner/APN lookup. No API key needed.

## Tools
Capabilities this server exposes over MCP:

- **list_counties** — Browse what the atlas covers. Answers "is this county covered?" and "what can I search there?" with one line per county: state, name, slug, and whether owner-name search is available or the county publishes parcel numbers only. Deliberately returns NO endpoint URLs or field names; call get_parcel_endpoint for one county's technical record. Filter with a state abbreviation ('IL') or name ('Illinois'), or omit state for all ~395 counties.
- **find_county** — Use when you do NOT already know the exact state and county. Fuzzy-matches one free-text reference ('Kane', 'Cook County IL', a misspelling, or a 5-digit FIPS code) against every covered county and names each county it matched, so an ambiguous reference comes back as a list to choose from rather than a silent guess. Each match carries that county's technical record, the same record get_parcel_endpoint returns for one county. Call get_parcel_endpoint directly whenever you already hold an exact state and county; come here only to turn a vague, misspelled or coded reference into definite ones.
- **get_parcel_endpoint** — The default lookup once the county is known. Takes an exact state and county and returns that county's ArcGIS REST service URL, layer index, searchable field names, verified owner/taxpayer field (or why no owner query is offered), the county's Scope predicate when the layer is shared statewide or regionally (AND it into any query of your own), a generic sample ?where=…&f=json query, and the UrbanKit deep-link. If the county name is uncertain, misspelled, or you hold only a FIPS code, call find_county first. To search for a named person or company, call build_owner_query rather than editing the sample query by hand.
- **build_owner_query** — The only tool that searches for a named owner. Fills a person or company name into that county's verified owner/taxpayer field as UPPER(field) LIKE UPPER('%NAME%'), a case-insensitive partial match, and returns a URL you can fetch or open in a browser. On a shared statewide or regional layer the county's scope predicate is ANDed in front, as (scope) AND UPPER(field) LIKE …, so only that county's rows come back. get_parcel_endpoint returns the endpoint and a generic sample query, not a name search, so come here for the name. This server does not execute the query and returns no parcel records: fetch the returned URL yourself. An endpoint is refused, with the reason, when a reviewed record says the county publishes no owner name, when the layer serves no attribute search (query it by location instead), or when its owner column is not searchable by name (use a parcel-id or location query instead).
- **get_city_datasets** — Find the public code-violation, building-permit and zoning-case datasets UrbanKit has verified for a U.S. city, and how to query them by street. Give a city slug or name (state optional), optionally a kind ('violations', 'permits' or 'zoning') and a street; omit city to list every covered city. Returns each dataset's endpoint (Socrata, ArcGIS, CKAN or CARTO), the address column it searches, its date field and filter, coverage notes, and a ready query URL you run yourself against the city's server. This server does not execute the query and returns no city records: fetch the returned URL yourself. Returns no owner data: for a parcel's owner use get_parcel_endpoint or build_owner_query.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

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

## Documentation

## What mcp-atlas does

mcp-atlas exposes UrbanKit Studio's atlas of verified public GIS sources through MCP. Its primary use is county parcel research: an agent can determine whether a county is covered, inspect its ArcGIS REST service, identify searchable fields, and create a query for an owner or taxpayer name. The atlas covers counties across the 50 US states and the District of Columbia, with records that distinguish owner-name searches from APN-only or location-based access.

A separate city-focused tool finds verified datasets for code violations, building permits, and zoning cases. It can identify the relevant public endpoint, address field, date field, coverage notes, and a query URL for a street.

## How it works

The county workflow depends on how precisely the county is known:

- `list_counties` filters the atlas by state abbreviation or full state name and reports county slugs plus the available search type.
- `find_county` accepts a vague, misspelled, state-qualified, or five-digit FIPS reference and returns every matching county with its technical record.
- `get_parcel_endpoint` accepts an exact state and county and returns the ArcGIS service URL, layer index, searchable fields, owner field details, scope predicates, a generic query example, and an UrbanKit link.
- `build_owner_query` inserts a person or company name into the reviewed owner or taxpayer field and returns a URL using a case-insensitive partial match.

For shared statewide or regional layers, the generated owner query includes the county-specific scope condition. The resulting URL can be fetched in a browser or by application code. The server itself only constructs and describes the query; it does not execute it or return parcel rows.

`get_city_datasets` follows a different path. It accepts a city and optional dataset kind or street, then returns ready-to-run queries for supported violations, permits, or zoning datasets hosted by Socrata, ArcGIS, CKAN, or CARTO.

## Setup and configuration

Run the package through `npx` in an MCP client's stdio configuration:

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

Claude Desktop uses its platform-specific configuration file, while Cursor can use `.cursor/mcp.json` in a project or the global Cursor configuration. The package may also be installed globally with npm; after that, `mcp-atlas` can be used as the command. No API key is required, and no environment variables are needed for the documented setup.

## Tools and capabilities

- Browse county coverage and owner-search availability.
- Resolve ambiguous county names, misspellings, and FIPS codes.
- Retrieve verified ArcGIS REST URLs, layer indexes, fields, scopes, and sample queries.
- Build owner or taxpayer name searches with county-specific restrictions.
- Discover city street-query datasets for violations, permits, and zoning cases.
- Produce URLs for the caller to fetch from the relevant public data service.

## Limitations and notes

Coverage varies by county. Some records offer only parcel numbers, some support location queries rather than attribute searches, and some owner fields cannot be searched by name. A county may also be recorded as unavailable because it publishes no usable endpoint or restricts public display.

`build_owner_query` refuses unsupported owner searches and explains the reason. It can exclude rows marked as confidential where the reviewed layer provides the relevant flag. The generated owner search is a partial `LIKE` match and follows the atlas's uppercase matching behavior.

The tools return metadata and query URLs, not parcel or city records. Callers must make the follow-up request themselves and should preserve any returned scope or filtering clauses when constructing their own queries.

_Full upstream README: https://allmcps.com/mcp/mcp-atlas/readme_

