Brings CesiumJS 3D globe control to Claude and other MCP clients through 60+ tools organized into 12 toolsets. Out of the box you get camera movement, entity management (markers, labels, polygons, models), layer loading (GeoJSON, 3D tiles, terrain), and spatial queries. The bridge architecture means you can drive the same toolset from browser-based agents, function calling in your own web app, or stdio/HTTP MCP runtimes. Covers the full span from basic flyTo commands to advanced features like heatmaps, CZML playback, and post-processing effects. Natively incorporates functionality from CesiumGS's official Camera, Entity, and Animation servers into a unified runtime, so you don't need multiple processes running.
Public tool metadata for what this MCP can expose to an agent.
flyTo飞行到指定经纬度位置(带动画过渡)6 params飞行到指定经纬度位置(带动画过渡)
pitchnumberheightnumberheadingnumberdurationnumberlatitudenumberlongitudenumberaddGeoJsonLayer添加 GeoJSON 图层到地图(支持 Point/Line/Polygon,可配置颜色/分级/分类渲染)4 params添加 GeoJSON 图层到地图(支持 Point/Line/Polygon,可配置颜色/分级/分类渲染)
idstringdataobjectnamestringstyleobjectaddLabel为 GeoJSON 要素添加文本标注(显示属性值)3 params为 GeoJSON 要素添加文本标注(显示属性值)
dataobjectfieldstringstyleobjectaddHeatmap添加热力图图层(基于 GeoJSON 点数据生成热力可视化)2 params添加热力图图层(基于 GeoJSON 点数据生成热力可视化)
dataobjectradiusnumberremoveLayer从地图上移除指定图层(按图层ID)1 params从地图上移除指定图层(按图层ID)
idstringsetBasemap切换底图风格(暗色/卫星影像/标准)1 params切换底图风格(暗色/卫星影像/标准)
basemapstringdark · satellite · standardscreenshot截取当前地图视图(返回 base64 PNG)截取当前地图视图(返回 base64 PNG)
No parameter schema in public metadata yet.
highlight高亮指定图层的要素3 params高亮指定图层的要素
colorstringlayerIdstringfeatureIndexnumbersetView瞬间切换到指定经纬度视角(无动画)6 params瞬间切换到指定经纬度视角(无动画)
rollnumberpitchnumberheightnumberheadingnumberlatitudenumberlongitudenumbergetView获取当前相机视角信息(经纬度、高度、角度)获取当前相机视角信息(经纬度、高度、角度)
No parameter schema in public metadata yet.
zoomToExtent缩放到指定地理范围5 params缩放到指定地理范围
eastnumberwestnumbernorthnumbersouthnumberdurationnumberaddMarker在指定经纬度添加标注点,返回 layerId 供后续操作6 params在指定经纬度添加标注点,返回 layerId 供后续操作
idstringsizenumbercolorstringlabelstringlatitudenumberlongitudenumberaddPolyline在地图上添加折线(路径、线段),返回 entityId5 params在地图上添加折线(路径、线段),返回 entityId
colorstringlabelstringwidthnumbercoordinatesarrayclampToGroundbooleanaddPolygon在地图上添加多边形区域(面积、边界),返回 entityId7 params在地图上添加多边形区域(面积、边界),返回 entityId
colorstringlabelstringopacitynumbercoordinatesarrayoutlineColorstringclampToGroundbooleanextrudedHeightnumberaddModel在指定经纬度放置 3D 模型(glTF/GLB),返回 entityId9 params在指定经纬度放置 3D 模型(glTF/GLB),返回 entityId
urlstringrollnumberlabelstringpitchnumberscalenumberheightnumberheadingnumberlatitudenumberlongitudenumberupdateEntity更新已有实体的属性(位置、颜色、标签、缩放、可见性)6 params更新已有实体的属性(位置、颜色、标签、缩放、可见性)
showbooleancolorstringlabelstringscalenumberentityIdstringpositionobjectremoveEntity移除单个实体(通过 entityId)1 params移除单个实体(通过 entityId)
entityIdstringsetLayerVisibility设置图层可见性2 params设置图层可见性
idstringvisiblebooleanlistLayers获取当前所有图层列表(含 ID、名称、类型、可见性)获取当前所有图层列表(含 ID、名称、类型、可见性)
No parameter schema in public metadata yet.
updateLayerStyle修改已有图层的样式(颜色、透明度、标注样式等)3 params修改已有图层的样式(颜色、透明度、标注样式等)
layerIdstringlabelStyleobjectlayerStyleobjectplayTrajectory播放移动轨迹动画6 params播放移动轨迹动画
idstringnamestringlabelstringcoordinatesarraytrailSecondsnumberdurationSecondsnumberload3dTiles加载 3D Tiles 数据集(如建筑白膜、城市模型)5 params加载 3D Tiles 数据集(如建筑白膜、城市模型)
idstringurlstringnamestringheightOffsetnumbermaximumScreenSpaceErrornumberloadTerrain加载或切换地形(平坦/ArcGIS/CesiumIon/自定义 URL)3 params加载或切换地形(平坦/ArcGIS/CesiumIon/自定义 URL)
urlstringproviderstringflat · arcgis · cesiumioncesiumIonAssetIdnumberloadImageryService加载影像服务图层(WMS/WMTS/XYZ/ArcGIS MapServer)6 params加载影像服务图层(WMS/WMTS/XYZ/ArcGIS MapServer)
idstringurlstringnamestringopacitynumberlayerNamestringserviceTypestringwms · wmts · xyz · arcgis_mapserverlookAtTransform环绕式相机注视某位置(ENU变换 + 朝向/俯仰/距离)6 params环绕式相机注视某位置(ENU变换 + 朝向/俯仰/距离)
pitchnumberrangenumberheightnumberheadingnumberlatitudenumberlongitudenumberstartOrbit开始相机环绕当前中心旋转2 params开始相机环绕当前中心旋转
speednumberdirectionstringclockwise · counterclockwisedefault: clockwisestopOrbit停止环绕动画停止环绕动画
No parameter schema in public metadata yet.
setCameraOptions配置相机控制器(启用/禁用旋转、缩放、倾斜等)5 params配置相机控制器(启用/禁用旋转、缩放、倾斜等)
enableLookbooleanenableTiltbooleanenableZoombooleanenableRotatebooleanenableTranslatebooleanaddBillboard在指定位置添加图片图标6 params在指定位置添加图片图标
idstringnamestringcolorstringimagestringscalenumberpositionobjectaddBox添加带尺寸和材质的3D盒体8 params添加带尺寸和材质的3D盒体
idstringnamestringoutlinebooleanmaterialvaluepositionobjectdimensionsobjectorientationobjectoutlineColorstringaddCorridor添加走廊(带宽度的路径)6 params添加走廊(带宽度的路径)
idstringnamestringwidthnumbermaterialvaluepositionsarrayextrudedHeightnumberaddCylinder添加圆柱体或圆锥体9 params添加圆柱体或圆锥体
idstringnamestringlengthnumberoutlinebooleanmaterialvaluepositionobjecttopRadiusnumberbottomRadiusnumberoutlineColorstringaddEllipse添加椭圆9 params添加椭圆
idstringnamestringoutlinebooleanmaterialvaluepositionobjectoutlineColorstringsemiMajorAxisnumbersemiMinorAxisnumberextrudedHeightnumberaddRectangle按地理范围添加矩形8 params按地理范围添加矩形
idstringnamestringheightnumberoutlinebooleanmaterialvaluecoordinatesobjectoutlineColorstringextrudedHeightnumberaddWall沿路径添加墙体8 params沿路径添加墙体
idstringnamestringoutlinebooleanmaterialvaluepositionsarrayoutlineColorstringmaximumHeightsarrayminimumHeightsarraycreateAnimation创建基于时间的路径动画(实体沿路径运动)7 params创建基于时间的路径动画(实体沿路径运动)
loopbooleanmodelstringentityIdstringpathColorstringpathWidthnumberwaypointsarraymodelScalenumbercontrolAnimation播放或暂停动画2 params播放或暂停动画
actionstringplay · pauseentityIdstringremoveAnimation删除动画实体1 params删除动画实体
entityIdstringlistAnimations列出所有活跃的动画列出所有活跃的动画
No parameter schema in public metadata yet.
updateAnimationPath更新动画路径的可视属性4 params更新动画路径的可视属性
showbooleancolorstringwidthnumberentityIdstringtrackEntity相机追踪实体1 params相机追踪实体
entityIdstringcontrolClock配置Cesium时钟(时间范围、速度、动画状态)6 params配置Cesium时钟(时间范围、速度、动画状态)
stopTimestringstartTimestringclockRangestringUNBOUNDED · CLAMPED · LOOP_STOPmultipliernumbercurrentTimestringshouldAnimatebooleansetGlobeLighting启用/禁用地球光照和大气效果4 params启用/禁用地球光照和大气效果
enableFogbooleanenableLightingbooleanenableSkyAtmospherebooleanenableGroundAtmospherebooleanThe minimum-overhead way to add AI commands to CesiumJS
cesium-mcp-bridge is a protocol-agnostic command dispatcher with 60+ tools, drivable from browser-only agents, function calling, or MCP — your choice.
Three entry points: Browser Agent (simplest, zero backend) · function calling (embed in your web app) · MCP runtime (Claude Desktop / Cursor / Dify)
Try it now — open the live browser demo, no install, no signup.
https://github.com/user-attachments/assets/8a40565a-fcdd-47bf-ae67-bc870611c908
| Module | Role | Status | Links |
|---|---|---|---|
| cesium-mcp-bridge | Protocol-agnostic command dispatcher (60+ tools) | Mainline, actively iterated | |
| examples/browser-agent | Browser-only AI agent (recommended starting point, zero backend) | Recommended | example · live demo |
| cesium-mcp-runtime | MCP server (stdio + HTTP) | Stable, slow updates | |
| cesium-mcp-dev | CesiumJS API knowledge base for coding assistants | Maintained |
Which one? Personal project or quick try → browser-agent. Existing web app embedding an AI assistant → bridge + your own function calling. Calling from Claude Desktop / Cursor / Dify → MCP runtime.
flowchart LR
subgraph clients ["AI Drivers (pick one)"]
BA["Browser Agent\n(in the same page)"]
FC["Your web app\nfunction calling"]
MCP["Claude / Cursor / Dify\nvia MCP runtime"]
end
subgraph core ["cesium-mcp-bridge (browser)"]
B["60+ tools\nprotocol-agnostic dispatcher"]
C["CesiumJS Viewer"]
end
BA -- "in-page call" --> B
FC -- "in-page call" --> B
MCP -- "WebSocket / JSON-RPC" --> B
B --> C
style clients fill:#1e293b,stroke:#528bff,color:#e2e8f0
style core fill:#1e293b,stroke:#12B76A,color:#e2e8f0
The bridge is the only required piece. Pick whichever driver matches your scenario — they all hit the same 60+ tools.
Open the live demo, paste an OpenAI-compatible API key, and ask:
"Fly to the Eiffel Tower and drop a red marker"
Fork the examples/browser-agent folder to deploy your own.
npm install cesium-mcp-bridge
import { CesiumBridge } from 'cesium-mcp-bridge';
const bridge = new CesiumBridge(viewer);
// Then: send the bridge's tool schema to any LLM that supports function/tool calling,
// route the model's tool calls to bridge.execute(name, params).
See examples/browser-agent/index.html for a complete loop with OpenAI-compatible APIs.
Install bridge as in Path 1, then start the MCP runtime:
# stdio mode (Claude Desktop, VS Code, Cursor)
npx cesium-mcp-runtime
# HTTP mode (Dify, remote/cloud MCP clients)
npx cesium-mcp-runtime --transport http --port 3000
MCP client config:
{
"mcpServers": {
"cesium": {
"command": "npx",
"args": ["-y", "cesium-mcp-runtime"]
}
}
}
Tools are organized into 12 toolsets. Default mode enables 4 core toolsets (~31 tools). Set CESIUM_TOOLSETS=all for everything, or let the AI discover and activate toolsets dynamically at runtime.
i18n: Tool descriptions default to English. Set
CESIUM_LOCALE=zh-CNfor Chinese.
| Toolset | Tools |
|---|---|
| view (default) | flyTo, setView, getView, zoomToExtent, saveViewpoint, loadViewpoint, listViewpoints, exportScene |
| entity (default) | addMarker, addLabel, addModel, addPolygon, addPolyline, updateEntity, removeEntity, batchAddEntities, queryEntities, getEntityProperties |
| layer (default) | addGeoJsonLayer, listLayers, removeLayer, clearAll, setLayerVisibility, updateLayerStyle, getLayerSchema, setBasemap |
| interaction (default) | 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 |
Relationship with CesiumGS official MCP servers: The
camera,entity-ext, andanimationtoolsets natively fuse capabilities from CesiumGS/cesium-mcp-server (Camera Server, Entity Server, Animation Server) into this project's unified bridge architecture. This means you get all official functionality plus additional tools — in a single MCP server, without running multiple processes.
See examples/minimal/ for a complete working demo.
git clone https://github.com/gaopengbin/cesium-mcp.git
cd cesium-mcp
npm install
npm run build
Version format: {CesiumMajor}.{CesiumMinor}.{MCPPatch}
| Segment | Meaning | Example |
|---|---|---|
1.139 | Tracks CesiumJS version — built & tested against Cesium ~1.139.0 | 1.139.8 → Cesium 1.139 |
.8 | MCP patch — independent iterations for new tools, bug fixes, docs | 1.139.7 → 1.139.8 |
When CesiumJS releases a new minor version (e.g. 1.140), we will bump accordingly: 1.140.0.
miapre/html-to-figma-design-system
ie3jp/illustrator-mcp-server
coding-solo/godot-mcp
ivanmurzak/unity-mcp
yctimlin/mcp_excalidraw
figma/mcp-server-guide