Skip to main content

PlaceRoot — Ask about anywhere. Get a real answer. Open map data for your AI — free, no account, no API key.

Quick start · Tools · Reference · Benchmarks · Website

CI PyPI npm Python versions License: MIT Listed on mcpservers.org

PlaceRoot grounds AI agents in open map data. It's an MCP server that answers spatial questions — what's nearby, what's in this neighborhood, how do I get there — from Overture Maps open data. No API key, no signup, no vendor platform.

An independent project by vibemapper.

  • 🎯 Answers, not data dumps. Every tool returns compact, ranked results sized for an agent's context window — never a raw GeoJSON dump.
  • 🗺️ Real routing, zero keys. route and isochrone walk an actual street graph built from Overture's transportation segments — not a straight-line guess — anywhere on Earth.
  • 🏙️ Rich, filterable place data. Category, brand, confidence, operating status, contactability — sourced from Overture's open dataset (contributed by Meta, Uber, TomTom, and others).
  • 📐 Boundary-accurate. Search inside a named place's real administrative polygon, not a guessed radius circle.
  • Zero setup. Reads Overture's public data directly — no key, no database, nothing to install beyond the server itself.

Quick start

Run it straight from PyPI or npm — no install step:

uvx placeroot             # stdio MCP server
uvx placeroot --http      # HTTP endpoint at http://127.0.0.1:8321/mcp
Add to Claude Code
claude mcp add placeroot -- uvx placeroot
Add to Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "placeroot": {
      "command": "uvx",
      "args": ["placeroot"]
    }
  }
}
Add to Cursor / other MCP clients

Same config as above wherever your client keeps its MCP server list. Prefer npm? Use "command": "npx", "args": ["placeroot"].

{
  "mcpServers": {
    "placeroot": {
      "command": "npx",
      "args": ["placeroot"]
    }
  }
}

Then ask your agent something spatial:

"What's around downtown Palo Alto?" · "Compare these two neighborhoods for a bike shop." · "Plan my errands: pharmacy, hardware store, post office."

What it can do

42 tools, grouped into four families — every answer fits in a couple of thousand tokens:

Family Tools Answers questions like
🔍 Search & identify find_places, find_near, geocode, reverse_geocode, place_details, search_categories, warmup_city, … What cafés are near this point? Coffee near the Eiffel Tower?
📊 Area analysis summarize_area, compare_areas, neighborhood_verdict, summarize_buildings, land_use_at, … What's in this neighborhood, should I live here, and how does it differ from that one?
🚴 Routing route, from_to, isochrone, optimize_route, places_along_route, distance_matrix, travel_time_matrix How far to walk from A to B? What's reachable in 15 minutes? Best order for 6 stops?
🗺️ Geometry & maps render_map, simplify_geometry Show me this result as an interactive map

It also ships five workflow prompts (site selection, neighborhood comparison, errand planning, should I live here, get to know my city) and three attachable resources — and a PLACEROOT_TOOLS setting to load only the tool profiles you need, cutting schema overhead by up to 95%.

📚 Full tool catalog, prompts, resources & configuration → docs/REFERENCE.md

Note: Open data has honest limits: no live traffic, no opening hours, no ratings or photos — what PlaceRoot deliberately doesn't do. For everything else about where things are and what's reachable from them, it answers without a key.

Why PlaceRoot

It's the only keyless MCP server doing real graph routing over global open map data — with every tool declaring proper MCP annotations so clients know which calls are read-only before prompting you. Stable GERS ids let agents hold onto places across turns; local caching makes repeat queries answer in milliseconds and keeps working offline; and the whole thing is self-hostable end to end.

How it stacks up against Mapbox MCP and Google Maps MCP: head-to-head benchmarks · token-efficiency numbers.

Recreation places

Overture's places theme is derived from business listings, which makes it strong on businesses and thin on the places a family goes on a Saturday — playgrounds, neighbourhood parks, dog parks, beaches. Those features aren't missing from Overture, though; they're in a different theme. Overture's base theme is a direct conflation of OpenStreetMap, and PlaceRoot already queries it for land_use_at and infrastructure_at. The places tools read it too, by default.

Nothing is downloaded, built, or hosted — it's one more live scan of the same public Overture release, and it roughly 2.5xes playground coverage (1,552 vs 674 across New York City in release 2026-07-22.0, with 1,013 of them more than 150 m from any places-theme playground). Every places tool answers from both at once, with no other change: same tools, same response shape, same category filters.

The cost is a second dataset scan per places query (cached like everything else), and these rows carry no confidence or operating_status and are often unnamed — an unnamed playground comes back with name: null rather than being dropped. If you'd rather have the latency than the coverage:

export PLACEROOT_RECREATION_LAYER=0

data_version reports the layer whenever it's active. Full details, including why live Overpass queries and raw OSM Parquet were measured and rejected: docs/RECREATION.md.

Development

uv sync           # install dev dependencies
uv run pytest     # offline test suite
uv run ruff check .

See CONTRIBUTING.md for dev setup, design rules, and how to propose a tool. Other docs: CHANGELOG · SECURITY · publishing · website · running a data mirror · the recreation layer

Contact

hello@placeroot.dev

Developed by vibemapper.

Privacy Policy

PlaceRoot runs on your machine — no account, no API key, no sign-up. It has no telemetry and sends nothing to us; the only network traffic is your own queries going straight to Overture Maps' public data on AWS S3 (or a mirror you configure). Full details: placeroot.dev/privacy.html.

License and attribution

The code is MIT. The data it queries is the Overture Maps public release, licensed per theme — places under CDLA-Permissive-2.0; the OSM-derived themes (divisions, transportation, base) under ODbL, which asks for attribution on anything user-facing you build from them:

© Overture Maps Foundation · © OpenStreetMap contributors (ODbL)

Per-theme obligations: docs/DATA-LICENSE.md.

PlaceRoot logo mark

mcp-name: io.github.chuofringer/placeroot

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

placeroot-0.9.8.tar.gz (91.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

placeroot-0.9.8-py3-none-any.whl (44.8 MB view details)

Uploaded Python 3

File details

Details for the file placeroot-0.9.8.tar.gz.

File metadata

  • Download URL: placeroot-0.9.8.tar.gz
  • Upload date:
  • Size: 91.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for placeroot-0.9.8.tar.gz
Algorithm Hash digest
SHA256 3205ecec6bcf80668884f1211a14c6286775ea1c0f4de6bffcc834c5b94e3359
MD5 622033f669d92051272d2ba7e858b82a
BLAKE2b-256 ef3839ededa0f10d95d687fa3fb9b59e9eaa2591de8dd04878b95ffae4d5cc53

See more details on using hashes here.

Provenance

The following attestation bundles were made for placeroot-0.9.8.tar.gz:

Publisher: release.yml on chuofringer/placeroot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file placeroot-0.9.8-py3-none-any.whl.

File metadata

  • Download URL: placeroot-0.9.8-py3-none-any.whl
  • Upload date:
  • Size: 44.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for placeroot-0.9.8-py3-none-any.whl
Algorithm Hash digest
SHA256 2e2da91ba7ca7b1ac8693566a8ffbcc78e42f81cf1713bca9421618818b29126
MD5 b08ff8ea0f27f63ab0cc6230d62a29a4
BLAKE2b-256 a6ca11b0ea2b47aa787efce553d7c01548d5fadf1f86c55b2f7717a34c84dd5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for placeroot-0.9.8-py3-none-any.whl:

Publisher: release.yml on chuofringer/placeroot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.9.9

2 files

This release

0.9.8 This release

2 files

0.9.7

2 files

0.9.6

2 files

0.9.5

2 files

0.9.4

2 files

0.9.3

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page