关于 PlaceRoot
PlaceRoot 是基于 Overture Maps 开放地图数据回答空间问题的 MCP 服务,面向需要地点搜索、区域分析和路线规划的 AI Agent。它以紧凑结果提供基于真实街道图的路线与可达性查询,无需 API 密钥。
主要功能
- 01搜索地点并进行地理编码
- 02分析并比较区域
- 03基于街道图规划路线
- 04按步行等时圈筛选地点
- 05按行政边界搜索
- 06通过配置选择工具配置文件
适用场景
- 01查找某地点附近的咖啡馆
- 02比较两个街区的设施
- 03规划步行路线和多站行程
- 04评估指定时间内可到达的地点
MCP 相关
PlaceRoot 是 MCP 服务,向客户端提供地点搜索、区域分析、路线规划和地图几何工具,并附带工作流提示词与资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
48收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| lat | any | 否 | |
| lon | any | 否 | |
| area | any | 否 | |
| name | any | 否 | |
| brand | any | 否 | |
| limit | integer | 否 | |
| where | any | 否 | |
| cursor | any | 否 | 上一条被截断回答的续传游标;对同一数据版本上的同一查询有效。 |
| detail | enum | 否 | find_places 行的详情级别:'ids'(仅 id + distance_m)、'compact'(id/name/category/lat/lon/distance_m/trust)或 'full'(所有字段,包括 trust_note 文本)。默认值:compact。ids | compact | full |
| within | any | 否 | |
| confirm | boolean | 否 | |
| category | any | 否 | |
| radius_m | number | 否 | |
| has_phone | any | 否 | |
| categories | any | 否 | |
| division_id | any | 否 | |
| has_website | any | 否 | |
| min_confidence | any | 否 | |
| operating_status | enum | 否 | 业务生命周期状态筛选条件(重命名后的或原始 Overture 值,不区分大小写)。默认值:不筛选。closed | closed_permanently | closed_temporarily | in business | open | permanently closed | temporarily closed |
| group_by_category | boolean | 否 |
详细介绍
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/chuofringer/placeroot/main/site/og-image-dark.png">
<img src="https://raw.githubusercontent.com/chuofringer/placeroot/main/site/og-image.png" width="100%" alt="PlaceRoot——询问任何地点,获取真实答案。为你的 AI 提供开放地图数据——免费、无需账户、无需 API 密钥。">
</picture>
PlaceRoot 让 AI Agent 能够基于开放地图数据回答问题。 它是一个 MCP 服务,可利用 Overture Maps 开放数据回答空间问题——附近有什么、这个街区有什么、怎么去那里。无需 API 密钥、无需注册,也不依赖供应商平台。
由 vibemapper 独立开发。
- 🎯 提供答案,而非倾倒数据。 每个工具都会返回简洁、经过排序的结果,适合放入 Agent 的上下文窗口——绝不会倾倒原始 GeoJSON 数据。
- 🗺️ 真实路线规划,无需密钥。
route和isochrone基于 Overture 交通路段构建的真实街道网络进行路线规划——不是直线估算——覆盖全球。 - 🚶 按可达性筛选搜索结果。
find_places(..., within={"minutes": 15, "mode": "walk"})只保留真正位于街道网络步行、骑行或驾车可达范围内的结果——而非用半径估算,也无需再调用一次自行计算与多边形的交集。 - 🏙️ 丰富且可筛选的地点数据。 包括类别、品牌、置信度、营业状态、联系方式——数据来自 Overture 开放数据集(由 Meta、Uber、TomTom 等贡献)。
- 📐 精确匹配行政边界。 在指定地点真实的行政区多边形内搜索,而非使用估算的半径圆。
- ⚡ 零配置。 直接读取 Overture 的公开数据——无需密钥、数据库,除服务本身外无需安装任何东西。
快速开始
直接从 PyPI 或 npm 运行——无需安装:
uvx placeroot # stdio MCP server
uvx placeroot --http # HTTP endpoint at http://127.0.0.1:8321/mcp
添加到 Claude Code
claude mcp add placeroot -- uvx placeroot
添加到 Claude Desktop
添加到你的 claude_desktop_config.json:
{
"mcpServers": {
"placeroot": {
"command": "uvx",
"args": ["placeroot"]
}
}
}
添加到 Cursor / 其他 MCP 客户端
在客户端存放 MCP 服务列表的位置,使用与上文相同的配置。更喜欢 npm?使用 "command": "npx", "args": ["placeroot"]。
{
"mcpServers": {
"placeroot": {
"command": "npx",
"args": ["placeroot"]
}
}
}
然后向你的 Agent 提出一个空间相关的问题:
“帕洛阿尔托市中心附近有什么?”·“比较这两个街区,看看哪处更适合开自行车店。”·“规划我的办事路线:药店、五金店、邮局。”
功能
48 个工具,分为四大类——每个回答都只需几千个 token:
| 类别 | 工具 | 可回答的问题示例 |
|---|---|---|
| 🔍 搜索与识别 | find_places、find_near、geocode、reverse_geocode、place_details、search_categories、warmup_city、… | 这个点附近有哪些咖啡馆?埃菲尔铁塔附近有咖啡吗? |
| 📊 区域分析 | summarize_area、compare_areas、neighborhood_verdict、summarize_buildings、land_use_at、transit_stops_near、… | 这个街区有什么?我该住在这里吗?它和另一个街区有什么不同? |
| 🚴 路线规划 | route、from_to、isochrone、optimize_route、places_along_route、distance_matrix、travel_time_matrix、map_match | 从 A 走到 B 有多远?15 分钟内能到哪里?6 个停靠点的最佳顺序是什么?这段 GPS 轨迹实际经过了哪些街道? |
| 🗺️ 几何与地图 | render_map、simplify_geometry | 把这个结果显示为交互式地图 |
它还提供七个工作流提示词(选址、街区比较、办事规划、是否该住在这里、了解我的城市、核实房源信息、规划区域游览)和三个可附加的资源,以及 PLACEROOT_TOOLS 设置,让你只加载所需的工具配置,最多可减少 95% 的模式开销。
📚 完整工具目录、提示词、资源与配置 → docs/REFERENCE.md
说明
开放数据也有其局限:没有实时路况、营业时间、评分或照片——PlaceRoot 刻意不提供的功能。除此之外,无论你想了解地点位置还是从这些地点出发能到哪里,它都能免密钥作答。
为什么选择 PlaceRoot
这是唯一一个无需密钥、可基于全球开放地图数据进行实际图结构路线规划的 MCP 服务——每个工具都声明了恰当的 MCP 注解,让客户端在提示你之前就能知道哪些调用是只读的。稳定的 GERS ID 让 Agent 能在多轮对话中持续引用地点;本地缓存让重复查询在几毫秒内得到回答,并支持离线使用;整个系统还可以端到端自托管。
与 Mapbox MCP 和 Google Maps MCP 的对比:正面对比基准测试 · token 效率数据。
休闲场所
Overture 的 places 主题源自商业地点信息,因此商业场所覆盖较好,但家庭周六会去的场所却覆盖较少,例如游乐场、社区公园、狗公园和海滩。不过,这些要素并未从 Overture 中缺失,而是位于另一个主题中。Overture 的 base 主题直接融合了 OpenStreetMap,而 PlaceRoot 已经会查询其中的 land_use_at 和 infrastructure_at。这些场所工具默认也会读取该主题。
无需下载、构建或托管任何内容——这只是在同一个公开的 Overture 版本中进行一次额外的实时扫描,游乐场覆盖量约增加 2.5 倍(在纽约市范围内,基于 2026-07-22.0 版本统计一次,共 1,552 个,而 places 主题有 674 个;各版本的数量会有所变化;其中 1,013 个距离任何 places 主题中的游乐场都超过 150 m)。每个场所工具都会同时查询这两个主题,其他方面则没有变化:工具相同、响应结构相同、类别筛选条件相同。
代价是每次场所查询都要扫描第二个数据集(与其他内容一样会缓存),而且这些数据行没有 confidence 或 operating_status,并且经常没有名称——未命名的游乐场会返回 name: null,而不会被丢弃。如果你更看重延迟而非覆盖范围:
export PLACEROOT_RECREATION_LAYER=0
启用该图层时,data_version 会报告图层信息。详情请见 docs/RECREATION.md,其中也说明了为何评估后未采用实时 Overpass 查询和原始 OSM Parquet:
开发
uv sync # install dev dependencies
uv run pytest # offline test suite
uv run ruff check .
请参阅 CONTRIBUTING.md,了解开发环境设置、设计规则以及如何提议新工具。其他文档:更新日志 · 安全 · 发布 · 网站 · 运行数据镜像 · 休闲图层
联系方式
由 vibemapper 开发。
隐私政策
PlaceRoot 在你的机器上运行——无需账号、API 密钥或注册。它不收集遥测数据,也不会向我们发送任何内容;唯一的网络流量是你的查询直接发送到 AWS S3 上 Overture Maps 的公开数据(或你配置的镜像)。详情请见:placeroot.dev/privacy.html。
许可证与署名
代码采用 MIT 许可证。其查询的数据为 Overture Maps 公开版本,按主题分别授权——places 主题采用 CDLA-Permissive-2.0;源自 OSM 的主题(divisions、transportation、base)采用 ODbL,该许可证要求你在基于这些数据构建并面向用户展示的内容中注明来源:
© Overture Maps Foundation · © OpenStreetMap contributors(ODbL)
各主题的义务:docs/DATA-LICENSE.md。
mcp-name: io.github.chuofringer/placeroot
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。