PlaceRoot
Ground AI agents in open map data.
PlaceRoot is an MCP server that answers spatial questions from Overture Maps — no API key, no signup, no vendor platform.
- Answers, not data dumps. Every tool returns compact, ranked results sized for an agent's context window — never a raw GeoJSON dump.
- Rich, fresh place data. Operating status, confidence scores, and brands, sourced from Overture's open dataset (contributed by Meta, Uber, TomTom, and others).
- Zero setup. Reads Overture's public data directly — nothing to install beyond the server itself, no key, no database.
Quick start
Add to Claude Desktop / Claude Code:
{
"mcpServers": {
"placeroot": {
"command": "uvx",
"args": ["placeroot"]
}
}
}
Or run it directly:
uvx placeroot # stdio MCP server
uvx placeroot --http # HTTP endpoint at http://127.0.0.1:8321/mcp
What it can do
| Tool | Answers |
|---|---|
find_places |
Named places near a point, nearest first, with category, confidence, and operating status |
summarize_area |
What's in an area: total places and top categories |
place_details |
One place in full: addresses, contacts, brand, sources, confidence |
admin_lookup |
The admin hierarchy containing a point: neighborhood up to country |
compare_areas |
2–5 areas side by side: category mix, density, and what differs most |
within_distance |
Is the nearest matching place within N meters of a point? |
geocode |
Free-text place name → ranked candidates with coordinates and admin context |
resolve_place |
Free-text place reference → stable ids an agent can hold onto across turns |
reverse_geocode |
Point → nearest address plus its containing admin areas |
summarize_buildings |
Building stock in an area: count, footprint area, height and use mix |
buildings_at |
Nearest building footprints to a point |
isochrone |
The area reachable within N minutes on foot, bike, or car |
render_map |
Any result → a self-contained interactive HTML map |
simplify_geometry |
Any geometry → simplified to fit a token budget |
More on the way.
Why
Agents are bad at maps. Existing map tools either require vendor API keys or return payloads far too large for a context window. PlaceRoot's rule: every answer fits in a couple of thousand tokens, and anything bigger comes back as a summary.
A few things that set it apart:
- Stable place ids. Every place carries its Overture GERS id, so an agent can hold onto a place across turns and look it up again later instead of re-searching.
- Built-in geocoding. Place-name lookup works out of the box — no third-party geocoding service involved.
- Fast repeat queries. Frequently used data is cached locally, so repeat questions answer in milliseconds and keep working offline.
- Self-hostable end to end. Run it locally, serve it over HTTP, or point it at your own copy of the data — no dependency on anyone else's service.
Development
uv sync # install dev dependencies
uv run pytest # offline test suite
uv run ruff check .
Docs
- ROADMAP.md — where this is going · PLAN.md — product plan and positioning
- docs/PUBLISHING.md — how releases reach PyPI + npm
- docs/WEBSITE.md — the marketing site: serve locally and deploy
- docs/MIRROR.md · docs/METRICS.md · docs/launch/
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file placeroot-0.3.1.tar.gz.
File metadata
- Download URL: placeroot-0.3.1.tar.gz
- Upload date:
- Size: 651.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8603fa393449f95122377bf7b18a8971108df0efed13b68c27f398b9dd8fa3d1
|
|
| MD5 |
ceb1a0978cfc3a37edd4ffbf390060f9
|
|
| BLAKE2b-256 |
66b850e31f10069f41c775bc62f2e7f1e8819e3d0e555f4a46c99c59103de8fc
|
Provenance
The following attestation bundles were made for placeroot-0.3.1.tar.gz:
Publisher:
release.yml on chuofringer/placeroot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
placeroot-0.3.1.tar.gz -
Subject digest:
8603fa393449f95122377bf7b18a8971108df0efed13b68c27f398b9dd8fa3d1 - Sigstore transparency entry: 2364700630
- Sigstore integration time:
-
Permalink:
chuofringer/placeroot@6ac80789ada4807a99723c3c37270dbb3d253103 -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/chuofringer
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6ac80789ada4807a99723c3c37270dbb3d253103 -
Trigger Event:
release
-
Statement type:
File details
Details for the file placeroot-0.3.1-py3-none-any.whl.
File metadata
- Download URL: placeroot-0.3.1-py3-none-any.whl
- Upload date:
- Size: 96.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7ffe4882a63cc9044524dc37d8942ede845a517afe0f9d7b601e20522b5ac5e
|
|
| MD5 |
7663031ed7adb1c0d5109086e6701379
|
|
| BLAKE2b-256 |
92ff65eb447a74a2fe932b4dcbcd34d6a5401055dce2287adf5342c304739917
|
Provenance
The following attestation bundles were made for placeroot-0.3.1-py3-none-any.whl:
Publisher:
release.yml on chuofringer/placeroot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
placeroot-0.3.1-py3-none-any.whl -
Subject digest:
d7ffe4882a63cc9044524dc37d8942ede845a517afe0f9d7b601e20522b5ac5e - Sigstore transparency entry: 2364700690
- Sigstore integration time:
-
Permalink:
chuofringer/placeroot@6ac80789ada4807a99723c3c37270dbb3d253103 -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/chuofringer
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6ac80789ada4807a99723c3c37270dbb3d253103 -
Trigger Event:
release
-
Statement type: