godot-mcp
godot-mcp
AI エージェントが Godot 4.x プロジェクトで、開発者と同じように作業できるようにする MCP サーバーです。シーンの読み取り・編集、スクリプトの作成、ビルド、テスト、実行、結果の確認、失敗した箇所のデバッグまで行えます。
このサーバーが、ファイル形式を推測したり盲目的にシェルを呼び出したりする方法と一線を画すのは、次の 2 点です:
Godot 自身に問い合わせます。 シーンとリソースファイルは構造的に解析・再シリアライズされます(実際のプロジェクトコーパスに対してラウンドトリップでバイト一致することが検証済み)。しかし、エンジン自身の挙動に依存するもの — C# のイントロスペクション、シェーダコンパイル、入力バインディング、エディタの状態 — は、Godot のセマンティクスを再実装するのではなく、実際に Godot をヘッドレスで起動するか、稼働中のエディタに問い合わせて回答します。
失敗をはっきり示します。 このプロジェクトで測定可能なすべての障害モード — ディスプレイなし、C# アセンブリ未ビルド、エディタが閉じている、非 .NET バイナリ — は、沈黙した空の結果ではなく、名前の付いた個別のエラーと対処法として報告されます。この設計の拠り所となった測定結果については
docs/capability-matrix.mdを参照してください。その中のいくつかは、一見もっともらしいシグナル(終了コードや非 null の戻り値)が実際には嘘をついていたことが判明したため、特別に設けられています。
50 個のツールは、動作に必要なものに応じて 4 つのティアに整理されています。完全なリファレンスは docs/tools.md、ツールが拒否した場合の対処法は docs/troubleshooting.md を参照してください。
要件
Node.js >= 20
Godot 4.7+ のバイナリ(
capability-matrixは 4.7 で測定しました。他の 4.x バージョンも同様に動作する見込みですが、未検証です)C# ツール(
build_csharp、run_tests、csharp_script_info、validate_node_property、およびvalidate_scriptを経由する C# スクリプトパス)には、.NET/mono ビルドの Godot が必要です。通常の GDScript 専用ディストリビューションでは.csスクリプトを読み込んだりoutrospectionしたりできません。すべての C# ツールはこれを事前に検出し、途中で失敗する代わりにNOT_MONO_BINARYで拒否します。mono ビルドの--version出力には.mono.が含まれ、同等のGodotSharp/ディレクトリが同梱されています。C# ツールに固有の要件として、
PATH上にdotnetSDK が必要です(build_csharpとrun_testsはそれを直接呼び出しますが、csharp_script_infoとvalidate_node_propertyは、build_csharpまたはbuild_godot_artifactsによって生成される Debug ビルドが既に存在していることを必要とします)。
Related MCP server: godot-mcp-pilot
インストールとビルド
git clone <this-repo> godot-mcp
cd godot-mcp
npm install
npm run buildこれで、MCP クライアントが実行するエントリポイントである dist/server.js が生成されます。
MCP クライアントの設定
クライアントに dist/server.js を node で実行させ、Godot バイナリを見つける方法を与えます。最も簡単なのは、GODOT_PATH を明示的に設定することです。
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/path/to/godot-mcp/dist/server.js"],
"env": {
"GODOT_PATH": "/path/to/Godot_v4.7-stable_mono_linux.x86_64"
}
}
}
}サーバーが Godot バイナリを探す方法
次の順に、最初に一致したものが優先されます。
ツール呼び出しに渡された明示的な
binary引数。GODOT_PATH環境変数。プロジェクト自身の
vendor/ディレクトリに同梱されたバイナリ(3 階層まで再帰的に検索し、ファイル名にmonoを含むものを優先)— プロジェクトに独自の Godot ビルドを同梱する場合向け。PATH上のgodot、godot4、またはgodot-mono。
サーバーがプロジェクトを探す方法
次の順に検索します。
ツール呼び出しに渡された明示的な
project引数。GODOT_PROJECT環境変数。サーバープロセスの作業ディレクトリから上行し、
project.godotを探す。
どれも project.godot を含むディレクトリに解決されない場合、プロジェクトを必要とするツールは PROJECT_NOT_FOUND で失敗します。
GODOT_MCP_DOCS_CACHE
godot_class_doc と search_classes は、Godot バイナリ自身に問い合わせてクラスリファレンスのインデックスを構築しますが、この処理はキャッシュする価値があるほど低速です。インデックスはデフォルトでは $TMPDIR/godot-mcp-docs-cache/<godot-version>/ の下に書き込まれます。GODOT_MCP_DOCS_CACHE を設定すると、永続的な場所に配置できます。キャッシュは Godot バージョンでキーされているため、バイナリをアップグレードすると古い情報を返し続けるのではなく、新しいインデックスが構築されます。MCP クライアントがターゲットプロジェクトの外部の作業ディレクトリでサーバーを実行する場合は、GODOT_PROJECT を明示的に設定してください。
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/path/to/godot-mcp/dist/server.js"],
"env": {
"GODOT_PATH": "/path/to/Godot_v4.7-stable_mono_linux.x86_64",
"GODOT_PROJECT": "/path/to/your/godot-project"
}
}
}
}新しいセッションでは、まず godot_status を呼び出してください。解決されたバイナリパス、バージョン、mono ビルドかどうか、ディスプレイの利用可否、プロジェクトルート、C# アセンブリがビルド済みかを報告するので、エージェント(またはあなた)は何かを試す前に実際に可能な範囲を確認できます。
4 つのティア
各ツールは、それに答えられる最も低いティアで提供されます。ツールが TIER_UNAVAILABLE や DISPLAY_REQUIRED で失敗する場合、その理由はこのとおりです。
| ティア | 仕組み | 要件 |
| --- --- --- | --- --- --- | --- --- --- |
| A — ファイル層 | .tscn・.tres・.cs・.gd・project.godot を直接読み書き | なし — Godot プロセスは一切不要 |
| B — ヘッドレス CLI | godot --headless … と dotnet … のサブプロセス | Godot バイナリ、および/または dotnet SDK |
| C — エディタブリッジ | GDScript エディタアドオンへの TCP ソケット | アドオンがインストールされ有効化されている、実行中の Godot エディタ(下記) |
| D — ディスプレイ依存 | 図務フレームの描画をさらに必要とする Tier B のツール | Tier B に必要なすべてに加え、実際のディスプレイ(X11 または Wayland) |
Tier を uni 独立した転送手段ではなく、"Tier B" の上に重なる能力の制約です。Tier D に該当するのは capture_screenshot だけです。Godot にはヘッドレス描画の経路がないため、スクリーンショットには仮想・物理を問わず実際のディスプレイが必要です。windowed: true の run_project も同様の要件です。
Tier A のツール(シーン、ノード、スクリプト、プロジェクト構成の編集中の大部分)は、Godot がインストールされていなくても動作します。詰まるところ純粋なファイル操作であり、実在の .tscn・.tres・project.godot をコーパスとして再シリアライズがバイト単位で一致することを検証しています。Tier B は、Godot バイナリ、および/または PATH 上もしくは上記の解決方法による dotnet が必要です。Tier C はエディタアドオン(次の節)が必要で、それがインストールされていない、有効化されたエディタが稼働していない限り、5 つのエディタブリッジツールはすべて TIER_UNAVAILABLE で失敗します。期待される動作であり、バグではありません。エラーメッセージは、適用される 2 つの状況のどちらかをさます(docs/troubleshooting.md 参照)。
各ツールのティアは docs/tools.md を参照してください。
エディタアドオンのインストール(Tier C)
5 つのツール — editor_state、get_selected_node、live_scene_tree、open_scene_in_editor、execute_editor_script — は、プロセスを起動する代わりに、ループバック TCP ソケットを介して実行中の Godot エディタと通信します。これには、小さな GDScript エディタアドオンをターゲットプロジェクトにインストールして有効化する必要があります。インストールツールは存在しません。ユーザーの addons/ ディレクトリに書き込んだり project.godot を変更したりすることは、このプロジェクトのパス時の監禁規律が自動では行わないようにしているまさにそれだからです。これは一度限りの手動ステップです。
このリポジトリの
addon/godot_mcp/をターゲットプロジェクトのaddons/ディレクトリにコピーし、<project>/addons/godot_mcp/plugin.cfgに配置します。プラグインを有効化します — エディタ上(プロジェクト設定 > Plugins > godot_mcp > Enable)または
project.godotへの直接追加のどちらかで:[editor_plugins] enabled=PackedStringArray("res://addons/godot_mcp/plugin.cfg")そのプロジェクトの Godot エディタを起動(または再起動)します — ヘッドレスで十分です(
--headless --editor --path <project>)。ディスプレイは不要です。アドオンは起動時に<project>/.godot/mcp_bridge.jsonへハンドシェイクファイルを書き出し、5 つのツールはそれを読み込んでブリッジのポートとセッションごとのトークンを特定します。
ヘッドレスエディタではエディタの選択状態が常に空になることに注意してください — これは想定どおりで、get_selected_node はエラーではなく通常の結果として「何も選択されていません」と報告します。
安全性とスコープ
パス監禁(path jail)。 書き込む対象のパスはすべて — シーン、スクリプト、リソース、スクリーンショット出力 — を解決したときにプロジェクトルート内にあることが必須です。直接であれシンボリックリンク経由であれ、ルートから外れるパスは何かに触れる前に
PATH_OUTSIDE_PROJECTで拒否されます。dry_run。 変更を行うすべてのツールはdry_runを受け取り、実際に書き込む代わりに統合差分(unified diff)を返します。変更を確定する前にプレビューとして使用してください。バックアップ保存はありません。 バージョン管理が undo システムです。これは意図的な単純化 — サーバー自体にはスナップショットやバックアップの仕組みはありません。プロジェクトがバージョン管理下にない場合は、変更を伴う呼び出しの前に
dry_runを使うか、バージョン管理を開始してください。execute_editor_scriptはサンドボックスではありません。 稼働中のエディタプロセス内で任意の GDScript を、エディタ自身と同じ特権で実行します — 実行中のエディタの状態、開いているシーン、GDScript から到達できる追加のものを読み書きできます。エージェントにシェルを渡すときと同じように扱ってください。つまり、自分のプロジェクトで作業する信頼できるエージェントに適しており、信頼できない入力には適していません。
テスト
npm testtsc --noEmit を tsconfig.json と tsconfig.test.json の両方に対して実行し、その後 Vue の Vitest スイート全体を実行します。実際上すべてのテストがパーサーレベルで、既知の Godot および MSBuild の出力をパーサーに通し、構造化された結果がと主張します。そのため Godot のインストールも .NET ツールチェーンもなくても実行でき、高速かつポータブルを維持できます(CI、コンテナ、そのどちらもインストールされていないラップトップ)。
GODOT_TEST_BINARY
2 つのブロックは注意が異なります。tests/integration/tier-b.test.ts は実際の Godot バイナリを操作します — ディスク上に一時プロジェクトを構築し、それに対して validate_script、check_shaders、run_project、godot_class_doc を起動します。なぜなら、パーサーを固定されたテキストに対して永遠にテストしても、ツール自身のプロセス生成・引数構築・ストリーム読み取りコードが実際のエンジンに対して動くことは証明できないからです。tests/integration/tier-c.test.ts はエディタブリッジツールに対して同じことをしますが、案外深く手法が異なります。実際の Godot エディタを長寿命のデタッチドプロセスとして起動し(エディタは自ら終了しない)、テストが失敗した場合も含めてその後に確実に回収する必要があります。
未設定(デフォルト): 両ブロックは
SKIPPEDとして報告されます。npm testの他の部分には影響しません。Godot 4.7+ バイナリのパスに設定 : 両ブロックともに対して実際にエンドツーエンドで実行されます。
GODOT_TEST_BINARY=/path/to/Godot_v4.7-stable_linux.x86_64 npm testこのモノビルド/.NET ビルド、このブロックには不要です。C# 向けツール(build_csharp、run_tests)も触る場合は、PATH 上の dotnet が別途必要になります。これに相当するゲート変数は今はありません。GODOT_TEST_BINARY ブロックのテストでそれを必要とするものが、ないためです。
ドキュメント
docs/tools.md— すべてのツールを領域別にまとめ、ティアと主な入力を記載。docs/troubleshooting.md— 実測された障害モードとその解決手段
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceA TypeScript MCP server that lets AI assistants interact with the Godot 4.x game engine: not just editing files, but playing the game.3679457MIT
- AlicenseAqualityDmaintenanceAn MCP server that gives AI assistants direct control over Godot 4 game development projects. It enables launching the editor, running projects, creating and editing scenes, writing GDScript, and inspecting assets through natural language commands.44304MIT
- AlicenseAqualityBmaintenanceAn MCP server that enables AI assistants to directly run, inspect, modify, and debug Godot game development projects through 110+ tools covering scenes, scripts, resources, runtime debugging, and asset management.33212MIT
- FlicenseNot gradedqualityAmaintenanceA local MCP server plus a bundled Godot editor addon that lets an AI agent create, inspect, run, debug, and export real Godot 4.6 games through tools.2
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/blentz/godot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server