by hi-godot
Lets agents build scenes, edit scripts and run games in a live Godot editor
Use Godot AI if you already code with a terminal agent and want it to see and change your open Godot project instead of guessing from pasted files. It replaces copy and paste between chat and editor. The catch: it needs Godot 4.7 or later, and C# gets file writes but no compiler feedback.
An agent can write a script, run the game and read the resulting error without the developer copying anything between windows.
Its tool reference, read 15 November 2026, lists tools that act on the open editor and the running game, while the Coding-Solo godot-mcp README describes launching the editor, running projects and capturing debug output.
Main trade-off
Tied to Godot 4.7 and later, with C# limited to writing text files.
Free and open source under the MIT licence, with no paid tier. You still pay for the agent that calls it, through your Claude, ChatGPT or Cursor plan or your own API key.
Exposed as 46 MCP tools (editor_state, node_create, script_patch, project_run, logs_read and 41 more) that the agent calls by name once the Godot AI dock has configured the client.
The permissions this connector asks for, as its own documentation states them.
10 actions an agent can call. Open one for its parameters and an example.
Example call
editor_state()
Parameters
| Parameter | Type | Needed | Description |
|---|---|---|---|
| session_id | string | Optional | Pin the call to one connected editor when several are open. |
Returns
| Field | Type | Description |
|---|---|---|
| game_status | object | Liveness of the running game: live, not_live, no_helper, launching, break or stopped. |
| is_playing | boolean | Raw editor play state, kept for compatibility. |
Example call
scene_get_hierarchy(depth=3, limit=50)
Parameters
| Parameter | Type | Needed | Description |
|---|---|---|---|
| depth | numberdefault 10 | Optional | How many levels of the tree to walk. |
| offset | numberdefault 0 | Optional | Where to start the page. |
| limit | numberdefault 100 | Optional | How many nodes to return in one page. |
Returns
| Field | Type | Description |
|---|---|---|
| nodes | array | One entry per node with name, type, path and child count. |
Example call
node_get_properties(path="/Main/Player", fields=["position", "velocity"])
Parameters
| Parameter | Type | Needed | Description |
|---|---|---|---|
| path | string | Required | Scene path of the node. |
| fields | array | Optional | Property names to return instead of the full set of 50 to 150 entries. |
Returns
| Field | Type | Description |
|---|---|---|
| properties | object | Property names and their current values. |
| total_count | number | How many editor-visible properties the node has. |
Example call
node_create(type="CharacterBody2D", name="Player", parent_path="/Main")
Parameters
| Parameter | Type | Needed | Description |
|---|---|---|---|
| type | string | Optional | Godot class of the new node; ignored when scene_path is given. |
| name | string | Optional | Name of the new node. |
| parent_path | string | Optional | Scene path of the parent node. |
| scene_path | string | Optional | A PackedScene to instantiate instead of a bare node. |
Returns
| Field | Type | Description |
|---|---|---|
| path | string | Scene path of the created node. |
Example call
node_set_property(path="/Main/Player", property="position", value={"x": 120, "y": 64})Parameters
| Parameter | Type | Needed | Description |
|---|---|---|---|
| path | string | Required | Scene path of the node to change. |
| property | string | Required | Exact property name, best confirmed with node_get_properties first. |
| value | string | Required | New value: a string, number, boolean, object or list. |
Returns
| Field | Type | Description |
|---|---|---|
| undoable | boolean | Whether the change can be undone in the editor. |
Example call
script_create(path="res://player.gd", content="extends CharacterBody2D\n\n@export var speed := 200.0\n")
Parameters
| Parameter | Type | Needed | Description |
|---|---|---|---|
| path | string | Required | res:// path of the script; overwrites an existing file. |
| content | string | Optional | Full source of the script. |
Returns
| Field | Type | Description |
|---|---|---|
| diagnostics | array | Parse errors and warnings for the written file. |
| diagnostics_status | string | checked, or partial if the validation log overflowed. |
Example call
script_patch(path="res://player.gd", old_text="yield(get_tree(), \"idle_frame\")", new_text="await get_tree().process_frame")
Parameters
| Parameter | Type | Needed | Description |
|---|---|---|---|
| path | string | Required | res:// path of the file to edit. |
| old_text | string | Required | Exact text to find; whitespace counts. |
| new_text | string | Required | Replacement text. |
| replace_all | booleandefault false | Optional | Replace every match instead of failing on more than one. |
Returns
| Field | Type | Description |
|---|---|---|
| diagnostics | array | Errors left after the edit, if any. |
Example call
project_run(mode="current")
Parameters
| Parameter | Type | Needed | Description |
|---|---|---|---|
| mode | stringdefault main | Optional | main, current, or custom (needs scene). |
| scene | string | Optional | Scene to run when mode is custom. |
| autosave | booleandefault true | Optional | Save edits made through the agent before playing. |
Returns
| Field | Type | Description |
|---|---|---|
| game_status | object | Whether the game came up, plus any recent errors found while waiting. |
| recent_errors | array | Errors seen during launch, naming the failing script on a parse break. |
Example call
logs_read(source="editor", include_details=True)
Parameters
| Parameter | Type | Needed | Description |
|---|---|---|---|
| source | stringdefault plugin | Optional | plugin, game, editor or all. |
| count | numberdefault 50 | Optional | How many lines to return. |
| include_details | booleandefault false | Optional | Add error type, source location and stack context. |
| since_run_id | string | Optional | Read the game log of an earlier run. |
| since_cursor | number | Optional | Return only editor entries added after this cursor. |
Returns
| Field | Type | Description |
|---|---|---|
| lines | array | Log entries for the chosen source. |
| next_cursor | number | Cursor to pass on the next editor-log poll. |
Example call
editor_screenshot(source="game", max_resolution=640)
Parameters
| Parameter | Type | Needed | Description |
|---|---|---|---|
| source | stringdefault viewport | Optional | viewport, viewport_2d, cinematic or game. |
| max_resolution | numberdefault 640 | Optional | Longest side of the returned image in pixels. |
| save_to | string | Optional | Also save the image to this path. |
Returns
| Field | Type | Description |
|---|---|---|
| image | string | The captured image, when include_image is true. |
Godot AI is a free, MIT-licensed Model Context Protocol server and Godot editor add-on from the hi-godot project. It gives coding agents such as Claude Code, Codex and Cursor 46 tools to build scenes, write and parse-check GDScript, run the game and read its logs, and it needs Godot 4.7 or later.
46 tools over one MCP connection
19 named verbs plus one rolled-up manage tool per domain, which keeps the count under the 100-tool caps some clients enforce while exposing over 120 operations.
Parse-checked script writes
Every GDScript file written through script_create or script_patch is validated before import, and the errors come back in that same response.
Play and read the game
project_run starts the game and reports whether it came up, and on a parse break it names the failing script from the debugger.
Screenshots of the editor and the game
The agent can look at what it built, from either editor view or a frame of the game in play, at 640 pixels on the long side unless asked otherwise.
One-click client setup
The dock configures 26 MCP clients, including Claude Code, Codex and Cursor, and pins the matching version and ports.
Signed, confined updates
The in-editor updater verifies a signature on every file, and writes are kept inside the project with project.godot and .godot/ off-limits.
Build a scene from a description
An agent creates the nodes, sets their properties, wires the signals and saves the scene without you placing anything by hand.
Write a script and catch the error at once
script_create and script_patch parse-check every GDScript file they write and return the error in the same response, so the agent fixes it before you run the game.
Run the game and debug from the log
project_run presses play and waits for the game to come up, then logs_read hands the agent the runtime errors with file and stack details.
Check a UI change visually
editor_screenshot captures the 2D or 3D viewport or the running game's frame so the agent can compare what it built with what you asked for.
The nearest AI agent skills on Hokai for the same job.
| Skill | Works with | Connects by | Checked |
|---|---|---|---|
| Godot AI This page | Claude · Codex · Cursor · Gemini +1 | MCP | 15 Nov |
| Claude · Codex · Cursor | Skill file | 11 Nov | |
| Claude · Codex · Cursor · Gemini | Skill file | 11 Nov | |
| Claude · ChatGPT · Codex | MCP | 21 Oct |
Godot AI itself costs nothing: the add-on and its Python server are MIT-licensed with no paid tier. What costs money is the agent that calls it. Claude Code, Codex or Cursor bill through their own plans or your API key, and every tool call and screenshot uses that allowance.
Yes, it is published on GitHub under the MIT licence, and releases are signed so the in-editor updater can check them. You run it on your own machine: the server and editor talk only over local connections. Anonymous telemetry is on by default and can be turned off with GODOT_AI_DISABLE_TELEMETRY=true or in the editor.
Any client that speaks the Model Context Protocol over standard input and output. The dock sets up 26 of them directly, among them Gemini CLI, Hermes Agent and the three big coding agents. For a client it does not list, the dock prints a command to run by hand.
No. The README asks for Godot 4.7 or later, so older projects need an upgrade first. Godot 3 projects also need Godot's own 3-to-4 converter run before that, since GDScript syntax changed between the two.
Not by itself. It can create, patch and outline .cs files, but it does not build .NET or report compiler errors, and attaching a .cs script needs a .NET-enabled editor build. GDScript is the language it fully validates.
Godot AI is an open-source add-on and Model Context Protocol (MCP) server, published by the hi-godot project on GitHub, that connects a coding agent to a Godot editor that is open on your machine. There is no chat window or interface of its own. The add-on hands its tools to an agent you already run, whether that is Claude Code, OpenAI Codex or Cursor, and the agent calls them by name. Its 4.x line shipped through 2026, with version 4.4.1 released on 3 November 2026.
The chain has three hops. Your agent starts a small bridge over standard input and output, the bridge talks to a local Python server, and the server talks to the Godot editor plugin over a WebSocket that only accepts loopback connections with rotating credentials. The plugin then does the work inside the editor: it creates nodes, writes and patches GDScript, wires signals, sets up UI, materials, cameras and particles, and can press play and read back the game's log. GDScript the agent writes is parse-checked on the spot, and the error comes back in the same tool response.
The add-on's dock configures 26 clients by itself, including Claude Code, Claude Desktop, Codex, Cursor, VS Code with GitHub Copilot, Hermes Agent and Gemini CLI, and prints a manual command for the rest. That makes it the practical way to let a terminal agent see the scene tree, take a screenshot of the running game and fix its own errors, instead of guessing your node names from pasted code. On 15 November 2026 we read the maintainers' public cyberpunk-hud-demo repository: its friction log, dated 15 April 2026, records Claude Code building a full HUD and pause menu through the add-on with no hand-edited scene files, and lists 12 snags on the way, including a missing scene-instancing call and a failing game screenshot that the current tool reference now covers. It lists next to other agent connectors in the developer skills section.
It is not for everyone. It needs Godot 4.7 or later, so a team on Godot 4.4 or earlier, or still on Godot 3, cannot use it without upgrading. C# projects get less help, because building and compiler errors stay with you. If you only want the agent to launch the project and read the debug output, the older and smaller Coding-Solo godot-mcp server (6,660 GitHub stars, read 15 November 2026) does that without an editor add-on. If you want an assistant panel inside Godot rather than a terminal agent, Ziva is the paid in-editor alternative.
Protocol, authentication, permissions and the call contracts on this page are read from hi-godot's own documentation. The verdict is Hokai's reading of them, not the maintainer's claim.