Skip to content

cesium-mcp-runtime

MCP 服务器(stdio)— 43 个工具(10 个工具集)+ 2 个资源,支持动态发现。

npm

安装与运行

bash
npx cesium-mcp-runtime

或全局安装:

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

MCP 客户端配置

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 工具(43 + 2 元工具)

工具按 10 个工具集 组织。默认启用 4 个核心工具集(约 19 个工具)。设置 CESIUM_TOOLSETS=all 启用全部,或由 AI 在运行时动态发现和激活。

工具集

工具集工具数默认启用描述
view4相机视角控制
entity7核心实体操作
layer6图层管理
interaction2截图与高亮
camera4高级相机控制(环绕、注视)
entity-ext7扩展实体类型(盒体、柱体、墙等)
animation8动画系统(路径点、时钟、追踪)
tiles33D Tiles、地形、影像服务
trajectory1轨迹回放
heatmap1热力图可视化

动态发现

all 模式下,始终注册两个元工具:

工具描述
list_toolsets列出所有工具集及其启用状态
enable_toolset在运行时动态启用一个工具集

视图

flyTo

相机飞行到指定位置(带动画过渡)。

参数类型必填默认值说明
longitudenumber经度(-180 ~ 180)
latitudenumber纬度(-90 ~ 90)
heightnumber50000相机高度(米)
headingnumber0航向角(度),0 = 正北
pitchnumber-45俯仰角(度),-90 = 正下方
durationnumber2飞行动画时长(秒)

setView

瞬间切换到指定视角(无动画)。

参数类型必填默认值说明
longitudenumber经度(-180 ~ 180)
latitudenumber纬度(-90 ~ 90)
heightnumber50000高度(米)
headingnumber0航向角(度)
pitchnumber-90俯仰角(度)
rollnumber0翻滚角(度)

getView

获取当前相机状态。无参数。

返回: { longitude, latitude, height, heading, pitch, roll }

zoomToExtent

缩放适配到地理包围盒。

参数类型必填默认值说明
westnumber西边界经度
southnumber南边界纬度
eastnumber东边界经度
northnumber北边界纬度
durationnumber2动画时长(秒)

实体

addMarker

添加点标记,可附加标注。返回 entityId

参数类型必填默认值说明
longitudenumber经度(-180 ~ 180)
latitudenumber纬度(-90 ~ 90)
labelstring标注文本
colorstring"#3B82F6"CSS 颜色
sizenumber12点大小(像素)
idstring自动自定义图层 ID

addLabel

为 GeoJSON 要素添加文本标注。

参数类型必填默认值说明
dataobjectGeoJSON FeatureCollection
fieldstring标注字段名
styleobject标注样式(font, fillColor, outlineColor, scale)

addModel

在指定位置放置 3D 模型(glTF/GLB)。返回 entityId

参数类型必填默认值说明
longitudenumber经度
latitudenumber纬度
heightnumber0高度(米)
urlstringglTF/GLB 模型 URL
scalenumber1缩放比例
headingnumber0航向角(度)
pitchnumber0俯仰角(度)
rollnumber0翻滚角(度)
labelstring模型标注

addPolygon

添加多边形区域。返回 entityId

参数类型必填默认值说明
coordinatesnumber[][]外环坐标 [[lon, lat, height?], ...]
colorstring"#3B82F6"填充颜色
outlineColorstring"#FFFFFF"描边颜色
opacitynumber0.6透明度(0–1)
extrudedHeightnumber拉伸高度(米)
clampToGroundbooleantrue是否贴地
labelstring标注文本

addPolyline

添加折线。返回 entityId

参数类型必填默认值说明
coordinatesnumber[][]坐标 [[lon, lat, height?], ...]
colorstring"#3B82F6"线条颜色
widthnumber3线宽(像素)
clampToGroundbooleantrue是否贴地
labelstring标注文本

updateEntity

更新已有实体属性。

参数类型必填默认值说明
entityIdstring要更新的实体 ID
positionobject新位置 { longitude, latitude, height? }
labelstring新标注
colorstring新颜色
scalenumber新缩放
showboolean可见性

removeEntity

按 ID 移除单个实体。

参数类型必填默认值说明
entityIdstring要移除的实体 ID

图层

addGeoJsonLayer

加载 GeoJSON 数据作为图层。

参数类型必填默认值说明
dataobjectGeoJSON FeatureCollection
idstring自动图层 ID
namestring显示名称
styleobject样式配置(color, opacity, pointSize, choropleth, category)

listLayers

列出当前所有图层。无参数。

返回: [{ id, name, type, visible, color }]

removeLayer

按 ID 移除图层。

参数类型必填默认值说明
idstring图层 ID

setLayerVisibility

切换图层可见性。

参数类型必填默认值说明
idstring图层 ID
visibleboolean是否可见

updateLayerStyle

修改图层样式。

参数类型必填默认值说明
layerIdstring图层 ID
labelStyleobject标注样式(font, fillColor, outlineColor, outlineWidth, scale)
layerStyleobject图层样式(color, opacity, strokeWidth, pointSize)

setBasemap

切换底图影像。

参数类型必填默认值说明
basemapstring"dark" | "satellite" | "standard"

相机

lookAtTransform

环绕式相机注视目标位置。

参数类型必填默认值说明
longitudenumber目标经度
latitudenumber目标纬度
heightnumber0目标高度(米)
headingnumber0相机航向角(度)
pitchnumber-45相机俯仰角(度)
rangenumber1000距目标距离(米)

startOrbit

开始相机环绕旋转。

参数类型必填默认值说明
speednumber0.005旋转速度(弧度/帧)
clockwisebooleantrue旋转方向

stopOrbit

停止环绕动画。无参数。

setCameraOptions

配置相机控制器选项。

参数类型必填默认值说明
enableRotateboolean启用旋转
enableTranslateboolean启用平移
enableZoomboolean启用缩放
enableTiltboolean启用倾斜
enableLookboolean启用环视
minimumZoomDistancenumber最小缩放距离(米)
maximumZoomDistancenumber最大缩放距离(米)
enableInputsboolean启用/禁用所有输入

扩展实体类型

addBillboard

在指定位置添加图片图标。

参数类型必填默认值说明
longitudenumber经度
latitudenumber纬度
heightnumber0高度(米)
imagestring图片 URL
namestring名称
scalenumber1.0缩放
colorColorInput着色
pixelOffset{x, y}像素偏移
heightReferencestring"NONE" | "CLAMP_TO_GROUND" | "RELATIVE_TO_GROUND"

addBox

添加 3D 盒体。

参数类型必填默认值说明
longitudenumber经度
latitudenumber纬度
heightnumber0高度(米)
dimensionsobject尺寸 { width, length, height }(米)
namestring名称
materialMaterialInput材质
outlinebooleantrue显示轮廓
outlineColorColorInput轮廓颜色
fillbooleantrue显示填充
orientationobject方向 { heading, pitch, roll }(度)

addCorridor

添加走廊(带宽度的路径)。

参数类型必填默认值说明
positionsPositionDegrees[]位置数组 [{ longitude, latitude, height? }]
widthnumber宽度(米)
namestring名称
materialMaterialInput材质
cornerTypestring"ROUNDED" | "MITERED" | "BEVELED"
heightnumber离地高度
extrudedHeightnumber拉伸高度

addCylinder

添加圆柱体或圆锥体。

参数类型必填默认值说明
longitudenumber经度
latitudenumber纬度
heightnumber0高度(米)
lengthnumber柱体高度(米)
topRadiusnumber顶部半径(米)
bottomRadiusnumber底部半径(米)
namestring名称
materialMaterialInput材质
outlinebooleantrue显示轮廓
slicesnumber128切片数

addEllipse

添加椭圆。

参数类型必填默认值说明
longitudenumber中心经度
latitudenumber中心纬度
heightnumber0高度(米)
semiMajorAxisnumber长半轴(米)
semiMinorAxisnumber短半轴(米)
namestring名称
materialMaterialInput材质
extrudedHeightnumber拉伸高度
rotationnumber旋转角(弧度)
outlineboolean显示轮廓

addRectangle

添加矩形。

参数类型必填默认值说明
westnumber西边界经度
southnumber南边界纬度
eastnumber东边界经度
northnumber北边界纬度
namestring名称
materialMaterialInput材质
heightnumber高度
extrudedHeightnumber拉伸高度
outlineboolean显示轮廓

addWall

沿路径添加墙体。

参数类型必填默认值说明
positionsPositionDegrees[]位置数组 [{ longitude, latitude, height? }]
namestring名称
minimumHeightsnumber[]各位置最小高度
maximumHeightsnumber[]各位置最大高度
materialMaterialInput材质
outlineboolean显示轮廓

动画

createAnimation

创建基于时间的路径动画(实体沿路径移动)。

参数类型必填默认值说明
waypointsobject[][{ longitude, latitude, height?, time }],time 为 ISO 8601
namestring动画名称
modelUristringglTF URL 或预设:cesium_man, cesium_air, ground_vehicle, cesium_drone
showPathbooleantrue显示轨迹线
pathWidthnumber2轨迹宽度(像素)
pathColorstring"#00FF00"轨迹颜色
pathLeadTimenumber0前导时间(秒)
pathTrailTimenumber1e10尾迹时间(秒)
multipliernumber1时钟倍速
shouldAnimatebooleantrue自动开始

controlAnimation

播放或暂停动画。

参数类型必填默认值说明
actionstring"play" | "pause"

removeAnimation

删除动画实体。

参数类型必填默认值说明
entityIdstring要删除的动画实体 ID

listAnimations

列出所有活跃动画。无参数。

返回: [{ entityId, name?, startTime, stopTime, exists }]

updateAnimationPath

更新动画路径的可视属性。

参数类型必填默认值说明
entityIdstring动画实体 ID
widthnumber路径宽度(像素)
colorstring路径颜色
leadTimenumber前导时间(秒)
trailTimenumber尾迹时间(秒)
showboolean显示/隐藏路径

trackEntity

相机追踪实体,或停止追踪。

参数类型必填默认值说明
entityIdstring要追踪的实体 ID(省略则停止追踪)
headingnumber相机航向角(度)
pitchnumber-30相机俯仰角(度)
rangenumber500相机距离(米)

controlClock

配置 Cesium 时钟。

参数类型必填默认值说明
actionstring"configure" | "setTime" | "setMultiplier"
startTimestringISO 8601 开始时间
stopTimestringISO 8601 结束时间
currentTimestringISO 8601 当前时间
timestring跳转时间(用于 setTime)
multipliernumber时钟倍速
shouldAnimateboolean是否播放
clockRangestring"UNBOUNDED" | "CLAMPED" | "LOOP_STOP"

setGlobeLighting

启用/禁用地球光照和大气效果。

参数类型必填默认值说明
enableLightingboolean启用地球光照
dynamicAtmosphereLightingboolean动态大气光照
dynamicAtmosphereLightingFromSunboolean使用太阳位置计算大气光照

3D 数据

load3dTiles

加载 3D Tileset(建筑白膜、城市模型等)。

参数类型必填默认值说明
urlstringtileset.json URL
idstring自动图层 ID
namestring显示名称
maximumScreenSpaceErrornumber16最大屏幕空间误差(值越小越精细)
heightOffsetnumber高度偏移(米)

loadTerrain

设置地形提供者。

参数类型必填默认值说明
providerstring"flat" | "arcgis" | "cesiumion"
urlstring自定义地形服务 URL
cesiumIonAssetIdnumberCesium Ion 资产 ID

loadImageryService

添加影像服务图层。

参数类型必填默认值说明
urlstring影像服务 URL
serviceTypestring"wms" | "wmts" | "xyz" | "arcgis_mapserver"
idstring自动图层 ID
namestring显示名称
layerNamestringWMS/WMTS 图层名
opacitynumber1.0透明度(0–1)

交互

screenshot

截取当前地球视图。无参数。

返回: Base64 PNG 图片(MCP image 内容类型)。

highlight

高亮指定图层的要素。

参数类型必填默认值说明
layerIdstring图层 ID
featureIndexnumber要素索引(省略则高亮全部)
colorstring"#FFFF00"高亮颜色

其他

playTrajectory trajectory

沿路径播放动画。

参数类型必填默认值说明
coordinatesnumber[][]路径坐标 [[lon, lat, alt?], ...]
idstring自动轨迹图层 ID
namestring名称
durationSecondsnumber10动画时长(秒)
trailSecondsnumber2尾迹长度(秒)
labelstring移动体标签

addHeatmap heatmap

从点数据创建热力图。

参数类型必填默认值说明
dataobjectGeoJSON Point FeatureCollection
radiusnumber30影响半径(像素)

MCP 资源(2 个)

URI描述
cesium://scene/camera当前相机状态(位置、方向)
cesium://scene/layers所有已加载图层及其元数据列表

资源为只读,AI 智能体可轮询获取以进行上下文感知决策。

环境变量

变量默认值描述
CESIUM_WS_PORT9100Bridge 连接的 WebSocket 服务器端口
DEFAULT_SESSION_IDdefaultMCP 调用路由到哪个浏览器会话
CESIUM_TOOLSETS(未设置)工具集激活:省略使用默认集,all 启用全部,或逗号分隔列表

会话路由

多个浏览器标签页可同时连接。每个 Bridge 实例使用 sessionId 注册:

标签页 1:sessionId = "project-a"
标签页 2:sessionId = "project-b"

Runtime 将 MCP 工具调用路由到匹配 DEFAULT_SESSION_ID 的会话。

HTTP Push API

对于非 MCP 集成(如 FastAPI 后端),Runtime 暴露 HTTP 端点:

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}}'

公共类型

ColorInput

typescript
type ColorInput =
  | string                        // CSS 颜色:"#FF0000"、"red"、"rgba(255,0,0,0.5)"
  | { red: number; green: number; blue: number; alpha?: number }  // RGBA 0–1

MaterialInput

typescript
type MaterialInput =
  | ColorInput
  | {
      type: "color" | "image" | "checkerboard" | "stripe" | "grid"
      color?: ColorInput
      image?: string
      evenColor?: ColorInput
      oddColor?: ColorInput
      orientation?: "horizontal" | "vertical"
      cellAlpha?: number
    }

PositionDegrees

typescript
type PositionDegrees = {
  longitude: number   // 度
  latitude: number    // 度
  height?: number     // 米
}

Released under the MIT License.