给 CesiumJS 加 AI 命令的最小代价
cesium-mcp-bridge 是协议无关的命令分发核心,60+ 工具一次实现,可同时通过 纯浏览器 Agent、function calling、MCP 三种方式驱动。
三种入口任选其一:浏览器 Agent(最简单,零后端)· function calling(自托管 Web 应用嵌入)· MCP runtime(接 Claude Desktop / Cursor / Dify)
立即体验 — 在线 Demo,零安装、零注册
demo.mp4
| 模块 | 角色 | 状态 | 链接 |
|---|---|---|---|
| cesium-mcp-bridge | 协议无关的命令分发核心(60+ 工具) | 主线,持续迭代 | |
| examples/browser-agent | 纯浏览器 AI Agent(推荐起点,零后端) | 推荐入口 | 示例 · 在线 demo |
| cesium-mcp-runtime | MCP 服务器(stdio + HTTP) | 稳定,按需更新 | |
| cesium-mcp-dev | 给代码助手用的 CesiumJS API 知识库 | 维护中 |
怎么选? 个人项目或想最快试用 → browser-agent;已有 Web 应用要嵌 AI 助手 → bridge + 自己接 function calling;要从 Claude Desktop / Cursor / Dify 调用 → MCP runtime。
flowchart LR
subgraph clients ["AI 驱动方(任选其一)"]
BA["浏览器 Agent\n(同页调用)"]
FC["你的 Web 应用\nfunction calling"]
MCP["Claude / Cursor / Dify\n通过 MCP runtime"]
end
subgraph core ["cesium-mcp-bridge(浏览器内)"]
B["60+ 工具\n协议无关的命令分发器"]
C["CesiumJS Viewer"]
end
BA -- "页内调用" --> B
FC -- "页内调用" --> B
MCP -- "WebSocket / JSON-RPC" --> B
B --> C
style clients fill:#1e293b,stroke:#528bff,color:#e2e8f0
style core fill:#1e293b,stroke:#12B76A,color:#e2e8f0
bridge 是唯一必需的部分。三种驱动方调用的是同一套 60+ 工具,按场景选一种即可。
打开 在线 demo,粘贴一个 OpenAI 兼容的 API key,问一句:
“飞到埃菲尔铁塔,放个红色标记”
Fork examples/browser-agent 部署你自己的。
npm install cesium-mcp-bridgeimport { CesiumBridge } from 'cesium-mcp-bridge';
const bridge = new CesiumBridge(viewer);
// 然后:把 bridge 的工具 schema 交给任何支持 function/tool calling 的 LLM,
// 把模型返回的 tool call 路由到 bridge.execute(name, params) 即可。完整闭环示例:examples/browser-agent/index.html。
按路径 1 安装 bridge,然后启动 MCP runtime:
# stdio 模式(Claude Desktop、VS Code、Cursor)
npx cesium-mcp-runtime
# HTTP 模式(Dify、远程/云端 MCP 客户端)
npx cesium-mcp-runtime --transport http --port 3000MCP 客户端配置:
{
"mcpServers": {
"cesium": {
"command": "npx",
"args": ["-y", "cesium-mcp-runtime"]
}
}
}工具按 12 个工具集 组织。默认启用 4 个核心工具集(约 31 个工具)。设置 CESIUM_TOOLSETS=all 启用全部,或由 AI 在运行时动态按需发现和激活。
国际化: 工具描述默认英文,设置
CESIUM_LOCALE=zh-CN切换中文。
| 工具集 | 工具 |
|---|---|
| view (默认) | flyTo, setView, getView, zoomToExtent, saveViewpoint, loadViewpoint, listViewpoints, exportScene |
| entity (默认) | addMarker, addLabel, addModel, addPolygon, addPolyline, updateEntity, removeEntity, batchAddEntities, queryEntities, getEntityProperties |
| layer (默认) | addGeoJsonLayer, listLayers, removeLayer, clearAll, setLayerVisibility, updateLayerStyle, getLayerSchema, setBasemap |
| interaction (默认) | screenshot, highlight, measure |
| camera | lookAtTransform, startOrbit, stopOrbit, setCameraOptions |
| entity-ext | addBillboard, addBox, addCorridor, addCylinder, addEllipse, addRectangle, addWall |
| animation | createAnimation, controlAnimation, removeAnimation, listAnimations, updateAnimationPath, trackEntity, controlClock, setGlobeLighting |
| tiles | load3dTiles, loadTerrain, loadImageryService, loadCzml, loadKml |
| trajectory | playTrajectory |
| heatmap | addHeatmap |
| scene | setSceneOptions, setPostProcess |
| geolocation | geocode |
与 CesiumGS 官方 MCP 服务器的关系:
camera、entity-ext和animation工具集原生融合了 CesiumGS/cesium-mcp-server(Camera Server、Entity Server、Animation Server)的能力到本项目的统一 Bridge 架构中。一个 MCP 服务器即可获得全部官方功能加更多工具,无需运行多个进程。
查看 examples/minimal/ 获取完整工作示例。
git clone https://github.com/gaopengbin/cesium-mcp.git
cd cesium-mcp
npm install
npm run build版本格式:{Cesium主版本}.{Cesium次版本}.{MCP补丁号}
| 版本段 | 含义 | 示例 |
|---|---|---|
1.139 |
跟踪 CesiumJS 版本 — 基于 Cesium ~1.139.0 构建与测试 |
1.139.8 → Cesium 1.139 |
.8 |
MCP 补丁号 — 独立迭代,用于新增工具、缺陷修复、文档更新 | 1.139.7 → 1.139.8 |
当 CesiumJS 发布新次版本(如 1.140)时,我们将同步升级:1.140.0。
- mapbox-mcp — AI 控制 Mapbox GL JS
- openlayers-mcp — AI 控制 OpenLayers