Skip to content

Erodenn/godot-mcp-runtime

MCP Developer Tools

A lightweight MCP server that provides headless editing and full runtime control over a Godot 4.x project without requiring any addon or code changes

TypeScript Latest v3.2.1 · 15d ago Security brief →

Features

  • Headless scene, node, script, signal creation and validation with no editor window
  • Runtime bridge offering screenshots, input simulation, UI discovery, and live GDScript execution against a running game
  • Zero‑footprint operation – injects an autoload temporarily and cleans up on shutdown

Recent releases

View all 21 releases →
No immediate action
v3.2.0 New feature

GDScript security gate

No immediate action
v3.1.2 Bug fix

Emit structuredContent

Config change
v3.1.1 Bug fix

GODOT_PATH misconfiguration handling

No immediate action
v3.1.0 New feature

Multi‑runtime bridge support

v3.0.0 Breaking risk
Breaking changes
  • `take_screenshot` now requires `responseMode` (default `preview`).
  • `set_node_property` / `*_batch` merged into `set_node_properties`; input must be an array.
  • `delete_node` renamed to `delete_nodes`; always expects an array.
Full changelog

Main v3 work: #12 @Erodenn.

Breaking changes

  • Compact screenshots (#11, thanks @johanravn). take_screenshot gets responseMode: preview (new default, 960×540 inline + full PNG saved), full, path_only.
  • Property tools batched. set_node_property / *_batch collapse into set_node_properties; same for get_node_properties. Always-array input — one-element for one-off, many for batched.
  • delete_nodedelete_nodes. Always-array, batched delete.
  • manage_uids removed. validate covers it.

Changes

  • Persistent TCP bridge replaces per-call UDP. Removes the silent ~65 KB payload ceiling on run_script / get_ui_elements, sidesteps AV/EDR interference, and turns crashes into ms-level rejects instead of 10 s timeouts.
  • stop_project / detach_project send a shutdown first so the port releases cleanly.
  • Vector/Color coercion. {x,y} / {x,y,z} / {r,g,b,a} dicts now write as typed literals, not dictionaries.
  • connect_signal serializes with CONNECT_PERSIST — connections survive save/reload.
  • validate treats stderr noise as failure; the GDScript flag alone was unreliable.
  • load_sprite errors explicitly on non-Texture2D or unimported assets instead of silently no-op'ing.
  • Path resolution accepts "", ".", "root", the scene root's name, and root/... prefixes.
  • simulate_input auto-derives unicode for ASCII so LineEdit / TextEdit receive typed text; pass explicitly for symbols/non-ASCII.
  • Bridge inject always overwrites the script — fixes stale-script issues across upgrades.
  • Internal: BridgeManager, autoload-ini, executeSceneOp extracted; project-tools.ts split. 704 unit tests.

Full Changelog: https://github.com/Erodenn/godot-mcp-runtime/compare/v2.3.0...v3.0.0

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
47
Forks
9
Languages
TypeScript GDScript JavaScript
Downloads/week
139 ↓30%
NPM Maintainers
1 Single npm maintainer
Contributors
3
TypeScript
Types included ✓

Install & Platforms

Install via
npm

Alternative to

Playwright MCP

Beta — feedback welcome: [email protected]