Cesium Mcp Runtime
@gaopengbin
About Cesium Mcp Runtime
MCP server that enables AI agents to control CesiumJS 3D globe with natural language. Supports camera flight, entity management, imagery layers, terrain, GeoJSON, trajectory playback, and interactive picking. Works with Claude Desktop, VS Code Copilot, Cursor and any MCP-compatib
Config
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"cesium-mcp-runtime": {
"command": "npx",
"args": [
"-y",
"cesium-mcp-runtime"
]
}
}
}Tools
33Animate the camera to a geographic location. Use for visible navigation requested by the user. Returns { success: boolean, message?: string, error?: string }.
Set the camera position immediately without animation. Use for deterministic setup or instant view changes. Returns { success: boolean, message?: string, error?: string }.
Get the current camera position and orientation. Returns { success, data: { longitude, latitude, height, heading, pitch, roll }, message? }.
Animate the camera to a west/south/east/north bounding box. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Save the current camera state under a page-local name. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Restore a previously saved page-local camera state. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
List camera viewpoints saved in the current page. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Export the current view, layer, and entity state as JSON. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Add a point marker at geographic coordinates. Returns { success, data: { entityId }, message? }; keep entityId for removeEntity.
Add property-based text labels for GeoJSON features. Returns { success, data: { labelCount: integer }, message? }.
Add a glTF or GLB model at geographic coordinates. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Draw a polygon area from geographic coordinate tuples. Returns { success, data: { entityId }, message? }; keep entityId for removeEntity.
Draw a path or route from geographic coordinate tuples. Returns { success, data: { entityId }, message? }; keep entityId for removeEntity.
Update the position, appearance, label, or visibility of an entity. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Remove one entity created by an entity tool. Returns { success, message? } or { success: false, error } when entityId is not found.
Add multiple supported entities in one page operation. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Query page entities by name, type, or geographic extent. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Read the properties and graphics metadata for one entity. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Add a styled GeoJSON Point, LineString, or Polygon layer. Returns { success, data: { id, name, type, visible, color, dataRefId? }, message? }; use id with highlight.
Render GeoJSON as Cesium primitives for large browser datasets. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
List all layers currently managed by the page. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Inspect fields, entity counts, and metadata for a layer. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Remove a managed layer from the page. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Clear all layers, entities, animations, and trajectories from the scene. Returns { success, data: { removedLayers, removedEntities }, message? }.
Show or hide a managed layer. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Update vector, imagery, primitive, or 3D Tiles styling for a layer. Returns { success: boolean, data?: unknown, message?: string, error?: string }.
Switch the visible basemap style. Returns { success, data: { basemap }, message? }.
Capture the current Cesium map view as a PNG image. Returns { success, data: { dataUrl, width, height }, message? }; dataUrl is a base64 PNG.
Highlight one feature or every feature in a GeoJSON layer. Returns { success: boolean, message?: string, error?: string }.
Measure distance or area between geographic coordinate tuples. Returns { success, data: { mode, value, unit, segments?, id? }, message? }.
List all available tool groups and their enabled status. Call this to discover additional capabilities before asking the user to configure anything.
Enable a tool group to make its tools available. Call list_toolsets first to see available groups.
List all connected browser sessions (ID and connection state) for multi-browser routing
Overview
What is Cesium Mcp Runtime?
Cesium Mcp Runtime is a Node.js server that bridges AI agents (via the Model Context Protocol) to a CesiumJS 3D globe viewer. It provides 19 MCP tools and 2 resources that let you control camera, entities, layers, terrain, and interactions using natural language. It is designed for developers building AI-powered geospatial applications with CesiumJS.
How to use Cesium Mcp Runtime?
Install cesium-mcp-bridge in your CesiumJS application, register the viewer with CesiumMCPBridge.register(viewer), then configure your MCP client to run npx cesium-mcp-runtime as the server command.
Key features of Cesium Mcp Runtime
- 19 MCP tools for full CesiumJS control via natural language
- Camera: flyTo, setView, getView, zoomToExtent
- Entities: addMarker, addLabel, highlight, removeLayer
- Layers: loadImageryService, load3dTiles, addGeoJsonLayer, addHeatmap
- Terrain: loadTerrain, setBasemap
- Interaction: screenshot, playTrajectory
- 2 resources: scene state and entity list
- Architecturally bridges AI ↔ MCP stdio ↔ Node.js ↔ WebSocket ↔ Browser ↔ CesiumJS Viewer
Use cases of Cesium Mcp Runtime
- AI agent controlling a 3D globe by voice or chat commands
- Automatically adding markers, labels, and GeoJSON layers to a CesiumJS scene
- Flying the camera to specific coordinates or extents on demand
- Taking screenshots or replaying trajectories through AI requests
- Loading 3D Tiles, imagery services, and terrain without manual code
FAQ from Cesium Mcp Runtime
What MCP tools does Cesium Mcp Runtime provide?
It provides 19 tools covering camera control, entity management, layer loading, terrain/basemap switching, and interaction (screenshot, playTrajectory).
How does Cesium Mcp Runtime connect to CesiumJS?
The server communicates via WebSocket to a browser-side bridge (cesium-mcp-bridge) that must be registered with the CesiumJS viewer.
What are the installation steps?
Install cesium-mcp-bridge in your CesiumJS app, call CesiumMCPBridge.register(viewer), then configure your MCP client to run npx cesium-mcp-runtime.
What runtime environment is required?
The server requires Node.js (to run cesium-mcp-runtime) and a browser running a CesiumJS application with the bridge injected.
Does Cesium Mcp Runtime store any data persistently?
No. The README does not mention any persistent storage; data and scene state exist only in the browser’s CesiumJS viewer during the session.
Frequently asked questions
What MCP tools does Cesium Mcp Runtime provide?
It provides 19 tools covering camera control, entity management, layer loading, terrain/basemap switching, and interaction (screenshot, playTrajectory).
How does Cesium Mcp Runtime connect to CesiumJS?
The server communicates via WebSocket to a browser-side bridge (`cesium-mcp-bridge`) that must be registered with the CesiumJS viewer.
What are the installation steps?
Install `cesium-mcp-bridge` in your CesiumJS app, call `CesiumMCPBridge.register(viewer)`, then configure your MCP client to run `npx cesium-mcp-runtime`.
What runtime environment is required?
The server requires Node.js (to run `cesium-mcp-runtime`) and a browser running a CesiumJS application with the bridge injected.
Does Cesium Mcp Runtime store any data persistently?
No. The README does not mention any persistent storage; data and scene state exist only in the browser’s CesiumJS viewer during the session.
Basic information
More Developer Tools MCP servers
LocalCan
LocalCanGives AI agents public URLs (tunnels) for localhost, live HTTP traffic inspection, snapshot publishing, and access control. Part of LocalCan, the ngrok alternative for Mac, Windows and Linux. Free plan.
extentos
Asger mølgaardExtentos is a multi-vendor development platform for adding smart-glasses capabilities to existing iOS and Android apps. The simplest analogy is Stripe for smart glasses:
TranscriptFetch MCP Server
TranscriptFetchModel Context Protocol (MCP) server for TranscriptFetch: fetch YouTube transcripts, search, channels, and playlists from any MCP client.
AptiBuild AI — Career Intelligence
ParklandBuildsAptiBuild AI — Career Intelligence MCP Server Structured career decision scaffolding for AI agents. Provides personality-conditioned business idea generation, official BLS OEWS wage data, FRED labor market signals, and
Agent Conductor
icohangar-opsAgent conductor — AGENTS.md contract parser, SKILL.md registry, CHP decision engine over MCP
Comments