关于 Bbox Mcp Server
Bbox Mcp Server 提供地理空间工具,用于查询 OpenStreetMap 数据、转换边界框和分析空间分布。它面向 AI Agent 和 GIS 用户,返回结构化结果及可用于地图核验的链接。
主要功能
- 01跨格式和投影转换边界框
- 02为边界框生成 H3 网格
- 03通过 Overpass 搜索 OpenStreetMap
- 04查询整理过的 OpenStreetMap 标签
- 05将查询结果聚合到 H3 网格
- 06创建可分享的地图链接
适用场景
- 01在 OpenStreetMap 中查找附近兴趣点
- 02将 WKT 或 GeoJSON 边界框转换为其他投影
- 03比较某区域的空间密度
- 04在交互式地图上核验查询结果
MCP 相关
它向 MCP 客户端提供六种地理空间工具,包括边界框转换、Overpass 查询、H3 聚合和地图链接生成。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y bbox-mcp-serverMAPBOX_ACCESS_TOKEN密钥Mapbox token for natural-language location search (e.g. 'San Francisco')OVERPASS_API_URLCustom Overpass API endpoint URL (defaults rotate between public instances)MAX_H3_CELLSSafety cap for H3 grid generation (default: 50000)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
7收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| location | string | 否 | 要搜索的文本位置(例如 'New York City')。需要 MAPBOX_ACCESS_TOKEN 环境变量。必须提供 'location' 或 'bbox'。 |
| bbox | string | 否 | 要解析的几何图形。可以是原始边界框字符串('lat1,lng1,lat2,lng2')、WKT 多边形/线串/点、GeoJSON 负载或 `ogrinfo` 范围块。将提取包围该几何图形的最小外接矩形(MBR)。必须提供 'location' 或 'bbox'。 |
| epsg | string | 否 | 投影 EPSG 代码(例如 '3857')。默认为 '4326'(WGS84)。内置了 3,900 多种投影;未知代码会自动从 epsg.io 获取。 |
| format | enum | 否 | 输出格式。选项:wkt、geojson-bbox、leaflet、overpass、ogc-bbox、kml、geojson-polygon、csv、stac-bbox。默认值:csv。wkt | geojson-bbox | leaflet | overpass | ogc-bbox | kml | geojson-polygon | csv | stac-bbox |
| coord_order | enum | 否 | 切换格式化输出中的坐标顺序:'lng,lat'(默认)或 'lat,lng'。适用于要求交换坐标顺序的 API。lng,lat | lat,lng |
| zoom | number | 否 | 用于计算质心地图瓦片坐标的地图缩放级别(0–22)。默认值为 15。 |
| precision | number | 否 | 坐标字符串输出的小数位数(默认值为 6)。 |
详细介绍
🌍 bbox-mcp-server
随时随地向 AI 提问,并在地图上验证答案。免费使用
面向 AI Agent 的地理空间工具包。6 个工具,零配置——让任何大模型都能使用开放数据查找、查询、转换和汇总空间数据。无需 API 密钥或注册即可开始使用。
每条响应都包含一个可分享的验证链接,指向 vibhorsingh.com/boundingbox——点击即可在交互式地图上直观确认结果。没有其他 MCP 服务能做到这一点。
你可以用它做什么?
**你不必是 GIS 专业人士也能使用它。**任何连接了此 MCP 服务的 AI Agent,都能使用真实的 OpenStreetMap 数据回答空间问题,而不是吐出一堆幻觉内容。
| 向你的 AI Agent 提问…… | 背后的处理流程 |
|---|---|
| “丹佛市中心有多少个电动汽车充电桩?” | Overpass 查询 → H3 六边形分箱 → 密度分析 |
| “这家 Airbnb 附近有医院吗?” | 使用结构化标签搜索 POI → 地图验证链接 |
| “查找这个地址 1 km 范围内的所有游乐场” | Overpass 查询 + 半径筛选 → 在可分享的地图上标记结果 |
| “将此 WKT 转换为 EPSG:3857 中的 GeoJSON” | 在 6 种输入格式、9 种输出格式和 3,900 多种投影之间转换 |
| “显示阿姆斯特丹的所有共享单车站点” | 精选的 OSM 标签 → Overpass 查询 → 在地图上显示结果 |
| “比较西雅图各社区的公园密度” | Overpass + H3 汇总 → 六边形分箱空间分析 |
每个答案都附带一个链接。点击即可查看 AI 是否答对,你还可以把链接分享给其他人。
有何不同之处
大多数 AI 工具只提供需要你相信的文本。而这个工具提供交互式地图,让你检查并验证结果!
- 可验证——每条响应都包含一个公开 URL,你(或任何人)都可以通过它直观确认结果。这是唯一一个能在任何领域做到这一点的 MCP 服务。
- 确定性——查询直接访问真实的 OpenStreetMap 数据,并返回真实坐标。AI 负责解读你的问题,数据则来自所有了不起的 OSM 志愿者付出的努力。
- 免费——没有付费服务。Overpass API 免费,OSM 数据免费,工具也免费。Mapbox 令牌(免费套餐,无需提供付款信息)可启用自然语言地点搜索,但并非必需。
- 零配置——运行
npx -y bbox-mcp-server即可开始使用。
为什么开发它
| 问题 | bbox-mcp 的解决方式 |
|---|---|
| “我有 WKT,但 API 需要 EPSG:3857 中的 GeoJSON bbox。” | 解析 6 种输入格式,投影到 3,900 多种 EPSG 代码,并以 9 种格式输出——一次调用即可完成。 |
| “我总是为 Overpass 查询选错 OSM 标签。” | list_osm_tags 会返回精选的标签组合。再也不会凭空编造 amenity=grocery 了。 |
| “这个区有多少家医院?” | aggregate_overpass_h3 会查询 Overpass,并在服务端将结果分入 H3 六边形。 |
| “这个边界框真的正确吗?” | 每条响应都包含一个可点击的地图链接,方便直观验证。 |
工具一览
| 工具 | 功能 | 关键参数 |
|---|---|---|
get_bounds | 在不同格式和坐标系之间转换并投影 bbox | bbox、epsg、format、coord_order、zoom |
get_h3_indices | 生成覆盖 bbox 的 H3 六边形网格单元索引 | bbox、resolution、compact |
generate_share_url | 为 bbox 创建可分享的地图链接 | bbox |
search_overpass | 通过 Overpass QL 在 bbox 或半径范围内查询 OpenStreetMap | bbox、query、limit、radius_meters |
list_osm_tags | 查询某个类别对应的正确 OSM 标签 | category |
aggregate_overpass_h3 | 运行 Overpass 查询,并将结果归入 H3 六边形网格 | bbox、query、resolution |
所有工具都接受 location(自然语言,需要 Mapbox 令牌)或 bbox(坐标、WKT、GeoJSON 等)。
快速开始
将以下内容添加到 MCP 客户端配置中:
Claude Desktop (点击展开)
添加到 claude_desktop_config.json:
{
"mcpServers": {
"bbox": {
"command": "npx",
"args": ["-y", "bbox-mcp-server"]
}
}
}
Cursor (点击展开)
添加到 .cursor/mcp.json:
{
"mcpServers": {
"bbox": {
"command": "npx",
"args": ["-y", "bbox-mcp-server"]
}
}
}
Windsurf (点击展开)
添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"bbox": {
"command": "npx",
"args": ["-y", "bbox-mcp-server"]
}
}
}
VS Code (GitHub Copilot) 或 Google Antigravity (点击展开)
添加到工作区中的 .vscode/mcp.json:
{
"servers": {
"bbox": {
"command": "npx",
"args": ["-y", "bbox-mcp-server"]
}
}
}
试试:“查找时代广场周围 500 米内的所有咖啡店”
可选配置
{
"mcpServers": {
"bbox": {
"command": "npx",
"args": ["-y", "bbox-mcp-server"],
"env": {
"MAPBOX_ACCESS_TOKEN": "pk.your-token-here",
"OVERPASS_API_URL": "https://your.custom.overpass.instance/api/interpreter",
"NOMINATIM_API_URL": "https://your.custom.nominatim.instance"
}
}
}
}
| 变量 | 默认值 | 说明 |
|---|---|---|
MAPBOX_ACCESS_TOKEN | — | 启用自然语言位置搜索(例如 “San Francisco”) |
OVERPASS_API_URL | auto | 自定义 Overpass 端点。默认会在 overpass-api.de 和 kumi.systems 之间轮换。 |
NOMINATIM_API_URL | https://nominatim.openstreetmap.org | 自定义 Nominatim 端点。如果将其托管为共享/远程 MCP 服务或使用商业服务提供商,请设置此项。 |
MAX_H3_CELLS | 50000 | H3 网格生成的安全上限 |
或全局安装:npm install -g bbox-mcp-server
工具参考
get_bounds
在 6 种输入格式、9 种输出格式和 3,900 多种坐标系之间转换并投影边界框。返回中心点以及质心的瓦片坐标。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
bbox | string | — | 输入几何数据(坐标、WKT、GeoJSON、ogrinfo 范围) |
epsg | string | "4326" | 目标投影。未知代码会自动从 epsg.io 获取。 |
format | string | "csv" | 输出格式:csv、wkt、geojson-bbox、geojson-polygon、leaflet、overpass、ogc-bbox、kml、stac-bbox |
coord_order | string | "lng,lat" | 对于要求纬度在前的 API,交换为 "lat,lng" |
zoom | number | 15 | 用于计算瓦片坐标的缩放级别 |
precision | number | 6 | 格式化输出中的小数位数 |
💡 提示词: “获取中央公园的边界框,以 WKT 格式输出,并投影到 EPSG:32618”
get_h3_indices
生成覆盖边界框的 Uber H3 六边形网格单元索引。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
bbox | string | — | 输入几何数据 |
resolution | number | — | H3 分辨率(0–15) |
compact | boolean | false | 尽可能将网格单元合并为较粗级别的父单元 |
return_geometry | boolean | false | 包含 GeoJSON 六边形边界 |
💡 提示词: “为芝加哥市中心生成分辨率为 7 的 H3 网格单元,并包含六边形几何数据”
search_overpass
在边界框或半径范围内执行 Overpass 查询。返回包含名称、坐标和标签的结构化结果。验证链接会在地图上为每个结果标出图钉。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
bbox | string | — | 输入几何 |
query | string | — | Overpass QL(例如 nwr["amenity"="cafe"])。服务会自动将其包装在适当的空间筛选条件中。 |
radius_meters | number | — | 搜索半径,单位为米。仅在用户明确指定距离时使用(例如,搜索“2km 范围内”的地点时使用 2000)。区域查询时省略。 |
limit | number | 100 | 返回的最大元素数 |
💡 提示词: “查找 JFK 机场 2km 范围内的所有停车场”
💡 提示词: “搜索曼哈顿的医院,限制为 50 个”
list_osm_tags
编写 Overpass 查询前,先查找某个类别对应的正确 OpenStreetMap 标签。
| 参数 | 类型 | 描述 |
|---|---|---|
category | string | 大类(例如 "food"、"health"、"transport") |
💡 提示词: “超市对应的正确 OSM 标签是什么?”
aggregate_overpass_h3
运行 Overpass 查询,并将结果归入 H3 六边形网格,以进行空间密度分析。返回每个网格单元的计数以及 GeoJSON 六边形边界。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
bbox | string | — | 输入几何 |
query | string | — | Overpass QL 核心查询 |
resolution | number | 8 | 用于分箱的 H3 分辨率 |
💡 提示词: “将西雅图的所有医院按分辨率 7 汇总到 H3 网格中”
generate_share_url
生成可分享的链接,在 vibhorsingh.com/boundingbox 的交互式地图上显示边界框。
| 参数 | 类型 | 描述 |
|---|---|---|
bbox | string | 输入几何 |
💡 提示词: “为 bbox 40.7128,-74.0060,40.7580,-73.9855 生成分享链接”
支持的输入格式
所有工具都会自动检测输入格式。无需指定所用格式。
| 格式 | 示例 |
|---|---|
| 原始坐标 | 40.7128,-74.0060,40.7580,-73.9855 |
| WKT | POLYGON((-74.006 40.712, -73.985 40.712, ...)) |
| GeoJSON | {"type":"Feature","geometry":{...}} |
| GeoJSON bbox | {"bbox":[-74.006,40.712,-73.985,40.758]} |
| ogrinfo 范围 | Extent: (-74.006, 40.712) - (-73.985, 40.758) |
| 空格分隔 | 40.7128 -74.0060 40.7580 -73.9855 |
🤖 面向 AI Agent 开发者
响应结构
每个工具都会返回两个内容块:
- 人类可读文本 — 格式化的输出,包含地图验证链接
- 结构化 JSON — 所有计算得出的数据,可供机器解析
get_bounds JSON 响应示例:
{
"original_wgs84": { "lat1": 40.7128, "lng1": -74.006, "lat2": 40.758, "lng2": -73.9855 },
"projected": { "xmin": -8238310.23, "ymin": 4970241.32, "xmax": -8235527.11, "ymax": 4976491.56 },
"center": { "lat": 40.7354, "lng": -73.99575 },
"tile_indices": { "z": 15, "x": 9660, "y": 12284 },
"epsg": "3857",
"coord_order": "lng,lat",
"area_km2": 8.681,
"dimensions": { "width_km": 1.714, "height_km": 5.066 },
"share_url": "https://vibhorsingh.com/boundingbox/#40.712800,-74.006000,40.758000,-73.985500"
}
错误处理
所有错误都会返回 isError: true 和描述性消息。无效坐标、未知 EPSG 代码以及超出大小限制的 H3 请求都会返回清晰的错误 — 服务不会因错误输入而崩溃。
日志记录
结构化 JSON 日志会写入 stderr(stdout 保留给 MCP 协议)。每条日志都包含时间戳、级别和上下文。
致谢与合理使用
OpenStreetMap
此工具基于 OpenStreetMap 构建:这是一个由数百万志愿者创建并维护的全球数据集。你运行的每条查询都会返回有人亲自实地考察、绘制或核实过的数据。如果你觉得它有用,不妨考虑为 OSM 作出贡献。
负责任地使用
公开的 Overpass 和 Nominatim API 实例是容量有限的免费社区资源。请避免紧密循环、过度轮询或批量抓取。如果将其作为共享/远程 MCP 服务托管,请将 NOMINATIM_API_URL 和 OVERPASS_API_URL 指向你自己的实例或商业服务提供商(参见 Overpass API 安装 和 Nominatim 安装)。Overpass 的默认服务轮换有助于分散负载,但不能替代负责任地使用。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。