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
Related MCP server: Interactive Map MCP Server
Packages & Entry Points
Module | Role | Status | Links |
cesium-mcp-contracts | Transport-neutral names, descriptions, and JSON Schemas for browser tools | New shared layer | |
cesium-mcp-bridge | Protocol- and transport-free Cesium command executor (60+ commands) | Mainline, actively iterated |
|
cesium-mcp-webmcp | Native | New browser adapter | |
examples/webmcp-integration | Focused npm + Vite integration without a chat UI or MCP server | Developer example | |
examples/browser-agent | Browser-only AI agent with automatic WebMCP exposure | Recommended | |
cesium-mcp-runtime | MCP server (stdio + HTTP) | Stable + MCP v2 preview |
|
cesium-mcp-dev | CesiumJS API knowledge base for coding assistants | Maintained |
|
Which one? Personal project or quick try → browser-agent. Let a compatible browser agent discover page-local Cesium tools → WebMCP. 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)"]
WM["WebMCP Agent\n(browser-provided)"]
FC["Your web app\nfunction calling"]
MCP["Claude / Cursor / Dify\nvia MCP runtime"]
end
CONTRACTS["cesium-mcp-contracts\ntool definitions"]
WEBMCP["cesium-mcp-webmcp\nnative adapter"]
subgraph core ["cesium-mcp-bridge (browser)"]
B["60+ tools\nprotocol-agnostic dispatcher"]
C["CesiumJS Viewer"]
end
CONTRACTS -.-> BA
CONTRACTS -.-> WEBMCP
BA -- "in-page call" --> B
WM -- "document.modelContext" --> WEBMCP
WEBMCP --> 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 remains the execution core, while contracts and protocol adapters stay separate. Pick whichever driver matches your scenario — they all reach the same Cesium command layer. On WebMCP-capable browsers, cesium-mcp-webmcp can expose 61 browser-safe commands in 12 selectable toolsets through document.modelContext without adding an MCP transport or backend server.
Quick Start
Path 0 — Try in 30 seconds (browser agent, recommended)
Open the live demo and ask—the hosted model is ready without a browser API key:
"Fly to the Eiffel Tower and drop a red marker"
Fork the examples/browser-agent folder to deploy your own.
Path 1 — Expose Cesium tools through WebMCP (Chrome 149+ experimental)
The browser-agent example automatically registers all 61 browser-safe page tools when document.modelContext is available. Its built-in chat uses automatic toolset routing to keep each normal request at 20 tools or fewer, while still offering explicit core, single-toolset, and all-61 modes:
npm run build -w packages/cesium-mcp-bridge
npm run build -w packages/cesium-mcp-webmcp
npx serve . -l 4173Open http://localhost:4173/examples/browser-agent/, click Start, then inspect or execute the tools in DevTools → Application → WebMCP. Enable #enable-webmcp-testing and #devtools-webmcp-support in chrome://flags for local testing.
Application developers install the adapter separately. End users only open the integrated website; they do not install npm packages or run an MCP server.
npm install cesium cesium-mcp-bridge cesium-mcp-webmcpimport { CesiumBridge } from 'cesium-mcp-bridge'
import { registerCesiumWebMcp } from 'cesium-mcp-webmcp'
const bridge = new CesiumBridge(viewer)
const registration = await registerCesiumWebMcp(bridge, {
toolsets: 'all',
excludeTools: ['geocode'], // add your own browser geocoder to expose this tool
})
// Later, if the page is unmounted:
registration.unregister()See the WebMCP adapter API for custom integrations. For a complete npm + Vite application, start from the WebMCP integration example.
Path 2 — 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 3 — Use from Claude Desktop / Cursor / Dify (MCP)
Install bridge as in Path 2, then start the MCP runtime:
# Stable channel — npm latest (1.143.3)
npx cesium-mcp-runtime
# MCP v2 preview — npm next (1.143.4-next.0)
npx cesium-mcp-runtime@next
# HTTP mode; add @next to use the preview
npx cesium-mcp-runtime --transport http --port 3000
npx cesium-mcp-runtime@next --transport http --port 3000The next preview serves existing MCP 2025-11-25 clients and the new
2026-07-28 protocol from the same stdio/HTTP entry. It uses the stable
TypeScript SDK v2 and has passed the official server-stateless conformance
scenario (28/28). The npm latest tag remains on 1.143.3, so you can switch
back by removing @next. For matching preview package versions, install
cesium-mcp-bridge@next in the browser application.
MCP client config:
{
"mcpServers": {
"cesium": {
"command": "npx",
"args": ["-y", "cesium-mcp-runtime"]
}
}
}To test the preview from an MCP client, change the last argument to
"cesium-mcp-runtime@next".
62 Available Command Tools
Tools are organized into 12 toolsets. Default mode enables 4 core toolsets (30 tools). Set CESIUM_TOOLSETS=all for everything, or let the AI discover and activate toolsets dynamically at runtime.
Canonical contracts: Tool descriptions default to English; set
CESIUM_LOCALE=zh-CNfor Chinese. Titles, behavior annotations, localized descriptions, defaults, and Runtime input validation all come from the shared JSON Schemas incesium-mcp-contracts.
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 |
|
Official CesiumJS releases are reviewed before the compatibility baseline is bumped; the project does not automatically claim support for a newer release without Bridge verification.
Related Projects
mapbox-mcp — AI control for Mapbox GL JS
openlayers-mcp — AI control for OpenLayers
Star History
License
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityAmaintenanceA Model Context Protocol server that connects LLMs to GIS operations, enabling AI assistants to perform accurate geospatial analysis including geometric operations, coordinate transformations, and spatial measurements.Last updated87174MIT
- Alicense-qualityFmaintenanceEnables users to search for geographic locations and visualize them on an interactive 3D globe powered by CesiumJS and OpenStreetMap. It provides tools for geocoding addresses and rendering maps with specific bounding boxes through the Model Context Protocol.Last updated207MIT
- FlicenseBqualityDmaintenanceQGISMCP connects QGIS to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control QGIS for project creation, layer loading, code execution, and more.Last updated151
- Alicense-qualityAmaintenanceAn MCP server that connects AI agents to cloud-native geospatial data via STAC metadata and DuckDB with H3 spatial indexing, enabling zero-configuration SQL queries on terabyte-scale datasets over S3.Last updated23BSD 3-Clause
Related MCP Connectors
GIS tools for AI agents: 65 free tools + 8 paid (hazard/site-scouting/GeoJSON export)
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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