godot-mcp-server
Enables AI agents to interact with the Godot game engine, including project inspection, scene/script parsing, headless exports, runtime control with live scene-tree inspection and evaluation, and API documentation search.
README
godot-mcp-server
An MCP server that gives AI coding agents
first-class access to the Godot game engine: project
inspection, project.godot editing, scene/script parsing, headless exports,
running games with live control (eval, scene-tree inspection, hot reload and
screenshots), and version-accurate API documentation search.
It targets Godot 4.7 and works without the editor open — agents drive Godot through its command line and a small in-game bridge. An optional desktop app manages the server and wires it into your AI agents in one click.
This is the Godot counterpart to defold-mcp, built with the same architecture.
Contents
- Features
- Requirements
- Install
- Configuration
- Tools
- The live-control bridge
- Desktop app
- Architecture
- Development
- License
Features
- Project parsing — turn
project.godot,.tscn/.tresscenes and.gd/.csscripts into structured JSON (node trees, signals, exports, connections, outlines). - Toolchain management — resolve the project's target version, download and
cache the matching editor binary and export templates, or use a binary you
already have (
GODOT_BIN). - Build pipeline — headless import (compile check), multi-mode exports
(release/debug/pack) from your presets, clean, and a
doctordiagnostic. - Runtime control — launch games as child processes, stream logs, stop them, and (with the bridge) inspect the live scene tree, evaluate expressions, set node properties, hot-reload scripts, and capture screenshots.
- API docs — search and read the Godot class reference for the exact engine
version in use (generated locally via
--doctool, with a GitHub fallback). - Two transports — stdio (default) or HTTP, so multiple agents can share one server.
- Desktop manager — an optional Tauri app: live console, start/stop, and one-click MCP setup for 9 AI agents.
Requirements
- Node.js 18+
- A Godot 4.x editor binary — the server can download one automatically, or
you can point it at an existing install with
GODOT_BIN. - Network access for the first toolchain/doc download (not needed afterwards, or
at all if you set
GODOT_BINand skip docs search).
Install
git clone https://github.com/Fulviuus/godot-mcp.git && cd godot-mcp
npm install
npm run build # generates dist/index.js
npm test # runs the test suite (optional)
Configuration
Add the server to your MCP client. For a stdio config (Claude Code / Claude Desktop style):
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/path/to/godot-mcp/dist/index.js"],
"env": { "GODOT_PROJECT_ROOT": "/path/to/your/game" }
}
}
}
Or run it over HTTP (shared by multiple agents):
node dist/index.js --transport http --port 7878
# then point clients at http://127.0.0.1:7878/mcp
Don't want to edit config files by hand? The desktop app writes the right config into each agent for you.
CLI options
| Flag | Default | Purpose |
|---|---|---|
--transport <stdio|http> |
stdio |
Transport to serve on. |
--host <host> |
127.0.0.1 |
HTTP bind host. |
--port <port> |
7878 |
HTTP bind port. |
--exit-with-parent |
off | Exit when the controlling stdin/parent closes. |
--version, --help |
— | Print version / usage. |
Environment variables
| Variable | Purpose |
|---|---|
GODOT_PROJECT_ROOT |
Default project root (folder with project.godot). |
GODOT_BIN |
Path to a pre-installed Godot editor binary; skips downloads. |
GODOT_MCP_CACHE_DIR |
Where to cache editors/templates/docs (default ~/.cache/godot-mcp). |
GODOT_MCP_MONO |
Set to 1 to use the .NET/Mono build. |
GODOT_MCP_LOG_LEVEL |
debug / info / warn / error. |
Most tools also accept a project_root and version argument to override the
defaults per call.
Tools
28 tools across eight areas. Every tool accepts response_format: "markdown" | "json".
| Area | Tools |
|---|---|
| Project | godot_project_info, godot_get_settings, godot_set_setting, godot_list_addons |
| Resources | godot_list_resources, godot_parse_resource, godot_create_resource, godot_find_references |
| Build | godot_setup, godot_build, godot_export, godot_clean, godot_doctor |
| Runtime | godot_run, godot_stop, godot_game_logs, godot_list_games |
| Live engine | godot_engine_info, godot_scene_tree, godot_eval, godot_set_node_property, godot_hot_reload, godot_engine_command |
| Editor | godot_validate_script, godot_install_bridge |
| Screenshot | godot_screenshot |
| Docs | godot_api_search, godot_api_doc |
A typical agent flow:
godot_project_info → understand the project
godot_setup → provision editor + templates + bridge
godot_build → confirm it imports/compiles
godot_run live:true → launch with live control
godot_scene_tree / godot_eval → inspect the running game
godot_hot_reload → apply script changes without restarting
godot_screenshot → see the result
godot_export preset:"Linux" → produce a build
The live-control bridge
Godot's headless mode can't render and has no general runtime RPC, so live
control is provided by a tiny bridge addon (addons/godot_mcp) that
godot_setup (or godot_run live:true) installs into your project. It registers
an autoload that, only when a port is provided, opens a localhost TCP socket
speaking newline-delimited JSON. The server uses it for godot_eval,
godot_scene_tree, godot_set_node_property, godot_hot_reload and
godot_screenshot. It is inert during normal runs and easy to remove (delete the
addons/godot_mcp folder and the MCPBridge autoload).
Desktop app
desktop/ is an optional Tauri control panel (the Godot
counterpart to the defold-mcp manager). It supervises the server and connects it
to your agents without touching config files by hand:
- Console — a live stream of everything the server does (tool calls, export output, game logs, listener status).
- Server control — start/stop the server in Streamable HTTP mode on a chosen
host/port (default
127.0.0.1:9820), with a status pill showing the live tool count and PID. - Agent auto-configuration — pick an agent and click Configure: the app
merges a
godotentry into that agent's own MCP config file (backing it up first) in the client's correct dialect, over HTTP or stdio. Supported agents: Claude Code, Claude Desktop, OpenAI Codex, Cursor, Gemini CLI, VS Code (Copilot), Windsurf, Cline, Zed. Files it can't safely edit (e.g. JSONC with comments) are never modified — it shows a paste-ready snippet instead.
The server is bundled into the app, so end users only need Node installed. See desktop/README.md to build and run it.
Architecture
src/
├── index.ts Entry point: server construction, stdio/HTTP, lifecycle
├── http.ts Streamable HTTP transport + /health
├── constants.ts Versions, release-asset naming, cache locations
├── context.ts Project-root resolution, res:// ↔ filesystem mapping
├── state.ts Running-game registry + log buffers
├── util/ Parsers & helpers (ini, scene, gdscript, csharp, fs, http)
├── services/ Engine-facing logic (toolchain, processes, engine bridge,
│ refdoc, screenshot, editor, templates)
└── tools/ MCP tool modules (project, resources, build, run, engine,
editor, screenshot, docs) + shared registration
desktop/ Optional Tauri desktop manager (see desktop/README.md)
test/ node --test suite + a minimal Godot fixture project
The engine-specific layers map cleanly onto Godot: the godot editor binary +
export templates replace Defold's bob.jar; the text scene format replaces
protobuf; GDScript/C# replace Lua; and the bridge replaces Defold's TCP engine
service.
Development
npm run dev # run from source with tsx
npm run build # type-check + emit dist/
npm test # unit + server (stdio) + http tests
npm run bundle:server # esbuild single-file bundle (used by the desktop app)
The toolchain-dependent flow (setup → build → run → eval → screenshot → export) is covered by an opt-in smoke test that needs a real Godot install:
node test/live-smoke.mjs # uses a temp copy of the fixture
node test/live-smoke.mjs /my/game # or your own project
Desktop app (Rust/Tauri) tests:
cd desktop/src-tauri && cargo test # config writers, merging, backups
License
MIT — see LICENSE.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。