Bbox Mcp Server

io.github.iamvibhorsingh由 GitHub 帳號 iamvibhorsingh 發布v1.2.6更新於 Oct 24, 2026

Geospatial toolkit for AI: spatial queries, coord conversion, H3, OSM search, map verification links

已驗證STDIO僅桌面位置與生活資料與分析

概覽

AI 產生的概覽

地理空間工具包,讓助理轉換與投影邊界框、查詢 OpenStreetMap,並把結果彙整到 H3 六邊形網格,附上地圖核對連結。

可以做什麼
  • 在多種輸入格式、輸出格式與 EPSG 座標系統之間轉換和投影邊界框,並給出中心點與圖磚座標
  • 為邊界框產生 H3 六邊形儲存格索引,可選擇合併儲存格或回傳六邊形幾何
  • 在邊界框或半徑範圍內以 Overpass QL 查詢 OpenStreetMap,並查詢某類別對應的正確 OSM 標籤
  • 把 Overpass 結果彙整到 H3 六邊形做密度分析,回傳每個儲存格的計數與 GeoJSON 邊界
  • 為邊界框產生可分享的地圖連結,方便目視核對結果
適用情境
適合需要真實空間答案而非猜測的情境:依據 OpenStreetMap 統計或定位興趣點、在 WKT、GeoJSON 與投影座標系統之間轉換,或對某區域做六邊形分箱的密度分析。
執行需求
透過 npx 或全域 npm 安裝在本機執行(需要 Node.js)。起步不需帳號。選用的 MAPBOX_ACCESS_TOKEN 用於自然語言地點搜尋;OVERPASS_API_URL、NOMINATIM_API_URL 與 MAX_H3_CELLS 用於調整端點與 H3 儲存格上限。需要連線至公開的 Overpass 與 Nominatim 執行個體。
安裝前請注意
查詢會送往公開的 Overpass 與 Nominatim 執行個體,結果會透過服務商網站上的公開核對連結分享,被查詢的位置因此公開可見。選用的 Mapbox 權杖屬於機密,請勿寫入共用設定。Overpass 與 Nominatim 由志工維運且有使用限制,頻繁查詢可能被限流。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Bbox Mcp Server,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

🌍 bbox-mcp-server

Ask AI about anything, anywhere — and verify the answer on a map. For Free

The geospatial toolkit for AI agents. 6 tools, zero config — give any LLM the ability to find, query, convert, and aggregate spatial data using open data. No API keys or signups required to start.

Every response includes a shareable verification link to vibhorsingh.com/boundingbox — click it to visually confirm results on an interactive map. No other MCP server does this.

[Node.js] [License: MIT]


What Can You Do With This?

You don't have to be a GIS professional to make use of this. Any AI agent with this MCP server can answer spatial questions using real OpenStreetMap data and not spit out hallucinated garbage.

Ask your AI agent...What happens under the hood
"How many EV chargers are in downtown Denver?"Overpass query → H3 hex binning → density analysis
"Is there a hospital near this Airbnb?"POI search with structured tags → map verification link
"Find all playgrounds within 1km of this address"*Overpass query + radius filter → pinned results on a shareable map
"Convert this WKT to GeoJSON in EPSG:3857"Format conversion across 6 inputs, 9 outputs, 3,900+ projections
"Show me all bike-share stations in Amsterdam"Curated OSM tags → Overpass query → results on map
"Compare park density across Seattle neighborhoods"Overpass + H3 aggregation → hex-binned spatial analysis

Every answer comes with a link. Click it, see if the AI got it right and you can also share it with someone else.


What Makes This Different

Most AI tools give you text you have to trust. This one gives you an interactive map you can check and verify!

  • Verifiable — Every response includes a public URL where you (or anyone) can visually confirm the results. This is the only MCP server that does this in any domain.
  • Deterministic — Queries hit real OpenStreetMap data and return real coordinates. The AI interprets your question. The data comes from all the hard work done by all the awesome OSM volunteers.
  • Free — No paid services. Overpass API is free, OSM data is free, the tool is free. A Mapbox token (free tier, no payment info) unlocks natural language location search but isn't required.
  • Zero config — npx -y bbox-mcp-server and you're running.

Why This Exists

The problemHow bbox-mcp solves it
"I have WKT but the API needs a GeoJSON bbox in EPSG:3857."Parses 6 input formats, projects to 3,900+ EPSG codes, outputs in 9 formats — in one call.
"I keep getting the wrong OSM tags for Overpass queries."list_osm_tags returns curated tag combos. No more hallucinated amenity=grocery.
"How many hospitals are in this district?"aggregate_overpass_h3 queries Overpass and bins results into H3 hexagons server-side.
"Is this bounding box actually correct?"Every response includes a clickable map link for visual verification.

Tools at a Glance

ToolWhat it doesKey params
get_boundsConvert and project a bbox across formats and coordinate systemsbbox, epsg, format, coord_order, zoom
get_h3_indicesGenerate H3 hex cell indices covering a bboxbbox, resolution, compact
generate_share_urlCreate a shareable map link for a bboxbbox
search_overpassQuery OpenStreetMap via Overpass QL within a bbox or radiusbbox, query, limit, radius_meters
list_osm_tagsLook up correct OSM tags for a categorycategory
aggregate_overpass_h3Run an Overpass query and bin results into H3 hexagonsbbox, query, resolution

All tools accept location (natural language, requires Mapbox token) or bbox (coordinates, WKT, GeoJSON, etc).


Quick Start

Add to your MCP client config:

Claude Desktop (Click to expand)

Add to claude_desktop_config.json:

json
{  "mcpServers": {    "bbox": {      "command": "npx",      "args": ["-y", "bbox-mcp-server"]    }  }}
Cursor (Click to expand)

Add to .cursor/mcp.json:

json
{  "mcpServers": {    "bbox": {      "command": "npx",      "args": ["-y", "bbox-mcp-server"]    }  }}
Windsurf (Click to expand)

Add to ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "bbox": {      "command": "npx",      "args": ["-y", "bbox-mcp-server"]    }  }}
VS Code (GitHub Copilot) or Google Antigravity (Click to expand)

Add to .vscode/mcp.json in your workspace:

json
{  "servers": {    "bbox": {      "command": "npx",      "args": ["-y", "bbox-mcp-server"]    }  }}

Try: "Find all coffee shops within 500m of Times Square"

Optional Configuration

json
{  "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"      }    }  }}
VariableDefaultDescription
MAPBOX_ACCESS_TOKEN—Enables natural language location search (e.g. "San Francisco")
OVERPASS_API_URLautoCustom Overpass endpoint. By default, rotates between overpass-api.de and kumi.systems.
NOMINATIM_API_URLhttps://nominatim.openstreetmap.orgCustom Nominatim endpoint. Set this if hosting as a shared/remote MCP server or using a commercial provider.
MAX_H3_CELLS50000Safety cap for H3 grid generation

Or install globally: npm install -g bbox-mcp-server


Tool Reference

get_bounds

Convert and project a bounding box across 6 input formats, 9 output formats, and 3,900+ coordinate systems. Returns the center point and tile coordinates for the centroid.

ParamTypeDefaultDescription
bboxstring—Input geometry (coordinates, WKT, GeoJSON, ogrinfo extent)
epsgstring"4326"Target projection. Unknown codes auto-fetched from epsg.io.
formatstring"csv"Output: csv, wkt, geojson-bbox, geojson-polygon, leaflet, overpass, ogc-bbox, kml, stac-bbox
coord_orderstring"lng,lat"Swap to "lat,lng" for APIs that expect latitude first
zoomnumber15Zoom level for tile coordinate calculation
precisionnumber6Decimal places in formatted output

💡 Prompt: "Get the bounding box for Central Park in WKT format projected to EPSG:32618"


get_h3_indices

Generate Uber H3 hexagonal cell indices covering a bounding box.

ParamTypeDefaultDescription
bboxstring—Input geometry
resolutionnumber—H3 resolution (0–15)
compactbooleanfalseMerge cells into coarser parents where possible
return_geometrybooleanfalseInclude GeoJSON hex boundaries

💡 Prompt: "Give me H3 cells at resolution 7 for downtown Chicago, include the hex geometries"


search_overpass

Execute an Overpass query within a bounding box or radius. Returns structured results with names, coordinates, and tags. The verification link plots each result as a pin on the map.

ParamTypeDefaultDescription
bboxstring—Input geometry
querystring—Overpass QL (e.g. nwr["amenity"="cafe"]). The server wraps it in the appropriate spatial filter automatically.
radius_metersnumber—Search radius in metres. Use only when the user specifies an explicit distance (e.g. 2000 for "within 2km"). Omit for area/region queries.
limitnumber100Max elements returned

💡 Prompt: "Find all parking within 2km of JFK airport"

💡 Prompt: "Search for hospitals in Manhattan, limit 50"


list_osm_tags

Look up the correct OpenStreetMap tags for a category before writing an Overpass query.

ParamTypeDescription
categorystringBroad category (e.g. "food", "health", "transport")

💡 Prompt: "What are the correct OSM tags for supermarkets?"


aggregate_overpass_h3

Run an Overpass query and bin results into H3 hexagons for spatial density analysis. Returns counts per cell and GeoJSON hex boundaries.

ParamTypeDefaultDescription
bboxstring—Input geometry
querystring—Overpass QL core query
resolutionnumber8H3 resolution for binning

💡 Prompt: "Aggregate all hospitals in Seattle into H3 bins at resolution 7"


generate_share_url

Generate a shareable link to visualize a bounding box on the interactive map at vibhorsingh.com/boundingbox.

ParamTypeDescription
bboxstringInput geometry

💡 Prompt: "Generate a share link for bbox 40.7128,-74.0060,40.7580,-73.9855"


Supported Input Formats

All tools auto-detect the input format. No need to specify which one you're using.

FormatExample
Raw coordinates40.7128,-74.0060,40.7580,-73.9855
WKTPOLYGON((-74.006 40.712, -73.985 40.712, ...))
GeoJSON{"type":"Feature","geometry":{...}}
GeoJSON bbox{"bbox":[-74.006,40.712,-73.985,40.758]}
ogrinfo extentExtent: (-74.006, 40.712) - (-73.985, 40.758)
Space-separated40.7128 -74.0060 40.7580 -73.9855

🤖 For AI Agent Developers

Response structure

Every tool returns two content blocks:

  1. Human-readable text — formatted output with the map verification link
  2. Structured JSON — all computed data, machine-parseable

Example get_bounds JSON response:

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"}

Error handling

All errors return isError: true with a descriptive message. Invalid coordinates, unknown EPSG codes, and oversized H3 requests all return clean errors — the server never crashes on bad input.

Logging

Structured JSON logs go to stderr (stdout is reserved for MCP protocol). Each entry includes timestamp, level, and context.


Acknowledgments & Fair Use

OpenStreetMap

This tool is built on OpenStreetMap: A global dataset created and maintained by millions of volunteers. Every query you run returns data that someone walked, mapped, or verified by hand. If you find this useful, consider contributing to OSM.

Responsible Usage

The public Overpass and Nominatim API instances are free community resources with limited capacity. Avoid tight loops, excessive polling, or bulk-scraping. If hosting this as a shared/remote MCP server, point NOMINATIM_API_URL and OVERPASS_API_URL at your own instance or a commercial provider (see Overpass API installation and Nominatim installation). The default server rotation for Overpass helps spread load, but it's not a substitute for responsible usage.


License

MIT

[MCP Badge]

來源:README.md,提交 dd4d8db

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.2.6最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分