Skip to content

cesium-mcp-bridge ​

浏览器 SDK — 嵌入到 CesiumJS 应用中,通过 WebSocket 接收命令。

npm

安装 ​

bash
npm install cesium-mcp-bridge

Peer 依赖:cesium@~1.143.0 || ~1.145.0

初始化 ​

js
import { CesiumBridge } from 'cesium-mcp-bridge'

const viewer = new Cesium.Viewer('cesiumContainer')
const bridge = new CesiumBridge(viewer)

JSON 命令在执行前会使用共享工具契约校验参数。可以只覆盖一个 Executor,其余命令继续使用默认实现:

js
const bridge = new CesiumBridge(viewer, {
  executors: {
    load3dTiles: async (params, bridge) => {
      return loadAuthorizedTileset(bridge.viewer, params)
    },
  },
})

JSON 命令分发会在执行前校验共享输入契约,并在执行后校验输出契约。确实需要扩展返回结构的自定义集成可设置 validateOutputs: false;输入侧也保留 validateInputs: false 兼容开关。

全部 60 个浏览器安全 Executor 已按领域组织,并与共享契约进行完整性校验。公开的 execute() 和单命令覆盖契约保持不变;敏感的 setIonToken 兼容命令不会进入共享 AI 工具面。

集成卸载时调用 bridge.dispose()。它会取消相机飞行和待完成截图,释放 Bridge 管理的动画、页面状态、Cesium 对象引用、Executor 和事件处理器,但不会销毁应用拥有的 Viewer 或场景内容。重复调用是安全的;销毁后的 execute() 会返回已销毁错误。

命令(60 个) ​

视图控制 ​

命令描述关键参数
flyTo相机飞行动画到指定位置longitude, latitude, height, heading, pitch, roll, duration
setView立即设置相机位置longitude, latitude, height, heading, pitch, roll
getView获取当前相机状态—
zoomToExtent缩放到地理范围west, south, east, north
saveViewpoint保存当前视角为命名书签name
loadViewpoint恢复已保存的视点书签name, duration
listViewpoints列出所有视点书签—
exportScene导出场景为结构化 JSON 快照—

实体 ​

命令描述关键参数
addMarker添加点标记longitude, latitude, label, color, size
addLabel添加文字标注data, field, style
addPolyline添加折线(路径/线段)coordinates, color, width, clampToGround
addPolygon添加多边形区域coordinates, color, outlineColor, opacity, extrudedHeight
addModel放置 3D 模型 (glTF/GLB)longitude, latitude, url, scale, heading, pitch, roll
updateEntity更新实体属性entityId, position, color, label, scale, show
removeEntity移除单个实体entityId
batchAddEntities批量添加多个实体entities(类型化定义数组)
queryEntities搜索/筛选场景中的实体name, type, bbox
getEntityProperties获取实体的所有属性entityId

图层管理 ​

命令描述关键参数
addGeoJsonLayer加载 GeoJSON 数据url 或 data, name, style
addGeoJsonPrimitive使用 Primitive 加载大规模 GeoJSONurl 或 data, name, allowPicking
listLayers列出所有已加载图层—
removeLayer按 ID 移除图层layerId
clearAll移除所有图层、实体和数据源—
setLayerVisibility显示/隐藏图层layerId, visible
updateLayerStyle修改图层样式layerId, layerStyle, imageryStyle, primitiveStyle, tileStyle
getLayerSchema获取图层属性字段结构layerId
setBasemap切换底图影像provider, url

高级相机 ​

命令描述关键参数
lookAtTransform环绕式相机注视longitude, latitude, height, heading, pitch, range
startOrbit开始相机环绕旋转speed, direction
stopOrbit停止环绕动画—
setCameraOptions配置相机控制器enableRotate, enableZoom, enableTilt

扩展实体类型 ​

命令描述关键参数
addBillboard添加图片图标longitude, latitude, image, scale
addBox添加 3D 盒体position, dimensions, material
addCorridor添加走廊positions, width, material
addCylinder添加圆柱体/圆锥体position, length, topRadius, bottomRadius
addEllipse添加椭圆position, semiMajorAxis, semiMinorAxis
addRectangle添加矩形west, south, east, north, material
addWall添加墙体positions, maximumHeights, minimumHeights

动画 ​

命令描述关键参数
createAnimation创建路径动画entityId, waypoints, model
controlAnimation播放/暂停动画entityId, action
removeAnimation删除动画实体entityId
listAnimations列出活跃动画—
updateAnimationPath更新路径可视属性entityId, show, width, color
trackEntity相机追踪实体entityId
controlClock配置时钟startTime, stopTime, multiplier
setGlobeLighting地球光照控制enableLighting, enableFog

3D 场景 ​

命令描述关键参数
load3dTiles加载 3D Tileseturl 或 ionAssetId, name, maximumScreenSpaceError
load3dGaussianSplat加载 3D 高斯泼溅数据集url, name, maximumScreenSpaceError
loadTerrain设置地形提供者url, provider
loadImageryService添加影像图层url/serviceType 或 ionAssetId, name
loadCzml加载 CZML 时间动态数据data 或 url, name
loadKml加载 KML/KMZ 数据data 或 url, name
setEdgeDisplayMode设置 3D Tiles 表面/边缘显示模式tilesetId, mode

交互 ​

命令描述关键参数
screenshot截取当前视图width, height, format
highlight高亮要素layerId, featureId, color
measure测量距离或面积type, coordinates

其他 ​

命令描述关键参数
playTrajectory沿路径播放动画positions, duration, loop
addHeatmap创建热力图可视化points, name, radius, gradient

场景 ​

命令描述关键参数
setSceneOptions配置场景环境fogEnabled, shadowsEnabled, sunShow, backgroundColor
setPostProcess配置后处理效果bloom, ambientOcclusion, fxaa

两种调用方式 ​

方式一:类型安全方法 ​

typescript
const result = await bridge.flyTo({
  longitude: 116.4,
  latitude: 39.9,
  height: 5000,
  duration: 2,
})

方式二:JSON 命令分发 ​

typescript
const result = await bridge.execute({
  action: 'flyTo',
  params: {
    longitude: 116.4,
    latitude: 39.9,
    height: 5000,
    duration: 2,
  },
})

事件 ​

typescript
bridge.on('layerAdded', (layer) => console.log('图层已添加:', layer))
bridge.on('layerRemoved', (layerId) => console.log('已移除:', layerId))
bridge.on('error', (err) => console.error('Bridge 错误:', err))

TypeScript 类型 ​

typescript
import type {
  BridgeCommand,
  BridgeResult,
  FlyToParams,
  SetViewParams,
  AddGeoJsonLayerParams,
  AddHeatmapParams,
  Load3dTilesParams,
  PlayTrajectoryParams,
  LayerInfo,
  HighlightParams,
  // 相机
  LookAtTransformParams,
  StartOrbitParams,
  SetCameraOptionsParams,
  // 扩展实体类型
  AddBillboardParams,
  AddBoxParams,
  AddCorridorParams,
  AddCylinderParams,
  AddEllipseParams,
  AddRectangleParams,
  AddWallParams,
  MaterialSpec,
  MaterialInput,
  OrientationInput,
  PositionDegrees,
  // 动画
  CreateAnimationParams,
  ControlAnimationParams,
  RemoveAnimationParams,
  UpdateAnimationPathParams,
  TrackEntityParams,
  ControlClockParams,
  SetGlobeLightingParams,
  AnimationWaypoint,
  AnimationInfo,
  // 图层 Schema 与样式
  GetLayerSchemaParams,
  LayerSchemaResult,
  LayerSchemaField,
  UpdateLayerStyleParams,
  // 场景
  SetSceneOptionsParams,
  SetPostProcessParams,
  // 数据格式
  LoadCzmlParams,
  LoadKmlParams,
  // 交互
  MeasureParams,
} from 'cesium-mcp-bridge'

Released under the MIT License.