Ground AI agents in open map data. MCP server for Overture Maps — compact answers, no API key. This launcher runs the Python server via `uvx placeroot` under the hood, so `npx placeroot` works out of the box.
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.
🎯 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.
🚶 Reachability-filtered search.find_places(..., within={"minutes": 15, "mode": "walk"}) keeps only results truly inside the street-graph walk/cycle/driveshed — not a radius that guesses at it, and not a second call to intersect a polygon yourself.
🏙️ 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.
This npm package is the Node launcher. The server itself is Python, distributed on PyPI; npx placeroot spawns uvx placeroot under the hood and passes through arguments, stdio, and the exit code, so it behaves exactly like running uvx placeroot directly.
Quick start
Run it straight from PyPI or npm — no install step:
npx placeroot # stdio MCP server
npx placeroot --http # HTTP endpoint at http://127.0.0.1:8321/mcp
Same config as above wherever your client keeps its MCP server list. Prefer running the Python server directly? Use "command": "uvx", "args": ["placeroot"]. This package is a thin wrapper around exactly that.
"What's around downtown Palo Alto?" · "Compare these two neighborhoods for a bike shop." · "Plan my errands: pharmacy, hardware store, post office."
Requirements
Node 18+ for the launcher itself.
uv on your PATH — the launcher shells out to uvx. If it isn't installed, the command exits with install instructions rather than a stack trace. pip install uv works too.
If you already use Python tooling, uvx placeroot skips this launcher entirely and is equivalent.
What it can do
42 tools, grouped into four families — every answer fits in a couple of thousand tokens:
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 seven workflow prompts (site selection, neighborhood comparison, errand planning, should I live here, get to know my city, verify listing claims, plan area visit) and three attachable resources — and a PLACEROOT_TOOLS setting to load only the tool profiles you need, cutting schema overhead by up to 95%.
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.
Ground AI agents in open map data. MCP server for Overture Maps — compact answers, no API key. This launcher runs the Python server via `uvx placeroot` under the hood, so `npx placeroot` works out of the box.
The npm package placeroot receives a total of 38 weekly downloads. As such, placeroot popularity was classified as not popular.
We found that placeroot demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.It has 1 open source maintainer collaborating on the project.
The compromise affects MemTensor's MemOS, an open source memory framework for large language models (LLMs) and AI agents. Both npm package @memtensor/memos-cloud-openclaw-plugin and the PyPI package MemoryOS are compromised. They drop cross-platform Go binaries that exfiltrate developer secrets.