cesium-mcp
The cesium-mcp server enables AI-powered control of a CesiumJS 3D globe through natural language commands via MCP-compatible clients (Claude Desktop, VS Code, Cursor, Dify, n8n).
Camera & Navigation
flyTo— Animated flight to coordinates with configurable height, pitch, heading, and durationsetView— Instantly jump to a locationgetView— Retrieve current camera position (lat/lon, height, angles)zoomToExtent— Zoom to a geographic bounding box
Map Layers
addGeoJsonLayer— Add GeoJSON data with configurable styles (choropleth, category rendering)removeLayer,listLayers,setLayerVisibility,updateLayerStyle— Full layer lifecycle managementsetBasemap— Switch between dark, satellite, and standard basemaps
Entities (Points, Lines, Polygons, Models)
addMarker,addLabel,addPolyline,addPolygon,addModel— Place markers, text, paths, areas, and 3D glTF/GLB modelsupdateEntity,removeEntity— Modify or delete existing entities
Interaction & Visualization
screenshot— Capture the current view as a base64 PNGhighlight— Highlight layer features with a configurable color
Toolset Discovery & Extensibility
list_toolsets— List all 12 toolsets (58 total tools) and their enabled statusenable_toolset— Dynamically enable additional capabilities such ascamera,animation,tiles,trajectory,heatmap,scene,geolocation, and more
Supports English and Chinese tool descriptions based on locale settings, and connects via stdio or HTTP transport.
Enables AI-powered control of CesiumJS 3D globes, allowing for camera manipulation, management of layers and markers, spatial analysis, and scene interaction through natural language commands.
Demo
https://github.com/user-attachments/assets/8a40565a-fcdd-47bf-ae67-bc870611c908
Packages & Entry Points
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 | |
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.
Architecture
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:#e2e8f0The bridge is the only required piece. Pick whichever driver matches your scenario — they all hit the same 60+ tools.
Quick Start
Path 0 — Try in 30 seconds (browser agent, recommended)
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.
Path 1 — Embed in your own web app (function calling)
npm install cesium-mcp-bridgeimport { 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.
Path 2 — Use from Claude Desktop / Cursor / Dify (MCP)
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 3000MCP client config:
{
"mcpServers": {
"cesium": {
"command": "npx",
"args": ["-y", "cesium-mcp-runtime"]
}
}
}58 Available Tools
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) |
|
entity (default) |
|
layer (default) |
|
interaction (default) |
|
camera |
|
entity-ext |
|
animation |
|
tiles |
|
trajectory |
|
heatmap |
|
scene |
|
geolocation |
|
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.
Examples
See examples/minimal/ for a complete working demo.
Development
git clone https://github.com/gaopengbin/cesium-mcp.git
cd cesium-mcp
npm install
npm run buildVersion Policy
Version format: {CesiumMajor}.{CesiumMinor}.{MCPPatch}
Segment | Meaning | Example |
| Tracks CesiumJS version — built & tested against Cesium |
|
| MCP patch — independent iterations for new tools, bug fixes, docs |
|
When CesiumJS releases a new minor version (e.g. 1.140), we will bump accordingly: 1.140.0.
Related Projects
mapbox-mcp — AI control for Mapbox GL JS
openlayers-mcp — AI control for OpenLayers
Star History
License
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gaopengbin/cesium-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server