W
AI-Wiki

AI · 源文件

入库前的原始上传文件存档。点击左侧文件名可预览文件内容。

Godot MCP 更新:9天修了129个commit.md7.6 KBit/ai/Godot MCP 更新:9天修了129个commit.md
---
title: "Godot MCP 更新:9天修了129个commit"
source_url: "https://mp.weixin.qq.com/s/t-TZw-PawFWrSu_uxzq_Tw"
source_site: "mp.weixin.qq.com"
clipped_at: "2026-07-06T10:49:43.875489+00:00"
clipper: "aiwiki-url-ingest"
extractor: "weixin_static"
source_strategy: "normal_web_clip"
source_strategy_label: "普通网页抓取"
author: "AI寻梦笔记"
---

# Godot MCP 更新:9天修了129个commit

从 v0\.18\.2 到 v0\.19\.0,中间只隔了 9 天。

9 天,两个版本,129 个 commit,CI 全绿。

我翻了一下 GitHub 的 release 记录,v0\.18\.2 是 6 月 18 号发的安全加固版,v0\.19\.0 是今天(6 月 27 号)刚发的修复与增强版,v0\.19\.1 紧跟着同步了一下版本号。

这次更新的含金量不低,尤其是对 Editor 插件用户来说,有个改动等了很久了。

终于能 Ctrl\+Z 了

如果你用过 Godot MCP 的 Editor 插件,大概率遇到过这种情况:AI 帮你在场景里加了个节点,结果加错了位置,你想撤销——

按 Ctrl\+Z,没反应。

再按,还是没反应。

你只能手动去删,或者让 AI 重新来一遍。

这个问题在 v0\.19\.0 终于修了。

改动不小:nav、particle、animtree、ui 四组 commands 全部接入了 Godot 的 undo\_manager。一共 7 处 `add_child + set_owner` 操作,全部包装了 `create_action_mixed`。

翻译成人话:AI 往场景里创建的节点,现在可以撤销了。

另外还修了一个 GDScript 的一致性问题:plugin.gd、websocket\_server.gd、status\_panel.gd 三个文件共 6 处补了 `super()` 调用。之前缺了这个,某些 Godot 版本会报 Parse error。

💡 AI 帮你创建的节点终于能撤销了,这听起来是小事,但对实际工作流影响巨大——你不用再担心 AI 手滑改坏场景。

3 个 CRITICAL,2 修 1 退

v0\.19\.0 处理了 3 个被标记为 CRITICAL 的问题。但维护者的处理方式,比「3 个全修了」更值得说——2 个真修,1 个 push back。

1\. detachInstance 双 parent 属性(@748,真修)

场景里有些子节点的 `parent=""` 是空串。detach 的时候,原来的正则匹配不到空串,走了 else 分支,结果叠加了一个新的 parent 属性。

一个节点有两个 parent,Godot 直接给你甩脸子。

修复方案:正则改成 `[^"]*` 配合空串守卫。

2\. recording 录制事件无限增长(真修)

录制功能的事件列表没有上限,录着录着内存就爆了。修复方案是 TS 回放侧和 GDScript 录制侧同时加上 MAX\_EVENTS 上限。

3\. scene\-merge 字面量篡改(@739,push back 成立,漏洞证伪)

这个最有意思。审查报告说 scene\-merge 合并场景时,正则会篡改字面量里的 ExtResource/SubResource 引用。维护者没盲信,写了 TDD 实测——结果发现 `.tscn` 字面量里的引号是转义的 `\"`,正则根本匹配不到(转义引号天然就是护城河),漏洞不成立。

于是这条被标了 wontfix,但仍补了双侧回归测试固化。敢公开承认「这条是审查误判」,比无脑全修更难得。

审查编号 @748(detach 双 parent)这次真修了,@739(scene\-merge 字面量)经验证不成立、标 wontfix 顺带补了测试——两个都算闭环。

安全同源,4 个堵漏点

除了 3 个 CRITICAL,v0\.19\.0 还修了 4 个安全同源问题(同一类漏洞,之前修过一处、漏改了别处):

🔒 **UI BLOCKED\_PROPS**:把 findBlockedProps 抽成了 shared 模块,handler 层前置硬拒

🔒 **audio stream\_path**:sanitizeResPath 统一校验 res:// 路径

🔒 **instance\-api\-auth symlink**:lstatSync 检测符号链接 \+ unlink 防止 writeFileSync 跟踪 symlink

🔒 **instance\-manager 路径遍历**:`includes('..')` 太粗暴,误拒了合法路径,改成段级 `seg === '..'`

坦率地讲,安全这块我不算专家,但能看出维护者的态度:不放过任何一个小口子。

触屏设备终于支持了

这次触屏支持的改动涉及 TS 回放和 GDScript 录制两侧。

之前触屏设备的 touch 事件会被 silently skip——录了等于没录,回放也不会触发。现在 TS 回放加了 touch 分支,bridge 层补了 `_cmd_send_touch`、dispatch、`_input` 三个录制点。

做手游或者触屏交互的开发者,这个改动应该等很久了。

v0\.18\.2 的安全加固(补课)

v0\.18\.2 比 v0\.19\.0 早 9 天发,专注安全。如果你错过了,这里快速过一下重点。

GDScript 沙箱加固

拼接窗口从 4 扩大到 8(MAX\_CONCAT\_WINDOW),补了 Engine、FileAccess、DirAccess、JavaScriptBridge 的索引访问拦截。Expression.execute 的正则做了跨行防 ReDoS 处理,ResourceLoader.load 的正则去掉了贪婪匹配。

stripLiterals 也重写了:骨架扫描消除注释误触,res:// 路径保留,三引号归一。

新增安全特性

⚡ **rate limit 中间件**:全局 60 次/秒软限,防止 AI 失控循环调用

⚡ **HMAC 启动警告**:MULTI\_INSTANCE 模式下,启动时警告 verifyApiToken 只是发送端验证

⚡ **scene\-commit 转义**:serializeGdValue 补了 \\r 和 \\t 转义

⚡ **P0 命令注入收敛**:generate\-doc\-db.js 的 execSync 换成 execFileSync 数组参数

GDScript 插件修复

bridge 层移除了 extends Node 虚函数的 `super()`,这个在 Godot 4\.6\.2 会报 Parse error。(注意这跟前面 v0\.19\.0「补 super()」不矛盾:这里删的是引擎虚函数里多加的 super(),Godot 4\.6\.2 不认;v0\.19\.0 补的是 plugin 各 `_enter_tree`/`_exit_tree` 里本该有却漏掉的。)ui\_commands 加了白名单 ALLOWED\_CONTROL\_TYPES(29 种),替代了之前不靠谱的 is\_parent\_class 兜底。

💡 rate limit 60 次/秒这个设计很聪明——既不限制正常调用,又能兜住 AI 发疯的情况。安全防护不一定要严防死守,关键是兜住最坏情况。

守卫修复(碎但重要)

v0\.19\.0 还修了几个守卫问题,单独看不大,但组合起来影响用户体验:

• EditorConnection connect 的 catch 里补了 `authenticated=false`

• ui\-theme 的 color 元素加了 `Number.isFinite` \+ constant NaN 守卫

• tscn\-editor\-add 的 `incrementLoadSteps` 加了负值守卫 \+ Math.max(1,n) clamp

你可能觉得这些改动很琐碎,但正是这些小守卫,决定了一个工具是「能用」还是「好用」。

项目全貌

最后整理一下 Godot MCP Enhanced 目前的项目数据:

27

MCP 工具

16

工具组

多层

纵深防御

42\+

ToolDispatcher 路径

6

Profile 预设

2

发布平台

• 双平台发布:Godot Asset Library \+ Smithery

• 模块级单元测试,2894 个用例 CI 全绿

• MIT 许可证,完全开源

三条核心观点

❶ **undo\_manager 接入是里程碑**——AI 创建的操作能撤销了,这把「AI 辅助编辑」从「能用」推进到了「好用」。

❷ **安全不是一次性的事**——从 v0\.18\.2 的沙箱加固到 v0\.19\.0 的同源修复,9 天打了两轮安全补丁,说明维护者对安全的态度是认真的。

❸ **小修小补才是真功夫**——守卫修复、NaN 检查、路径遍历段级匹配,这些改动不起眼,但决定了工具的可靠性上限。

如果你在用 Godot \+ AI 的工作流,Godot MCP Enhanced 值得关注。9 天两个版本的迭代速度,在开源项目里不算常见。

觉得有用的话,点个「在看」👇,让更多 Godot 开发者看到。关注「AI寻梦笔记」,每周更新 Godot \+ AI 实战内容。

📋 数据来源:GitHub 仓库 godot\-mcp\-enhanced release 记录及 CHANGELOG(v0\.18\.2 / v0\.19\.0 / v0\.19\.1)。本文信息截至 2026\-06\-27,以官方最新公告为准。本文未收取任何品牌推广费用。