Skip to content

cesium-mcp-runtime

MCP Server (stdio) — 43 tools (10 toolsets) + 2 resources, with dynamic discovery.

npm

Installation & Run

bash
npx cesium-mcp-runtime

Or install globally:

bash
npm install -g cesium-mcp-runtime
cesium-mcp-runtime

MCP Client Configuration

Claude Desktop

claude_desktop_config.json:

json
{
  "mcpServers": {
    "cesium": {
      "command": "npx",
      "args": ["-y", "cesium-mcp-runtime"]
    }
  }
}

VS Code (GitHub Copilot)

.vscode/mcp.json:

json
{
  "servers": {
    "cesium-mcp": {
      "command": "npx",
      "args": ["-y", "cesium-mcp-runtime"]
    }
  }
}

Cursor

.cursor/mcp.json:

json
{
  "mcpServers": {
    "cesium": {
      "command": "npx",
      "args": ["-y", "cesium-mcp-runtime"]
    }
  }
}

MCP Tools (43 + 2 meta)

Tools are organized into 10 toolsets. By default, 4 core toolsets are enabled (~19 tools). Set CESIUM_TOOLSETS=all for everything, or let the AI discover and activate toolsets dynamically.

Toolsets

ToolsetToolsDefaultDescription
view4YesCamera view controls
entity7YesCore entity operations
layer6YesLayer management
interaction2YesScreenshot & highlight
camera4Advanced camera controls (orbit, lookAt)
entity-ext7Extended entity types (box, cylinder, wall, etc.)
animation8Animation system (waypoints, clock, tracking)
tiles33D Tiles, terrain, imagery services
trajectory1Trajectory playback
heatmap1Heatmap visualization

Dynamic Discovery

When not in all mode, two meta-tools are always available:

ToolDescription
list_toolsetsList all toolset groups with enabled status
enable_toolsetDynamically enable a toolset at runtime

View

ToolDescription
flyToAnimate camera to longitude/latitude/height with optional heading/pitch/roll
setViewInstantly set camera position and orientation
getViewReturn current camera position, heading, pitch, roll
zoomToExtentFit view to geographic bounding box

Entity

ToolDescription
addMarkerAdd a point marker with label
addLabelAdd a text label at a position
addModelPlace a 3D model (glTF/GLB) at a position
addPolygonAdd polygon area with fill and outline
addPolylineAdd polyline (path/route) on the map
updateEntityUpdate entity properties
removeEntityRemove a single entity by ID

Layer

ToolDescription
addGeoJsonLayerLoad GeoJSON from URL or inline data
listLayersList all currently loaded layers
removeLayerRemove a layer by ID
setLayerVisibilityToggle layer visibility
updateLayerStyleModify layer styling properties
setBasemapSwitch the base imagery layer

Camera

ToolDescription
lookAtTransformOrbit-style camera aim at a position (heading/pitch/range)
startOrbitStart orbiting the camera around current center
stopOrbitStop orbit animation
setCameraOptionsConfigure camera controller (enable/disable rotation, zoom, tilt)

Extended Entity Types

ToolDescription
addBillboardAdd an image icon at a position
addBoxAdd a 3D box with dimensions and material
addCorridorAdd a corridor (path with width)
addCylinderAdd a cylinder or cone
addEllipseAdd an ellipse (oval)
addRectangleAdd a rectangle by geographic bounds
addWallAdd a wall along positions

Animation

ToolDescription
createAnimationCreate time-based animation with waypoints
controlAnimationPlay or pause animation
removeAnimationRemove an animation entity
listAnimationsList all active animations
updateAnimationPathUpdate animation path visual properties
trackEntityFollow an entity with the camera
controlClockConfigure Cesium clock (time range, speed)
setGlobeLightingEnable/disable globe lighting and atmospheric effects

3D Data

ToolDescription
load3dTilesLoad a 3D Tileset (buildings, terrain mesh, etc.)
loadTerrainSet the terrain provider
loadImageryServiceAdd a WMS/WMTS/TMS imagery layer

Interaction

ToolDescription
screenshotCapture the current globe view as an image
highlightHighlight specific features

Other

ToolToolsetDescription
playTrajectorytrajectoryAnimate an entity along a path over time
addHeatmapheatmapCreate heatmap overlay from point data

MCP Resources (2)

URIDescription
cesium://scene/cameraCurrent camera state (position, orientation)
cesium://scene/layersList of all loaded layers with metadata

Resources are read-only and can be polled by the AI agent for context-aware decisions.

Environment Variables

VariableDefaultDescription
CESIUM_WS_PORT9100WebSocket server port for bridge connections
DEFAULT_SESSION_IDdefaultWhich browser session to route MCP calls to
CESIUM_TOOLSETS(not set)Toolset activation: omit for defaults, all for everything, or comma-separated list

Session Routing

Multiple browser tabs can connect simultaneously. Each bridge instance registers with a sessionId:

Tab 1: sessionId = "project-a"
Tab 2: sessionId = "project-b"

The runtime routes MCP tool calls to the session matching DEFAULT_SESSION_ID.

HTTP Push API

For non-MCP integrations (e.g., FastAPI backends), the runtime exposes an HTTP endpoint:

bash
curl -X POST http://localhost:9100/push \
  -H "Content-Type: application/json" \
  -d '{"action": "flyTo", "params": {"longitude": 2.29, "latitude": 48.86, "height": 1000}}'

Released under the MIT License.