ツール
GodotエディタでAIエージェントが使用するGodot MCPツール。ノード、シーン、リソース、C#/GDScriptスクリプト、スクリーンショット、ゲーム内ツール向けのRQLクエリを扱います。
Godot MCPには9つのファミリーに24個の組み込みツールがあります。エディタでの作業のほとんどは3つのRQLツールを通じて行われるため、エージェントはノード、シーン、リソース、ファイル、エディタ状態に対して数十個の個別ツールではなく1つのクエリ言語を使います。このページでは各ファミリーと、エージェントがそれをいつ使うかを説明します。パラメータとプロンプト例を含む検索可能な一覧はGodotツールカタログです。
ツールファミリー
| ファミリー | ツール | 用途 |
|---|---|---|
| rql | rql-query, rql-mutate, rql-schema | ライブエディタの読み取りと変更: ノード、Godotプロパティ、シーン、リソース、ファイル、プロジェクト設定、入力マップ、オートロード、グループ、シグナル、エディタ状態。 |
| script | script-read, script-create, script-update, script-delete, script-attach-to-node, script-validate, script-build, script-execute | C#およびGDScriptファイル、スクリプトのアタッチ、GDScriptの検証、C#プロジェクトのビルド、エディタ内でのC#実行。 |
| screenshot | screenshot-viewport, screenshot-camera, screenshot-isolated | エディタビューポート、カメラ、または単体でレンダリングされたノードのPNG画像。 |
| console | console-get-logs, console-clear-logs | 実行中のゲームのログ。エディタ内ではRQLのconsoleソース。 |
| reflection | reflection-method-find, reflection-method-call | 実行中のゲーム内のC#メソッドを検索して呼び出します。エディタ内ではRQL call。 |
| runtime-errors | runtime-errors-get, runtime-errors-clear | 実行中のゲーム内で発生したエラー。デフォルトではオフ。 |
| ping | ping | レディネスプローブ。システムツールのため、エージェントには表示されません。 |
| skills | godot-skill-create, godot-skill-generate | 新しいツールファイルの作成、スキルファイルの再生成。システムツール。 |
| session | session-close | godot-cliが起動したエディタを保存して終了します。システムツール。 |
システムツールはサーバーの/api/system-tools/ルート経由でアクセスし(例えばgodot-cli run-system-tool ping)、AIエージェントには一覧表示されません。console、reflection、runtime-errorsファミリーは、自分で接続した実行中のゲームに対応します。詳しくはカスタムツールを参照してください。
RQL: エディタ向けの単一クエリ言語
RQL(Reflection Query Language)はエディタツールのデータレイヤーです。クエリはソースから始まり、|で区切られたステージでフィルタと整形を行い、rql-mutateではsetまたはcallで終わります。エージェントが送る可能性のある例をいくつか示します:
nodes | where class == "OmniLight3D" | select name props["light_energy"]
nodes | where name starts-with "Enemy" | set Visible = false
root | call AddChild("Node3D", "Props")
project | call AddInputAction("jump", ["Key:Space"])
files | sort size desc | first 5 | select path size importedSize
editor | call SaveScene()rql-queryは読み取り専用で、コンパクトな行を返します。rql-mutateは変更を行います。すべてのターゲットと値が最初に検証されるため、失敗したクエリは何も変更しません。dry_runで変更をプレビューできます。各呼び出しは1つのアンドゥステップです(エディタではCtrl+Z)。rql-schemaは編集対象シーン内のソース、関数、ノードクラス、または1つの型のメンバー、メソッド、Godotプロパティを一覧表示します。拡張機能名を指定すると、その拡張機能のガイドを出力します。
ソースにはnodes、root、selection、scenes、files、folders、classes、console、editor、project、settings、inputActions、autoloads、groups、layers、toolsがあります。GodotプロパティにはC#メンバー(Position、Visible)として、またはprops["snake_name"]内のGodot名(GDScript変数を含む)でアクセスできます。RQLはシグナル、グループ、TileSet、Theme、ShaderMaterialパラメータ、MeshLibraryも扱います。
エディタ呼び出しはシーンとファイルの作業をカバーします: NewScene、OpenScene、SaveScene、SaveAllScenes、ReloadScene、CreateResource、MoveResource、DeleteResource、CreateFolder、DeleteFolder、Reimport、Undo、Redo、PlayScene、StopScene。gameLogソースは、エディタから起動したゲームが出力した内容を読み取ります。
シーンの編集は、自分自身の編集と同様にシーンを未保存としてマークします。編集されたリソースファイルとproject.godotは即座に保存されます。
スクリプト: C#とGDScript
script-read、script-create、script-update、script-deleteは.csおよび.gdファイルを操作します。script-attach-to-nodeはスクリプトをノードにアタッチします。script-validateはGDScriptファイルのパースおよびコンパイル診断を返します。パスを指定しない場合はres://以下のすべての.gdファイルをチェックします。script-buildは新しいC#スクリプトを読み込めるようにdotnet build(Debug)を実行します。その後GodotはC#アセンブリをリロードし、アドオンが再接続します。ビルド結果(警告またはエラー)はリロード後に届きます。script-executeは Roslyn を使ってエディター内で C# をコンパイルして実行します。普通のステートメントを書いてください。最後の式が結果になります。戻り値と、コードが出力した内容を返します。スニペットはデフォルトで 30 秒でタイムアウトし(最大 4 分)、無限ループはエディターをフリーズさせる代わりにタイムアウトエラーを返します。
ターミナルから script-execute を呼び出すこともできます:
godot-cli exec 'EditorInterface.Singleton.GetEditedSceneRoot()?.Name' --path ./MyGodotProjectスクリーンショット
スクリーンショットツールは、モデルが検査できる PNG 画像を返します。screenshot-viewport はエディターのビューポートをキャプチャし、screenshot-camera はカメラノードからレンダリングし、screenshot-isolated は選択した角度から 1 つのノードを単独でレンダリングします。見た目の変更後はスクリーンショットを要求して、エージェントが自分の作業を確認できるようにしましょう。
ゲーム内ツール
console-*、reflection-*、runtime-errors-* はエディター内ではなく、ゲーム内で動作します。コードがオプトインして接続するまで、ゲームは何も公開しません。runtime-errors-get はさらに WithRuntimeErrorCapture() が必要です。GDScript のランタイムエラー、push_error と push_warning、シェーダーエラー(Godot 4.5 以降)、未処理の C# 例外をキャプチャするので、エージェントはゲームを実行して実際に何が壊れたのかを確認できます。セットアップ: カスタムツール。
エージェントが参照するツールの選択
すべてのツールには、ドック内(MCP features、Tools、Open)と godot-cli configure に Visible スイッチがあります。ツールを非表示にするとエージェントのツールリストから削除され、コンテキストを節約できますが、そのツールをブロックするわけではありません。設定 を参照してください。
その他のツール
- 拡張機能 は、AnimationPlayer、CSG、GridMap、ナビゲーション、パーティクル、TileMapLayer、そして Beehave、Dialogic、Phantom Camera、Terrain3D アドオンについて RQL に教えます。
- カスタムツール では、C# で独自のツールを書く方法を説明します。
- Godot のベストプラクティス には、これらのツールをうまく活用するプロンプトパターンがあります。