Open-source project
Coding-Solo/godot-mcp avatar
Coding-Solo/godot-mcp

godot-mcp: Giving an AI Agent Hands on the Godot Editor

MCP server for interfacing with Godot game engine. Provides tools for launching the editor, running projects, and capturing debug output.

5,698 stars473 forksJavaScriptMIT

At a glance

What is it?
Coding-Solo/godot-mcp is an MIT-licensed MCP server that lets an AI agent launch the Godot editor, run projects, read debug output, and edit scenes through named tools. It is a thin bridge over the Godot CLI, and its value depends entirely on whether your agent client supports MCP and whether your Godot install is reachable from the server process.
Who is it for?
Adopt godot-mcp if you already drive Godot from the command line and want an agent to close the loop between writing GDScript and seeing the resulting console errors. Skip it if your workflow is editor-only, if your client has no MCP support, or if you cannot pin a Godot binary path.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 152 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The gap godot-mcp fills between an agent and a running game

An AI coding agent that writes GDScript has no way to know whether the script it just produced parses, whether a node path resolves, or whether the scene tree it assumed matches the one on disk. The README frames the goal plainly: a direct feedback loop that helps agents understand what works and what doesn't in real Godot projects. That is the problem being solved, and it is narrower than it sounds.

The target user is someone running an MCP-capable client (the README gives setup for Claude Code, Cline and Cursor) against a Godot project that lives on the same machine as the server process. If your agent runs in a hosted sandbox with no Godot binary and no project directory, none of this applies. The server does not ship a Godot runtime; the requirements section lists Godot Engine as something you install yourself, alongside Node.js >=18.0.0 and npm.

Tools, not magic: what the server actually exposes

The feature list is a set of discrete operations rather than an autonomous loop. On the execution side there is launch_editor, run_project, stop_project, get_debug_output and get_godot_version. On the inspection side there is list_projects and get_project_info, which the README describes as returning detailed information about project structure. On the authoring side there is create_scene, add_node, load_sprite, export_mesh_library and save_scene, plus get_uid and update_project_uids for Godot 4.4 and later.

That naming matters because it tells you where the intelligence sits. The server does not decide to run your game after you edit a file. The agent decides, by calling run_project and then get_debug_output. The server is the hand, not the head. The Cline configuration block in the README lists all fourteen tool names under autoApprove, which is a deliberate choice by whoever writes that config: with autoApprove set, the client will not prompt before the agent launches the editor or overwrites a scene. The README presents that list without commentary, but it is the single most consequential line in the setup examples.

The scene tools are the most opinionated part. add_node takes customizable properties, load_sprite targets Sprite2D nodes specifically, and export_mesh_library produces a MeshLibrary resource for GridMap. This is a 2D-and-tile-oriented surface with one 3D export path. An agent working on a 3D project with custom node types will find less here than the feature list's length suggests.

Installing it: one command, one environment variable

For Claude Code the README gives a single line:

claude mcp add godot -- npx @coding-solo/godot-mcp

With environment variables it becomes:

claude mcp add godot -e GODOT_PATH=/path/to/godot -e DEBUG=true -- npx @coding-solo/godot-mcp

For Cline, the config goes in the client's MCP settings JSON with command npx, args ["@coding-solo/godot-mcp"], and an env block. For Cursor, either the UI form (name godot, type command, command npx @coding-solo/godot-mcp) or a project-local .cursor/mcp.json file with the same shape. The README also shows a generic mcpServers block for other clients, though the excerpt is truncated mid-object.

Two keys appear in every example: GODOT_PATH and DEBUG. GODOT_PATH is how the server finds the engine binary when godot is not on the PATH of the process that npx spawns. DEBUG=true is passed in the Cline and Cursor examples and in the Claude Code example with environment variables. The README does not document what DEBUG changes, which is a real gap: you are asked to set a flag whose effect is unstated. The package is published as @coding-solo/godot-mcp and is invoked through npx, so there is no global install step and no version pinning in any of the examples.

Where the design gets thin

Debug output is captured, but the README does not say how. Whether get_debug_output reads a pipe from the child process, tails a log file, or buffers stdout is not stated. That matters because it determines whether you can call it repeatedly for a long-running game or only once after a crash. If you need to know, read the source: this is a small JavaScript project and the tool implementations are where the answer lives.

Process lifecycle is similarly underspecified. stop_project exists, so the model is start-then-stop, but nothing in the README describes what happens when a project crashes on its own, whether the server cleans up orphaned Godot processes, or what get_debug_output returns after the process has already exited. On a headless CI machine these are the questions that decide whether the tool is usable.

The UID tools are gated to Godot 4.4 and later, which the README states directly. On 4.3 or 3.x, get_uid and update_project_uids have nothing to act on. And there are no releases listed for this repository, so installation is always npx against whatever the package currently resolves to. There is no tagged version to fall back to if an update breaks your client config.

The alternative: driving Godot yourself from a shell

The obvious alternative is not another MCP server. It is the Godot command line, which the server is a wrapper around. You can run a project headlessly, capture stdout to a file, and inspect it with any tool you like; the difference is that a shell script has no way to decide, mid-task, that the error it just read means the node path in the script should change. That decision is the entire reason to put an MCP layer here. The trade is real in both directions: the shell pipeline is deterministic, versionable and debuggable, while godot-mcp hands control of when the editor launches and when scenes are written to a language model.

A second comparison is a general-purpose filesystem or shell MCP server. Those can already run arbitrary commands, including the Godot binary, and they are not tied to one engine. What they lack is the typed surface: a tool named create_scene with a root node type parameter is harder for a model to misuse than a shell tool where the agent has to compose the correct Godot invocation itself. If your agent is competent at command construction, the specialized server buys you less than it appears to.

Licence and the cost of keeping it current

The repository is MIT-licensed, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are preserved. That is a permissive grant and it is stated in the README badge and the repository metadata. Nothing here imposes a copyleft obligation on your game project. This is a description of the licence text, not legal advice; if you vendor the code into a product, read the LICENSE file in the repository.

Maintenance cost is mostly your own. Because there are no retrieved releases, there is no changelog to read before upgrading and no version to pin in the npx invocation. A client config that says npx @coding-solo/godot-mcp will pick up new publishes silently on the next run. The repository's last push is dated 2026-04-16, so the project is active, but activity is not the same as a compatibility guarantee: the UID feature set is already conditional on Godot 4.4+, and a future Godot release that changes CLI flags would need a corresponding change here. Budget for reading the source when something stops working, because the README will not tell you which Godot version the current package targets.

Who this is for, and the first thing to break

The fit is a solo developer or small team using Claude Code, Cline or Cursor on a Godot 2D project, working locally, who wants the agent to run the game and read the console instead of guessing. The mismatch is anyone on a hosted agent, anyone on Godot 3.x, anyone whose project is mostly 3D with custom node types, and anyone unwilling to let a model trigger editor launches and scene writes without a confirmation prompt. The autoApprove list in the Cline example is opt-in, and leaving it out is the safer default.

The first thing likely to break is path resolution. GODOT_PATH is optional in the simplest Claude Code example and required in practice whenever the spawned process cannot see your Godot binary. If launch_editor or run_project returns nothing useful, check that variable before anything else. The second is version drift: with no releases to pin, an npx update can change behaviour between sessions with no signal in your config. Pin the package version in your client config if your client supports it, and verify get_godot_version returns the engine you think you installed.

Editorial conclusion

Adopt godot-mcp if you already drive Godot from the command line and want an agent to close the loop between writing GDScript and seeing the resulting console errors. Skip it if your workflow is editor-only, if your client has no MCP support, or if you cannot pin a Godot binary path. Before trusting it on a real project, verify three things: that GODOT_PATH resolves to the exact binary you expect, that get_debug_output returns anything at all after a deliberate script error, and that create_scene plus save_scene produces a .tscn your editor opens without complaint.

Official sources

  1. Coding-Solo/godot-mcp on GitHub
  2. Issues
  3. License: MIT
  4. README
Community notes

Community notes