mcpField
G
Godot MCP

Godot MCP

ローカル
github.com開発ツール1826 週間前に更新

Godot MCP について

Godot MCP は、Godot エディターと実行中のゲームを対象とした MCP サーバーです。AI アシスタントがエディターを操作し、入力を注入して、ゲームの挙動をフレーム単位で検証できます。Godot 4.5 以降を使う開発者に向けられ、シーンノードの編集だけでなく、エージェントが自身の変更を実際のプレイで確かめることに重点を置いています。

主な機能

  1. 01決定的なゲーム時間の停止と段階的な進行
  2. 02構造化されたライブゲーム状態の取得
  3. 03名前付きアクションと生キー入力の注入
  4. 04実行中ゲーム内での GDScript 実行
  5. 05エディターのシーン、ノード、リソースの読み書き
  6. 06プロファイリングとプロシージャルメッシュの検証

活用シーン

  1. 01キャラクターが壁をすり抜ける不具合の再現と原因調査
  2. 02ウェーブ出現後のすべての敵の位置と速度の取得
  3. 03ゲームプレイ中のフレームスパイクの原因分析

MCP 対応

本プロジェクトは、21 個のツール(計 86 アクション)を MCP クライアントに公開する MCP サーバーです。ローカルの WebSocket で Godot エディターのアドオンと通信し、Godot のデバッガープロトコルを通じて実行中のゲームに接続します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"satelliteoflove-godot": {
"command": "npx",
"args": [
"-y",
"@satelliteoflove/godot-mcp"
],
"env": {
"GODOT_HOST": "<GODOT_HOST>",
"GODOT_MCP_READ_ONLY": "<GODOT_MCP_READ_ONLY>"
}
}
}
}
起動コマンドnpx -y @satelliteoflove/godot-mcp
設定が必要な環境変数
GODOT_HOSTOverride the host used to reach the Godot editor bridge (e.g. for WSL2 or remote setups). Auto-detected when unset.
GODOT_MCP_READ_ONLYSet to 1 (or true) to register only read-only observation tools: no scene/node/animation edits, no game control, no input injection. Same as the --read-only flag.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@satelliteoflove/godot-mcp4.1.11

ツール

21

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
actionenumはいopen:シーンファイルを開きます save:現在アクティブなシーンをそのファイルに保存します。reset_on_save に従い、RESET アニメーションを持つプレイヤーはプレビュー中の姿勢ではなく、初期姿勢で書き込まれます。 reload:開いているシーンをディスクから再読み込みし、エディター内の未保存のコピーを破棄します。.tscn ファイルを直接編集した後、完全な再起動なしでエディターを更新するために使用します。シーンがすでに開かれている必要があります。open | save | reload
scene_pathstringいいえopen の場合:開くシーンファイルのパス。save の場合:アクティブなシーンのファイルと一致する必要があります(デフォルトはそのファイル)。まだファイルのないシーンは新しいパスに保存できます。別のシーンを指定すると、アクティブなタブの内容で上書きせずに拒否されます(SCENE_MISMATCH)。reload の場合:再読み込みする開いているシーンのパス(デフォルトは現在のシーン)(必須:open、任意:save、reload)

詳細

godot-mcp

npm version CI Godot 4.5+ Node 20+ License: MIT

AI アシスタントに Godot エディターで目と手を与え、実際にプレイテストできる実行中のゲームを操作できるようにします。

この MCP サーバーの特徴

Godot MCP サーバーはいくつかあり、そのほとんどはシーンを開いてノードを操作できます。このサーバーは、より難しい課題、つまりエージェントが自分の作業を検証できるようにすることを中心に構築されています。ゲームを実行し、プレイヤーのように操作し、実際に何が起きたかを観察して、変更が主張どおりの効果をもたらしたことを確かめます。スクリーンショットやエラーログをあなたが何度もやり取りして渡す必要はありません。

それを可能にする、ほかでは見られない機能は次のとおりです。

  • 決定論的なプレイテスト。 ゲームの時計を停止し、正確なゲーム時間の分だけ進めます(または、条件が満たされるまで進めます)。その間に入力を与えることもできます。観察中にゲームが先に進むことはありません。
  • 低コストな観察。 エンティティの状態(位置、速度、アニメーション状態、独自のカスタムデータなど)を、構造化された JSON としてリアルタイムに取得できます。「画面上で何が起きているか」という質問のほとんどは、スクリーンショットにビジョントークンを使わずに回答できます。
  • 実際の入力。 アナログ強度付きの名前付きアクション、ゲームパッドのボタンやスティックのベクトル、修飾キーの組み合わせを含む生のキー入力、相対的なマウス視点操作、テキスト入力に対応しています。入力シーケンスは正確なタイミングで実行でき、ゲームの状態を変化させたことも検証できます。
  • シナリオのセットアップ。 実行中のゲーム内で GDScript を実行できます。武器を付与する、ウェーブ 3 までスキップする、テスト用ボットをスポーンさせる、といった操作を、ゲームコードにデバッグ用フックを組み込まずに行えます。

エージェントがボス戦をテストする場合の動作例を紹介します。

godot_editor_edit   run frozen=true           # boot with game time frozen at frame 0
godot_exec          GameState.wave = 3        # set up the scenario worth testing
godot_game_time     step_until "tree.get_nodes_in_group('boss').size() >= 1"
godot_runtime_state digest                    # exact positions and state — no pixels, no guessing
godot_game_time     step 500ms + dodge input  # play the moment that matters
godot_editor_read   screenshot_game           # and a screenshot when it's actually worth the tokens

コピー&ペーストを減らして、創作に集中しましょう。

クイックスタート

1. AI アシスタントを設定する

godot-mcp を MCP クライアントに追加します。設定例については、インストールガイド(Claude Desktop、Claude Code、VSCode/Copilot など)をご覧ください。簡単な手順は次のとおりです。

{
  "mcpServers": {
    "godot-mcp": {
      "command": "npx",
      "args": ["-y", "@satelliteoflove/godot-mcp"]
    }
  }
}
2. Godot アドオンをインストールする
npx @satelliteoflove/godot-mcp --install-addon /path/to/your/godot/project

Godot で有効にします:プロジェクト > プロジェクト設定 > プラグイン > Godot MCP

3. 開発を始める

Godot プロジェクトを開き、AI アシスタントを再起動して、開発を始めましょう。接続できない場合は、トラブルシューティングガイドをご覧ください。

含まれる内容

21 個のツール、86 個のアクションを収録しています。API のドキュメント全文はツールリファレンスをご覧ください。

ツール機能
godot_sceneシーンを開いて保存します(.tscn を直接記述してから開くことで、新しいシーンを作成できます)
godot_node_read / godot_node_edit有効なプロパティ、インスタンス化されたサブシーンを含むシーンツリー全体を調べ、ノードを検索します。プロパティの更新や親の変更もできます
godot_editor_read / godot_editor_editエディターの状態、選択項目、スクリーンショット、エディターのエラーログを確認します。実行/停止/再起動や 2D ビューポートの制御もできます
godot_projectプロジェクト情報、設定、アドオンのバージョンの不一致、古い設定の検出を行います
godot_animation_read / godot_animation_editキーフレームまでアニメーションを照会します。トラックとキーフレームを作成し、エディターですぐにプレビューできます
godot_tilemap_read / godot_tilemap_editTileMapLayer のセルを読み取り、編集します(.tscn 内では base64 エンコードされており、ブリッジを使う方法が唯一の手段です)
godot_gridmap_read / godot_gridmap_editGridMap のセルを読み取り、編集します。同様の仕組みです
godot_resource型に応じた形式でリソースを調べます。SpriteFrames、TileSet、マテリアル、テクスチャに対応しています
godot_scene3d空間的な推論に役立つ、エンジンが計算した 3D トランスフォーム、境界ボックス、可視性を取得します
godot_docsエディターのバージョンに一致する Godot ドキュメントを、整形された Markdown として取得します
godot_input実行中のゲームに入力を送ります。アクション、ゲームパッド、キー入力、マウス視点操作、テキストに対応しています
godot_profilerメトリクスのスナップショットとフレームごとの時系列データを取得し、スパイクを検出します
godot_runtime_state実行中のゲームの状態を JSON で取得します。単発のダイジェスト、監視ウィンドウ、シグナルのタイムラインに対応しています
godot_game_timeゲームクロックの停止、ステップ実行、条件を満たすまでのステップ実行を行い、決定論的に状態を観察します
godot_exec実行中のゲーム内で GDScript を実行し、テストシナリオをセットアップします
godot_validate_meshesライティングの不具合に見せかける、破損したプロシージャルメッシュデータを検出します

ツールの構成について:ツールは読み取りと書き込みの境界で分かれているため、すべての godot_*_read ツール(およびその他の読み取り専用ツール)は、クライアントの権限設定で安全に自動許可でき、書き込みは制限されたままです。関連する操作は引き続き 1 つのツール内のアクションとしてまとめられているため、エージェントのコンテキストが使わない定義であふれることはありません。シーンやノードの作成、スクリプトのアタッチ、シグナルの接続など、プロジェクトファイルを直接編集すればエージェントが実行できる操作は、意図的にツールとして重複して提供していません。このブリッジが対応するのは、ファイルでは扱えないエディターの状態、検証、バイナリ形式でエンコードされたセルデータ、実行中のゲームです。--read-only フラグを使えば、変更せずに確認する用途にも対応できます。

依頼の例

エージェントにできることを、自然なプロンプトでいくつか紹介します。

  • 「ゲームを実行してタイトル画面のスクリーンショットを撮ってください。1280x720 でもレイアウトは崩れませんか?」
  • 「プレイヤーが東側の壁をすり抜けます。再現してからコリジョン形状を調べ、原因を教えてください。」
  • 「第 2 ウェーブが出現するまでゲームをステップ実行し、敵全員の位置と速度を教えてください。」
  • 「左スティックを半分倒した状態で 2 秒間維持してください。歩行アニメーションは正しくブレンドされますか?」
  • 「ゲームプレイを 10 秒間プロファイルして、フレームのスパイクの原因を探してください。」
  • 「Player にヒット時のフラッシュアニメーションを追加してください。0.2 秒かけて赤く変化させ、元に戻します。」

実行時の状態をより詳しく観察するには、主要なノードを mcp_watch グループに追加するか、ノードに _mcp_state() メソッドを定義してください。実行時状態ガイドをご覧ください。

仕組み

┌─────────────────┐   stdio    ┌─────────────────┐  WebSocket   ┌──────────────────┐  debugger   ┌──────────────┐
│   MCP client    │ ◄────────► │  godot-mcp      │ ◄──────────► │  Bridge addon    │ ◄─────────► │ Running game │
│ (Claude, etc.)  │            │  server (Node)  │   :6550      │  (Godot editor)  │    wire     │  (autoload)  │
└─────────────────┘            └─────────────────┘              └──────────────────┘             └──────────────┘

サーバーはローカル WebSocket 経由でエディターアドオンと通信し、アドオンは Godot 独自のデバッガープロトコルを通じて実行中のゲームにアクセスするため、ゲームプロセスに追加のポートや設定は必要ありません。アドオンはデフォルトで 127.0.0.1 にバインドします。WSL2 は完全にサポートされています(自動検出、ホスト IP の検出、設定可能なバインドモード)。詳しくはインストールガイドをご覧ください。

接続のライフサイクル、単一クライアントのポリシー、または内部での時間停止ステップ実行の仕組みが気になりますか?アーキテクチャガイドで詳しく説明しています。

minimal-godot-mcp との併用に最適

@ryanmazzolini による minimal-godot-mcp は、このサーバーがカバーしない機能を正確に補います。高速な静的 GDScript チェックのための LSP 診断と、DAP 経由での実行中ゲームのコンソール出力です。このサーバーはエディターブリッジが必要なすべてをカバーします。重複も競合もありません。両方を実行すれば、エージェントは静的解析とゲームコンソールに加えて、エディターとランタイムを完全に制御できます。

注意点が 1 つあります。Godot エディターが一度に提供できる godot-mcp クライアントは 1 つだけです(たとえば、MCP 設定を継承したサブエージェントなどの)追加クライアントは、セッションを横取りせずに順番を待ちます。詳しくはトラブルシューティングをご覧ください。

ドキュメント

要件

  • Godot 4.5+(アドオンは 4.5 で導入された Logger クラスを使用します)
  • Node.js 20+
  • stdio に対応した任意の MCP クライアント

開発

cd server
npm install && npm run build
npm test                # unit + schema-snapshot tests
npm run test:protocol   # wire-level smoke of the built server
npm run generate-docs

エージェント評価ハーネス(npm run eval)もあります。実際のプロジェクトに対して、ヘッドレス Claude Code で現実的なタスクを実行します。詳しくはserver/evals/README.mdをご覧ください。Godot は起動しません。エディターを開いておいてください。

コントリビューションを歓迎します。このプロジェクトでは、現実の時間を浪費する問題を解決するツールを重視しています。大規模なものを作る前にCONTRIBUTING.mdをお読みいただくか、issue を開いて、適切な形を一緒に検討しましょう。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。