0
0
via GitHub · Posted Jul 26, 2026 · 1 min read
MCP Server

Enhanced MCP server for Godot 4.5-4.7: 33 tools / 199 actions, 3-layer architecture (headless + editor + game bridge), secure sandbox, recording & frame-verify, cross-version CI.

91Stars
9Forks
0Open issues
4Watching
TypeScript NOASSERTION v0.32.11 Updated 1 week ago

At a glance

Node.js HTTP Actively maintained
Install npx godot-mcp-enhanced install # 默认 latest stable;可加版本 tag 如 4.7.2-stable
MCP config
{
  "mcpServers": {
    "godot": {
      "command": "npx",
      "args": ["-y", "godot-mcp-enhanced"]
    }
  }
}

A comprehensive Model Context Protocol server for Godot 4.5–4.7 featuring 33 tools across a three-layer architecture (headless, editor, game bridge), with systematic security protections including path whitelisting, injection prevention, and frame verification for AI-assisted development.

0 comments

README

Godot MCP Enhanced

免费 · 开源 · 安全 —— Godot MCP 赛道里少见提供 「系统化安全防护 + 三层架构 + 运行时控制」的开源方案。

给 AI(Claude Code、Cursor、CodeBuddy 等 MCP 客户端)一个能真正读、写、跑、验证 Godot 项目的 工具层:45 个 MCP 工具(merged,共 248 个 action;完整清单见 capability-matrix)覆盖场景/脚本/UI/动画/物理/粒子/导航/音频/测试/导出/3D 参数化资产(asset:11 shape + 路径阵列 + batch 原子 undo),三层架构 (headless + editor + game bridge)+ 路径白名单 / 注入防御 / sandbox 安全体系。 赛道竞品普遍押注「生成」(authoring),本项目押注「验证」(verification)——QA 编排、回归 diff、操作审计与确定性 playtest 共同构成 AI 游戏开发的持续验证管线(CI for AI-assisted game development)。

English · 工具描述为简体中文,服务中文 Godot 开发者社区;欢迎 i18n PR。

小白上手:不用打开 Godot 编辑器也能做游戏

不懂引擎、不想学编辑器?装好 Godot 后,把需求用一句话告诉 AI(「做一个 2048」「给我的角色加二段跳」),读、写、跑、验证全部由 AI 通过本工具完成,全程可以不打开 Godot 编辑器:

  1. 说需求 — AI create_project 建项目、quick_scene / write_script 写场景与脚本;
  2. 看效果run_and_verify 真跑一遍并做结构化错误分析,screenshot(action capture)截图给你看现在的样子;
  3. 迭代 — AI edit_script 改完自动过 validate_scripts 逐脚本编译验证;你只管提意见;
  4. 验收qa 用结构化测试套件起真游戏跑断言(playtest.seed 锁随机,同输入可复现);verify_delivery 交付门禁检查场景树完整性 + 脚本健康 + 性能;
  5. 出错不慌 — editor 层操作全进 Godot 原生 undo 栈,AI 改错一步,打开编辑器一步 Ctrl+Z 即回。

连 Godot 都没装? 一条命令自动安装(官方 GitHub releases,SHA512 同源校验,零预装):

npx godot-mcp-enhanced install        # 默认 latest stable;可加版本 tag 如 4.7.2-stable

装到 ~/.godot-mcp/godot/<version>/ 并自动登记进搜索链与路径白名单;setup 在检测不到 Godot 时也会交互式引导安装。

直接生成一个能玩的游戏? 内置可玩模板(四件套:可玩 demo + GDD + qa 确定性套件 + CSV 调参表):

npx godot-mcp-enhanced init my-game --template=2048    # 或 snake(贪吃蛇)/ breakout(打砖块)
cd my-game
npx godot-mcp-enhanced qa run qa/2048.qa.md --project .   # 真跑游戏跑确定性断言

零外部资产(色块占位美术),零编辑器预打开即可运行;改玩法 = 编辑 tuning/*.csvcsv_to_resources 重导 .tres → 重启生效;design/gdd/ 内置 8 段游戏设计文档(过 validate_gdd 校验),AI 拿着它继续迭代。

一条命令把游玩过程录成 demo GIF(分享给朋友/发社区):

npx godot-mcp-enhanced gif . --seconds 8 --fps 4              # 默认方向键;breakout 加 --keys left,right

bridge 定频截图 + 按键时间线注入,零依赖自写 GIF89a 编码器(≤256 色精确直通/中位切分量化);产物默认落项目内 dist/demo.gif,项目外路径需 y/N 确认。

导出成网页,浏览器直接玩(分享链接前先本地试玩):

npx godot-mcp-enhanced web .            # 自动装 export templates(首次 ~1GB)→ 导出 → 起本地服务器

headless --export-release 官方路径导出 + 127.0.0.1 防穿越静态服务器,打印 http://127.0.0.1:<port>/ 即可浏览器游玩;之后可用 web --serve-only <导出目录> 直接重玩。

已在用 Claude Code Game Studios 工作室模板?见 CCGS × 本项目集成指南——它管设计流程,本项目管真实运行验证。

不知道从哪开始? 一条龙向导 skill(game-wizard):四档分诊(没想法/模糊/清晰/已有项目)→ 阶段机(环境→造→改玩法→qa 硬门→导出→分享),每个 gate 以 qa 退出码为准——「不问文档写了吗,问游戏跑通了吗」:

npx godot-mcp-enhanced skills install    # 装入 game-wizard(及另外 6 个技能)后对 AI 说「帮我做一个能玩的游戏」

路线图:一条龙六批(分发声量/install/模板/GIF/Web/向导)已全部落地;后续方向见 ROADMAP

与同类方案对比

本项目不追求"工具数量第一"。 赛道里,godot-mcp-pro 有 175 个工具但闭源收 $15; 免费的 Coding-Solo 仅 13 个。真正稀缺的不是工具数量,而是「免费 + 开源 + 系统化安全防护」——安全维度在赛道内几乎无人设防。 数据截至 2026-06-27(stars / 工具数 / 价格均可能变化,详见各项目仓库)。

维度 本项目 godot-mcp-pro GDAI MCP Coding-Solo/godot-mcp yanhuifair/Godot-MCP [^p4]
价格 免费 $15 买断 [^p1] $19 买断 [^p2] 免费 [^p3] 免费 [^p4]
开源 ✅ MIT ❌ server 预编译闭源 [^p1] ❌ [^p2] ✅ [^p3] ✅ [^p4]
工具数 45 (matrix) 175 [^p1] ~30 [^p1] 13 [^p1] 386 [^p4]
安全特性 ✅ 路径白名单 / 注入防御 / sandbox / 确认令牌 / 输出防伪 部分(TCP token) [^p4]
架构 三层 headless + editor + bridge 单 editor WS [^p1] stdio [^p1] headless CLI [^p1] TS server + 编辑器插件 TCP [^p4]
运行时控制(engine-level) ✅ game bridge:读运行时状态 / 输入模拟 / 录制回放 / frame-verify ❌ 仅文件·编辑器层 ✅ 11 个 runtime 工具 [^p4]
确定性 playtest(冻结/单帧/随机锁定) ✅ freeze / step_until 条件步进 / playtest.seed RNG 锁定 + fixed_delta / snapshot-restore ✅ freeze→step→screenshot(无 RNG 锁定/条件步进)[^p4][^p5]
Godot 4.5–4.7 兼容矩阵 —(仅声明 4.x)[^p4]
中文工具描述

[^p1]: https://github.com/youichi-uda/godot-mcp-pro README(含其自带竞品对比表),抓取 2026-06-27 [^p2]: GDAI MCP,数据转引自 godot-mcp-pro 对比表,2026-06-27 [^p3]: https://github.com/Coding-Solo/godot-mcp,抓取 2026-06-27 [^p4]: https://github.com/yanhuifair/Godot-MCP,抓取 2026-08-19(工具数 386 为 grep -c "registry.register(" src/tools/register.ts 实测) [^p5]: 该仓库 README 声称「freeze/step/screenshot No other public Godot MCP does this」——与事实不符:本项目的 playtest.freeze / step_until(结构化条件步进)与 satelliteoflove/godot-mcp(2025-12 起)的 deterministic playtesting 均早于该声明,供读者自行核对。

"—" 表示该项目公开 README 未披露相应能力,不代表必然缺失;欢迎 PR 修正。

不只是文件级 bridge,而是 engine-level 运行时控制。 赛道里多数方案(含闭源商业 SaaS)只能让 AI 读写项目文件,看不到、控不了一个正在运行的游戏。 本项目的 Game Bridge 通过 TCP 连接运行中的游戏:读运行时节点树与属性、GPU viewport 真实截图、属性采样、信号监听、输入模拟、录制回放,外加 frame-verify 反作弊验证——让 AI 真正闭环「改 → 跑 → 验证」,而非停在改文件。

「确定性」分级:帧步进 ≠ 真确定性。 赛道里 "deterministic" 一词正被挪用(有项目把 freeze / 固定帧数 step 标注为 Deterministic,却无 RNG 锁定——同输入不同随机状态,结果仍不可复现)。确定性测试其实分三层:

级别 能力 含义
L1 帧步进 freeze / 固定帧 step / 截图 能「暂停下来逐帧看」
L2 输入时序 帧定时输入时间线(send_input_sequence) 锁定「玩家第 N 帧做了什么」
L3 真确定性 playtest.seed RNG 锁定 + fixed_delta 物理步长锁定 + step_until 条件步进 + snapshot/restore 状态恢复 同输入 + 同 seed ⇒ 跨 run 可复现

本项目三层齐备。截至 2026-08-20,已知竞品最高仅达 L1(freeze/固定帧 step,无 RNG 锁定)或 L2(帧定时输入,无暂停、无 seed)。「AI 测试 AI 写的游戏」要可复现,至少需要 L3。

Coding-Solo/godot-mcp 升级?迁移指南 —— 核心能力零丢失,获得三层架构 / 安全 / 验证门禁 / 跨版本矩阵增强。

安全体系

截至 2026-06-27 调研,Godot MCP 赛道内少见提供系统化安全特性的方案。本项目内置多层防护, 适合对可信边界有要求的开发场景:

  • 路径访问控制ALLOWED_PROJECT_PATHS 白名单(deny-by-default),防 junction / 符号链接绕过
  • Godot 二进制白名单GODOT_MCP_ALLOWED_GODOT_PATHS(分号分隔,realpath 归一)在 godot --version 签名校验之上加硬隔离,防 AI 可控的 godot_path 工具参数/项目 override/env 指向任意二进制被 spawn(任意代码执行)。空 env = back-compat 放行(本地信任场景,签名校验仍兜底);多用户/不可信环境显式列可信路径
  • GDScript 注入防御 — 危险 API 模式扫描 + 字符串拼接绕过检测
  • 危险操作确认令牌 — 删节点等操作需显式确认
  • 输出标记防伪造 — 每次执行随机标记,防 GDScript 伪造 MCP 输出
  • 本地运行 — 无远程暴露,无第三方数据上传(注:启动时 update-checker 会查 npm registry,详见下方「匿名遥测」段)

以上是防误操作层,不是不可绕过的安全边界。GDScript 拥有完整系统访问权限, 沙箱可被间接方式绕过(call() 动态分派、多步变量构造 API 名、字符串拼接构造 API 名(如 "cu"+"rl"str("OS")+".execute()")等)。

  • 需真正隔离:容器 / VM + GODOT_MCP_ALLOW_UNSAFE=false
  • 关闭扫描:GODOT_MCP_SANDBOX=disabled(仅开发)
  • 本工具仅限本地可信环境,不提供远程认证或加密

匿名遥测(默认关闭)

opt-in,默认零外传。仅当显式设 GODOT_MCP_TELEMETRY=true 时启用,且阶段 0 endpoint 默认空 = 不发任何数据出进程

  • 收集什么:tool 名 + success bool + duration_ms + 错误分类(经白名单脱敏,非原始文本)+ 加盐 sha256 项目 hash(不可逆推原路径)
  • 绝不收集:源码 / 场景内容 / 文件路径 / 项目名 / editor 日志 / 邮箱 IP 账号
  • install UUID 存哪:~/.godot-mcp/telemetry-uuid.txt(POSIX 0o600)
  • CI 强制关闭:CI=true 时即使 opt-in 也忽略,防 CI 触发合成事件

⚠️ 诚实披露 update-checker 外传点:本仓库每次 MCP server 启动时,src/core/update-checker.tsfetch(REGISTRY_URL)被动 fetch https://registry.npmjs.org/godot-mcp-enhanced/latest(24h 缓存)。此行为与遥测无关但涉及「数据离开本机」。v0.25.7 起支持 GODOT_MCP_UPDATE_CHECK=false(或 0/no/off,大小写不敏感)关闭启动外传;self_update check action 经 force:true 短路此门控,且 risk='read' 不经确认令牌,AI 可自主调用触发外传(IP/UA 泄漏 npmjs.org)。严格零外传需防火墙或 readOnly 模式拒整工具。CLI 下载链(install/web 的 GitHub releases 下载,用户主动触发)是另一独立出网点,详见 docs/telemetry.md

代理环境变量(实测口径):Node 原生 fetch(undici)默认不读 HTTP_PROXY/HTTPS_PROXY/NO_PROXY 环境变量(Node ≥24 可设 NODE_USE_ENV_PROXY=1 启用)。实测设必拒代理端口后 fetch registry.npmjs.org 仍直连 200。企业代理环境下更新检查实际直连(可能被防火墙静默拦截);NO_PROXY 不是零外传的有效手段。详见 docs/telemetry.md 代理环境变量节。

⚠️ 诚实披露 vision-router 外传点: screenshot analyze action 设 vision_route=true + GODOT_MCP_VISION_KEY 时,截图 base64+prompt 外传到 https://api.groq.com(groq 视觉模型)。双重 opt-in 默认零外传(不传 vision_route 或不设 key → fallback 本地 detail 分层,零外传)。可设 GODOT_MCP_VISION_BASE_URL 指向自建/ollama/国内中转避免外传到 groq。详见 docs/telemetry.md

Blender 建模(execute_bpy)安全模型

execute_bpy 通过 headless blender --background 跑 AI 写的 bpy 片段。bpy 是全功能 Python, 无语言层沙箱,威胁面 = 宿主 RCE(读/删任意文件、执行任意命令、网络)——高于 execute_gdscript 的 GDScript 沙箱一个量级(GDScript 语言层有约束,逃逸才到宿主)。

诚实边界:

  1. glb 导出落点硬约束export_pathresolveWithinRoot,仅约束 godot-mcp 注入的 export 行 filepath,不约束 bpy 代码内部的 open()/os.remove()/os.system()
  2. 本地单用户信任模型 + 响应附 [SECURITY] warning。
  3. 不做 bpy 语法沙箱(正则防不住动态构造 = 假绿),列 backlog。

对比 BlenderMCP:不是"我们防住了它们没防住的",而是"我们显式声明 fail-model + glb 落点硬约束 + 本地信任模型,BlenderMCP 既无约束也无声明"。

核心能力

三层架构 — 静态编辑 / 实时调试 / 运行时验证

不是单一连接,而是按场景分工的三层(自动检测,互不冲突):

连接方式 适用场景
Headless CLI 独立 Godot 进程 文件读写、批量创建、一次性验证(默认)
Editor WebSocket 连接运行中的编辑器 实时操作当前场景、Undo、场景树同步
Game Bridge TCP 连接运行中的游戏 E2E 测试、运行时调试、输入模拟、状态验证

editor 层全部写操作注册进 Godot 原生 undo 栈(10 个生产命令文件、53 处 action 注册,递归含 commands/asset/ 子目录,核查命令 grep -rc "create_action" addons/godot_mcp_server/commands/ | grep -v ":0")——AI 改错任何一步,编辑器里一步 Ctrl+Z 即回;undo 覆盖面为同赛道最宽。

动态 GDScript 执行

execute_gdscript 让 AI 在 headless 模式执行任意 GDScript:代码片段模式(自动包装 extends SceneTree)、结构化输出(_mcp_output)、超时控制、Autoload 上下文(load_autoloads=true)、结构化错误(类型/文件/行号/修复建议)。

AI 开发闭环 — 不只是工具堆砌

read_scene / read_script → 理解结构 → write_script / edit_script
→ run_and_verify(错误分析)→ validate_scripts → verify_delivery(交付门禁)
  • verify_delivery — 端到端交付门禁:场景树完整性 + 脚本健康 + 性能 + 自定义断言
  • validate_scripts — 逐脚本执行 Godot load() 编译验证(非项目级完整编译,后者用 npm run check:gdscript),捕获 headless 遗漏的 Parse Error
  • dev_loop — 执行 → 验证 → 截图一体化,支持 acceptance 验收标准

闭环示例:AI 用 read_scene 理解 → write_script 改 → run_and_verify(capture_tree=true) 跑+分析 → validate_project 查资源 → batch_add_nodes 批建 → import_resources 注册 → 有问题回到改脚本。

批量操作与资源管理

  • batch_add_nodes — 一次调用添加多个节点,只在最后做一次 pack+save,避免每个节点启停 headless Godot
  • validate_project — 静态扫描缺失资源、无效 preload()/load() 路径、孤立 .import 文件
  • import_resources — 扫描目录批量注册资源(图片/音频/字体/3D 模型),自动生成 .import

结构化开发流程(带 checklist)

对标 agentic skills 方法论(如 obra/superpowers),本项目不止堆工具,还提供 AI 可遵循的结构化开发流程(setup_project_rules 生成到 .claude/rules/godot-mcp-workflow-*.md):

  • Bridge E2E 流程 — install → run(wait_for_bridge) → ping → 操作+wait → 截图/frame-verify 留证
  • 改→跑→验证闭环 — read → edit → run_and_verify → validate_scripts → verify_delivery
  • 安全编辑流 — search_and_replace 优先 / 改后 validate / 防覆盖 / 确认令牌

每个流程带 checklist + 常见偏离提示,让 AI 少踩坑、按纪律走。

工具一览

共 45 个 MCP 工具(merged tool definition,共 248 个 action),以下按 action 逐项展开全部操作;权威清单见 capability-matrix

关于「工具数」:本项目用 merged tool 架构——每个顶层 MCP 工具(如 scene)聚合多个 action(如 read_scene/add_node/save_scene)。顶层工具数:45(tools/list 返回条目数,与 capability-matrix 一致);action 总数:248(matrix 的 risk 聚合 read 124+write 98+destructive 10+process 16)。对比竞品统一用「顶层工具数」口径。两个数字均由 npm run build-matrix 从代码自动生成,CI 漂移检测守护。

执行工具

工具 说明
launch_editor 启动 Godot 编辑器 GUI
run_project 以调试模式运行项目(自动超时)
stop_project 停止运行中的项目,返回结构化输出
get_debug_output 获取分类调试输出(错误/警告/打印)
screenshot 截图三件套:capture 截取游戏画面(Windows 默认窗口模式,Linux/macOS 自动降级)/ analyze AI 分析截图内容(元素识别、缺陷检测)/ diff 像素级双图对比
run_tests 运行 GUT 单元测试并解析结果
get_godot_version 获取 Godot 引擎版本

验证工具

工具 说明
run_and_verify 一键 headless 运行并返回结构化错误/警告分析。支持 capture_tree 选项同时获取场景树快照。自动检测版本不一致和脚本语法错误。
analyze_error 重新分析 Godot 输出文本,提供修复建议
validate_scripts 对每个脚本执行 Godot load() 编译验证(逐文件解析,非项目级完整编译——后者用 check:gdscript),检测 headless 运行可能遗漏的 Parse Error

动态执行工具

工具 说明
execute_gdscript 在 headless 模式下执行任意 GDScript 代码。支持代码片段模式(自动包装)和完整类模式。设置 load_autoloads=true 可在完整 Autoload 上下文中运行(DataRegistry、PlayerData 等)。
query_scene_tree 加载场景并查询运行时节点树,返回解析后的实际属性值。
inspect_node 深度检查节点:所有属性、信号连接、子节点,支持递归深度控制。

项目工具

工具 说明
list_projects 搜索目录中的 Godot 项目
get_project_info 项目元数据 + 文件统计
list_files 列出文件(支持扩展名/子目录过滤)
read_project_config 解析 project.godot 为结构化 JSON
create_project 创建完整 Godot 项目结构
setup_project_rules 一键配置项目规则(hooks + CLAUDE.md),建议首次使用时运行
validate_project 检查缺失资源、无效脚本引用、孤立 .import 文件
import_resources 扫描目录批量生成 .import 文件(图片/音频/字体/3D模型)

场景工具

工具 说明
read_scene 解析 .tscn 为节点树 JSON,含属性类型解析(ExtResource/Color/Vector2/Vector3/NodePath/数组/字典/数字/字符串)
create_scene 创建新场景
add_node 向场景添加节点
batch_add_nodes 一次调用添加多个节点(比重复 add_node 快得多)
save_scene 保存场景更改
load_sprite 加载纹理到精灵节点
edit_node 编辑节点属性(位置/缩放/旋转/自定义属性)
remove_node 从场景移除节点(需确认令牌)
quick_scene 快速创建场景 + 可选脚本(一步到位)
instance_scene 实例化 .tscn 场景到目标父节点
detach_instance 从场景树分离实例节点
diff_scenes 比较两个 .tscn 场景文件差异
merge_scene .tscn 冲突解决(三方合并,ExtResource/SubResource ID 重映射)

脚本工具

工具 说明
read_script 读取 .gd/.cs 文件(含元数据)
write_script 写入/覆盖 .gd 文件
edit_script 按行范围编辑 .gd 文件。支持 raw/smart 缩进模式、内容验证、变更前后对比。
generate_test 分析 .gd 文件并生成 GUT 测试脚本
create_test_scene 创建 GUT 测试运行器场景
project_replace 全项目批量搜索替换(CRLF 安全)

运行时操作工具

注意: 运行时操作仅在 headless 执行上下文中生效,不持久化到 .tscn 文件。如需持久化场景修改,请使用 add_node + save_scene

工具 说明
signal_connect 连接两个节点的信号。仅影响当前执行上下文。
signal_disconnect 断开信号连接。仅影响当前执行上下文。
signal_emit 发射节点信号,参数仅支持基础类型(string/number/bool/null)。仅影响当前执行上下文。
signal_list 列出节点上可用的信号。
physics_raycast 执行 3D 射线检测,返回碰撞点、法线、碰撞体信息。
physics_body_info 获取物理体的碰撞形状、AABB、碰撞层/掩码信息。
node_create_3d 运行时创建 3D 节点(支持 16 种白名单类型)。headless 创建不持久化。
nav_query_path 查询 3D 导航路径,支持指定 NavigationRegion3D 或自动回退。

音频播放控制工具(运行时)

注意: 运行时操作仅在 headless 执行上下文中生效,不持久化到 .tscn 文件。

工具 说明
audio_play 播放音频资源。支持 AudioStreamPlayer、AudioStreamPlayer2D、AudioStreamPlayer3D 三种节点类型。
audio_stop 停止指定音频播放器的播放。
audio_set_param 设置音频参数:音量 dB、音调缩放、总线路由。
audio_query 查询播放状态(播放中/暂停/停止)、当前播放位置、总线信息。
diagnose_physics 诊断物理体碰撞状态(含 ConcavePolygonShape3D 陷阱检测)。
query_spatial 空间区域查询:碰撞体距离排序,支持碰撞掩码过滤。
collision_overlay 创建碰撞形状彩色线框叠加(StaticBody=蓝/CharacterBody=绿/RigidBody=红/Area=黄)。

TileMap 编辑工具(运行时)

注意: 运行时操作仅在 headless 执行上下文中生效,不持久化到 .tscn 文件。如需持久化 TileMap 修改,请使用 execute_gdscript 写入 .tscn 或在编辑器中操作。同时支持 TileMap(旧版)和 TileMapLayer(Godot 4.3+ 新版)两种节点类型。

工具 说明
tilemap_read 读取 TileMap/TileMapLayer 的 cell 数据,返回指定区域内的 tile 坐标、source_id、atlas_coords、alternative_tile。
tilemap_set_cell 设置单个 tile 的源图集和坐标。
tilemap_erase_cell 擦除单个 tile(设为空)。
tilemap_fill_rect 批量填充矩形区域内的所有 tile。
tilemap_clear 清空 TileMap/TileMapLayer 的所有 tile。
tilemap_copy 复制指定区域为模板(内部缓存),用于后续粘贴。
tilemap_paste 将已复制的模板粘贴到目标位置。
tilemap_set_transform 设置 tile 的翻转/旋转变换(水平翻转、垂直翻转、Transpose)。

所有运行时工具支持可选 load_autoloads 参数(默认 true),可在完整 Autoload 上下文中执行。

API 文档工具

工具 说明
get_class_info 获取类的方法、属性、信号、常量
search_classes 按名称/描述搜索类
find_method 查找方法详情(含继承链)
get_inheritance 获取完整继承链

材质与着色器工具(运行时)

注意: 运行时操作仅在 headless 执行上下文中生效,不持久化到 .tscn 文件。

工具 说明
material_read 读取节点材质属性和 shader uniform 列表
material_write 设置材质参数、创建/附加/保存材质(.tres)
shader_edit 读写着色器代码、加载 .gdshader、应用模板、编译诊断

Game Bridge 工具

工具 说明
game_bridge_install 安装 MCP Bridge autoload 到项目(TCP 服务端,NDJSON 协议,仅 127.0.0.1)
game_bridge_uninstall 卸载 MCP Bridge autoload
game_query 查询运行中游戏状态(场景树/节点属性/性能/视口)
game_input 向运行中游戏发送输入事件(键盘/鼠标/文本)
game_wait 在 timeout 窗口内轮询等待游戏状态条件(节点出现/属性值变化),支持 interval_ms 探测间隔。条件成立立即返回,超时返回 timed_out

工作流工具

工具 说明
dev_loop 开发循环:执行 GDScript → 验证 → 捕获输出,支持 save_state 文件即记忆
scene_snapshot 场景树快照,用于前后对比检测变更
batch_validate 批量验证多个 GDScript 文件

动画工具(运行时)

工具 说明
animation 查询、播放、编辑动画。支持 list_players、get_info、get_details、get_keyframes、play、stop、seek、create、delete、update_props、add/remove_track、add/remove/update_keyframe 等子操作

性能分析工具(运行时)

工具 说明
profiler 性能分析:快照(FPS/内存/绘制调用/物理统计)、采样分析、活跃进程检测、信号连接审计

3D 空间工具

工具 说明
spatial_info 获取 Node3D 空间信息:transform、AABB、bounds、区域查找

测试与导出工具

工具 说明
test_assert 断言场景树状态:node_exists、property_equals、signal_connected、node_count
test_stress 压力测试:重复创建/销毁节点检测内存泄漏
export_list_presets 列出项目导出预设
export_get_preset 获取导出预设详情
export_build 执行导出构建

粒子系统工具(运行时)

注意: 运行时操作仅在 headless 执行上下文中生效,不持久化到 .tscn 文件。

工具 说明
particles_create 创建 GPU 粒子节点(GPUParticles2D / GPUParticles3D)
particles_set_emission 设置发射参数:形状(point/sphere/box/ring)、半径、方向、扩散
particles_set_process 设置处理参数:重力、速度、爆炸性、生命周期、阻尼
particles_load_preset 加载预设效果:fire / smoke / rain / snow / sparkle / explosion
particles_set_material 创建或重置 ParticleProcessMaterial

导航工具(运行时)

注意: 运行时操作仅在 headless 执行上下文中生效,不持久化到 .tscn 文件。

工具 说明
nav_create_region 创建 NavigationRegion3D 并可选烘焙导航网格
nav_bake_mesh 烘焙导航网格(长时间操作)
nav_create_agent 创建 NavigationAgent3D 并设置寻路参数
nav_set_params 设置导航代理参数(10 个可配置字段:radius、height、max_speed 等)
nav_create_link 创建 NavigationLink3D 连接点(支持双向)

AnimationTree 工具(运行时)

注意: 运行时操作仅在 headless 执行上下文中生效,不持久化到 .tscn 文件。

工具 说明
animtree_create 创建 AnimationTree 节点(支持 AnimationNodeStateMachine / BlendTree / BlendSpace2D)
animtree_add_state 向状态机添加动画状态(AnimationNodeAnimation)
animtree_add_transition 在状态间添加转换(含交叉淡入淡出时间和条件)
animtree_set_blend 设置混合参数(float 用于 BlendTree,Vector2 用于 BlendSpace)
animtree_play 切换到目标状态(通过 playback.travel)

IK 框架工具(运行时)

工具 说明
ik_modifier_create 创建 IK 修改器节点(TwoBoneIK3D / FABRIK3D / CCDIK3D / SplineIK3D / JacobianIK3D)
ik_modifier_get 读取 IK 修改器属性
ik_modifier_set 设置 IK 参数(active、influence、bone_name、target、magnet)
ik_list_bones 列出 Skeleton3D 骨骼

验证交付工具

工具 说明
verify_delivery 端到端交付验证:场景树完整性 + 脚本健康 + 性能 + 自定义断言 + GDD 标准合规

游戏设计工具

工具 说明
validate_gdd 验证游戏设计文档是否符合 8 章节标准(概述、玩家幻想、详细规则、公式、边界情况、依赖、调优旋钮、验收标准)
chain_verify Chain-of-Verification 自我质疑引擎:对审查结论生成 5 个挑战性问题,防止盲点和过度自信

代码模板工具

工具 说明
list_templates 列出可用代码模板(内置 + 用户自定义)
apply_template 应用代码模板到指定脚本(支持变量替换)

UI 布局工具(运行时)

工具 说明
ui_create_control 创建 UI Control 节点
ui_build_layout CSS Flexbox/Grid 翻译层,从声明式布局描述构建 Godot Container 树
ui_set_layout 设置 Control 节点布局属性(锚点/偏移/最小尺寸)
ui_get_layout 查询 Control 节点布局信息
ui_anchor_preset 应用锚点预设(full_rect/center/top_wide 等 16 种)
ui_set_theme 设置/创建/保存/加载 Theme
ui_container_add 向 Container 添加子 Control 节点
ui_draw_recipe 声明式绘图操作(rect/circle/line/arc/polygon/string)
theme_create 创建空 Theme 或从节点提取 Theme
theme_set_property 设置 Theme 属性(font/color/constant/stylebox)

录制工具

工具 说明
recording_start 开始录制输入事件(键盘/鼠标)
recording_stop 停止录制并返回事件数据
recording_save 保存录制到 JSON 文件
recording_load 加载录制文件
recording_play 回放录制的输入事件

编辑器同步工具

工具 说明
editor_sync_start 启动场景树实时监听(推送 node_added/node_removed 事件)
editor_sync_stop 停止场景树监听

资源管理工具(UID / 翻译)

工具 说明
uid_scan 扫描项目内全部资源文件的 UID 状态(Godot 4.4+ .uid):缺 .uid 的资源、孤儿 .uid(主文件不存在)
uid_get 查询文件 UID(单个/批量,res:// 路径)
uid_set .uid 文件:指定 uid / 按路径确定性生成(与编辑器一致)/ fix_missing 批量修复缺失
uid_check_refs 扫描文本资源中的 uid:// 引用,检测悬空引用(引用的 UID 不在项目 .uid 集合中)
translation_read 读 CSV(Godot 国际化表格)/ PO(gettext)翻译条目(语言 + 键值对,支持截断)
translation_write 写/创建 Godot 兼容 CSV 翻译表(keys + 每语言一列;CSV→.translation 编译由编辑器导入完成)
translation_register .translation/.po 资源注册进 project.godotinternationalization/locale/translationsremove=true 反向移除)

⚠️ 运行时工具(物理 / 动画 / UI / 粒子 / TileMap / 材质等)仅在 headless 执行上下文生效, 不持久化到 .tscn;需持久化用 add_node + save_scene

MCP 资源(Resources)

AI 客户端可通过 godot:// URI 方案发现和读取项目上下文,无需显式工具调用。

静态资源

URI 说明
godot://project/info 项目元数据 + 文件统计(JSON)
godot://project/config 原始 project.godot 文件

资源模板

URI 模式 说明
godot://scene/{path} 读取 .tscn 场景为节点树摘要
godot://script/{path} 读取 .gd 脚本文件
godot://file/{path} 读取项目中任意文本文件

安全限制

  • 路径必须在项目根目录下(禁止 ../ 遍历)
  • .godot/.import/node_modules/ 目录被阻止
  • .import.uid.godot 文件扩展名被阻止

使用示例

Client: ListResources → 发现所有场景和脚本
Client: ReadResource("godot://project/info") → 项目配置 + 统计
Client: ReadResource("godot://scene/scenes/main.tscn") → 节点树摘要
Client: ReadResource("godot://script/scripts/player.gd") → GDScript 源码

快速开始

1 分钟配置(推荐)

Claude Code — 全局安装(所有 Godot 项目自动可用)

claude mcp add -s user godot -- npx -y godot-mcp-enhanced

为什么用 -s user Godot MCP 是个人开发工具,你会在多个 Godot 项目中使用它。-s user(user scope)将配置写入 ~/.claude.json 顶层,所有项目自动连接,无需每个项目重复安装。详见 Claude Code MCP 文档

如果你只想在当前项目使用(不推荐,切项目会丢失):

claude mcp add godot -- npx -y godot-mcp-enhanced  # local scope,仅当前项目

Cursor / Cline / Windsurf / 其他

在项目的 .cursor/mcp.json 或 MCP 配置中添加:

{
  "mcpServers": {
    "godot": {
      "command": "npx",
      "args": ["-y", "godot-mcp-enhanced"]
    }
  }
}

腾讯 CodeBuddy(国内用户)

CodeBuddy 文档(2026-06-27 实测)支持外部 stdio MCP Server:设置 → MCP 标签 → Add MCP,粘贴与上面相同的 json。也可从其 MCP Market 一键安装(上架后)。

✅ 端到端已验证(2026-07-01):CodeBuddy IDE 内 read_scenemain_3d.tscn 成功(返回完整场景结构),stdio MCP 接入跑通。解锁 MCP Market 上架(#10)。

Warp

Warp 终端 原生支持 MCP。Settings → Agents → MCP servers → + Add → CLI Server,粘贴与上面相同的 json(command: npxargs: ["-y", "godot-mcp-enhanced"]);也可写入 ~/.warp/.mcp.json,或开启「Auto-spawn servers from third-party agents」直接复用上面的 Claude Code 配置(零额外配置)。

✅ 协议层实测通过(45 工具全发现、inputSchema 完整、无 integer 参数兼容风险);⚠️ Warp GUI 端到端待补(本机未装 Warp)。完整步骤、兼容性核对表、env / working_directory 说明见 使用指南-Warp

ZCode(智谱 GLM-5.2 ADE)

ZCode 原生支持 MCP。设置 → MCP 服务器 → 新建(stdio,command: npxargs: ["-y", "godot-mcp-enhanced"]),或写入 <项目根>/.zcode/config.json / .agents/mcp.json关键:ZCode 不读 CLAUDE.md,只读 workspace 根 AGENTS.md——运行 setup_project_rules(默认双写)生成 AGENTS.md 让 godot 规则生效。

完整步骤、三种配置方式、env / 权限矩阵 / AGENTS.md 注入说明见 使用指南-ZCode

一键配置

npx godot-mcp-enhanced setup
# 自动检测:Godot 路径 + AI 客户端 + 写入配置

npx godot-mcp-enhanced configure warp
# 定向配置单个客户端(--list 列出全部 14 个,--force 越过未检测闸)

npx godot-mcp-enhanced skills install
# 打包的 6 个 Claude Code skills(路由器/安全编辑/验证闭环/bridge E2E/截图留证/Tween 审计)
# 一条命令装入 ~/.claude/skills/(--target <目录> 装项目级,--force 覆盖),
# 指导 AI 更好地调用 godot-mcp 工具——安装摩擦低于手工 MCP 配置,配合 configure 使用

首次使用

连接 Godot 项目后,建议立即运行以下工具一键配置项目规则:

setup_project_rules(project_path="你的项目路径")

这会自动生成:

  • .claude/settings.json:PostToolUse hook,每次编辑 .gd 文件后自动提醒 AI 运行 validate_scripts 验证语法
  • CLAUDE.md:项目级规则,包含 GDScript 验证规则和发版门禁(verify_delivery 检查)

如果已有配置想更新,使用 force=true 覆盖。如只需其中一项,用 hooks=falseclaude_md=false 跳过。

环境变量

变量 说明 默认值
GODOT_PATH Godot 可执行文件路径 自动搜索(PATH/注册表/Scoop/Downloads)
GODOT_PROJECT_PATH 默认项目路径 自动检测 cwd(向上搜索 project.godot)
GODOT_MCP_SEARCH_PATHS 额外 Godot 搜索目录(分号分隔)
GODOT_MCP_ALLOWED_GODOT_PATHS Godot 二进制路径白名单(分号分隔,realpath 归一)。空=回落 ~/.godot-mcp/godot-paths.json(CLI install 登记的路径视为可信);两者皆无=back-compat 放行(签名校验仍兜底)。设了 env 则 env 优先(显式用户意图,config 被忽略);多用户/不可信环境显式列出可信 Godot 路径,防 godot_path 工具参数/项目 override/env 指向任意二进制被 spawn(任意代码执行) 空(回落 config)
GODOT_MCP_BRIDGE_PORT game bridge 起始监听端口(被占自动递增避让至 +9;多实例并存安全,实际端口写入实例 registry,ping 响应带 pid/project 指纹) 9081
GODOT_MCP_ALLOW_UNSAFE_CONFIRM true=confirm 类写操作跳过 out-of-band 确认(⚠️ 削弱安全防线;生产环境设此值 server 拒绝启动,详见使用指南 12.12) false
DEBUG 启用详细日志 false
GODOT_MCP_BRIDGE_PORT game bridge 起始监听端口(被占自动递增避让至 +9;多实例并存安全,实际端口写入实例 registry,ping 响应带 pid/project 指纹) 9081
GODOT_MCP_ALLOW_UNSAFE_CONFIRM true=confirm 类写操作跳过 out-of-band 确认(⚠️ 削弱安全防线;生产环境设此值 server 拒绝启动,详见使用指南 12.12) false
GODOT_MCP_TELEMETRY 匿名遥测 opt-in(默认关闭,详见 docs/telemetry.md) false
GODOT_MCP_INSTALL_TAG CLI install 固定版本 tag(如 4.7.2-stable,跳过 latest 查询;测试/复现用) 未设(latest)
GODOT_MCP_PROFILE 工具 profile(basic/lite/minimal/full/bridge_dev/3d_dev 或逗号组名)。默认 basic(BREAKING from full;lite 9 组省 ~60% context,RCE action 经 action-gate 默认 gated)。回退全量:GODOT_MCP_PROFILE=full--profile=full basic

⚠️ BREAKING(G7):默认 profile 从 fullbasic(对齐 GoPeak compact,省 AI context window)。升级后 tools/list 只暴露 basic(lite 9 组:core/bridge/animation/audio/signal/visual/code/test/profiler)。回退全量 45 工具:GODOT_MCP_PROFILE=full;或 AI 运行时 manage_tools activate <groups> 动态扩容(无需重启)。RCE action(execute_gdscript 等)始终经 action-gate gated,需 GODOT_MCP_PRIVILEGED_GROUPS=code-execution 解锁。

注意: 项目路径有 30 秒缓存。切换项目后等待 30 秒或重启 MCP server 使新路径生效。

多版本 Godot 支持

如果你使用 godots 等版本管理器管理多个 Godot 版本,可以为每个项目单独指定 Godot 二进制路径。

优先级:工具参数 godot_path > 项目配置 > GODOT_PATH 环境变量 > PATH > 平台搜索

方式一:项目配置文件(推荐)

在项目目录下创建 .godot/mcp-godot.json

{
  "version": 1,
  "godot_path": "/path/to/Godot_v4.6.3-stable_macos.arm64"
}

方式二:project.godot 配置段

project.godot 末尾添加:

[godot_mcp]
godot_path=/path/to/Godot_v4.6.3-stable_macos.arm64

方式三:工具参数

在 MCP 工具调用时传入 godot_path 参数(如 run_projectexecute_gdscript 等 10 个核心工具均支持)。

方式四:godots 版本管理器自动检测

在项目根目录创建 .godot-version 文件(内容为版本号,如 4.6.3),MCP server 会自动在 ~/.godots/versions/ 中查找对应版本。

手动配置(高级用户)

git clone https://github.com/wgt19861219/godot-mcp-enhanced.git
cd godot-mcp-enhanced
npm install && npm run build

在 MCP 配置中指向 build/index.js,并设置所需环境变量。

致谢

  • godot-mcp — 原始项目,本项目基于其二次开发(Copyright (c) 2025 Solomon Elias,MIT,见 LICENSE
  • Hastur Operation Plugin — 动态 GDScript 执行和结构化输出的灵感来源
  • Claude Code Game Studios — 借鉴了以下功能概念(在用 CCGS?见 集成指南):
    • Hooks + Rules 体系setup_project_rules 自动生成 .claude/settings.json(PostToolUse hook 自动验证 GDScript)和 CLAUDE.md(项目编码标准)
    • Gate-check / verifyverify_delivery 端到端交付验证(场景树完整性 + 脚本健康 + 性能 + 自定义断言 + GDD 合规)
    • Workflow pipelinedev_loop 执行→验证→截图一体化工作流,支持 acceptance 验收标准和 save_state 会话记忆
    • GDScript Lintvalidate_scripts 内置的静态 lint 层(L015 行级扫描 + 字符串/注释过滤,独立于 load() 编译检查),对标 CCGS 的 validate-commit.sh
    • GDD 标准validate_gdd 8 章节游戏设计文档结构校验,对标 CCGS 的 design/gdd 路径规则
    • Chain-of-Verificationchain_verify 自我质疑引擎,防止审查盲点
    • 代码模板list_templates / apply_template 模板系统,对标 CCGS 的 41 个文档模板

系统要求

  • Godot Engine 4.x(已测试 4.7;4.6/4.5 向后兼容)
  • Node.js >= 18
  • GUT 插件(用于 run_tests 工具)

screenshot(action capture)根据平台使用不同的渲染策略:

平台 模式 说明
Windows 窗口模式(默认) Headless 模式下 viewport 纹理返回 null,必须使用 GPU 上下文
Linux Headless → 窗口模式降级 Headless + OpenGL3 取决于 GPU 驱动是否支持
macOS Headless → 窗口模式降级 与 Linux 相同

内置 screenshot_capture.gd 使用 process_frame 信号模式和 call_deferred() 确保场景加载和帧捕获的可靠性。

测试提示: 仓库的 E2E 测试(test/e2e-*.test.ts)依赖真实 Godot 二进制。设置 GODOT_PATH 指向本地 Godot 以运行它们;未设置时这些测试被静默跳过(控制台打印 [E2E-SKIP] 告警),CI 默认不验证真实 Godot 集成——npm test 的"全部通过"仅覆盖 TS/GDScript 逻辑,不含真实 Godot 子进程行为。

许可证

MIT — 含上游 Coding-Solo/godot-mcp 版权(Copyright (c) 2025 Solomon Elias)。

路线图

项目方向与里程碑(M1 定位与声量 / M2 健壮性 P0 / M3 安全 P1 / M4 功能补齐 P2)见 ROADMAP.md

更新日志

完整变更记录见 CHANGELOG.md

版本 日期 要点
v0.32.11 2026-08-21 反馈四坑收口 + 端口竞态缓解落地 + CI e2e 并行竞态修复:bridge 反馈三坑(find_nodes 消费 root 参数限子树搜索(无效 root 报结构化错)、install_override 插 [autoload] 段末尾(游戏单例之后 _ready 直达,免 await 兜底)、call_method 协程双模式(默认返 {coroutine:true} 显式标记,await_completion=true 哨兵延迟响应等真值));bridge 端口竞态双批落地(起始候选 crypto 随机化(randi 被 playtest.seed 锁故用 crypto)+ TS 侧 resolveBridgePort 回落升级 secret 文件窗口扫描 9081-9090,随机化后盲回落 9081 的「连不上」缝隙根治);ci.yml e2e 步骤 --no-file-parallelism(共用 real-project 的并行文件 secret/端口串门竞态——PR#57 前 GD 确定性绑 9081 掩盖,master 两连红同用例/同代码 PR run 绿实证时序竞态,本地串行模式 7 文件 118 测试全绿);e2e 行为级 6 用例真机全绿 + 契约 10 用例;verify_delivery 3/3 维度通过。45 工具/248 action。
v0.32.10 2026-08-21 审查修复批三批合入(2026-08-20 六专项审查 17 条全处置,master plan 批 1/2/4;批 3 CLI 参数双形式已随 v0.32.9 七维度批等价合入,分支废弃):批 1 测试基建(弱断言门禁 860→732 恢复 128 预防,e2e workflow 全 skip 假绿 gate,mock 工厂 satisfies+typecheck:helpers CI 门禁);批 2 GD 对称性(_compare_values 数值白名单防 step_until 假阳性、freeze pending 守卫、mouse button 语义 left/right/middle 映射、coerce is_valid 严格判定、isq all_applied 诊断字段;端口竞态实测坐实 18/20 但修复被证伪如实记 open);批 4 安全隐私杂项(zip 拒 NTFS ADS、web serve 仅 SVG 加 CSP(与 v0.32.9 nosniff 头互补)、qa readReport 过 realpath 防 symlink 绕过、代理披露实测订正 undici 不读 env、CLI 下载链披露补齐、claudemd-builder 旧工具名清理)。版本号由规则模板硬门禁强制 bump(claudemd-builder 分发文本变更;原定终态 0.32.9 已被七维度批用掉后移;npm 发版待用户定夺)。
v0.32.9 2026-08-21 架构审查修复批 + 七维度全面审核修复批(报告 docs/reviews/2026-08-21-seven-dimension-audit.md,6 P1+12 P2):help 工具 enum 从注册表动态构建(原硬编码漏 7 个新工具致调用被拒);recording 规则双副本通篇更正为新 action 名 record_*(原 recording_* 按规则调用必败,双副本一致地错被 STRICT 门禁漏网);CLI 参数双形式统一(init/qa/skills 单形式静默失败修复);MCP server 进程级兜底(unhandledRejection/uncaughtException);qa teardown 补 unfreeze(freeze 后 abort 不残留永久暂停);zip 读侧大小强校验;editor WebSocket listen 前端口预探测(对齐 bridge 侧);工具层

Comments (0)

Sign in to join the discussion.

No comments yet

Be the first to share your take.