# Reported issues for godot-mcp

Pod holds 23 of 30 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [godot-mcp](/mcp/godot-mcp-tomyud1).

## Most discussed

### Server never connecting (win11/linux/ godot 4.6.1 asset store version)

I did everything according to the instructions and plugin is stuck on mpc connecting, tried to do npm install and point to the absolute directory but got the same results, im using LMStudio with mcp.

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/10) · 2026-03-14 · closed · external user · 8 comments

### Add screenshot support

Ability to render what the camera is seeing to a screenshot file for the agent to read. Either in editor, or running the game in development. Could allow agents to run the game and visualize what is happening, to inform decisions / fix bugs.

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/11) · 2026-03-14 · closed · external user · 5 comments

### Codex on Windows: Godot connects successfully, then MCP server shuts down and later tool calls fail with "Transport closed"

## Summary

On Windows, `godot-mcp-server` starts successfully in Codex and the Godot plugin connects successfully, but the connection drops shortly after when Codex probes the server via `/mcp`. After that, any Godot MCP tool call from Codex fails with:

`Transport closed`

This appears to be a runtime compatibility / lifecycle issue rather than an installation or initial setup issue.

## Environment

- OS: Windows
- MCP client: Codex CLI / Codex app
- Codex version: `0.117.0`
- Model: `gpt-5.4

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/16) · 2026-03-27 · closed · external user · 4 comments

### Delete .uid files

Hi, can i suggest a small behavior addition to delete_script tool? I have been using this MPC and noticed that the .uid files are not being deleted when the script is deleted, which is leaving orphaned .uid files in the project.

In my project, i added the code below to `godot_mcp/tools/script_tools.gd::delete_script` tool to adjust this behavior:
```gdscript
# =============================================================================
# delete_file
# ==========================================

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/47) · 2026-05-02 · open · external user · 3 comments

### Feature: configurable timeout and port via environment variables

## Problem

1. The 30-second tool timeout (`DEFAULT_TIMEOUT` in `godot-bridge.ts`) is too short for some operations (e.g. `map_project` on large codebases). No way to override without editing source.
2. The WebSocket port (6505) is hardcoded. Multiple Godot instances or MCP sessions can't coexist.

## Proposed Fix

Two environment variables:
- **`GODOT_MCP_TIMEOUT_MS`** — override tool timeout (default: 30000)
- **`GODOT_MCP_PORT`** — override WebSocket port (default: 6505)

```typescript
const 

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/20) · 2026-03-28 · closed · external user · 3 comments

### Feature: classdb_query tool — expose ClassDB to prevent API hallucination

## Problem

AI assistants frequently hallucinate non-existent Godot methods (e.g. using Godot 3 API in Godot 4 code, or inventing methods that don't exist). There's no way for the AI to verify that a class, method, or property exists before writing code that uses it.

## Proposed Tool

### `classdb_query`
- Input: `class_name` (required), `query` (optional: `"all"`, `"properties"`, `"methods"`, `"signals"`)
- Output: properties with types, methods with argument signatures and return types, signa

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/19) · 2026-03-28 · closed · external user · 3 comments

### Feature: run_scene / stop_scene / is_playing tools

## Problem

There's no way for an AI agent to run a scene, check if it's running, or stop it. This means the edit→run→debug loop requires the user to manually press Play in the editor, breaking the autonomous workflow.

## Proposed Tools

### `run_scene`
- Defaults to main scene
- Accepts `scene: "current"` for the open scene, or a `res://` path for a specific scene
- Returns error if a scene is already running

### `stop_scene`
- Stops the currently running scene

### `is_playing`
- Returns `{ 

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/18) · 2026-03-28 · closed · external user · 3 comments

### WebSocket server should bind to IPv4 (127.0.0.1) — fixes connection failures

## Problem

The WebSocket server in `godot-bridge.ts` creates a server without specifying a host:

```typescript
this.wss = new WebSocketServer({ port: this.port });
```

The `ws` library defaults to binding on `::` (IPv6). Godot's `WebSocketPeer` connects to `ws://127.0.0.1:6505` (IPv4). On systems where IPv6 dual-stack doesn't transparently bridge to IPv4, the connection silently fails — the plugin logs `[MCP] Connecting to ws://127.0.0.1:6505...` but never succeeds.

This is likely the root c

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/17) · 2026-03-28 · closed · external user · 3 comments

## Most recent

### Primary MCP server lingers as orphan after its only stdio client (single DSH) exits, breaking the next session

## Summary

With a **single** MCP client (e.g. DeepSeek Harness DSH, or a lone Codex/Claude session), when the client exits, the **PRIMARY** \godot-mcp-server\ process **does not exit** (by design: \stdin close does NOT kill the server\). It keeps listening on :6505/:6506 while Godot stays connected.

On the next launch, the freshly spawned server detects the lingering PRIMARY via the :6506 probe and enters **PROXY mode** against that orphan. If the orphan's stdio is gone but it still holds the 

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/66) · 2026-08-25 · closed · external user · 1 comment

### run map_project cannot show visual

this is cursor tip:

"
The injected JSON is corrupted (unescaped newlines appear).
The HTML gets truncated by </script> in the middle of <script>.
The latter half of JSON/JS is rendered as plain text by the browser → you see 'a bunch of text'.
"
becase :" html.replace('"%%PROJECT_DATA%%"', () => dataJson)"

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/63) · 2026-06-17 · open · external user · 0 comments

### Cannot run with opencode

When I try to run opencode with the godot-mcp server enabled I get
˘˘˘
list the nodes in this scene using the godot mcp

Internal error: rpc error: code = InvalidArgument desc = JSON schema conversion failed: Unrecognized schema: {"description":"New value (same shape as modify_node_property.value)"} Unrecognized schema: {"description":"New value for the property. ANY JSON value accepted: primitives (numbers, strings, booleans, null), arrays, or objects. Use the {type, ...} discriminated form for

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/61) · 2026-05-30 · open · external user · 0 comments

### Godot Editor can not download Plugin from Github

Hi tomyud,
unfortunately I can not install your godot plugin, getting the following error:

Asset Download Error:
Can't connect to host: https://github.com/tomyud1/godot-mcp/archive/f794f7f4d3029172c06a7ebee02543e12dbf60ef.zip.

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/58) · 2026-05-29 · open · external user · 2 comments

### Error: signal connection

Hi got this error when asking to connect signals:

The script validation is returning "cannot be instantiated" which might indicate an issue. Let me run the scene to see what actual errors occur, and then deal with the signal connection differently.
Actually, the connect_signal tool has been unreliable here. Let me try a different approach: connect the signal programmatically in Game.gd's _ready() method using $Player.player_died.connect(_on_player_died). This achieves the same result but throug

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/56) · 2026-05-18 · closed · external user · 0 comments

### Improvement: Clear output before running scene

What often happen is that when claude launch the scene, he read the output that have not been cleaned and think there is error. Then search for a moment till he understand and clear the output and run again. Would be easier if runing the scene just clear the output so it can clearly read the logs.

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/54) · 2026-05-06 · open · external user · 0 comments

### Improvement: Import animation

At the moment, it seems we can't import animation with animation files.

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/53) · 2026-05-05 · closed · external user · 2 comments

### Error; scene_tree_dump

Error: 'godot:scene_tree_dump' has not been loaded yet. You do not have the correct parameter names for this tool. Call tool_search with a relevant query first to load the tool definition and discover the correct parameters, then call it with the right parameter names.

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/51) · 2026-05-05 · closed · external user · 1 comment

### Improvement: Ask to do some action in the scene

It would be great to specify what to testi n a scene. For example, make the character "attack" command (clicking space or whatever) so he can test there is no error from it. Not just launching the game (which is already great !)

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/50) · 2026-05-05 · closed · external user · 1 comment

### Improvement: Getting the error from the debugger

When launching the scene, I have erros in the debugger, but nothing on the "log". So when asking to fix the errors to claude he says there is no error. Maybe it should be able to look at the debbugger output ? I don't master the difference between the "log" and the debugger.

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/49) · 2026-05-05 · open · external user · 1 comment

### Writing in existing file

It seems that you can't directly write in a file with claude, it will instead delete old file and recreate new one:

"Looking at what tools are available through Godot, I can delete and recreate script files, but there's no direct edit function for existing scripts. So my approach will be to delete the old game_3d.gd file and create a fresh one in its place, which should let the scene automatically pick up the new version."

For token usage, it would be nice to be able to edit directly files.

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/48) · 2026-05-04 · closed · external user · 1 comment

### LM-Studio MCP not working

I run LM-Studio server where i can add the mcp. I have added it, but nothing in the LM studio logs suggest it is runnig or errored out. Also the godot side is stuck at Yellow  MCP: Connecting.

Is there a way to make it work with OpenCode + LM-Studio?

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/46) · 2026-04-22 · open · external user · 2 comments

### mcp_godot_modify_node_property: Error: tool parameters array type must have items。

HI！The 0.4.3 update to modify_node_property added array parameters for 3D types but missed the items definition required by strict JSON schemas.

Environment
    MCP Server Version: 0.4.3
    Client: copilot
    Godot Version: 4.6

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/44) · 2026-04-15 · closed · external user · 2 comments

### Add CI/CD pipeline with GitHub Actions and test suite

## Feature Request

### Problem

The godot-mcp repository currently has no CI/CD pipeline. This means:
- No automated tests run on pull requests
- No linting/type checking in CI
- No build verification before merging
- Changes can break the build without detection

### Proposed Solution

Add a comprehensive CI/CD pipeline using GitHub Actions that includes:

1. **TypeScript type checking** - Ensure code compiles without errors
2. **Linting** - Code style and consistency checks
3. **Unit tests** 

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/37) · 2026-04-07 · closed · external user · 1 comment

### Server enters zombie state when WebSocket/HTTP servers fail to start

## Bug Report

### Problem

When the godot-mcp-server fails to start the WebSocket server (port 6505) or HTTP server (port 6506) with an error other than `EADDRINUSE`, the process continues running without listening on any ports. This creates a zombie process that cannot accept connections from Godot or proxy clients.

### Steps to Reproduce

1. Start godot-mcp-server
2. Trigger an error during WebSocket server startup (e.g., permission issue, ws library error)
3. Observe process is running but 

[Read the thread](https://github.com/tomyud1/godot-mcp/issues/36) · 2026-04-07 · closed · external user · 1 comment

The remaining reports are on [the project's issue tracker](https://github.com/tomyud1/godot-mcp/issues).
