io.github.gaopengbin/cesium-mcp-dev MCP Server
io.github.gaopengbin/cesium-mcp-dev
AI-powered CesiumJS development tools with 60+ commands for Claude, Cursor, and browser agents.
What is the io.github.gaopengbin/cesium-mcp-dev MCP server?
The cesium-mcp-dev MCP server provides CesiumJS API documentation and development tools for IDE AI assistants. It exposes 60+ Cesium commands across 12 toolsets (view, entity, layer, interaction, camera, animation, tiles, and more) through multiple integration paths: browser agents, WebMCP, function calling, or MCP protocol for Claude Desktop, Cursor, and Dify.
cesium-mcp-dev enables AI assistants to control CesiumJS 3D maps programmatically. It offers a protocol-agnostic bridge that works in browsers without a backend, integrates with WebMCP for native browser tool discovery, embeds in web apps via function calling, or runs as an MCP server for desktop AI clients. Use it to let Claude or Cursor fly to locations, add markers and layers, animate scenes, load 3D tiles, and manage geospatial visualizations.
How to install io.github.gaopengbin/cesium-mcp-dev
Copy-paste configuration for popular MCP clients.
Tools & capabilities
Tools this server exposes to the agent.
flyTo— Navigate the camera to a specified locationsetView— Set the camera view with position and orientationgetView— Retrieve current camera view statezoomToExtent— Zoom camera to fit a geographic extentsaveViewpoint— Save current camera viewpoint for later recallloadViewpoint— Load a previously saved viewpointlistViewpoints— List all saved viewpointsexportScene— Export the current sceneaddMarker— Add a point marker to the mapaddLabel— Add a text label to the mapaddModel— Add a 3D model to the sceneaddPolygon— Add a polygon shape to the mapaddPolyline— Add a polyline to the mapupdateEntity— Update properties of an existing entityremoveEntity— Remove an entity from the mapbatchAddEntities— Add multiple entities at oncequeryEntities— Query entities by propertiesgetEntityProperties— Get properties of a specific entityaddGeoJsonLayer— Add a GeoJSON layer to the mapaddGeoJsonPrimitive— Add GeoJSON as primitives
Use cases
- Fly a 3D map to specific locations and create interactive viewpoints for geospatial analysis
- Add markers, labels, and 3D models to visualize data points and assets on a Cesium globe
- Load and visualize 3D Tiles, terrain, imagery, and GeoJSON data layers dynamically
- Create animated camera tours, object trajectories, and time-based scene animations
- Measure distances and areas, capture screenshots, and export scenes for reporting
io.github.gaopengbin/cesium-mcp-dev MCP server FAQ
cesium-mcp-dev is an MCP server that provides CesiumJS API documentation and 60+ geospatial commands for AI assistants. It enables Claude, Cursor, and other AI tools to control 3D maps, add entities, manage layers, animate scenes, and load geospatial data.
Yes, cesium-mcp-dev is open-source under the MIT license. The npm packages are free to install and use. Some features (like Cesium Ion services) may require a Cesium Ion account, but basic functionality works without authentication.
Install via npm: `npx cesium-mcp-runtime`. Add to your Claude Desktop or Cursor MCP config: {"mcpServers": {"cesium": {"command": "npx", "args": ["-y", "cesium-mcp-runtime"]}}}. The server supports both stdio and HTTP transports.
Yes. Use the browser-agent example (zero backend) or embed cesium-mcp-bridge directly in your web app with function calling. The bridge is protocol-agnostic and works entirely in the browser. A live demo is available at https://cesium-browser-agent.pages.dev/.
No authentication is required for basic usage. However, some features like Cesium Ion services (3D Tiles, imagery) may require a Cesium Ion token, which you can set via the `setIonToken` tool.
cesium-mcp-dev version format is {CesiumMajor}.{CesiumMinor}.{MCPPatch}. For example, version 1.143.0 is built and tested against CesiumJS ~1.143.0. Check the package version to confirm compatibility with your Cesium installation.
README (reference)
Source of truth, from the repository.
Demo
https://github.com/user-attachments/assets/8a40565a-fcdd-47bf-ae67-bc870611c908
Packages & Entry Points
| Module | Role | Status | Links |
|---|---|---|---|
| cesium-mcp-contracts | Transport-neutral names, descriptions, and JSON Schemas for browser tools | New shared layer | source |
| cesium-mcp-bridge | Protocol- and transport-free Cesium command executor (60+ commands) | Mainline, actively iterated | |
| cesium-mcp-webmcp | Native document.modelContext adapter for Cesium tool contracts | New browser adapter | source |
| examples/webmcp-integration | Focused npm + Vite integration without a chat UI or MCP server | Developer example | example |
| examples/browser-agent | Browser-only AI agent with automatic WebMCP exposure | Recommended | example · live demo |
| cesium-mcp-runtime | MCP server (stdio + HTTP) | Stable MCP SDK v2 | |
| 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:#e2e8f0
The 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 4173
Open 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-webmcp
import { 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-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.
Path 3 — Use from Claude Desktop / Cursor / Dify (MCP)
Install bridge as in Path 2, then start the MCP runtime:
# Stable channel — npm latest, MCP SDK v2
npx cesium-mcp-runtime
# HTTP mode
npx cesium-mcp-runtime --transport http --port 3000
The stable release 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 passes the official server-stateless conformance
scenario (28/28).
MCP client config:
{
"mcpServers": {
"cesium": {
"command": "npx",
"args": ["-y", "cesium-mcp-runtime"]
}
}
}
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, input validation, MCP output schemas, and structured results all come from the shared JSON Schemas incesium-mcp-contracts. Textcontentremains available for older clients.
| 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, addGeoJsonPrimitive, 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, load3dGaussianSplat, loadTerrain, loadImageryService, loadCzml, loadKml, setEdgeDisplayMode |
| trajectory | playTrajectory |
| heatmap | addHeatmap |
| scene | setSceneOptions, setPostProcess, setIonToken (Runtime only) |
| 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.
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 build
npm test
npm run test:contracts
npm run test:routing
npm run test:e2e:packed
test:contracts is the focused parity gate for MCP Runtime metadata, WebMCP registration, Function Calling definitions, and the 60-tool Bridge Executor Registry.
test:routing evaluates bilingual and multi-intent Browser Agent requests across all 12 toolsets, checking required-tool recall and the 20-tool automatic-routing budget.
test:e2e:packed builds npm tarballs, installs them in a clean temporary project, opens the real Cesium Viewer, and verifies a Runtime-WebSocket-Bridge command round trip.
Version Policy
Version format: {CesiumMajor}.{CesiumMinor}.{MCPPatch}
| Segment | Meaning | Example |
|---|---|---|
1.143 | Tracks CesiumJS version — built & tested against Cesium ~1.143.0 | 1.143.0 → Cesium 1.143 |
.x | MCP patch — independent iterations for new tools, bug fixes, docs | 1.143.0 → 1.143.1 |
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
Related MCP servers
Control CesiumJS 3D globes with AI commands via MCP—camera, layers, entities, animation, and interaction.

useVyre Context
useVyre component context for AI agents — valid props, variants, anti-patterns, and design tokens.

Aguara MCP
Scan skills, MCP configs, and agent content for injection and supply-chain risks. Offline, no LLM.

AI Skill Store
Agent-first skill marketplace with USK open standard for Claude, Cursor, Gemini, Codex CLI.
CNCF release intelligence: typed changes from release notes; check_stack compares versions locally.

