Sandbox
@IvanMurzak/Godot-MCP

MCP server and editor addon for Godot

Godot-MCP connects a Godot 4.3+ C# project to MCP-capable agents through a Godot Editor addon and a cloud or self-hosted backend. The agent can create and edit nodes, scenes, scripts, resources, and screenshots, while the CLI handles install, login, MCP config, and editor launch.

240 stars20 forksC#Updated 13d ago
Who it's for

Builders who want an agent to operate a Godot project from the editor and terminal.

What it delivers

You can ask an agent to change a Godot project directly instead of doing every scene and script edit by hand.

What it does

Editor tool access

Exposes 42 built-in tools for nodes, scenes, resources, files, scripts, screenshots, editor state, console logs, and reflection.

MCP client support

Works with Claude, Cursor, Copilot, Gemini, and other MCP-aware clients through the same connection flow.

Cloud or self-hosted connection

Connects to `ai-game.dev` by default or to your own server.

Godot script and scene control

Creates, reads, updates, and deletes `.cs` and `.gd` scripts, and opens, saves, and edits `.tscn` scenes and `.tres` / `.res` resources.

Visual inspection

Captures viewport, camera, and isolated-node screenshots for agent review.

CLI setup flow

Uses `godot-cli` to install the plugin, log in, configure MCP, open the project, and wait for readiness.

How to get it

  1. 1After the files are in place (Options A–C), enable the plugin: Project → Project…
    [Godot-MCP] plugin loaded
  2. 2To run the server as a standalone / cloud process, download a GameDev-MCP-Server release…
    # HTTP transport on port 8080
    ./gamedev-mcp-server --client-transport streamableHttp --port 8080
    
    # stdio transport — for local MCP clients that launch the server directly
    ./gamedev-mcp-server --client-transport stdio
  3. 3GODOT_MCP_SERVER_PATH is resolved by the editor plugin's server manager, not by…
    export GODOT_MCP_CONNECTION_MODE=Custom
    export GODOT_MCP_HOST=http://localhost:8080
    export GODOT_MCP_AUTH_OPTION=token
    export GODOT_MCP_TOKEN=your-secret-token

README

✨ AI Game Developer — Godot MCP

MCP npm Godot Godot Editor Godot Runtime .NET release
Discord Stars Docker Image License Stand With Ukraine

AI Game Developer — Godot MCP

Claude   Codex   Cursor   GitHub Copilot   Gemini   Antigravity   VS Code   Rider   Visual Studio   Open Code   Cline   Kilo Code

Godot MCP is an AI-powered game development assistant for the Godot Editor. Connect Claude, Cursor, Copilot, or any MCP-aware agent to Godot and let it inspect and drive your project — create nodes, edit scenes, manage resources and scripts, capture screenshots, and more.

Godot-MCP is the Godot counterpart of Unity-MCP: a C# editor addon that exposes Godot Editor operations as AI Tools and connects them to an MCP server through the same hosted cloud backend (ai-game.dev) that powers Unity-MCP — or your own self-hosted server. The MCP / reflection stack is not forked: it is shared with Unity-MCP and consumed from nuget.org as PackageReferences.

💬 Join our Discord Server — Ask questions, showcase your work, and connect with other developers!

Features

  • ✔️ AI agents — Use the best agents from Anthropic, OpenAI, Google, or any other provider with no vendor lock-in
  • ✔️ 42 built-in Tools — A wide range of MCP Tools across 12 families for operating the Godot Editor
  • ✔️ C# & GDScript — Read, create, and update both .cs and .gd scripts, and attach them to nodes
  • ✔️ Scene & Node control — Build and edit the scene tree, open/save .tscn scenes, mutate .tres/.res resources
  • ✔️ Visual feedback — Capture viewport, camera, and isolated-node screenshots the LLM can inspect
  • ✔️ Reflection escape hatch — Find and call any C# method across loaded assemblies via ReflectorNet
  • ✔️ Cloud or self-hosted — Connect to ai-game.dev out of the box, or point at your own server
  • ✔️ Natural conversation — Chat with AI like you would with a human

AI Game Developer — Godot MCP

Quick Start

Get up and running from a terminal using the godot-cli (the Godot analog of unity-mcp-cli) — no manual file copying or csproj editing required:

# 1. Install godot-cli
npm install -g godot-cli

# 2. (Optional) Scaffold a fresh Godot C# project — skip if you already have one
godot-cli create-project --dotnet ./MyGodotProject

# 3. Install the godot_mcp addon: downloads addons/godot_mcp/ from the matching
#    GitHub release, adds the required NuGet packages + the extension-catalog
#    EmbeddedResource to your .csproj, and enables the plugin in project.godot —
#    all idempotently
godot-cli install-plugin ./MyGodotProject

# 4. Sign in to the ai-game.dev cloud — OAuth 2.1 device login (opens a browser,
#    saves a machine-wide credential the editor plugin auto-adopts; no token to copy)
godot-cli login

# 5. Pick an AI agent (Claude Code, Cursor, Copilot, …) and write its MCP config —
#    pinned to THIS project's cloud route by default (pass --no-pin for the bare URL)
godot-cli setup-mcp claude-code ./MyGodotProject

# 6. Open the Godot editor — builds the C# assembly first (so the addon loads on
#    the very first open) then auto-connects with the right GODOT_MCP_* env vars
godot-cli open ./MyGodotProject

# 7. Wait until the plugin answers the readiness probe
godot-cli wait-for-ready ./MyGodotProject

That's it. Ask your AI "Create 3 cubes in a circle with radius 2" and watch it happen. ✨

Offline / dev install: install-plugin --source <path-to>/addons/godot_mcp copies the addon from a local directory instead of downloading it. Prefer the matching release version with install-plugin --version <x.y.z> if you need a specific addon build. The manual route (copy the addon + add the NuGet packages yourself) is still documented under Installation Steps 1–2 for the Asset Library / hand-managed flows.

See the full CLI documentation for every command, editor-resolution order, and connection env vars.

Contents

AI Game Developer — Godot MCP

Tools Reference

Godot-MCP ships 42 built-in tools grouped into 12 families. Tool names mirror Unity-MCP where sensible (scene-*, node-*, …). Every tool returns a structured, ReflectorNet-serialized result (or a PNG image for screenshots). All editor tools are available immediately after the addon is enabled — no extra configuration required. The runtime-errors family is the exception: it surfaces errors from the running game and is OFF by default — opt in with builder.WithRuntimeErrorCapture() (see Capturing in-game runtime errors).

FamilyToolsWhat it does
pingpingLightweight readiness probe — echoes a message back, or returns pong. Verifies the end-to-end MCP path (editor → SignalR → tool dispatch). System tool — reachable over the server's /api/system-tools/ HTTP surface, not advertised to AI agents in tools/list.
nodenode-find, node-create, node-modify, node-set-parent, node-reorder, node-duplicate, node-deleteInspect and edit the active scene tree (the Godot analog of Unity GameObjects), driving EditorInterface on the main thread. Child order — which is layout order in a VBoxContainer/HBoxContainer — is settable both on creation (node-create's index) and afterwards (node-reorder).
scenescene-open, scene-save, scene-create, scene-list-opened, scene-get-dataOpen, save, create, and inspect Godot scenes (res://*.tscn PackedScenes) in the editor.
resourceresource-find, resource-get-data, resource-modify, resource-create, resource-move, resource-deleteFind and mutate Godot resources (.tres/.res) through ResourceLoader/ResourceSaver/EditorFileSystem, keeping .import sidecars consistent.
filesystemfilesystem-list, filesystem-reimportBrowse and reimport the project's res:// tree via the editor EditorFileSystem index (file types + uids without loading resources).
scriptscript-read, script-create, script-update, script-delete, script-attach-to-node, script-validateCRUD on C# (.cs) and GDScript (.gd) files, plus attaching a script to a node and validating GDScript.
screenshotscreenshot-viewport, screenshot-camera, screenshot-isolatedCapture the editor viewport, a specific camera, or an isolated node render, returned as a PNG image the LLM can inspect.
editoreditor-application-get-state, editor-application-set-state, editor-selection-get, editor-selection-setRead/drive the editor run-and-play lifecycle (Godot launches the game in a separate process) and the current selection.
consoleconsole-get-logs, console-clear-logsRead and clear the plugin's editor log collector (GD.Print/GD.PushWarning/GD.PushError).
reflectionreflection-method-find, reflection-method-callFind and call C# methods (static/instance, public/private) across every loaded assembly via ReflectorNet — the engine-agnostic escape hatch.
skillsgodot-skill-create, godot-skill-generateAuthor a new MCP tool as a C# file in the project, and regenerate the SKILL.md files from the tools the editor currently has registered. System tools — reachable over the server's /api/system-tools/ HTTP surface (like ping), not advertised to AI agents in tools/list.
runtime-errorsruntime-errors-get, runtime-errors-clearPoll errors raised inside the running game (NOT the editor) — GDScript runtime errors, push_error/push_warning, shader errors, and C# unhandled / unobserved-Task exceptions, with multi-frame GDScript backtraces on Godot 4.5+. OFF by default — opt in with builder.WithRuntimeErrorCapture().

ping

  • ping — Lightweight readiness probe; echoes a message back, or returns pong. A System tool: call it over /api/system-tools/ping (or godot-cli run-system-tool ping); it is not listed in tools/list.

node

  • node-find — Find nodes in the active scene tree by path, type, or name.
  • node-create — Create a new node under a parent (optionally instancing a .tscn sub-scene), optionally at a specific sibling index (negative counts from the end).
  • node-modify — Set fields/properties on one or more nodes.
  • node-set-parent — Reparent nodes within the scene tree.
  • node-reorder — Move an existing node to a different position among its siblings (Node.MoveChild) — the only way to rearrange an existing scene short of delete-and-recreate.
  • node-duplicate — Duplicate nodes together with their subtrees.
  • node-delete — Delete nodes from the active scene.

scene

  • scene-open — Open a res://*.tscn PackedScene in the editor.
  • scene-save — Save an open scene back to its .tscn file.
  • scene-create — Create a new scene asset in the project.
  • scene-list-opened — List the scenes currently open in the editor.
  • scene-get-data — Retrieve the root nodes / structure of a scene.

resource

  • resource-find — Search the project for resources (.tres/.res).
  • resource-get-data — Read a resource's serialized fields and properties.
  • resource-modify — Modify a resource's properties.
  • resource-create — Create a new resource asset.
  • resource-move — Move / rename a resource, keeping .import sidecars consistent.
  • resource-delete — Delete a resource from the project.

filesystem

  • filesystem-list — Browse the res:// tree (file types + uids) via the editor file index.
  • filesystem-reimport — Reimport files in the project.

script

  • script-read — Read a .cs / .gd script file.
  • script-create — Create a new script file.
  • script-update — Update an existing script file's contents.
  • script-delete — Delete a script file.
  • script-attach-to-node — Attach a script to a node.
  • script-validate — Validate GDScript (.gd) files and return structured parse/compile diagnostics.

screenshot

  • screenshot-viewport — Capture the editor viewport as a PNG.
  • screenshot-camera — Capture from a specific camera.
  • screenshot-isolated — Render a node in isolation from a chosen angle.

editor

  • editor-application-get-state — Read the editor application/run state.
  • editor-application-set-state — Start / stop the running game.
  • editor-selection-get — Get the current editor selection.
  • editor-selection-set — Set the current editor selection.

console

  • console-get-logs — Read the plugin's collected editor logs (with filtering). This includes the plugin's connection lifecycle diagnostics (connect/disconnect, drain-timeout, config save/load, skill-gen, dev-control, dispatcher, and runtime-capture warnings), which route through the same capture sink as its framework logs.
  • console-clear-logs — Clear the collected log cache.

reflection

  • reflection-method-find — Find C# methods (including private) across every loaded assembly.
  • reflection-method-call — Call any C# method with input parameters and get the result.

runtime-errors (in-game; OFF by default — enable with builder.WithRuntimeErrorCapture())

  • runtime-errors-get — Read captured in-game runtime errors (oldest-first, newest-kept page); poll only new errors via sinceSequence. Returns available:false when capture was never enabled, so an empty list is never mistaken for health.
  • runtime-errors-clear — Clear the captured in-game runtime-error buffer (a no-op when capture is not enabled); the monotonic sequence counter is preserved.

skills (system tools — served on /api/system-tools/, not advertised to AI agents)

  • godot-skill-create — Write a new C# (.cs) MCP tool file into the project. The tool becomes callable once the project is rebuilt (Godot builds C# out-of-band).
  • godot-skill-generate — Regenerate every SKILL.md from the tools currently registered in the editor, into the selected AI agent's skills folder.

AI Game Developer — Godot MCP

Requirements

  • Godot 4.3+ — the C# / .NET (mono) edition. The addon csproj pins Godot.NET.Sdk/4.3.0 as its minimum floor; newer 4.x editors (4.4, 4.5) work.
  • .NET 8 SDK (net8.0).

[!IMPORTANT] Godot-MCP requires the mono (C#/.NET) build of Godot — the standard (GDScript-only) build cannot compile the addon.

Installation

There are two things to install: the addon (the plugin files) and the two NuGet packages the addon's C# depends on. Godot compiles every .cs under your project into one assembly, so your project's .csproj must declare the same NuGet references the addon needs — otherwise the addon's C# will not compile.

Step 1: Add the addon

Pick one of the following ways to get the addons/godot_mcp/ folder into your Godot C# project.

Fully automated (recommended for terminal workflows): godot-cli install-plugin ./MyGodotProject does all of Step 1 and Step 2 in one command — it downloads addons/godot_mcp/ from the matching GitHub release, adds the two NuGet packages and the extension-catalog <EmbeddedResource> to your .csproj, and enables the plugin in project.godot, idempotently. Use --source <path>/addons/godot_mcp to install from a local copy offline. The manual Options A–C below remain for in-editor (Asset Library) and hand-managed installs.

Option A — Godot Asset Library (recommended)

The easiest path: install directly from inside the editor.

  1. Open the AssetLib tab at the top of the Godot editor.
  2. Search for Godot-MCP and open the asset.
  3. Click Download, then Install — Godot unpacks the addon into your project's res://addons/godot_mcp/.

The Asset Library entry is published per release and always points at a tagged version, so an in-editor install gives you a known-good snapshot of the addon. (See note below if the entry is not visible yet.)

Option B — GitHub Release zip

Grab the latest godot-mcp-addon-<version>.zip from the Releases page and extract it into your project's root — the archive already contains addons/godot_mcp/..., so the files land at res://addons/godot_mcp/.

Option C — copy from source

Copy the addons/godot_mcp/ folder from this repository (or your clone) into your project's addons/ directory by hand.


After the files are in place (Options A–C), enable the plugin: Project → Project Settings → Plugins → Godot-MCP → Enable. (If you used the fully-automated godot-cli install-plugin above, the plugin is already enabled and the NuGet packages + extension-catalog embed are already added — skip straight to Step 3.) On a successful load the editor Output panel prints:

[Godot-MCP] plugin loaded

Asset Library availability. The in-editor AssetLib entry (Option A) appears after the maintainer's first submission is approved by the Godot Asset Library moderators. Until then, use Option B (GitHub Release zip) or Option C.

Step 2: Add the NuGet packages + the extension catalog embed

Add both PackageReferences and the extension-catalog <EmbeddedResource> to your project's .csproj (use these exact pinned versions — they must match the addon's Godot-MCP.csproj):

<ItemGroup>
  <PackageReference Include="com.IvanMurzak.ReflectorNet" Version="5.4.0" />
  <PackageReference Include="com.IvanMurzak.McpPlugin"   Version="8.3.0" />
</ItemGroup>

<!-- Embed the extension catalog so the Extensions panel populates (else it is EMPTY). -->
<ItemGroup>
  <EmbeddedResource Include="addons/godot_mcp/extensions.catalog.json" LogicalName="Godot-MCP.extensions.catalog.json" />
</ItemGroup>
PackageVersionRole
com.IvanMurzak.ReflectorNet5.4.0Reflection / serialization core
com.IvanMurzak.McpPlugin8.3.0MCP plugin client (transitively pulls McpPlugin.Common + ReflectorNet; carries the shared AgentConfig module)

The <EmbeddedResource> is as required as the NuGet pins: the addon's pure-managed extension registry reads the catalog at editor runtime via GetManifestResourceStream (no res:// / filesystem fallback), and because the addon ships as source its own <EmbeddedResource> does not carry into your project — so without this line your Extensions panel is empty. The LogicalName must be exactly Godot-MCP.extensions.catalog.json so the resource resolves identically to the addon's own assembly.

Run dotnet restore so the packages land in your NuGet cache, then build. No manual DLL copying is required — at editor runtime the addon's assembly resolver locates the DLLs in your NuGet global-packages folder by reading the build's *.deps.json. (If you prefer self-contained output, set <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> so the DLLs are copied beside your project assembly instead.)

Step 3: Install an AI agent

Choose a single AI agent you prefer — you don't need to install all of

Files in the repo

Repository payload14 top-level entries
  • .github
  • addons
  • cli
  • docs
  • Godot-MCP.Tests
  • Godot-Tests
  • scripts
  • .gitattributes
  • .gitignore
  • CLAUDE.md
  • Godot-MCP.csproj
  • Godot-MCP.sln
  • LICENSE
  • README.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k
t8y2/dbxConnectors

20 MB lightweight cross-platform database client for 90+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker. | 轻量级跨平台数据库管理工具,支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、达梦等 90+ 数据库,提供桌面端、Docker、CLI、内置 AI 助手和 MCP Server。

19k