/ ディレクトリ / プレイグラウンド / Cesium MCP
● コミュニティ gaopengbin 🔑 自分のキーが必要

Cesium MCP

作者 gaopengbin · gaopengbin/cesium-mcp

CesiumJS 3D グローブに対する自然言語制御 — カメラの飛行、エンティティのドロップ、レイヤーの切り替え、3D タイルのロード、軌跡のアニメーション化。

cesium-mcp を使用すると、MCP クライアントが既存の CesiumJS ビューアを駆動できるようになります。 12 のツールセットにわたる 58 のツールは、カメラ/ビュー ナビゲーション、エンティティ (マーカー、ラベル、モデル、ポリゴン、ポリライン)、レイヤー (GeoJSON、ベースマップ)、インタラクション (スクリーンショット、ハイライト、測定)、および高度な機能 (3D タイル、地形、アニメーション、軌跡、ヒートマップ、地理位置情報) をカバーします。 Core 31 ツールはデフォルトでアクティブになります。 フルスイートに対して「CESIUM_TOOLSETS=all」を設定します。 CesiumJS を組み込んだアプリと組み合わせて、AI 主導の地理空間視覚化を実現します。

なぜ使うのか

主な機能

ライブデモ

実際の動作

cesium-mcp.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "cesium-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cesium-mcp-runtime"
      ],
      "env": {
        "CESIUM_TOOLSETS": "all"
      }
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "cesium-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cesium-mcp-runtime"
      ],
      "env": {
        "CESIUM_TOOLSETS": "all"
      }
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "cesium-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cesium-mcp-runtime"
      ],
      "env": {
        "CESIUM_TOOLSETS": "all"
      }
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "cesium-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cesium-mcp-runtime"
      ],
      "env": {
        "CESIUM_TOOLSETS": "all"
      }
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "cesium-mcp",
      "command": "npx",
      "args": [
        "-y",
        "cesium-mcp-runtime"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "cesium-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "cesium-mcp-runtime"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add cesium-mcp -- npx -y cesium-mcp-runtime

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: Cesium MCP

ライブ地球儀で場所のブリーフィングを飛行する

👤 運用、物流、計画チーム ⏱ ~15 min intermediate

使うタイミング: 静的なスライドではなく、ライブの 3D ブリーフィングが必要です。

前提条件
  • 実行中の CesiumJS ビューア アプリ — セシウムをアプリに埋め込みます。 コネクタを露出させる
  • セシウム イオン アクセス トークン (イオン アセットを使用する場合) — https://ion.cesium.com/tokens
フロー
  1. 現場へ飛ぶ
    エッフェル塔に飛んで、「サイト A」と書かれた赤いマーカーを落とします。✓ コピーしました
    → カメラがアニメーションします。 マーカーがラベルとともに表示されます
  2. オーバーレイデータ
    近隣境界のこの GeoJSON を半透明レイヤーとして読み込みます。✓ コピーしました
    → レイヤーが表示され、インタラクティブになる
  3. 捕獲
    スライドに貼り付けることができるスクリーンショットを撮ります。✓ コピーしました
    → PNG が返されました

結果: 凍結された画像ではなく、リンク可能なライブのブリーフィング ビュー。

注意点
  • 単純化せずに巨大な GeoJSON をロードする — 合理的な頂点数に単純化します。 セシウムは百万頂点のポリゴンで窒息する可能性がある
組み合わせ: filesystem

時間の経過に伴う艦隊の軌跡をアニメーション化する

👤 運用チームとモビリティチーム ⏱ ~25 min intermediate

使うタイミング: タイムスタンプ付きの位置があり、地球上で再生したいと考えています。

前提条件
  • タイムコード化された位置データ — タイムスタンプ付きの CSV または GeoJSON
フロー
  1. 時間をかけてエンティティをロードする
    フリート.csv から、SampledPositionProperty トラックを含む 3 つの車両エンティティを追加します。✓ コピーしました
    → エンティティはレンダリングします。 タイムラインにはスパンが表示されます
  2. 遊ぶ
    10 倍でアニメーション化し、カメラは車両 A を追跡します。✓ コピーしました
    → スムーズな再生。 カメラが被写体にロックされている

結果: Cesium コードを書かずにインタラクティブなフリート再生。

3D タイル データセットを読み込み、単一の建物を検査する

👤 都市計画、AEC、BIM チーム ⏱ ~20 min advanced

使うタイミング: 3D タイル タイルセットがあり、フィーチャをクエリしたいとします。

フロー
  1. タイルセットをロードする
    <URL> で 3D タイルをロードし、地形の方向を調整し、最大画面スペース エラー 16 を設定します。✓ コピーしました
    → タイルセットは深度を考慮せずにレンダリングします
  2. ハイライト + 測定
    選択したエンティティの建物を強調表示します。 その高さを測ります。✓ コピーしました
    → 建物が強調表示されます。 報告された身長

結果: 関係者によるレビューのための迅速な対話型検査。

注意点
  • カメラが地形をクリッピングしている — 地形に対する深度テストを有効にします。 近く/遠いクリップを調整する

ポイント データのヒートマップをオーバーレイする

👤 アナリストによる密度の可視化 ⏱ ~15 min intermediate

使うタイミング: 外部のプロット ツールを使用せずにマップ上にヒートマップが必要です。

フロー
  1. ポイントの摂取
    Points.csv (経度、緯度、体重) をインポートします。✓ コピーしました
    → ヒートマップ ツールセットにロードされたポイント
  2. 外観を調整する
    ヒートマップ半径 25 ピクセル、グラデーション viridis。✓ コピーしました
    → スタイル付きオーバーレイが表示される

結果: 防御可能なヒートマップがグローブに組み込まれています。

組み合わせ: mcp-echarts

組み合わせ

他のMCPと組み合わせて10倍の力を

cesium-mcp + filesystem

ローカル データセット (GeoJSON、CSV) を読み込み、地球上にレンダリングします

./data/points.csv を開き、グローブ上のヒートマップとしてインポートします。✓ コピーしました
cesium-mcp + mcp-echarts

3D 地球儀と古典的な統計グラフを組み合わせる

セシウム密度マップ + echarts ヒストグラム (側面) - 同期フィルター。✓ コピーしました
cesium-mcp + fetch

ライブ フィード (AIS、ADS-B) を取得してアニメーション化する

ライブ船舶の位置を取得し、30 秒ごとにエンティティを更新します。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
camera.flyTo / lookAt / saveView / loadView coords / heading / pitch / roll カメラナビゲーション 0
entities.add / update / remove geometry + styling マーカー、ラベル、モデル、ポリゴン、ポリライン 0
layers.add (GeoJSON / imagery) / toggle source + style 地理空間レイヤーの切り替えまたは追加 bandwidth for remote sources
tiles3d.load / query tileset URL 3D タイルのレンダリングと特徴の選択 0
terrain.set terrain provider 地形プロバイダーを交換する 0
animation.play / trajectory.load time interval / track 時間ベースの再生 0
interaction.screenshot / highlight / measure area or picked entity 捕捉、選択、測定 0
heatmap.add points + radius + gradient 密度の可視化 0
geolocation.goto name or coords 地名ナビゲーション 0

コストと制限

運用コスト

APIクォータ
サーバー自体には何もありません。 イオン資産を使用する場合、セシウム イオン トークンには独自の割り当てがあります
呼び出しあたりのトークン
小規模な作戦。 3D タイル / 画像バイトがトークン数に含まれていない
金額
無料 — Cesium はオープンソースです
ヒント
特に拡張セットが必要でない限り、デフォルトの 31 個のコア ツールを使用してください。 シンプルな路面 = 間違ったターンが少なくなります。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: 環境変数内のセシウム イオン トークン (使用されている場合)。
データ送信先: 構成した画像/地形プロバイダー (Ion、MapBox、カスタム タイル サーバー) にフェッチします。

トラブルシューティング

よくあるエラーと対処法

カメラはターゲットではなく空間にジャンプします

緯度/経度の順序 (セシウムは経度、緯度を使用します) と高度の値を確認します。

確認: Log args passed to camera.flyTo
GeoJSON は平らに見えます

地形サンプリングはオフです。 レイヤーオプションでclampToGroundを有効にします。

確認: Inspect the layer's styling options
タイルセット ブラック / 欠品

CORS は多くのタイルセットをブロックします。 適切なヘッダーを持つホストまたはプロキシ。

確認: DevTools Network panel for the tileset URL

代替案

Cesium MCP 他との比較

代替案代わりに使う場面トレードオフ
google-maps2D マップと Places API で十分です3D グローブまたは 3D タイルはありません
google-mapすでに Google マップ インフラにアクセスしていますセシウムほど 3D リッチではない
mcp-echartsデータは統計的なものであり、地理空間的なものではありませんマップコンテキストがありません

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る