Skip to main content
Glama

Godot MCP Enhanced

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

给 AI(Claude Code、Cursor、CodeBuddy 等 MCP 客户端)一个能真正读、写、跑、验证 Godot 项目的 工具层:46 个 MCP 工具(merged,共 271 个 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

Related MCP server: Gear

与同类方案对比

本项目不追求"工具数量第一"。 赛道里,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

工具数

46 (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 锁定/条件步进)p4p5

Godot 4.5–4.7 兼容矩阵

—(仅声明 4.x)p4

中文工具描述

"—" 表示该项目公开 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 少踩坑、按纪律走。

工具一览

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

关于「工具数」:本项目用 merged tool 架构——每个顶层 MCP 工具(如 scene)聚合多个 action(如 read_scene/add_node/save_scene)。顶层工具数:46(tools/list 返回条目数,与 capability-matrix 一致);action 总数:271(matrix 的 risk 聚合 read 133+write 112+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 配置(零额外配置)。

✅ 协议层实测通过(46 工具全发现、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)。回退全量 46 工具: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.33.1

2026-09-13

竞品启发加固批(2026-09-01 完成延迟合并):①monitor 输出可解释性(对标 satelliteoflove)——properties 返回过滤后实际监控列表+dropped_blocked 逐个点名被滤属性+数值极值摘要 summary(min/max 及发生帧/时刻,仅数值属性)接入 stop/poll 三出口,UTF-8 跨 chunk 免疫固化;②GODOT_PATH 指向目录显性报错(对标 godot-ai),替代静默 fallback 掩盖配置错误;③fs-atomic 共享原子写上移 core(对标官方 servers)——三份重复实现收口+七处高危覆盖点接入(save_scene/quick_scene/edit_script/scene-instance/translation/game-bridge/overrides),覆盖用户资产的自写 tmp+rename 清零。冲突融合:monitor 字段与 P0 游戏时间调度三路合流/rules 双副本同款融合/overrides 保 L-1 缓冲落盘+原子写/scene 保 P1 FileGuard+writeAtomic。规则模板变更触发 bump。46 工具/271 action。

v0.33.0

2026-09-13

全仓功能审查修复批(patch→minor 口径归位):4 分域审查代理+主审横扫 46 工具/271 action(报告 docs/reviews/2026-09-12-全仓功能审查.md)——2 BLOCKING(S-B1 project_replace 写 .gd 绕过沙箱扫描→批量原子检查整批拒;G-B1 step_until 完成判定嵌循环体→AND 语义破坏+双 remove 越界中断 _process/误删相邻条目)+ 14 IMPORTANT(dap output 200 条稳态永久静默失效/DAP 断连重建绕过+断点簿记路径规范化/game_wait 单 probe 超时烧光总预算/sync_state 丢 truncated 标志/未认证空行保活 DoS/websocket_server 标量 JSON 崩溃瘫痪 WS/collect_state freed 守卫/cmdline 标记窃取链拦截/协程 quiesce 失真等)+ 13 MINOR,22 修+10 备案;S-I1 scrub 修复撤销(固定常量是 C-09 公开契约——契约 vs 漏洞判定教训)。版本号自本批起按变更性质判级:P0-P10 功能批次归位 minor 边界(此前 patch 链为规则模板硬门禁机械触发)。46 工具/271 action。

v0.32.21

2026-09-12

P10 批(多人状态同步):game 工具新增 sync_state(masteryee 移植裁剪)——快照/比对两段式:GD 侧 collect_state 收集 _mcp_state() -> Dictionary 约定节点(离散状态;group 成员存在性标记;Object 递归降级;256 节点/深度 8 上限),TS 侧 snapshot/compare/list/clear+compareStates 纯函数递归比对(浮点容差默认 0.0001——masteryee 亲读坑修复:dict 严格相等在真实多人游戏因物理步进浮点微差永远 false);键级 diff 输出 missing/diffs;不做进程编排(设计偏离:InstanceManager 是 server 注册表非游戏编排,多实例由用户起在各端口借连接切换打快照)。42 仓尽调行动清单 11 项至此全部落地。46 工具/271 action。

v0.32.20

2026-09-12

P9 批(DAP 断点调试):新增第 46 个顶层工具 dap——MCP server 作为 DAP client 直连 Godot editor 自带 DAP server(默认 127.0.0.1:6006,引擎官方调试协议),18 action 全会话流(initialize→launch→set_breakpoint→configuration_done→断点命中后 stack_trace/step_over/continue/pause→disconnect);TS 侧 node:net 直连(无 GD 改动,LuoxuanLove 791 行 GD 移植的架构偏离:frame 编解码缩到 ~40 行);三段状态机+断点簿记全量重发(512×256 上限)+SENSITIVE_KEYS 双层清洗(防调试输出泄漏 secret)+loopback 强制;SSOT 审计器首战抓出 3 个未声明键(防线自证);已知边界:只 GDScript/attach 有限/e2e 用 mock DAP server(真 editor 手动路径文档化)。46 工具/270 action。

v0.32.19

2026-09-12

P8 批(热加载状态机/参数 SSOT 双防线):P8-1——mcp_commands 自定义命令热加载(LuoxuanLove 移植):运行中改/增/删 .gd 自动重载无需重启(mtime+300ms debounce),quiesce 语义(调用中不换实例),失败回滚旧版本继续服务(reload_failed+last_error),重名先注册者赢,custom.list 内建诊断,env 可关;关键设计 GDScript.new() 独立加载(不走 ResourceLoader:同路径 load 即使 CACHE_MODE_IGNORE 也就地污染共享资源、旧 Callable 失效——e2e 实测);已知边界:语法坏文件触发 Script Debugger REPL(引擎层)。P8-2——unknown-param 顶层拒绝 + did-you-mean(regiellis 移植,additionalProperties 静默容忍语义反转,拼写建议 Levenshtein>0.4)。P8-3——SSOT 审计器(check:ssot-params,CI 阻断:文件自证归属+声明面↔使用面对账+白名单例外)+ SLIM_CONFIG ui 条目移除(schema 恢复 39 键,P8-2 上线必要补全)。45 工具/252 action。

v0.32.18

2026-09-11

P6+P7 批(tokenizer 沙箱/语义观察层):P6——GDScript tokenizer 结构化扫描整文件移植(432 行,成员链合并/字符串归一化/首参三分类)+ scanGdscriptSandbox Phase 3 非字面量 load/preload 拦截(堵正则盲区)+ executeGdscriptRuntime 三通道分层(15 runtime 工具只跳 Phase 3 保留 Phase 1/2 防线;架构判断不移植 Erodenn 三级 tier——execute_gdscript 已 100% 确认令牌,Tier 2 重复建设且降级是安全回退)。P7——语义观察层(gua 移植,经独立审查 BLOCKING 清偿后全覆盖):观察通道 observation_profile 参数(debug 直通/player 投影;env 三态门禁:单值 player=host 强制档防 agent 自降级绕过,多值=请求级可选)+ 可见性级联(agent_exposure=private/visible_to_player=false 沿祖先链整藏子树,不可观察节点报 not found 存在性不泄露)+ 字段策略五模式(agent_field_rules meta:omit/redact/replace/quantize/keep,坏规则 fail-closed 降级 redact,运行中改 meta 即时生效)+ 审查 B-1 清偿四读出口全覆盖(get_tree 整枝剪除/wait exists 与 match 基于投影值/report 搭车与 conditions 同语义/call_method get 投影+结构枚举方法 -22+snapshot·restore -23 保真拒绝)+ near×投影联动(P5 钩子清偿:position 有规则的锚点 -11/候选排除,防距离差分反推)+ find_ui_elements 输出 role/label 语义字段(12 类控件适配表,全档位)。45 工具/252 action。

v0.32.17

2026-09-11

P5 发现批(discover 评分/near 空间查询):manage_tools 新增 discover action(关键词在全量 45 工具×action 名×schema 属性描述上五维加权评分——工具名×5>action×4>组名×3>属性描述×2>顶层描述×1,返回匹配/所属组/激活态/激活指引;默认 basic 只 ships 25 工具,未激活组的能力可见性由此补全,token 经济学最后一块);find_nodes 新增 near_node+max_distance 近邻查询(gua 移植简化:锚点 Node2D/3D,同维度节点距离升序含 distance 字段,锚点排除,引擎侧计算)。45 工具/252 action。

v0.32.16

2026-09-11

P4 效率批(描述瘦身/失焦降速/inflight 报丧):game 工具描述瘦身三巨点(schema 8198→5800B,总 -3.5KB,解释性文本删/结构形状保,被删细节承接进规则文档;尽调边界结论:scene/workflow 的 schema 膨胀是结构形状不可砍);editor 失焦降速对抗(beckett 轻量版,有 MCP 流量时 clamp 进程级 sleep 至 60fps,空闲 10s 恢复,不碰机器级 EditorSettings);inflight 孤儿记录(工具调用 per-pid 登记,进程被杀后下个 server 启动 stderr 报丧"死亡时仍在执行什么",BuildersGate 取消经济学);SLIM_CONFIG 口径勘误(阈值判断在变换前,slim 对 ui 实际生效);check:budget totalSum warn 90→95KB(瘦身后转绿,回弹即警)。45 工具/251 action。

v0.32.15

2026-09-11

P3 能力扩展批(弱网注入/真点击验证/项目本地命令/profile 价格标签):network_conditioner 弱网注入(masteryee MultiplayerPeerExtension 装饰器移植,包装多人 peer 出向注入 latency/loss/jitter,多人联机测试独特能力);click_button real_event 真实输入事件路径(press/release 注入 viewport 走完整引擎管道,修复 emit_signal 不切 button_pressed 状态类 bug,响应带信号计数验证);custom_command 项目本地命令目录(游戏开发者丢 .gd 进 res://mcp_commands/ 即扩展 bridge 命令面,custom. 前缀 default deny,regiellis 模式);manage_tools list_groups 加 per-profile 实测 bytes 价格标签(beckett doctor 模式)。新增 fixture 1 组 + 测试 3 文件 27 用例(单元 14/真引擎探针 5/e2e 8)。45 工具/251 action。

v0.32.14

2026-09-11

P2 批:函数级 profiling + report 搭车 + freeze 竞争 + 三加固项:函数级 profiling(Erodenn 整文件移植 1056 行,run_project(profiling) + capture_functions 一次调用,函数级热点+最慢帧 top30,真引擎 e2e 过);report 结构化搭车(step/step_until 响应自带终态读数省观察往返,{path,property} 结构化防 RCE);freeze 竞争上报(unfreeze 报 frozen_for_ms/contested_reasserts);.uid 清理+orphan autoload 前置自愈;CLI 退出码单一注册表+CI 静态扫描;drive-relative 路径形态显式拒(实测抓洞)。新增 3 文件 19 测试。45 工具/249 action。

v0.32.13

2026-09-11

P1 安全批(输出侧防注入/自资产保护/心跳保活/声明制白名单):nonce 信封输出侧防注入(读回项目内容包随机 nonce 信封+scrub 防伪造,4 读通道 6 接点,六层防御后第一个管"出"的层);FileGuard 插件自资产写保护(拒写 addons/godot_mcp_server/** 与任意位置同名 mcp_bridge.gd,6 守卫点防自毁攻击);心跳保活(长工具每 20s progress 心跳防客户端 idle 杀的"白花钱取消",BuildersGate 取消经济学);GDA_CALLABLE per-node 声明白名单(call_method 第三授权通道,零执行静态枚举 default deny,BLOCKLIST 三通道硬底线,双副本同步触发 bump)。新增 4 文件 18 测试(含真跑 Godot 行为探针)。45 工具/248 action。

v0.32.12

2026-09-11

P0 修复批(42 仓深挖尽调三坑,规则模板 bump):callv 参数预检(强转不可达组合——个数不足/超出、String→int 非数字、Dictionary→Object、typed Array——调用前显式拒绝 code -10,防 callv 静默失败返回 null 被误读为成功;严格转换表来自 aigengame 真引擎验证表);.pc 日志 rotate race 双 key 防护(7 fixture + create_project/init 模板关文件日志,.pc feature-tag 桌面默认 true 只关 base 是 no-op,防并发实例 abort 伪装 engine_crashed);monitor 帧步长改游戏时间采样(#378 同款漂移坑:interval_ms 锚定游戏时间,paused/freeze 不计时,长帧 resync,stop 补采终态,样本加 t_game_ms;帧末采样评估后不做防输入时序偏移);规则模板双副本同步 call_method 预检与 monitor 调度条目(触发 bump 硬门禁);新增 20 测试含 8 个真跑 Godot 的行为探针(固化 type_name→type_string 函数名事故防回归)。npm test 6180 过/1 基线既有;独立审查 SHIPPED WITH NITS 已清偿。46 工具/248 action。

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 维度通过。46 工具/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 侧);工具层 PII 收敛(catch-and-return 不再直泄绝对路径);分发模板 13100 端口错误清除(实际 9090-9094);bridge 协议 README 更正(TCP+NDJSON);版本号由规则模板硬门禁强制 bump(npm 发版待用户定夺)。46 工具/248 action。

v0.32.8

2026-08-20

确定性完全体批(护城河研究 H1+叙事正名):bridge 新增 send_input_sequence 帧定时输入时间线(timeline=[{at_frame:1-600 开窗后第N帧, type:action/key/mouse_click/mouse_move/touch/drag, ...}],延迟响应、owner 互斥同 control 层、frozen 下自动开窗播放+完成 refreeze、注入复用 send_* 零重复、at_frame/key/action 深预检 all-or-nothing)——与 playtest.seed/fixed_delta/freeze 组合达成 L3 真确定性完全体(seed 锁随机+时间线锁输入+快照恢复),为同赛道唯一(竞品最高仅 L1 固定帧 step 或 L2 输入时序,均无 RNG 锁定);qa input 步骤透传接线(超时按 wall_budget 自动放宽,game 工具同款);README 叙事三连——「AI 游戏开发的持续验证管线」定位(verification vs authoring)、「确定性分级」表(L1 帧步进/L2 输入时序/L3 真确定性,回应竞品 "Deterministic" 术语挪用)、editor undo 覆盖叙事(8 命令模块 46 处 action 注册,核查命令随附);测试 18 单测+契约 + e2e 6 用例真机全绿(fixture input-seq-e2e 探针记录 first_seen_frame 锚定帧对齐,含 wall_timeout 截断正向场景);版本号由规则模板变更硬门禁强制 bump(npm 发版待用户定夺)。46 工具/248 action。

v0.32.7

2026-08-20

分发优先批(竞品横扫行动,除 P0-1 网页提审全项):configure <client> 定向配置子命令(--list/--force/名字归一化)+ Warp 适配器(第 15 客户端,working_directory 显式设项目根);uid 工具 4 action(Godot 4.4+ 文件 UID:scan 缺失/孤儿、get 批量、set 确定性生成/fix_missing、check_refs 悬空引用);translation 工具 3 action(CSV/PO 读写 + project.godot 注册,纯 TS);capability-matrix「范围取舍」段(VisualShader 明确不做);skills install 一键装入 6 个打包 skills(对标 godogen 分流路线);云路由评估(暂不做)。工具 43→46 / action 241→248,新 resources 组,版本号由规则模板计数变更硬门禁强制 bump(npm 发版待用户定夺,latest 仍 0.32.6)。

v0.32.6

2026-08-19

tilemap 可选 scene_path(外部贡献 PR#36,thefireKS):tilemap 八个 action 新增可选 scene_path——传入则 _mcp_load_scene() 加载指定场景并在其中解析节点(_mcp_get_scene_node() 自动剥 root/ 前缀与场景根名),省略则生成脚本逐字节不变(仍主场景);此前八生成器硬编码 application/run/main_scene,主场景是菜单的项目只能拿到误导性的 TILEMAP_NOT_FOUND。scene_path 经 resolveWithinRoot 白名单(越界 INVALID_PARAMS+负向测试);九处重复 preamble 收敛 scenePreamble;转义对齐 escapeForGdLiteral;作者真机 Godot 4.6.2 端到端验证(575 cells)。43 工具/241 action。

v0.32.5

2026-08-19

债务清理批收尾:screenshot_capture 空白检测采样退化修复(线性步进整除视口退化最左单列→10×10 网格分层采样,800×600 类视口不再误报 BLANK);gdEscape→escapeForGdLiteral 转义类闭类三批(纯字面量上下文含 % 路径/值不再被双写,唯一 % 格式串上下文维持 gdEscape);PR-4 终审 Minor 清账(M-1/M-2/M-5,M-4 executor timeout 30s 决策维持);README 口径三处修复+README.en 同款+check-tool-count 防复发(20→24 处);spec §10.5 两决策输入落答(flow FILL h=39 根因=float32 比例锚点残差+HBoxContainer FILL 子高度整数截断;flow 容差维持 2)。43 工具/241 action。

v0.32.4

2026-08-18

原型翻译层单 spawn 合成(PR-4):ui_import_prototype 内部链 build→persist→reload→measure 由两次 Godot spawn(~6s)合成单 spawn——reload 用 ResourceLoader.load(path, "", CACHE_MODE_IGNORE) 绕过 ResourceCache(同进程裸 load 二载命中缓存旧实例,spec §6 B-1),篡改磁盘断言证明 reload 真读磁盘;失败错误内嵌「build 已持久化,可重跑」恢复语义;规则双副本 3 处措辞精确化(PR-3 终审 M-1/M-2/M-7)。43 工具/241 action。

v0.32.3

2026-08-18

原型翻译层像素终验(ui_pixel_verify,PR-3):ui 工具新 action——对已构建场景(scene_path 必填,persist 产物)窗口模式截图(Windows 专属,headless dummy renderer 空白),每 bg 节点采样中心+四角内缩点(内缩 clamp min(borderRadius+border.width, 短边/2−2) 防圆角越界;半开区间角点右/下缘 −1,否则 inset=0 采到节点外背景假红)与目标色 0-255 RGB 欧氏距离判定(中心容差 20/角点 60,集成校准 css-card 真渲染 13 采样点 d=0.0 零底噪零偏移);采样跳过两类(半透明 bg 合成后不可直判;ProgressBar 系——fill+百分比文字覆盖 bg 渲染面,bg 槽依赖 style_verify),带 text 节点跳中心点仅采四角(居中排版必踩文字);BLANK 双条件拦截(stdout 提示+PNG 全图 8x8 网格均匀色,两证据独立一致才拦);PNG 中间产物失败路径也清理;定位终验(几何+style_verify 全绿后跑一次,窗口模式弹窗+秒级耗时)。附带 T5a border 暴露渠道措辞修正(style_verify 同源恒绿暴露不了,真暴露渠道是像素采样,4 处)/T5c 孙层由 layout_verify 近似覆盖措辞+七槽 TS/GD 互指注释(5 处)。43 工具/241 action。

v0.32.1

2026-08-18

原型翻译层 verify 层(style_verify + flow_verify,PR-2):ui_import_prototype 返回与 ui_measure_layout(expect_tree 时)新增 style_verify(逐节点逐槽位逐属性 diff——measure 脚本按需读回「期望清单 ∪ override 并集」的 get_theme_stylebox(slot) 生效值,非 StyleBoxFlat 以 type 红条目暴露,颜色容差 0.002、corner/border 宽度精确匹配)+ flow_verify(翻译层产出 flow_expect,flow 直接子节点期望视口 rect vs 容器排布实测 global rect 直接 diff,B-2 补偿防线从 screenshot diff 兜底升级为数字清单;孙层维持近似覆盖);validate 层补强(bg_color/border_color 四元数组对称校验、corner_radius 布尔/null/数组显式拒);fill-only 灰底 warning(透明壳被 fill 输入阻断时声明默认主题灰底);M-1 border 四边各异不单独 warning 双副本显式声明(生产者仅取 top;style_verify 同源恒绿暴露不了,真暴露渠道是像素采样——0.32.3 ui_pixel_verify)。43 工具/240 action。

v0.32.0

2026-08-17

原型翻译层 StyleBox 通道(StyleBox PR-1,bg 为 BREAKING):ui_import_prototype 样式翻译从 modulate 近似染色迁移到真 StyleBoxFlat——bg/fill/borderRadius/border 统一 override(经 add_theme_stylebox_override,落盘名 theme_override_styles/<slot>;槽位映射 Panel→panel、ProgressBar→background+fill、Button/Label→normal,其余 warning+忽略;bg 缺省而 border/radius 存在→draw_center=false);新增 fill/borderRadius/border 三字段(geometry schema);GD 生成器 _sb_N 构造块+draw_center 布尔校验(堵注入);规则 7 钳制预警恢复无条件(实测 h=16 全 override 组合仍被钳 23/27);evaluate 模板 toHex→toRgba([r,g,b,a] 保留 alpha)+borderRadius/border/fill 三件套采集;规则双副本 9 处镜像同步 STRICT 绿。43 工具/240 action。

v0.31.4

2026-08-17

QA 断言四件套 + 应用级异步长跑(QA 深化 PR-1a/PR-1b):qa 套件 +4 控制步骤(watch/monitor start

v0.31.3

2026-08-16

QA 编排收尾 + 双副本 STRICT 门禁 + 原型小修批:B qa nightly <spec-dir> CLI 夜间跑批(目录全量跑+每套件与上次同套件报告 diff+回归/修复汇总+退出码)+ record_on_failure 套件选项(失败自动留录制,落 qa-reports 与 recording_play 兼容)+ CLI audit 留痕(isAuditEnabled 开关对称)+ NIT-8 五分支测试补全;双副本内容一致性 CI 从 advisory 假接线升级 STRICT 阻断(历史 drift 8/9 文件清零,归一化收紧锚定版本行,bridge/recording 模板按 GD 权威产物纠正字段与路径形态);原型翻译层遗留小修(显式 Panel 无 bg 灰底翻转 warning/parent_path 尾斜杠归一化)+ token budget warn 基线 80→90KB + CI Linux 平台债三根因修复(fixture globalSetup/pngjs 自生成/XAUTHORITY)。43 工具/238 action。

v0.31.2

2026-08-16

final review 修复波:规则 4 透明壳收窄——只对推断布局壳 Panel 设 self_modulate,自带视觉控件(ProgressBar/Button/任何显式 type)豁免,修复 HP 条被误设透明壳而 diff 假绿(集成补 HpBar 落盘断言+负例验证);parent_path 根级参照系限制 schema 声明+非 root 时 build_warnings 提示;坏图可区分性实测证据(好图对 0.1762 vs 下半消失合成坏图 0.4797≈2.7 倍,双副本改基线口径);screenshot threshold 显式 null 落默认 0.12 + action 提示补 diff;ui.md 双副本历史 drift 顺带归零。

v0.31.1

2026-08-16

原型翻译层 + 视觉验收ui 工具族新 action ui_import_prototype(HTML 原型几何 JSON 一次调用 翻译→build(固定 persist)→measure→layout_verify;扁平视口坐标自动建树、strict schema 拒未知字段、12+1 翻译规则含 Label 垂直居中/透明壳 self_modulate/flow Holder 壳/ProgressBar 最小高 27 预警;返回 verify_coverage 覆盖率)+ screenshot(action=diff) 像素级双图对比(RGB 欧氏距离 threshold 默认 0.12,返回 diff_pixels/diff_ratio/bbox,可选红染差异图,零新依赖)+ 规则双副本登记(ui.md 用法+浏览器 evaluate 取数脚本模板含 textAlign→align 采集与 value 0-1 守卫、engine-quirks 4 条 UI 渲染陷阱)+ 双副本历史 drift 修复(set_anchors_preset 条目/frontmatter)。中间版 0.30.1-0.31.0 详见 CHANGELOG。43 工具/238 action。

v0.30.0

2026-08-15

AI QA 编排 + 理解层 + 协议债(方向拍板 B/C/D,零 GDScript 改动纯 TS 批次):B qa 工具(结构化测试规范→自动装 bridge→起游戏→13 种步骤逐步执行/断言/确定性 playtest→聚合报告+回归 diff,报告落 ~/.godot-mcp/qa-reports,CLI npm run qa 夜间跑批;run=process 风险经 confirm+audit 一次覆盖)+ C analysis 工具(signal_map 全项目信号连接两来源全景 + impact_check 改信号/脚本/场景前列受影响面,免费开源版对标 GodotIQ Pro,纯静态零 Godot 依赖;tscn [connection] 补 flags/binds 解析)+ D ⚠️ MCP Roots 动态授权退役(Breaking,legacy+roots 客户端统一走 ALLOWED_PROJECT_PATHS env,modern era 零变化) + protocol-debt 决策文档(Logging 窗口内保持/Sampling 零使用/Tasks+MCP Apps defer)。43 工具/235 action。

v0.29.0

2026-08-15

2026-08-14 六批次审查 findings 全量修复(P0×1 + P1×10 + P2/P3,43 commits,双波终审):P0 editor 重连链死修复(编辑器重启后自动恢复)+ 安全面(write_script 沙箱 4 旁路入口封堵/deny-list 拼写/load_skill 白名单/nonce symlink)+ audit 工具复活(生产 bug,0.28.3 特性此前不可见)+ playtest 六项(永久暂停/owner 互斥/paused 保存等)+ 属性写入 no-op 假成功三路对齐 + bridge 订阅断线恢复 + ⚠️ autoload 键名迁移(Breaking,旧项目重跑 game_bridge_install 自动迁移)+ debug/undo GD 修复 + 测试债(debug e2e 首跑/GD 套件/dispatcher 审计 9 场景)+ 披露对齐。发版门禁全绿(verify_delivery 3/3 + e2e L2 真跑 75 passed)。

v0.28.3

2026-08-13

战略批收尾(14 竞品路线图 G1/G3/G7):G3 操作级审计日志(audit.jsonl appendFile 原子追加,危险操作可追溯/回放)+ G1 deterministic playtest control 层(freeze/unfreeze/step_until 结构化条件,规避 RCE)+ G7 能力 profile(basic=9 组/advanced/full,BREAKING:默认 profile 从 full 改 basic,schema 79KB→~30KB 省 ~60% context)。路线图全完成(G2/G3/G1/G7/G8 ✅,G6 实测已有移除)。

v0.28.2

2026-08-12

安全加固 + 威胁模型 + 可观测性 + 审查修复:G2 trace_id + 结构化错误分类 + PII 护栏(速赢批)+ S-1/S-2 bpy-sandbox 双 opt-in + spawn 清单 + S-3S-7 多实例 registry/editor-auth/http-server 加固 + G8 威胁模型文档(10 层防护实测声明)+ P0 animtree sub_action 死代码修复(F-6 CRITICAL)+ P1 data-import timeout 钳制(F-1/F-2)+ P2 工具层校验精确化(F-3F-8)+ CMP-13 generate-all-modules + Tier1 structuredContent/prompt + Tier2 skills/tscn parser + Vision Routing 双 opt-in。

v0.28.1

2026-08-11

安全加固批次 C + 测试质量:批次 C 安全加固(deny-list/symlink/path/debug.evaluate RCE 多点)+ instance_registry 目录权限 Linux 0o700(P2-4)+ 弱断言精确化与接线守护批次(P1-3~P1-5/P2-1/P2-2)+ MULTI_INSTANCE 接入 godot-matrix(P1-2)+ 全批次第三方审查文档。

v0.28.0

2026-08-09

CMP-14 debug Phase 2/3 + 后续批次:debug 工具组从 3 action 扩到 10(完整交互式调试器:栈帧/变量/表达式求值/step 控制/继续/暂停/热重载)+ 新建 EditorDebuggerPlugin 子类(debugger_bridge)+ handle_debug_async 异步路由 + 自动打开脚本(修 Phase 1 限制)+ CMP-16-B advanced-proxy 真动态化 + CMP-16-C drift 映射表扩到全 64 method + CMP-9 confirm gate 守护测试。

v0.27.0

2026-08-08

CMP-9 双通道通用方法调用 + CMP-16 live schema(竞品 regiellis/godot-mcp-go 深度对标):CMP-9-A editor engine call_method(场景树节点实例方法调用,did-you-mean + 类型强转 + deny-list 护城河)+ CMP-9-B bridge _cmd_call_method 放宽(env 扩展写方法 + did-you-mean + 类型强转)+ CMP-16-A GD param docs metadata(13 文件 57 method docs + list_param_docs 聚合)+ CMP-16-B TS live schema(dynamic-schema.ts 从 addon 拉 docs 构建 MCP 工具 + 缓存/降级/刷新 + registerDynamicTools)+ CMP-16-C drift 检测 CI(debug+engine 7 method 校验)。4749 测试。

v0.26.0

2026-08-08

P1+P2 批次修复(18 项审查 finding 闭环):GD-R1R10 GDScript 健壮性(nav status 同源/_ErrorCapture 复位重构/debug 注释/engine enum 补值+search 排序/错误诊断细化/export JSON 化/recording 路由清理)+ IPC-R1R6 可靠性(env→显式参数/删无效 gap 检测/长操作暂停 TS 心跳/重连 stale 通知/baseline 排除离群点)+ SEC-P1-1 write/edit 沙箱扫描(对齐 execute_gdscript)+ CMP-7 editor instance discovery(addon registry + pid liveness)。三次第三方审查全通过。4667 测试。

v0.25.11

2026-08-08

实时 ClassDB 内省:新增 engine 工具组(editor-only),class_info/search/get_inheritance 走 editor 层直调 ClassDB。让 AI 发现运行中引擎的实际可用类/方法/属性(补静态 docs 的 4.7 快照缺口,含第三方 addon/自定义类/版本差异)。

v0.25.10

2026-08-08

debug 组 Phase 1 断点管理:新增 debug 工具组(editor-only),set/clear/list breakpoint 走 CodeEdit gutter(gutter 可见 + game 命中 + 跨 run 同步)。从无到有的交互式调试能力。留 Phase 2 step/resume/pause + 栈帧读取。

v0.25.9

2026-08-08

竞品 godot-mcp-go 深度对标产出:CMP-1 editor 项目匹配检查(连接建立后校验 project_path,mismatch 拒绝降级,防跨项目误操作;覆盖首次连接 + rebuild + 自动重连三条路径 + junction realpath fallback)+ CMP-2 game bridge runtime error 捕获(_ErrorCapture Logger 子类 ring buffer 200,捕获全部 4 种错误类型 ERROR/SCRIPT/SHADER/WARNING,get_errors/clear_errors 两个新 method,since-seq 增量查询,re-entrancy guard 防 error storm)。两次第三方审查均 SHIPPED。4571 测试。

v0.25.8

2026-08-07

5 批审查修复闭环:批次1 GDScript 假成功(save_scene/load_sprite/screenshot 失败补 quit(1) + _cmd_playtest_restore Resource 反向转换 + _cleanup_peer_state 漏清 snapshot)+ 批次2 TS 可靠性(resetBridgeState 清 push 子系统 + STARTUP_CLEANUP.finally + health-monitor degraded 不被心跳过早清除 + playtest owner_pid 多 peer)+ 批次3 安全纵深(FileAccess READ 非 Godot 协议拦 + 网络回连 API 进沙箱 + stripLiterals 扩 user://)+ 批次4 测试缺口(P3-6 socket 竞态并发测试 + C# 回滚测试 + 4 CI 守门脚本)+ 批次5 文档收尾(update-checker 门控语义健壮化 + 文档漂移修正)。4534 测试。

v0.25.7

2026-08-06

P3 选做三批(审查 SHIPPED WITH NITS):P3-1/P3-2 版本同步收口(server.json/Dockerfile 纳入 version-sync,根治分发产物漂移)+ P3-7 C# 阶段一收尾(project_replace 白名单/read using/edit 验证回滚)+ P3-6 subscriptions/listen(bridge 事件主动推送,watch/monitor push 模式三层改造)+ P2 第三方审查 B-1/I-2/I-3 修复。4517 测试。

v0.25.6

2026-08-06

P2 Wave2:P2-4 确定性 playtest 四原语(seed/fixed_delta/step/snapshot/restore)+ P2-5 SEP-2133 extensions 声明(runtime-bridge 发现性)。

v0.25.5

2026-08-06

P2 Wave1:P2-1 overrides 注入 autoload(启动前注入调试脚本)+ P2-6 recipe 验证闭环 + P2-2 validate_scripts autoload 纠偏 + P2-3 nodeType RCE 审计白名单收尾。

v0.25.4

2026-08-05

P0(6/6)+ P1(7/7)协议层升级:SDK v1→v2(@modelcontextprotocol/server 2.0)+ MRTR 双时代 + action 级 capability gate + runtime_assert/help 工具 + P1 全 7 项(SEP-2575 modern era/SEP-2549 cacheHints/SEP-2577 per-request logLevel/视觉成本层级/契约 CI/idempotentHint)+ 测试覆盖加固批次。

v0.25.3

2026-08-01

全天审查收尾(SHIPPED):P2-12 二期 async 改造引入的 arena 前缀碰撞 BLOCKING 根治(方案 B _mcp_test_persistent meta opt-out,运行时对照实验闭环)+ NIT-3 抽 _runWithOpTimeout(含 return-await 隐藏 bug 修复)+ NIT-2 bpy-sandbox % 格式化构造检测 + NIT-1 删死代码。4381 测试。

v0.25.2

2026-08-01

P2-12 McpTestSuite 移植(editor 路线,关闭 P1-5):AI 可写标准化 GDScript 测试套件(extends McpTestSuite),editor 模式 testing 工具执行 + 一期/二期 async coroutine 防 keepalive 饿死 + P1-2/P2 安全(execute_bpy 拼接检测/animation coerce/ui theme/export 白名单)+ P3 文档纠正(editor.exists 失真修复 7→0)。36 工具/205 action。

v0.25.1

2026-07-31

竞品对比批①-④ 落地(审查 SHIPPED WITH NITS):工具数口径修正(21 处漂移 28/29/33/130+→35/203,含 rule-templates 独立副本同步防下游污染)+ check-tool-count.mjs CI 校验脚本根治漂移 + 进程生命周期 P0 周期 orphan 扫描/P1 启动清理(STARTUP_CLEANUP opt-in)+ command_helpers 纯函数行为测试(L2 none→partial)+ nav N1-fix(bake_mesh 末行 freed 守卫)。4293 测试 + verify_delivery 3/3 通过。

v0.25.0

2026-07-30

A-RCE 安全批次(headless instantiate_class 白名单堵 extends Node RCE + self_update 符号链接校验 + execute_bpy 危险 API 扫描 + profile 硬隔离 + godot_path 白名单)+ B 可靠性(nav bake 超时对齐/gdscript spawn orphan 清理/心跳降级区分 timeout-refused/HOL 预检/全系统扫跳过 --editor)+ C 正确性(adapter env 白名单合并/nav freed 守卫/doctor stripBom/update-cache 字节上限/updateAddon 原子化)+ Telemetry 骨架(opt-in 默认关,零外传)+ Nav bake 准确性(async-dispatch,bake_result 从乐观改 get_vertices 判据)+ 测试质量(e2e 清理 .godot 缓存防假绿 + 弱断言精确化 576 条)。

v0.24.1

2026-07-27

文档同步修复rule-templates.ts 补齐 get_node_layout 同步(独立副本约束 drift,第三方审查发现)+ AGENTS.md 三段强制流程.claude/rules/ 改后核查 / plan 落地后必出第三方审查文档 / 完成前必登 memory)+ 新增 docs/reviews/ 目录补 5 条 7 月断档链路审查文档

v0.24.0

2026-07-25

self-update 机制(Godot AI 追赶 3/3:npm 启动检查 + self_update MCP 工具 addon 检查/更新)+ 5 批审查全闭环(A 安全 RCE class_path/路径穿越/symlink + B 可靠性降级链路/资源写原子化17处 + C 正确性协议契约/undo/参数校验 + D 工具治理 asset/android TOOL_GROUPS + E 测试缺口加固10/10)+ batch F 测试覆盖深度(6 task 假绿修复/纯函数单测/安全动态断言/防回归契约/skip 可见化)+ CI Godot 4.6.3/4.7.1 版本矩阵 + ZCode 深度支持/AGENTS.md + orphan 扫描会话隔离 + editor key 多实例误删修复 + take_screenshot null guard,4030 测试

v0.23.0

2026-07-13

安全 CRITICAL(零确认 RCE 复合链 6406de4 + confirm_and_execute elicitation out-of-band gate 堵 AI 自确认 token 18ef867 + GODOT_MCP_ALLOW_UNSAFE_CONFIRM opt-in 降级)+ editor 路由解锁(editor-method-map 登记 animation_track/export/particles/nav/animtree/ui 21 action 356a061 + scene/node/open_scene/reconnecting)+ bug 修复(path_generator 死循环/scene vector3 coerce/asset color+count/data-import A1-A3)+ HealthMonitor editor stall 检测 85f5328 + 删 ReconnectionManager 死代码 410 行 f2773fb

v0.22.0

2026-07-08

asset 工具集新工具(11 shape + 路径阵列 discrete/continuous + batch 原子 undo + save 预制件 + 10 材质预设;方案 A 阻塞 continuous ramp 待上游)+ capability-matrix 33 + LICENSE 致谢 AssetForge/Tripo3D

v0.21.0

2026-07-06

csv_to_resources 新工具(CSV→Godot 资源批量导入,双轨 TS+GDScript)+ ToolAnnotations hints(actionRisks 派生 readOnly/destructive)+ 多轮独立审查核实修复(RCE/ipc/data-import/综合审查 editor 路由 -32601 回退+guard 接线+heartbeat 暂停语义)+ editor 4.7 兼容(EditorInterface/super() 回归/Safe save)+ capability reviewer 设施 + e2e L2 opt-in

v0.20.0

2026-06-30

cpp GDExtension 脚手架(scaffold_gdextension 生成 8 文件 C++ 工程骨架)+ 全工具验证靶子(real-project 三层 L1/L2/L3 自动化,28 工具正路径)+ 工具行为修复(default-null 统一/run_project isError/timeout race)+ R3/安全审查修复

v0.19.1

2026-06-27

版本元数据同步(manifest/plugin.cfg/README/使用指南)— 功能无变化,补 v0.19.0 npm 元数据漂移

v0.19.0

2026-06-27

R2 审查响应链 — editor 4 模块 undo_manager(nav/particle/animtree/ui Ctrl+Z 撤销) + super() IMP-4 + IMP-11 touch 双侧契约 + 安全同源 4 点(UI/audio/instance) + @748 detach 双 parent fix + 阶段1b 守卫,2894 测试

v0.18.2

2026-06-18

安全加固 — 沙箱绕过组 + 防御深度 + 注入收敛,2670 测试

v0.18.1

2026-06-14

功能验证审查 3 CRITICAL 修复 — parseTscn 属性/头部解析(read_scene 现正确返回结构化属性)+ game_wait 轮询等待(pollWaitCondition),2597 测试

v0.18.0

2026-06-10

工具合并(39→27 MCP 工具)+ LEGACY 兼容模式 + manage_tools 迁移 + notifyToolsChanged

v0.17.1

2026-06-08

五维审查 P0+P1 全量修复 — tscn 死代码删除 527 行 + core/tools 解耦 + animation-ops +38 测试 + EditorExecutor +16 测试 + 安全加固,2252 测试

v0.17.0

2026-06-07

审查修复 9 项(4C+5I/A)— tscn 编辑正确性 + 确认令牌截断保护 + 字符串 UID + 安全加固,2023 测试

v0.16.0

2026-05-31

审查驱动质量提升 — ToolDispatcher 提取 + 87 次提交 + merge_scene + 项目脚手架 + 智能类型转换 + 1638 测试

v0.15.1

2026-05-27

Godot 4.6 editor plugin 兼容性修复

v0.15.0

2026-05-27

6 代理并行审查(14 CRITICAL 修复)+ deny-by-default 安全 + Bridge 录制 + ESLint + 1509 测试

v0.14.0

2026-05-24

7 轴全维度审查(8 CRITICAL 修复)+ IK 框架 MVP + Vitest 迁移 1257 测试

v0.13.0

2026-05-23

Bridge 安全加固 20 项 + requestId 取模 + CSS Grid + EditorConnection 重连上限

v0.12.0

2026-05-23

迭代 URL 解码防路径遍历 + verify_delivery 4 维度验证 + dev_loop acceptance

v0.11.1

2026-05-22

Bridge TCP 绑定 127.0.0.1 + 密钥文件读后即删 + opsErrorResult isError 修复

v0.11.0

2026-05-22

CSS Flexbox 布局翻译层 + GDScript Lint 规则引擎 + 路径遍历防护增强

v0.10.1

2026-05-21

Bridge TCP 绑定本地地址 + 密钥文件生命周期管理 + opsErrorResult 修复

v0.10.0

2026-05-19

场景实例化 + 编辑器实时同步 + 代码优化重构(124 工具)

v0.9.0

2026-05-16

批量工具 + UI 工具 + 录制系统 + 确认令牌 + Read-Only/Lite 模式(118 工具)

v0.8.0

2026-05-13

双模式架构 + 测试框架 + 粒子/导航/AnimationTree(96 工具)

v0.7.0

2026-05-08

安全加固 + 输入转义 + 类型安全 + tscn-parser 修复

v0.6.0

2026-05-03

音频播放控制 4 工具 + TileMap 编辑 8 工具

v0.5.0

2026-05-02

信号控制 + 物理查询 + 3D 创建 + 导航寻路(8 工具)

v0.4.0

2026-05-01

版本检测 + validate_scripts + search_and_replace + 截图稳定性

v0.3.0

edit_script + batch_add_nodes + validate_project + import_resources

v0.2.0

read_scene + read/write_script + query_scene_tree + MCP Resources

v0.1.0

项目管理 + 场景操作 + 执行控制 + 截图 + execute_gdscript

  1. https://github.com/youichi-uda/godot-mcp-pro README(含其自带竞品对比表),抓取 2026-06-27

  2. GDAI MCP,数据转引自 godot-mcp-pro 对比表,2026-06-27

  3. https://github.com/Coding-Solo/godot-mcp,抓取 2026-06-27

  4. https://github.com/yanhuifair/Godot-MCP,抓取 2026-08-19(工具数 386 为 grep -c "registry.register(" src/tools/register.ts 实测)

  5. 该仓库 README 声称「freeze/step/screenshot No other public Godot MCP does this」——与事实不符:本项目的 playtest.freeze / step_until(结构化条件步进)与 satelliteoflove/godot-mcp(2025-12 起)的 deterministic playtesting 均早于该声明,供读者自行核对。

Available Tools

26 tools
analysisA
Read-onlyIdempotent

理解层静态分析(零 Godot 依赖)。action=signal_map 列全项目信号连接(.tscn [connection] 声明 + .gd 代码 connect/emit 引用,两来源分开标注);action=impact_check 改动前影响面评估——改信号列出全部连接方/发射方/监听方,改脚本列出引用它的场景与节点,改场景列出其连接/脚本/被实例化处。盲区诚实标注:运行时动态信号名/autoload 间连接不可见。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo每列表截断上限(默认 200)
sceneNosignal_map: 场景路径子串过滤(如 scenes/ui)
actionYessignal_map=信号连接全景;impact_check=改动影响面
signalNo信号名过滤(signal_map 精确匹配;impact_check 必填三选一)
scene_pathNoimpact_check: 场景路径(res:// 或绝对)
script_pathNoimpact_check: 脚本路径(res:// 或绝对)
project_pathYes项目路径

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: it is static analysis with zero Godot dependency, it labels blind spots honestly (runtime dynamic signal names and autoload-to-autoload connections are invisible), and it indicates that declaration/emit sources are labeled separately. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: core positioning first, then the two action modes, then the honest blind-spot note. There is no filler, each sentence carries operational meaning, and the action-based structure makes it easy for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-mode static analysis tool with seven parameters and no output schema, the description gives enough operational context: it defines each action, lists the relevant parameter dimensions, and describes what the results cover. The remaining gap is a lack of explicit description of output shape/truncation behavior at the semantic level, but the schema already documents limit/default, and the blind-spot statement prevents most false expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all parameters (100% coverage), so the bar is at baseline 3. The description adds value by connecting actions to parameter semantics and outputs: signal mode selects connectors/emitters/listeners; script mode references; scene mode connections/scripts/instantiation sites. This gives the agent real semantic grounding beyond the schema's individual field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states concrete verbs and resources: signal_map lists all project signal connections, impact_check evaluates the impact surface before a change. It enumerates exactly what is covered (.tscn [connection] declarations, .gd connect/emit references) and distinguishes the two modes, making it easy for an agent to tell this tool apart from generic 'analysis' and sibling signal/project/runtime tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for each action: signal_map for a full signal-connection panorama, impact_check for pre-change assessment, with three explicit scenarios (signal, script, scene). It does not explicitly name sibling tools to avoid, and it doesn't state when not to use this static analysis in favor of runtime or validation tools, so it falls just short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

animationA
Destructive

查询、控制和编辑动画。查询: list_players, get_info, get_details, get_keyframes。播放: play, stop, seek, blend。编辑: create, delete, update_props, add_track, remove_track, add_keyframe, remove_keyframe, update_keyframe。运行时操作,仅影响当前执行上下文。如需持久化,请编辑 .tscn 文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo方法参数
stepNo关键帧对齐步进值
timeNo关键帧时间(秒)
typeNoIK:IK 类型
limitNoIK:最大返回数量
speedNo播放速度,默认 1.0(blend)
valueNo关键帧值
actionYes操作类型
lengthNo动画长度(秒)
parentNoIK:父节点路径
updateNo跳转后立即更新节点(seek)
secondsNo跳转位置(秒)(seek)
from_endNo从末尾开始播放(play)
bone_nameNoIK:骨骼名
insert_atNo轨道插入位置,-1 为末尾(add_track)
loop_modeNo循环模式
node_pathNoAnimationPlayer 节点路径(除 list_players 外必填)
root_pathNo搜索起始节点路径(list_players)
blend_timeNo混合过渡时间(秒)(blend)
keep_stateNo停止时保持状态(stop)
propertiesNoIK:属性键值对
track_pathNo轨道路径,如 "Sprite2D:frame"(add_track)
track_typeNo轨道类型(add_track)
transitionNo过渡曲线,1.0=线性
method_nameNo方法名(method 轨道)
track_indexNo轨道索引
custom_blendNo自定义混合时间,-1 为默认(play)
custom_speedNo播放速度,默认 1.0(play)
library_nameNo动画库名称(create/delete)
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
animation_nameNo动画名称
keyframe_indexNo关键帧索引
load_autoloadsNo是否加载 Autoload 上下文(默认 true)
target_nodepathNoIK:目标节点路径

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true and readOnlyHint=false; the description adds important context that operations are runtime-only and non-persistent, and that persistence requires .tscn editing. It aligns with the annotations and also lists destructive actions like delete and remove.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with a clear categorization of actions in three short sentences. Every sentence serves a purpose, and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with 34 parameters and 21 actions, but no output schema. The description provides categories and runtime/persistence guidance, yet it omits the IK-related actions from the schema and does not explain return values or differences among query actions, leaving clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% parameter description coverage, so the baseline is 3. The description groups actions but adds no per-parameter semantics beyond what the schema already provides, so there is no need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as querying, controlling, and editing animations, and enumerates specific action names grouped by category. It is more specific than the bare name 'animation', though it does not explicitly differentiate from the sibling tool 'animation_track'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear breakdown of actions (query, playback, edit) and gives practical usage context: operations are runtime-only and affect only the current execution context, with persistence requiring .tscn editing. It does not explicitly mention alternative tools, but the persistence note serves as a meaningful exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

animation_trackA
Destructive

动画轨道与关键帧操作。轨道: add_track, remove_track。关键帧: add_keyframe, remove_keyframe, update_keyframe。曲线: set_curve。运行时操作,仅影响当前执行上下文。如需持久化,请编辑 .tscn 文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
timeNo关键帧时间(秒)(add_keyframe 时必填)
valueNo关键帧值(add_keyframe/update_keyframe)
actionYes操作类型
in_handleNo入控制柄坐标(set_curve)
insert_atNo轨道插入位置,-1 为末尾(add_track 时可选)
node_pathNoAnimationPlayer 节点路径
out_handleNo出控制柄坐标(set_curve)
track_pathNo轨道路径,如 "Sprite2D:frame"(add_track 时可选)
track_typeNo轨道类型(add_track 时必填)
transitionNo过渡曲线,1.0=线性
track_indexNo轨道索引
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
animation_nameNo动画名称
keyframe_indexNo关键帧索引(remove_keyframe/update_keyframe/set_curve 时必填)
load_autoloadsNo是否加载 Autoload 上下文(默认 true)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint and readOnlyHint=false, so the destructive nature is known. The description adds value by revealing that operations only affect the current execution context and are not persisted, which is beyond annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, efficiently front-loaded with the main purpose, then categorically listing operations, and ending with a critical boundary note. Every sentence earns its place; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 15 parameters and no output schema, the description gives a high-level map of operations and the essential runtime-vs-persistence distinction. It does not cover return values or error handling, but these are not required given the rich schema and annotations, so it's adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides comprehensive descriptions for all 15 parameters, including enums and conditional requirements. The description adds no extra param-level semantics, so it scores baseline 3 for a fully schema-covered tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool handles animation tracks and keyframes, enumerating all action categories (track, keyframe, curve). It distinguishes itself from persistent file editing by noting runtime-only scope, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sentence '运行时操作,仅影响当前执行上下文。如需持久化,请编辑 .tscn 文件' explicitly tells when to use the tool (runtime) and when not (for persistence), naming the alternative (editing .tscn). This is clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

animtreeA

查询、控制和编辑 AnimationTree。支持创建节点、添加状态、添加转换、设置混合参数、播放状态、编辑状态属性。运行时操作,仅影响当前执行上下文。如需持久化,请编辑 .tscn 文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoAnimationTree 节点名称(animtree_create 时使用)
valueNo参数值(float 用于 blends,{x,y} 用于 blend spaces)
actionYes操作类型:animtree_create 创建 AnimationTree 节点;animtree_add_state 添加状态;animtree_add_transition 添加转换;animtree_set_blend 设置混合参数;animtree_play 播放状态;animtree_state_edit 编辑状态属性
parentNo父节点路径(animtree_create 时使用,默认 root)
positionNo位置 {x, y}
to_stateNo目标状态名称(animtree_add_transition 时使用)
animationNo关联的 Animation 名称(animtree_add_state 时使用)
node_pathNoAnimationTree 节点路径
conditionsNo转换条件列表(animtree_add_transition 时使用)
from_stateNo源状态名称(animtree_add_transition 时使用)
state_nameNo状态名称
sub_actionNoanimtree_state_edit 的子操作:set_position 设置状态位置(需 state_name + position);set_blend 设置混合参数(需 parameter_name + value)
xfade_timeNo交叉淡入淡出时间(秒,animtree_add_transition 时使用)
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
load_autoloadsNo是否加载 Autoload 上下文(默认 true)
parameter_nameNo参数名称
tree_root_typeNo根节点类型(animtree_create 时使用,默认 AnimationNodeStateMachine)
animation_player_pathNoAnimationPlayer 的 NodePath(animtree_create 时使用)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations that only show readOnlyHint=false, idempotentHint=false, and destructiveHint=false, the description adds meaningful behavioral context: operations are runtime-only and do not persist unless the user separately edits .tscn files. This prevents the agent from assuming scene changes are permanent. It does not disclose every side effect, but the persistence boundary is the most important behavior and is clearly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by a concise list of supported operations and then the key scoping note about runtime-only behavior and persistence. The list of operations overlaps with the action enum in the schema, but remains a helpful summary without excessive redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 18 parameters and action-dependent field usage, the description does not explain which parameters are required or how they combine for each action. It identifies broad capabilities and runtime scope, but the agent must rely entirely on schema parameter descriptions and enums to construct correct calls. There is also no output schema or return behavior description, which is a notable gap for a complex orchestration tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description mostly restates operation names and general capabilities, providing little beyond the parameter descriptions themselves. It does not add new semantics such as default behaviors, required parameter clusters, or validation rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb set ('查询、控制和编辑') with an explicit resource (AnimationTree) and enumerates concrete capabilities: creating nodes, adding states and transitions, setting blend parameters, playing states, and editing state properties. This distinguishes it from generic 'animation' or 'scene' tools by scoping it to AnimationTree runtime manipulation and explicitly separating persistence to .tscn files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states that this is a runtime operation that only affects the current execution context, which tells the agent when to use it. It also gives a clear when-not/alternative: if persistence is needed, edit the .tscn file instead. This is actionable guidance beyond the input schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audioA

音频操作。play: 播放(支持 AudioStreamPlayer/2D/3D)。stop: 停止。set_param: 设置参数(volume_db/pitch_scale/bus)。query: 查询播放状态。运行时操作,仅影响当前执行上下文。如需持久化,请编辑 .tscn 文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
busNoplay/set_param: 音频总线名称
paramNoset_param: 参数名
valueNoset_param: 参数值(number for volume_db/pitch_scale, string for bus)
actionYes操作类型
node_pathNo音频节点路径
volume_dbNoplay: 音量(dB,-80 到 24)
pitch_scaleNoplay: 音调缩放(0.01 到 100)
stream_pathNoplay: 音频资源路径(res://...),不传则播放已配置的
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
from_positionNoplay: 从指定位置开始播放(秒)
load_autoloadsNo是否加载 Autoload 上下文(默认 true)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: it states that operations are runtime-only and do not persist, which is useful for the agent. While annotations indicate the tool is mutable and non-idempotent, the description enhances this with the temporary-scope trait. It doesn't fully detail side effects, but the annotation coverage lowers the bar.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action list using a clean, consistent format. Each sentence earns its place, and there is no wasted text. The structure makes scanning easy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 11 parameters and 4 actions, the description covers the action semantics and runtime scope, which is sufficient given the absence of an output schema. It doesn't elaborate on generic parameters (project_path, load_autoloads) but these are common across sibling tools and not critical to the audio-specific behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% parameter coverage, so the baseline is 3. The description adds value by grouping parameters with actions (e.g., 'set_param: volume_db/pitch_scale/bus' and 'play: volume_db/pitch_scale') which helps the agent map parameters to the intended action. This goes slightly beyond the schema but remains consistent with it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states '音频操作' (audio operations) and lists four specific actions (play, stop, set_param, query) with their target resources (AudioStreamPlayer/2D/3D). This is a specific verb+resource structure that distinguishes it from sibling tools like animation or physics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states that these are runtime operations affecting only the current execution context, and advises editing the .tscn file for persistence. This provides clear when-to-use and when-not-to-use guidance, effectively serving as an alternative to sibling tools for persistent changes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auditA
Read-onlyIdempotent

操作审计日志查询(G3)。action=get_log 读 {project}/.godot/mcp_audit.jsonl 统计回放(操作计数/风险高亮/最近条目/时间范围);action=suggest_rollback 对指定条目给诚实回滚建议(create 类可删/project.godot before_values/其余靠 Git)。write/destructive 操作经 audit after middleware 自动落盘(changed_files 为项目相对路径,PII 护栏)。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoget_log:取末尾 N 条(默认全部)
sinceNoget_log:ISO 时间过滤(只看此后)
actionYesget_log=读统计回放;suggest_rollback=对指定条目给回滚建议
entry_indexNosuggest_rollback:条目序号(从 get_log entries[].index)
project_pathNo项目路径(默认 resolveProjectPath 自动解析)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the readOnlyHint, idempotentHint, and destructiveHint annotations. It discloses the exact data source path, the type of output (operation counts, risk highlights, recent entries, time range), and the honest limitations of rollback suggestions (create-class deletion, project.godot before_values, and Git reliance). It also mentions that write/destructive operations are auto-persisted via middleware with PII guardrails, providing a complete behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but compact, packing the core action, sub-actions, output summary, and middleware logging behavior into meaningful semicolon-separated segments. It is not overly long, and every sentence provides value, though clearer line breaks or bullet-like separation would improve scanability slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the five parameters, no output schema, and the already detailed input schema, the description provides comprehensive context: path, action-specific behavior, rollback limitations, and persistence expectations. An agent can correctly invoke both actions and understand the implications of the results without requiring additional missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all 5 parameters with descriptive comments, including action-specific meanings such as 'get_log:取末尾 N 条' and 'suggest_rollback:条目序号'. The tool description reinforces the actions but does not need to add much parameter meaning beyond the schema. This matches the baseline for a schema with 100% description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with '操作审计日志查询' (operation audit log query), clearly identifying a query action on a specific audit log resource. It further distinguishes two sub-actions: get_log for statistics and suggest_rollback for rollback suggestions, making the tool's purpose concrete and distinct from sibling categories like qa or validation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies when to use each internal action: get_log for reading stats/history with time/count filters, and suggest_rollback for advising on specific logged entries. It also mentions that write/destructive operations are logged automatically, which hints at when audit data is available. It does not explicitly name alternative tools, but no sibling is a direct substitute, so this is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confirm_and_executeA

Execute a previously blocked tool using a confirmation token. Use this when a tool returns a confirmation_token.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesConfirmation token from the blocked tool response

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavioral traits. It states the action (execute a blocked tool) but gives no details about side effects, reversibility, permissions, token validity, or failure modes. For a tool that performs an execution, this lack of transparency is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no redundancy. The first sentence states the purpose; the second gives the usage trigger. Every word earns its place, and it is front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool, the description covers purpose and usage condition. However, there is no output schema and the description does not explain what happens after successful execution (e.g., whether it returns the original tool's result) or any caveats like token expiration. This leaves some ambiguity for the agent, though the core behavior is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes the only parameter (token) with a clear description, and schema coverage is 100%. The tool description also references the token, but adds no additional semantic detail beyond what the schema provides. This is a baseline 3 per the rubric.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Execute a previously blocked tool using a confirmation token.' The verb 'execute' and resource 'previously blocked tool' are specific and distinguish it from all sibling tools, none of which mention confirmation or token handling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says explicitly 'Use this when a tool returns a confirmation_token,' providing a clear condition for when to use it. While it does not mention when not to use it or list alternatives, no sibling tool serves a comparable purpose, so the guidance is sufficient for this context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cppA
Idempotent

GDExtension (C++) 脚手架生成。scaffold_gdextension: 在 project_path 下生成完整可编译的 godot-cpp GDExtension 工程骨架(src/类.cpp/.h + register_types + SConstruct + .gdextension + .gitignore + README),不联网/不编译,对齐 godot-cpp 官方 example。

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo目标已存在且非空时是否覆盖(默认 false)
actionYes操作类型
class_nameNo主类名(PascalCase,默认 Example)Example
parent_classNo父类(Godot 内置类白名单,默认 Node)Node
project_pathYesGDExtension 工程生成根目录(须在 ALLOWED_PROJECT_PATHS 内)
godot_versionNoGodot 版本(4.4–4.7。决定 godot-cpp clone ref 与 SConstruct api_version、.gdextension compatibility_minimum;4.6/4.7 走 godot-cpp master(v10)+api_version(无 godot-4.x-stable ref),4.4/4.5 用 godot-4.x-stable 分支。默认 4.7)4.7

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (write-side effect, idempotent, non-destructive), the description adds important behavioral detail: it explicitly says '不联网/不编译' (no network, no compile), so the agent knows the output is a source skeleton only, not a built extension. It also names the expected generated files.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with the key purpose, followed by the artifact list and constraining behavior. There is no filler. Slightly long, but each clause carries meaning. It could be split into a clearer, structured layout, but it remains concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is largely sufficient for a scaffolding tool, especially considering a fully schema-documented input. It covers the output scope, generated files, and non-network/non-compile behavior. The force/overwrite semantics are handled by the schema itself. It could add a sentence about choosing between this and the other generation-related tools, but that is a relative weakness rather than a completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage, including enums, defaults, and parameter-level comments for all 6 parameters. The description itself only reinforces that project_path is the generation root. It does not need to add much more, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific operation ('scaffold_gdextension') with a specific verb ('生成') and resource (godot-cpp GDExtension project skeleton), and lists concrete artifacts. It clearly differentiates from generic sibling tools such as script or project via the C++/GDExtension scope, though it never names alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: use this tool to scaffold a C++ GDExtension project. It does not explicitly state when to use it versus the sibling script/project tools, nor does it mention exclusions. The 'C++ GDExtension' framing gives a defensible context but leaves comparison to alternatives implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docsB
Read-onlyIdempotent

Query Godot class documentation: get_class_info, search_classes, find_method, get_inheritance.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results for search_classes (default: 20)
queryNoSearch query (required for search_classes)
actionYesOperation type
class_nameNoGodot class name (required for get_class_info, find_method, get_inheritance)
method_nameNoMethod name to find (required for find_method)
include_inheritedNoInclude inherited members (default: true)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no further behavioral context such as return format, pagination, or error behavior, which is acceptable given the strong annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that immediately conveys the tool's purpose and lists its operation types. Every word earns its place, and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with six parameters and four operation variants, the description is minimal but the schema and annotations fill in critical context. It does not explain return values or distinguish action-specific behaviors, which is a gap given there is no output schema, yet the tool's core purpose is clear enough for simple documentation queries.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all six parameters. The description only repeats the action names already present in the enum, adding no additional meaning beyond what the input schema provides, thus meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries Godot class documentation and lists the four supported actions (get_class_info, search_classes, find_method, get_inheritance). This distinguishes it from sibling tools by naming the specific resource and verb, though it does not elaborate on what each action does individually.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor how to choose among the four listed actions. The description does not mention any conditions, prerequisites, or competing tools, leaving the agent to infer usage solely from the action names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gameA

游戏桥接操作。安装/卸载: game_bridge_install, game_bridge_uninstall。P2-1 overrides 注入: install_override/uninstall_override (启动游戏前注入任意调试脚本到项目 autoload,如日志钩子/状态快照)。查询: game_query (ping, get_tree, find_nodes, get_node_properties, get_performance, get_viewport_info, take_screenshot)。写入: game_write (set_node_property, call_method)。输入: game_input (send_key, send_mouse_click, send_mouse_move, send_text, send_touch, send_drag, send_input_sequence 帧定时输入时间线)。等待: game_wait (wait_for_node, wait_for_property)。P2-4 确定性 playtest: game_playtest (playtest.seed 锁随机, playtest.fixed_delta 锁步长, playtest.step 单步推进, playtest.snapshot/restore 状态快照)。G1 control 层: playtest.freeze (冻结游戏循环,bridge 仍响应), playtest.unfreeze (解冻), playtest.step_until (条件满足/帧尽/wall 超时即停,结构化条件 {path,property,op,value}[] AND)。监控: monitor_start/stop/poll (属性时间线采样)。信号: watch_start/stop/poll (信号事件记录)。UI: find_ui_elements/click_button (UI元素发现+按钮点击)。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoclick_button: 按钮节点路径(和 text 二选一)
portNogame_bridge_install: 期望的起始监听端口(实际端口由游戏侧 env GODOT_MCP_BRIDGE_PORT 设起点,被占自动递增避让;此参数不影响行为,保留兼容)。实际端口见 ping 响应与实例 registry
pushNoP3-6 watch_start/monitor_start: 启用 push 模式(事件/采样产生时主动推送 MCP notification,无需 poll)。client 需订阅 resources/subscribe 才能收到
textNoclick_button: 按钮文字(和 path 二选一)
typeNofind_ui_elements: 按类型过滤(如 "Button"、"Label")
limitNofind_ui_elements: 最大返回数(默认 200,上限 500)
actionYes操作类型
methodNogame_query/game_write/game_input/game_wait/game_playtest 的具体方法。game_query: ping, get_tree, find_nodes (支持 root 参数限定子树搜索范围,推荐绝对路径如 /root/Main;节点不存在时报错非静默全树), get_node_properties, get_node_layout, get_performance, get_viewport_info, take_screenshot, get_errors (查询游戏运行时错误,支持 since_seq 增量 + clear 读即焚), clear_errors (清空错误 buffer)。game_write: set_node_property, call_method (协程方法默认 fire-and-forget,返 {coroutine:true} 标记+说明;传 params.await_completion=true 走延迟响应等待返回值,长协程注意调大 timeout)。game_input: send_key, send_mouse_click (button 支持 int 1-9/left/right/middle), send_mouse_move, send_text, send_touch, send_drag, send_input_sequence (帧定时时间线,延迟响应)。game_wait: wait_for_node, wait_for_property。game_playtest: playtest.seed (锁全局 RNG,仅覆盖 randi/randf), playtest.fixed_delta (锁 physics 步长,delta=1/hz), playtest.step (单步推进 N 帧,走 coroutine 延迟响应), playtest.snapshot (快照场景树属性,不保信号/物理/已free节点), playtest.restore (从快照恢复属性)。G1 control 层: playtest.freeze (冻结 tree.paused), playtest.unfreeze (解冻), playtest.step_until (推进至 conditions 满足/帧尽/wall 超时,结构化条件 {path,property,op,value}[] AND,不引入 Expression)
paramsNo方法参数。game_query: 因方法而异。get_errors {since_seq?:int(默认0,只返回 seq>since_seq 的), clear?:bool(默认false,查询后清空 buffer)}。game_write: set_node_property {path, property, value}, call_method {path, method, args}。call_method 默认只读白名单(get/has_*/get_meta 等),env GODOT_MCP_BRIDGE_EXTRA_METHODS=method1,method2 可扩展(含写方法如 take_damage);EXTRA_METHODS_BLOCKLIST(free/queue_free/set_script/call/emit_signal 等)是不可覆盖硬底线。args 按方法声明类型自动强转(传 [1,2,3] 给 Vector3 参数会正确转换)。方法不存在时返回 did-you-mean 建议。response 含 undoable=false(call 不可 undo)。game_input: send_key {key, pressed}, send_mouse_click {x, y, button, pressed}, send_mouse_move {x, y}, send_text {text}, send_touch {x, y, pressed, index}, send_drag {x, y, index, relative, speed}, send_input_sequence {timeline:[{at_frame:1-600(开窗后第N帧),type:action|key|mouse_click|mouse_move|touch|drag,...事件参数}], settle_frames?:int(0-600), wall_budget_ms?:int(1000-50000), 事件≤256}(action 字段 name/pressed/strength?,其余 type 字段同各 send_*;frozen 下自动开窗播放+完成 refreeze)。game_wait: wait_for_node {path}, wait_for_property {path, property, value}。game_playtest: playtest.seed {seed:int}, playtest.fixed_delta {hz:int}, playtest.step {frames:int(1-60)}, playtest.snapshot/restore 无参数。G1 control: playtest.freeze/unfreeze 无参数, playtest.step_until {conditions:[{path:String,property:String,op:String(==/!=/</>/<=/>=),value:标量/几何}], max_frames?:int(1-600,默认600), wall_budget_ms?:int(1000-50000,默认30000)}
patternNofind_ui_elements: 名称/文字匹配模式(Godot match 语法)
timeoutNogame_query/game_write/game_input/game_wait: 超时时间(毫秒,默认 10000)。game_wait 的 timeout 用作整个轮询窗口的总预算(在窗口内反复探测直到条件成立)。send_input_sequence 延迟响应,timeout 自动放宽至 wall_budget+10s(上限 65000)
node_pathNomonitor_start: 要监控的节点路径(如 /root/Player)
godot_pathNo覆盖 Godot 二进制路径(可选,优先于项目配置和环境变量)
max_eventsNowatch_start: 最大记录事件数(默认 1000,最大 5000)
propertiesNomonitor_start: 要监控的属性名列表(如 ["position", "health"])
interval_msNogame_wait 专用:轮询探测间隔(毫秒,默认 200,范围 50-2000)。仅 wait_for_node/wait_for_property 生效
signal_nameNowatch_start: 要监听的信号名(如 "pressed"、"health_changed")
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
visible_onlyNofind_ui_elements: 仅返回可见元素(默认 true)
interval_framesNomonitor_start: 采样间隔帧数(默认 10,最小 1,最大 300)
source_script_pathNoinstall_override/uninstall_override: 源调试脚本绝对路径(必须在 ALLOWED_PROJECT_PATHS 白名单内,拷贝到项目根注册为 MCPOVERRIDE_<basename> autoload;插入 [autoload] 段末尾=在游戏 autoload 之后加载,脚本 _ready 可直接访问游戏单例,无需 await <Singleton>.ready)

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the annotations by disclosing concrete behavior: read-only method whitelist, blocklist for dangerous methods, did-you-mean suggestions, fire-and-forget coroutine semantics, snapshot limitations, freeze/unfreeze behavior, push-mode notifications, and how the bridge remains responsive. This gives agents substantial behavioral context that annotations alone would not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and highly structured: it is quickly previewed, then organized by operation category. It packs a lot of information into a single continuous block without much filler. Line breaks or bullet structuring would improve readability, but every sentence/genuinely contributes to explaining the tool's surface.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 21 parameters, nested objects, and 17 action variants, the description covers all major operation families, important side effects, constraints, and method characteristics. It falls short of fully specifying the output/return contract for every method, since there is no output schema; however, the action names and parameter details are mostly self-evident.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents every parameter and its per-action meaning in detail. The description does summarize action-method relationships, but it does not add much semantic value about parameters beyond what the input schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it is a '游戏桥接操作' tool and enumerates the major operation families (install/uninstall, query, write, input, wait, playtest, monitoring, signals, UI). This is clear about the resource and scope, but the tool is an umbrella for many subactions rather than a single specific verb, and it does not differentiate itself from sibling tools like scene, screenshot, or runtime.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear category labels for when to use each internal subaction: 查询, 写入, 输入, 等待, 监控, etc. However, it never says when to prefer this tool over sibling tools, nor gives explicit 'when not to use' guidance. The context is mainly an internal index, not a decision guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

godot_get_contextA
Read-onlyIdempotent

一次返回会话全景(模式/项目/连接/场景快照/最近调用统计/工具组/推荐 workflow/规则/性能),减少反复探路。headless 模式 scene=null。

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNo项目路径(可选;传了补 project/rules 字段,没传降级 null/[])
include_sceneNo是否采集场景快照(默认 true;headless 恒 null)
include_performanceNo是否采集性能(默认 true;仅 bridge 有效)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds valuable behavioral context beyond the schema: headless mode returns scene=null, project_path fallback behavior, and performance only being valid via bridge. These disclose important edge cases and parameter-dependent behavior, which is more than the minimal date-range scoping in the calibration example. However, it stops short of describing the complete return structure or potential side effects (though read-only makes that less critical).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the main purpose and lists contents; the second adds a specific caveat about headless mode. There is zero padding, and every word contributes to understanding. This is exemplary conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must carry the burden of explaining what the tool returns. It lists the major categories (mode, project, connection, scene snapshot, stats, tool groups, workflows, rules, performance) and notes the headless edge case. This is sufficient for an agent to know what to expect, though it does not provide detailed structure or nested field information. Given the tool's complexity, this is a solid overview but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all three parameters, so the schema already fully explains each parameter's meaning and behavior. The description does not add new parameter semantics beyond what is in the schema; it only reiterates the headless and bridge nuances already present in the schema descriptions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a comprehensive session panorama, listing specific components (mode, project, connection, scene snapshot, stats, tool groups, workflows, rules, performance). This is a specific verb+resource that distinguishes it from sibling tools like godot_list_instances or godot_select_instance, which have more targeted purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase '减少反复探路' (reduce repeated exploration) implies using this tool to get an overview before diving into more specific operations. This provides clear context, though it does not explicitly name alternatives or state when not to use it. No exclusions are given, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

helpA
Read-onlyIdempotent

获取任意工具的完整文档。可用工具名:analysis, android, animation, animation_track, animtree, asset, audio, audit, blender, confirm_and_execute, cpp, csv_to_resources, debug, docs, editor, engine, game, godot_advanced_tool, godot_get_context, godot_list_dynamic_routes, godot_list_instances, godot_select_instance, help, load_skill, manage_tools, material, nav, particles, physics, profiler, project, qa, runtime, runtime_assert, scene, screenshot, script, self_update, signal, testing, tilemap, translation, ui, uid, validation, workflow。传 tool_name 获取该工具的详细用法、参数、action 列表。拼写纠错自动提示最接近的工具名。

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_nameYes要查询的工具名

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and non-destructive traits. The description adds further behavioral context beyond that by explaining that the tool returns complete documentation and action lists, and that it can suggest close tool names for misspellings. No hidden or surprising behavior is apparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is functional and direct, but it repeats the entire 46-item enum that already exists in the schema. While the list makes the scope obvious, it adds length without adding value for an agent that already has schema access. Structurally it is readable but somewhat redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only help tool with full enum coverage in the schema, the description is largely complete. It explains the purpose, expected input, what information will be returned, and one useful edge behavior. Lacking an output schema is negligible here because the output is itself documentation for other tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter schema already fully defines tool_name with type, description, and an enum of all 46 allowed values. The description adds only a brief restatement of '传 tool_name 获取该工具的详细用法、参数、action 列表', which is useful but does not meaningfully extend per-parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action and resource: '获取完整文档' for any tool, and lists accepted tool names. It is not a tautology and is informative enough for an agent to understand what help does. It does not explicitly distinguish itself from the similarly naming sibling 'docs', so it falls just short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent to pass tool_name and states what will be returned: detailed usage, parameters, and action list. It also notes automatic spelling correction. It does not provide when-not-to-use or alternate tool comparisons, but for a meta help tool the usage context is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_skillA

从本地知识库(GodotPrompter/gd-agentic 等)按关键词检索 SKILL.md。两级检索:name/description 高精度→全文 fallback。返回带来源标注(source/path)和相关性 score 的匹配。缺失库进 missing_libraries 不报错。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返回上限(默认 10)
queryYes检索关键词(必填)
librariesNo知识库目录绝对路径数组。省略时读 GODOT_SKILL_LIBRARIES 环境变量(逗号分隔)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (all false), the description discloses meaningful behavioral traits: the two-stage retrieval pipeline, the return of source/path and relevance score, and the non-error handling of missing libraries. It does not directly contradict the annotations, though the readOnlyHint=false could be seen as inconsistent with the read-only nature implied, but the description never claims any write behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence containing all essential information without fluff. It is reasonably structured with a colon and semicolon, making it readable despite the density. No word is wasted, though it could be split into clearer sentences for improved scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description adequately explains the return format (source/path and score) and error handling for missing libraries. It also describes the fallback algorithm. Combined with the schema, it covers the essential aspects for a search tool, though it does not mention pagination or empty-result behavior, which are minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has full coverage for all three parameters (query, limit, libraries) with descriptions. The tool description does not add additional parameter-level semantics beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action (search/retrieve), the target resource (SKILL.md from local knowledge base), and the method (two-level retrieval with high-precision then full-text fallback). This distinguishes it from sibling tools focused on other domains and leaves no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is used to search for skill definitions by keyword, with a documented fallback strategy. It also explains behavior for missing libraries, guiding the agent on what to expect. However, it does not explicitly name alternatives or describe when not to use this tool, so it stops short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

materialA

Material and shader operations. Read: read. Write: set_params, create, save, load. Shader: shader_read, shader_write, shader_load_file, shader_save_file, shader_list_templates, shader_apply_template. 运行时操作,仅影响当前执行上下文。如需持久化,请编辑 .tscn 文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoshader_write/shader_save_file: shader code
actionYesOperation type
paramsNoset_params: parameter key-value pairs
file_pathNoshader_load_file/shader_save_file: file path
node_pathNoScene tree node path
shader_pathNocreate: shader resource path
project_pathNoGodot project directory path
material_typeNocreate: material type
resource_pathNosave/load: resource path
template_nameNoshader_apply_template: template name
load_autoloadsNoLoad Autoload context (default true)
material_indexNoMaterial index (optional, default 0)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds valuable context beyond annotations: all operations are runtime-only and non-persistent. However, it does not disclose potential side effects of specific actions like write/save/load, or any authorization requirements, so transparency is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably compact, but the enumeration of action names duplicates the schema enum. The grouping and runtime note add value, making it efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, 11 actions) and lack of output schema, the description provides only high-level context and runtime behavior. It doesn't explain differences between save/load and shader_save_file, nor return formats, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes all parameters with 100% coverage, so the description adds limited param-specific meaning. It groups actions into read/write/shader categories, helping interpret the 'action' parameter, but does not clarify individual parameters further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as managing material and shader operations and lists action categories, distinguishing it from sibling tools focused on other domains (e.g., scene, script, physics). However, it lacks a single precise verb like 'manage' or 'manipulate', instead relying on a listing of actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states operations are runtime-only and affect only the current execution context, and advises editing the .tscn file for persistence. This provides clear when-to-use and when-not-to-use guidance, though it does not reference sibling tools as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

particlesA
Idempotent

创建 GPUParticles2D/3D 节点、设置发射/处理参数、加载预设效果、设置粒子材质。运行时操作,仅影响当前执行上下文。如需持久化,请编辑 .tscn 文件。运行时操作,仅影响当前执行上下文。如需持久化,请编辑 .tscn 文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo节点名称(particles_create)
actionYes操作类型
amountNo发射数量(正整数)
parentNo父节点路径(默认 root)
presetNo预设效果名称
spreadNo扩散角度(0-180 度)
dampingNo阻尼
gravityNo重力 {x,y,z}
lifetimeNo粒子生命周期(秒)
positionNo位置。3D 用 {x,y,z},2D 用 {x,y}
directionNo发射方向 {x,y,z}
node_pathNo粒子节点路径
node_typeNo粒子节点类型(particles_create)
randomnessNo随机性(0-1)
speed_scaleNo速度缩放
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
explosivenessNo爆发性(0-1)
material_typeNo材质类型(ParticleProcessMaterial)
emission_shapeNo发射形状
load_autoloadsNo是否加载 Autoload 上下文(默认 true)
emission_box_extentsNo盒体发射范围 {x,y,z}(emission_shape=box 时有效)
emission_sphere_radiusNo球体发射半径(emission_shape=sphere 时有效)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds the crucial behavioral trait that operations are runtime-only and non-persistent, which is not fully captured by the annotations. It doesn't contradict annotations; it reinforces the non-destructive, session-scoped nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The second sentence is a verbatim repeat of the first: '运行时操作,仅影响当前执行上下文。如需持久化,请编辑 .tscn 文件。' This duplication is unnecessary and wastes space. While the description is short, the redundancy means not every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 22 parameters and five action types, the schema provides thorough parameter documentation, and the description adds high-level runtime/persistence context. It lacks a mention of return values or prerequisites, but given the schema's richness, the description is sufficiently complete for a well-structured tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description's generic phrases like '设置发射/处理参数' add no additional meaning beyond the schema's detailed descriptions, which already document parameter relationships (e.g., emission_box_extents only for box shape).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states multiple specific actions: creating GPUParticles2D/3D nodes, setting emission/process parameters, loading presets, and setting materials. This clearly identifies the resource domain and distinguishes the tool from broader scene or material manipulation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says '运行时操作,仅影响当前执行上下文' (runtime operation, only affects current execution context) and directs users to edit .tscn files for persistence. This provides clear guidance on when to use the tool vs. persistent scene edits, though it doesn't explicitly name an alternative particle-specific tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

profilerA
Read-onlyIdempotent

性能分析工具。snapshot: 快照(FPS/内存/绘制调用/物理统计)。start/stop: 开始/停止分析会话。get_data: 收集帧级数据,含多维度采样、p99百分位、趋势退化检测、内存趋势、渲染统计。get_active_processes: 遍历场景树查找有 _process/_physics_process 的节点。get_signal_connections: 列出子树所有信号连接。运行时操作,仅影响当前执行上下文。如需持久化,请编辑 .tscn 文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes操作类型
node_pathNo子树根节点路径(get_active_processes/get_signal_connections,默认 root)
dimensionsNo采样维度列表(get_data,默认 ["process"])。有效值: process, physics, nav_process
target_fpsNo目标帧率,用于帧预算分析(get_data,默认 60)
frame_countNo采样帧数(get_data,默认 60)
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
load_autoloadsNo是否加载 Autoload 上下文(默认 true)
leak_threshold_mbNo内存泄漏嫌疑阈值 MB(get_data,默认 2.0)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable context by clarifying that operations affect only the current execution context and that no persistent changes are made, reinforcing the read-only nature without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, listing actions with brief explanations and ending with a crucial limitation. Each sentence contributes useful information without redundancy, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers all actions and the types of data collected (FPS, memory, draw calls, p99 percentile, trends, etc.) for a tool with several parameters and no output schema. It could elaborate on the return format of get_data, but the current level is sufficient for selecting and invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter thoroughly documented including enums and defaults. The description's mention of multi-dimensional sampling and frame-level data aligns with the schema but does not add significant extra meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a '性能分析工具' (performance analysis tool) and enumerates specific actions (snapshot, start/stop, get_data, get_active_processes, get_signal_connections) with explicit purposes. This distinguishes it from sibling tools by focusing on runtime profiling and scene introspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states that operations are runtime-only and affect only the current execution context, explicitly noting that persistence requires editing .tscn files. This provides a clear when-not-to-use condition, though it does not explicitly name alternative tools for persistent changes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

projectC

搜索 Godot 项目、获取项目信息、列出文件、读取配置、创建项目、设置项目规则。

ParametersJSON Schema
NameRequiredDescriptionDefault
ciNo生成 GitHub Actions CI workflow(默认 false)
keyNo配置键(write_config,如 "application/config/name")
tagNo模板:按标签过滤
forceNo覆盖已有配置(默认 false)
hooksNo创建 .claude/settings.json 的 PostToolUse hook(默认 true)
valueNo配置值(write_config)
actionYes操作类型
rendererNo渲染器:"forward_plus"(默认)、"mobile"、"gl_compatibility"forward_plus
templateNo项目脚手架模板:2d-platformer / 3d-fps / visual-novel(默认空)
agents_mdNo创建/追加 AGENTS.md 项目规则(ZCode/Codex/Cursor 等遵循 AGENTS.md 标准的客户端读取,默认 true)
claude_mdNo创建/追加 CLAUDE.md 验证规则(默认 true)
max_depthNo最大搜索深度(默认 3,钳制上限 10)
variablesNo模板:变量覆盖
applies_toNo模板:按适用类过滤
extensionsNo按扩展名过滤(如 [".gd", ".tscn"])
rules_modeNo规则文件 reconcile 模式:check(默认,只检测报告)/ update(覆盖版本过时且未动过的文件,保留用户动过的)/ overwrite(全覆盖含本地修改)check
search_dirNo搜索目录(list_projects).
script_pathNo模板:目标脚本路径
template_idNo模板:模板 ID(如 T008)
project_nameNo项目名称(默认取文件夹名)
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
subdirectoryNo限定子目录
godot_versionNoCI 中使用的 Godot 版本(默认 4.7)4.7

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

annotations 提供 readOnlyHint=false、idempotentHint=false、destructiveHint=false,信号非常弱,描述承担了行为透明化的主要责任。描述虽提到创建项目、设置项目规则等副操作,但未透露 write_config 的写操作,也未说明 setup_project_rules/create_project 可能创建文件(包含 hooks、AGENTS.md、CLAUDE.md 等副作用)。当前描述未与 annotations 矛盾,但行为透明度不足。

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

描述以一句紧凑的动词列表呈现,没有无关冗余,做到了简洁。但对一个拥有 9 个 action 和 23 个参数的复杂工具来说,单行列表虽简单但无法承载足够的信息,缺少数层化/分点式结构。

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

工具复杂度高(9 个 action、23 个参数、嵌套对象),且没有输出 schema,因此描述需要尽可能说明操作和边界,但它只列出部分操作,遗漏 write_config、list_templates、apply_template。没有提及返回格式、副作用或与兄弟工具的取舍关系,整体不够完整。

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

input schema 对全部 23 个参数都有中文描述,覆盖率为 100%,包括默认值、枚举、示例和特定 action 归属(如 write_config)。因此描述本身无需再重复参数语义;基线 3 合理。描述没有在 schema 之外增加参数含义,但 schema 已足够充分。

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb+resource pairs(搜索、获取、列出、读取、创建、设置,均指向 Godot 项目或项目内容),使代理能够识别这是项目级工具。但它只描述了 6 种动作,遗漏了 action 枚举中的 write_config、list_templates、apply_template,因此区分能力不完全覆盖所有功能。

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

描述没有说明何时使用该工具而不是使用诸如 scene、script、game、runtime 等兄弟工具。没有提供“不使用此工具”的排除条件或指向替代工具的提示,使用时机只能从项目相关关键词中隐含推断。

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qaA

QA 测试套件编排:结构化测试规范 → 自动安装 bridge → 运行游戏 → 逐步执行 → 聚合报告 + 回归 diff。步骤类型:input/wait/wait_frames/freeze/unfreeze/step_until/snapshot/restore/set/call/watch_start|stop/monitor_start|stop/assert/screenshot/sleep;断言 8 种与各字段语义见 schema 字段 description。run 支持 mode:async 后台执行(qa status/cancel 管理)。报告落 ~/.godot-mcp/qa-reports/.{json,md}。

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNorun: sync=同步等完整结果;async=立即返回 run_id 后台执行(用 qa status 轮询/qa cancel 取消)。默认:未显式指定时,客户端声明 MCP tasks 能力则自动 async,否则 sync
specNorun: inline 套件 spec 对象。步骤为 discriminated union(type 字段决定形态):input(method+params,bridge 原生参数)、wait(wait_for_node/wait_for_property 轮询)、wait_frames(1-60 帧确定性推进)、freeze/unfreeze、step_until(结构化条件{path,property,op,value}[],规避 RCE)、snapshot/restore、set(写节点属性)、call(bridge 只读白名单方法,写方法需 GODOT_MCP_BRIDGE_EXTRA_METHODS)、watch_start(node_path+signal_name,单套件单 watch)、watch_stop、monitor_start(node_path+properties[],单套件单 monitor)、monitor_stop、screenshot(证据落报告目录)、sleep。步骤带 label 便于 diff 对齐
actionYesrun=执行套件;report=读报告;diff=对比两份报告找回归;status=查运行注册表(进度/终态);cancel=取消进行中的 run
run_idNostatus/cancel: 目标 run_id(status 省略=列出全部注册 run)
base_pathNodiff: 基线报告(默认 prev)
head_pathNodiff: 对比报告(默认 latest)
spec_pathNorun: spec 文件路径(.json 或含 ```qa-spec 围栏的 .md),大套件建议用文件避免 token 截断;须在 ALLOWED_PROJECT_PATHS 白名单内
report_pathNoreport: 报告路径或 run_id;latest=最新,prev=次新
project_pathNorun: 项目路径(覆盖 spec 内的 project_path;spec 未写时必填)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the all-false annotations, the description discloses meaningful side effects: it auto-installs the bridge, runs the game, executes state-mutating steps (set/call/watch/monitor), and writes report files to ~/.godot-mcp/qa-reports/. It also notes the call-method whitelist (GODOT_MCP_BRIDGE_EXTRA_METHODS) and the RCE-avoidance design of step_until. Missing an explicit overview of what the sync run returns, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then methodically enumerates step types, assertion guidance, async mode, and report location. It is dense but stays on-topic; the single run-on enumeration of step types is the only minor structural weakness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters, nested objects, multiple actions, and no output schema, the description covers the orchestration flow well, but it does not say what a sync 'run' returns beyond the existence of report artifacts, nor the result shapes of status/report/diff. With no output schema to fill that gap, this is a noticeable completeness deficiency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already fully documented and the baseline for this dimension is 3. The description adds only a high-level step-type list and pointers to 'schema 字段 description' rather than new semantic value beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (编排/orchestrate) and resource (QA test suites), and lays out a clear end-to-end pipeline: spec → bridge install → run game → step execution → report + regression diff. This makes it unmistakably distinguishable from sibling tools like validation or screenshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides real operational context: async background execution managed via status/cancel, and an implicit hint that large suites should go through spec_path rather than inline spec. However, it never explicitly states when to choose this tool over alternatives (e.g., 'use this when you need automated multi-step game testing, not one-off assertions'), leaving usage as largely implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

runtimeC

启动编辑器、运行/停止项目、获取调试输出、运行测试、获取 Godot 版本。

ParametersJSON Schema
NameRequiredDescriptionDefault
speedNo录制:回放速度倍率(默认 1.0)
actionYes操作类型
timeoutNo自动停止秒数(默认 30。游戏冷启动 >30s 的项目传更大值如 120;wait_for_bridge 时自动取 max(bridge_timeout+10, timeout) 防与 bridge 就绪 race)
file_nameNo录制保存:始终自动命名 recording_YYYYMMDD_HHmmss.json(file_name 入参被忽略);但 file_name 须匹配 recording_*.json 格式(否则 INVALID_FILE_NAME),禁止含 / \\ ..
quit_flagNorun_tests 的 GUT 退出标志。默认 gquit(GUT ≤9.5);GUT 9.6+ 移除 -gquit(报 Unknown arguments: -gquit)时切 gexitgquit
godot_pathNo覆盖 Godot 二进制路径(可选,优先于项目配置和环境变量)
events_jsonNo录制:JSON 格式的事件序列字符串
test_scriptNo测试脚本或目录路径(默认 res://test/)res://test/
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
bridge_timeoutNowait_for_bridge 轮询总预算(秒,默认 10)
load_autoloadsNo是否加载 Autoload 上下文(默认 true)
wait_for_bridgeNotrue 时 spawn 后轮询 bridge 就绪(默认 false,向后兼容)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false, so the description carries the full burden of behavioral disclosure. It merely lists actions in imperative form and does not disclose that run_project spawns a process, stop_project terminates it, or record_save writes a JSON file. The schema parameter hints capture some of this later on, but the tool-level description adds very little behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence and is easy to skim. It is concise without padding, but the brevity comes at the cost of omitting the recording-related actions and overall dispatch nature of the tool, so it loses one point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a 12-parameter dispatcher with 11 possible actions, no output schema, and no description of the return behavior or the overall orchestration pattern. The description excludes six of the action enum values entirely and does not explain how wait_for_bridge, timeout, and autostart interact. A tool can be used in a variety of configurations here, and the description is too incomplete to fully support an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter is well explained with enum values, defaults, and practical notes such as timeout edge cases and the GUT -gquit compatibility issue. The description text contributes no additional parameter explanation beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description lists specific verbs tied to a concrete resource: launching the editor, running/stopping the project, fetching debug output, running tests, and getting the Godot version. This makes the main intent clear. It does not distinguish itself from siblings or mention the recording actions, which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus closely related siblings such as project, game, script, or runtime_assert. The description only enumerates capabilities and gives no exclusion criteria or conditions that would help an agent route between alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

runtime_assertA
Read-onlyIdempotent

运行时断言:在运行中的游戏上验证节点状态/场景结构/屏幕文本/性能/截图对比。agent 可任意时刻调用,不必走 workflow.dev_loop。全部依赖 game-bridge(需先 game_bridge_install + 游戏运行中)。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNonode_state: 节点路径(如 /root/Main/Player)
textNoscreen_text: 要查找的文本
nodesNoscene_structure: 期望的节点列表
actionYes断言类型
expectNonode_state: 期望的属性键值对(如 {"health": 100, "position": {"x": 0}})
presentNoscreen_text: true=断言文本存在(默认),false=断言不存在
baselineNoperf: 期望的性能基线(如 {"fps": 60})
referenceNoscreenshot_diff: 参考截图路径(res://、项目相对或绝对路径;须在白名单内)
thresholdNoscreenshot_diff: 像素差异容忍阈值(0-1,默认 0.12)。per-pixel 归一化 RGB 距离严格大于此值才计为差异像素;值越小越严格
toleranceNonode_state/perf: 数值容差(默认 0,精确匹配)
project_pathNo项目路径(screenshot_diff 必填:解析 user:// 截图落盘位置)
max_diff_ratioNoscreenshot_diff: 允许的差异像素占比上限(0-1,默认 0.05)。严格像素回归传 0;常规视觉回归建议以同布局好图对校准(本仓实测同布局好图对 ≈0.176,勿低于该量级)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

注解已声明 readOnlyHint=true、idempotentHint=true、destructiveHint=false,描述有需要补充的只是运行依赖和前置条件,该描述确实补充了 game-bridge、安装步骤和游戏运行要求。这些信息对调用时机和准确使用有价值,且没有注解矛盾。

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

描述紧凑,两句话即完成:先给功能摘要,再给调用时机和前置条件,没有冗余或重复 schema 内容。每句话的信息密度都足够,结构便于 agent 快速理解。

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

该工具复杂度中等偏高:5 种 action、12 个参数、嵌套对象且无输出 schema。描述已覆盖调用范围、路径边界和依赖前提,sctype+annotations 也清晰;唯一明显缺口是未说明断言失败时的返回形式或行为,但整体仍足以支持 agent 正确发起调用。

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

信号显示 schema 参数描述覆盖率为 100%,12 个参数已包含较充分的字段级说明,包括 action 枚举、screenshot_diff 的 threshold/max_diff_ratio 语义等。描述对参数增加的意义不大,因此按高覆盖率基线给 3 分。

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

描述首句即明确‘运行时断言’这一动作,并列举可验证的各类对象:节点状态、场景结构、屏幕文本、性能、截图对比。它同时说明该工具的运行场景是‘运行中的游戏’,并能与 workflow.dev_loop、validation、screenshot 等同级工具区分开。

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

明确说明‘agent 可任意时刻调用,不必走 workflow.dev_loop’,并给出硬前置条件:需先 game_bridge_install 且游戏运行中。这些信息足够让 agent 判断何时使用该工具;但未明确说明何时不应使用或与 validation、qa 等工具的取舍边界,稍有缺失。

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sceneC
Destructive

场景操作。读取/创建: read_scene, create_scene, quick_scene。节点: add_node, batch_add_nodes, edit_node, remove_node。保存/资源: save_scene, load_sprite。查询: query_scene_tree, inspect_node。实例: instance_scene, set_instance_property, detach_instance。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo名称(create_3d_node)
saveNocommit: 是否保存到文件(默认 true)
typeNo类型(create_3d_node,白名单)
nodesNobatch_add_nodes: 节点定义数组
valueNo属性值(set_instance_property)
actionYes操作类型
parentNocreate_3d_node: 父节点路径(默认 root)
new_pathNosave_scene: 新保存路径(可选)/ merge_scene: theirs 场景路径(必需)
propertyNoset_instance_property: 属性名
max_depthNoquery_scene_tree/inspect_node: 最大遍历深度
node_nameNoadd_node: 节点名称
node_pathNoinspect_node/edit_node/remove_node/load_sprite/detach_instance/set_instance_property: 节点路径
node_typeNoadd_node: 节点类型(如 Sprite2D, Camera2D)
godot_pathNo覆盖 Godot 二进制路径(可选,优先于项目配置和环境变量)
operationsNocommit: 批量操作列表(enum 见 op 字段;铺设/TileSet 层配置/节点)
propertiesNoadd_node/edit_node/instance_scene: 属性对象
scene_pathNo场景路径(read_scene 用绝对路径,其余用相对项目路径)
script_pathNoquick_scene: 脚本路径(可选)
project_pathNoGodot 项目目录路径
summary_onlyNoread_scene: 返回摘要而非完整 JSON
texture_pathNoload_sprite: 纹理路径(如 res://assets/player.png)
instance_pathNo要实例化的场景(res://…tscn)
stop_on_errorNo遇错是否停止(默认 true;false 时失败不阻止后续与 .tres 写盘)
load_autoloadsNo是否加载 Autoload 上下文(默认 true)
root_node_nameNoquick_scene: 根节点名称(默认从文件名推导 PascalCase)
root_node_typeNocreate_scene/quick_scene: 根节点类型(默认 Node2D)
script_contentNoquick_scene: 脚本内容(脚本不存在时自动创建)
include_signalsNoinspect_node: 包含信号连接(默认 true)
parent_node_pathNoadd_node/instance_scene: 父节点路径(默认 root)
include_propertiesNoinspect_node: 包含属性值(默认 true)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already flag destructiveHint=true, but the description does not go beyond the bare list of action names, so it adds no extra behavioral context. It does not explain which operations persist to disk, what effect commit has, or that some actions remove or detach nodes — the agent is left to infer the destructive nature from action names.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very compact and front-loaded with the 'scene operations' heading, then a categorized enumeration of actions. It is scannable and clutter-free, though the use of Chinese punctuation to chain groups makes it a little dense, and omitting some schema actions means the listing is not fully aligned with the enum.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a dispatcher tool with 30 parameters, a 19-value action enum, nested objects, and no output schema, this description is far from complete. It does not cover all actions in the enum and does not explain the purpose or return/behavior semantics that would let an agent confidently use this tool in high-consequence scene modification scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the schema already documents per-parameter meanings and per-action notes. The tool description itself does not add semantic value for parameters — it only groups action names, which the schema enum already covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with '场景操作' (scene operations), making it clear this is the scene-operation dispatcher, and then groups the supported actions into categories such as read/create, nodes, save/resources, query, and instances. It is not a mere tautology because it enumerates meaningful sub-operations, though it omits some schema enum actions like open_scene, merge_scene, health_check, create_3d_node, and commit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides category labels, which hint at related actions, but it never says when to choose one action over another or when to prefer a sibling tool. Since the tool is an action dispatcher with more than a dozen mutually exclusive enum values, this is a significant guidance gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screenshotB
Read-onlyIdempotent

Screenshot capture and image analysis handoff. capture: capture a Godot scene screenshot in headless mode (experimental). analyze: return the image as MCP image content (base64) for the client vision capability to examine — returns image data, NOT a text description.

ParametersJSON Schema
NameRequiredDescriptionDefault
sceneNocapture: Scene file path relative to project (res://scenes/main.tscn). If omitted, captures the default scene or an empty viewport.
actionYesAction type: capture (take a screenshot), analyze (AI visual analysis of an image), or diff (pixel-level comparison of two PNG images)
detailNoP1-5 视觉成本层级:full(完整 base64 图像,高 token) / thumbnail(缩放至 thumbnail_width 的 PNG,中 token) / ascii(ASCII art 文本,低 token)。默认 full。full
image_aNodiff: 基准图(a 图)路径。相对路径需 project_path;两图尺寸必须一致。
image_bNodiff: 对比图(b 图)路径。路径策略同 analyze 的 image_path(白名单校验)。
questionNoanalyze: Question for the AI to answer about the image. Default: "Describe what you see in this game screenshot."Describe what you see in this game screenshot. Focus on: UI elements, character positions, any visual issues or bugs.
diff_pathNodiff: 可选,差异图输出路径。差异像素染纯红 (255,0,0),其余保留 a 图原色。不提供则不写文件。
thresholdNodiff: per-pixel 归一化欧氏距离阈值 sqrt(Δr²+Δg²+Δb²)/(√3×255),0-1,默认 0.12。恰好等于阈值不计差(严格大于才计)。忽略 alpha 只比 RGB。
wait_nodeNocapture: 等待该节点(名或 /root/... 路径)出现在场景树再截图。对分帧构建/异步初始化场景,优先于 frame_delay 生效;超时(固定 300 帧≈5s@60fps,独立于 max_frames)后放弃等待直接截图
wait_textNocapture: 等待任一 Label/RichTextLabel 的 text 包含该子串再截图;超时同 wait_node(固定 300 帧≈5s@60fps,独立于 max_frames)
ascii_colsNodetail=ascii: 字符列数(默认 80)
ascii_rowsNodetail=ascii: 字符行数(默认 40)
godot_pathNo覆盖 Godot 二进制路径(可选,优先于项目配置和环境变量)
image_pathNoanalyze: Absolute path to the image file (PNG or JPG)
frame_delayNocapture: Frames to wait before capture (default: 15)
output_pathNocapture: Output PNG path (absolute). Defaults to <project_path>/screenshot.png
project_pathNoPath to Godot project directory
vision_routeNoPhase 2 Vision Routing:开启时调视觉模型(groq)把图片翻译成文字描述,返回纯文本(不含 image block),让纯文本模型(DeepSeek 等)也能"看懂"截图。失败时 fallback 到 detail 分层 + 追加 note。需 GODOT_MCP_VISION_KEY 环境变量。
viewport_widthNocapture: Viewport width in pixels (default: 1280)
thumbnail_widthNodetail=thumbnail: 目标宽度像素(默认 256,保持纵横比)
viewport_heightNocapture: Viewport height in pixels (default: 720)
vision_questionNovision_route=true 时传给视觉模型的上下文(可选,如"我在调试 Player 走路动画")。

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, which covers the safety profile. The description adds useful behavioral context by labeling headless capture as 'experimental' and explicitly stating that analyze returns image data rather than text. However, it does not qualify that vision_route can make the tool return a plain-text description instead of image content, creating a slight gap in the blanket 'NOT a text description' claim.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, front-loaded with the core purpose, and avoids redundant restatement of schema fields. That said, the conciseness is achieved in part by omitting the 'diff' action and the vision_route exception, so the structure is economical but not fully representative of the tool's capabilities.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with 22 parameters and three distinct actions, yet the description only discusses two of them and says nothing about diff. There is no output schema, so the description is a lower source of truth for what each mode returns or requires. The missing diff mode and the unqualified analyze-vs-vision_route statement leave the description incomplete for an agent serving the full schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter description coverage, so the schema already documents all fields. The description itself adds minimal parameter-level detail beyond naming 'capture' and 'analyze', and does not help understand the 'diff' parameters or the relationship between vision_route and analyze. With complete schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific resource ('Godot scene screenshot') and provides distinct verbs for capture ('capture') and analyze ('return the image as MCP image content'). However, the action enum includes a third mode, 'diff', which the description never mentions, so an agent cannot tell from the description that pixel-level image comparison is in scope. Overall clear but incomplete on the full purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives brief per-action meanings for 'capture' and 'analyze', but provides no guidance on when to use this tool versus siblings or when to choose the 'diff' action. It also does not specify conditions like needing a client vision capability or a text-output alternative, beyond a single caution that analyze returns image data, not a text description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scriptA
Destructive

脚本操作。读写: read_script, write_script。编辑: edit_script(行号/search_and_replace)。执行: execute_gdscript(⚠️ 沙箱仅防误操作,不可用于不可信输入。高安全场景请用 ALLOW_EXECUTE_GDSCRIPT=false 或容器隔离)。⚠️ write_script/edit_script 写入 .gd 前也走沙箱扫描(防 @tool 脚本加载即执行等已知危险 API 模式(清单不列举,防沙箱边界被侦察);与 execute_gdscript 同威胁面)。测试: generate_test, create_test_scene。批量替换: project_replace。💡 execute_gdscript 最佳实践:分步执行、每步验证(把复杂逻辑拆成小块逐一跑,每步用 read_script/edit_script 迭代,避免一次性大脚本出错难定位)。

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoexecute_gdscript: 要执行的 GDScript 代码
actionYes操作类型
searchNoproject_replace: 搜索文本
contentNowrite_script: GDScript 内容
dry_runNoproject_replace: 仅预览不写入(默认 false)
replaceNoproject_replace: 替换文本
timeoutNoexecute_gdscript: 超时秒数(默认 30)
end_lineNoedit_script: 替换结束行(1-based,含)
overwriteNowrite_script: 覆盖已有文件(默认 false)
extensionsNoproject_replace: 文件扩展名(默认 [".gd"])
godot_pathNo覆盖 Godot 二进制路径(可选,优先于项目配置和环境变量)
start_lineNoedit_script: 替换起始行(1-based)
indent_modeNoedit_script: 缩进模式(默认 raw)raw
new_contentNoedit_script: 替换内容
script_pathNoread_script 用绝对路径;write_script/edit_script/generate_test 用绝对或相对项目路径
exclude_dirsNoproject_replace: 排除目录(默认 [".godot", ".import"])
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
auto_validateNoedit_script: 自动验证语法并在失败时回滚(默认 true)
load_autoloadsNoexecute_gdscript: 省略时自动检测 autoload 引用;显式 true/false 覆盖自动检测
verify_contentNoedit_script: 期望内容守卫(不匹配则中止)
search_and_replaceNoedit_script: 内容搜索替换模式(提供时忽略 start_line/end_line)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Exposes significant behavioral traits beyond the false-boolean annotations: the sandbox is only protection against accidents, not against untrusted input; write_script/edit_script enter the same threat surface as execute_gdscript via pre-write scanning; the dangerous-pattern list is deliberately hidden to prevent sandbox-boundary probing. This gives agents the true security model and the reason for information withholding. Misses some specific write-behavior details (output/return behavior, confirmation flow), so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded: the action list appears in the first few words, and every sentence carries meaningful security or usage content. It loses a point for being one long flowing block — the two important caveats are embedded mid-sentence, and explicit line breaks or bullets would improve agent scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 21 parameters, 7 actions, nested objects with no output schema, the description supplies the high-value operational context (security threat model, sandbox boundaries, execute best practices). The remaining gaps are noticeable but not blocking: no statement of return/output behavior, and no mention of whether destructive actions need additional confirmation or iterate (e.g., project_replace write visibility).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the input schema. The description adds essentially nothing beyond the schema: it references edit_script's line-number/search_and_replace and project_replace's bulk replacement, which the schema already captures in parameter descriptions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description gives 'script operations' as the domain and enumerates all seven actions with their verb categories: read/write (read_script, write_script), edit (edit_script), execute (execute_gdscript), test (generate_test, create_test_scene), bulk replace (project_replace). This clearly distinguishes the internal actions, though it stays a dispatcher-level description and does not differentiate from sibling tools like 'cpp' explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit routing guidance for every action family, and goes further: it says when NOT to trust execute_gdscript (untrusted input), when to use ALLOW_EXECUTE_GDSCRIPT=false, and recommends a step-by-step 'execute-verify-iterate' pattern for complex logic. Lacks explicit comparison to sibling tools, so it earns a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

signalA

信号操作。connect/disconnect: 连接/断开信号。emit: 发射信号(参数仅基本类型)。list: 列出节点可用信号。运行时操作,仅影响当前执行上下文。如需持久化,请编辑 .tscn 文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoemit: 信号参数(仅 string/number/bool/null)
flagsNoconnect: 连接标志(可选,默认 0)
actionYes操作类型
node_pathNolist: 节点路径
method_nameNoconnect/disconnect: 目标方法名称
signal_nameNoconnect/disconnect/emit: 信号名称
source_pathNoconnect/disconnect/emit: 源节点路径(如 root/Player)
target_pathNoconnect/disconnect: 目标节点路径
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
load_autoloadsNo是否加载 Autoload 上下文(默认 true)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations by stating it only affects the current execution context and restricting emit parameters to basic types. While annotations already indicate no read-only or destructive behavior, the description clarifies the non-persistent nature, which is valuable for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, listing actions clearly and adding a single guiding note about persistence. Every sentence serves a purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters but no output schema, the description competently covers the tool's behavior and constraints. It could be richer (e.g., explaining flags or node_path usage), but the schema fills most gaps and the description provides a solid high-level overview.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% parameter descriptions, including action-specific details like 'emit: 信号参数(仅 string/number/bool/null)'. The description largely recaps the schema without adding new parameter semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as '信号操作' (signal operations) and enumerates the four specific actions (connect/disconnect/emit/list). It distinguishes itself from persistent .tscn editing by noting it only affects the current runtime execution context, setting it apart from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states '如需持久化,请编辑 .tscn 文件' (for persistence, edit .tscn file), providing a clear when-not-to-use and a specific alternative. The '运行时操作' (runtime operation) phrase signals the appropriate context for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validationA

运行验证、分析错误、验证项目/脚本、导入资源。一键 headless 运行 + 错误分析,或按需单项检查。

ParametersJSON Schema
NameRequiredDescriptionDefault
sceneNo可选场景文件路径(run_and_verify)
scopeNo验证范围(verify_delivery 必填): scene/script/full。其他 action 忽略
actionYes操作类型
outputNoGodot 运行时输出全文(analyze_error)
scriptsNo要验证的脚本路径数组(相对项目)。省略则扫描全部 .gd 文件
timeoutNo超时秒数(默认 20)
directoryNo扫描目录(相对项目,如 "assets/ui")
recursiveNo递归扫描子目录(默认 true)
extensionsNo导入文件扩展名(默认常见图片/音频/字体类型)
godot_pathNo覆盖 Godot 二进制路径(可选,优先于项目配置和环境变量)
scene_pathNo场景路径(scope=scene,相对项目,verify_delivery)
script_pathNo脚本路径(scope=script,相对项目,verify_delivery)
capture_treeNo同时捕获场景树快照(默认 false)
check_scenesNo验证场景文件结构(默认 true)
project_pathNoGodot 项目目录路径(可选,默认使用 GODOT_PROJECT_PATH 环境变量或当前目录)
check_scriptsNo检查断裂脚本引用(默认 true)
exclude_pathsNo排除的目录路径(相对项目根)。默认排除:.godot, .import
check_resourcesNo检查缺失资源文件(默认 true)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the tool is not read-only, not idempotent, and not destructive. The description adds context like 'headless run' and 'import resources', which implies side effects, but it does not disclose what exactly gets modified or any other behavioral traits such as file writes or potential conflicts. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that front-loads capabilities and clearly distinguishes one-click versus individual actions. No filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 12 distinct actions and 18 parameters, but the description only mentions a subset (validation, error analysis, import). It does not cover actions like 'assert', 'stress', 'export_build', or 'verify_delivery'. The schema provides details, but the description lacks a full overview needed for a complex multi-action tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 18 parameters, so the baseline is 3. The description does not add any parameter-level detail beyond what the schema already provides, merely summarizing the action types at a high level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states multiple specific actions (run validation, analyze errors, validate project/scripts, import resources) with a clear resource scope. However, it does not explicitly differentiate from sibling tools like 'project' or 'script' that might overlap in validation tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage contexts such as 'one-click headless run + error analysis' or 'on-demand individual checks', giving some guidance. But it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflowC

Development workflow tools. dev_loop: execute GDScript with optional validation, bridge queries, and state saving. scene_snapshot: capture structured scene tree snapshot. batch_validate: validate multiple GDScript files at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNodev_loop: GDScript code to execute (snippet or full extends SceneTree)
actionYesAction type
bridgeNodev_loop: Optional Game Bridge for screenshot/query validation
verifyNodev_loop: Also run project validation after execution (default: false)
scriptsNobatch_validate: Array of script paths relative to project
timeoutNodev_loop: Timeout per step in seconds (default: 30)
max_depthNoscene_snapshot: Max tree depth (default: 5)
acceptanceNodev_loop: Optional acceptance criteria
godot_pathNo覆盖 Godot 二进制路径(可选,优先于项目配置和环境变量)
save_stateNodev_loop: Save session state to file
scene_pathNoscene_snapshot: Scene file path relative to project
project_pathNoPath to Godot project directory
load_autoloadsNodev_loop: Load Autoload context (default: true)

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false (readOnlyHint: false, idempotentHint: false, destructiveHint: false), so the description carries the burden of disclosing side effects. It does not mention that dev_loop executes arbitrary GDScript (potentially destructive), that scene_snapshot may be read-only, or that batch_validate might modify files. No behavioral traits beyond the annotation values are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using two sentences with no fluff. However, it achieves brevity by omitting three of the six actions, making it incomplete. Every sentence earns its place, but the structure is not fully informative for the tool's actual breadth.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex: 13 parameters, 6 action types, nested objects, and no output schema. The description covers only three actions and lacks high-level guidance or return-value explanations. It is insufficient for an agent to correctly invoke the full range of functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all 13 parameters have descriptions in the input schema. The description adds some meaning for dev_loop by mentioning optional validation, bridge queries, and state saving, but it does not compensate for the actions it omits (create_files, run_verify, diff_scenes). The schema does the heavy lifting, and the description adds marginal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names three specific actions (dev_loop, scene_snapshot, batch_validate) with clear verbs and resources, giving a sense of the tool's scope. However, it omits three other actions present in the schema (create_files, run_verify, diff_scenes), and the generic phrase 'Development workflow tools' does not fully distinguish it from siblings like script or validation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of exclusions, prerequisites, or when a sibling tool like script or scene would be more appropriate. The description simply lists actions without contextual direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 30 tool updatesv0.32.11
    • Addedanalysis
    • Removedandroid
    • Changedanimtree1 field changed
      • addedInput schema / properties / sub_action
        Added value: +{
        +  "description": "animtree_state_edit 的子操作:set_position 设置状态位置(需 state_name + position);set_blend 设置混合参数(需 parameter_name + value)",
        +  "enum": [
        +    "set_position",
        +    "set_blend"
        +  ],
        +  "type": "string"
        +}
    • Removedasset
    • Addedaudit
    • Removedblender
    • Changedcpp3 fields changed
      • changedInput schema / properties / godot_version / default
        Previous value: -"4.6"New value: +"4.7"
      • changedInput schema / properties / godot_version / description
        Previous value: -"Godot 版本(4.4/4.5/4.6,决定 godot-cpp clone tag 与 .gdextension compatibility_minimum,默认 4.6)"New value: +"Godot 版本(4.4–4.7。决定 godot-cpp clone ref 与 SConstruct api_version、.gdextension compatibility_minimum;4.6/4.7 走 godot-cpp master(v10)+api_version(无 godot-4.x-stable ref),4.4/4.5 用 godot-4.x-stable 分支。默认 4.7)"
      • changedInput schema / properties / godot_version / enum
        Previous value: -[
        -  "4.4",
        -  "4.5",
        -  "4.6"
        -]New value: +[
        +  "4.4",
        +  "4.5",
        +  "4.6",
        +  "4.7"
        +]
    • Removedcsv_to_resources
    • Removeddebug
    • Removededitor
    • Removedengine
    • Changedgame6 fields changed
      • changedInput schema / properties / method / description
        Previous value: -"game_query/game_write/game_input/game_wait/game_playtest 的具体方法。game_query: ping, get_tree, find_nodes, get_node_properties, get_node_layout, get_performance, get_viewport_info, take_screenshot, get_errors (查询游戏运行时错误,支持 since_seq 增量 + clear 读即焚), clear_errors (清空错误 buffer)。game_write: set_node_property, call_method。game_input: send_key, send_mouse_click, send_mouse_move, send_text, send_touch, send_drag。game_wait: wait_for_node, wait_for_property。game_playtest: playtest.seed (锁全局 RNG,仅覆盖 randi/randf), playtest.fixed_delta (锁 physics 步长,delta=1/hz), playtest.step (单步推进 N 帧,走 coroutine 延迟响应), playtest.snapshot (快照场景树属性,不保信号/物理/已free节点), playtest.restore (从快照恢复属性)"New value: +"game_query/game_write/game_input/game_wait/game_playtest 的具体方法。game_query: ping, get_tree, find_nodes (支持 root 参数限定子树搜索范围,推荐绝对路径如 /root/Main;节点不存在时报错非静默全树), get_node_properties, get_node_layout, get_performance, get_viewport_info, take_screenshot, get_errors (查询游戏运行时错误,支持 since_seq 增量 + clear 读即焚), clear_errors (清空错误 buffer)。game_write: set_node_property, call_method (协程方法默认 fire-and-forget,返 {coroutine:true} 标记+说明;传 params.await_completion=true 走延迟响应等待返回值,长协程注意调大 timeout)。game_input: send_key, send_mouse_click (button 支持 int 1-9/left/right/middle), send_mouse_move, send_text, send_touch, send_drag, send_input_sequence (帧定时时间线,延迟响应)。game_wait: wait_for_node, wait_for_property。game_playtest: playtest.seed (锁全局 RNG,仅覆盖 randi/randf), playtest.fixed_delta (锁 physics 步长,delta=1/hz), playtest.step (单步推进 N 帧,走 coroutine 延迟响应), playtest.snapshot (快照场景树属性,不保信号/物理/已free节点), playtest.restore (从快照恢复属性)。G1 control 层: playtest.freeze (冻结 tree.paused), playtest.unfreeze (解冻), playtest.step_until (推进至 conditions 满足/帧尽/wall 超时,结构化条件 {path,property,op,value}[] AND,不引入 Expression)"
      • changedInput schema / properties / node_path / description
        Previous value: -"monitor_start: 要监控的节点路径(如 root/Player)"New value: +"monitor_start: 要监控的节点路径(如 /root/Player)"
      • changedInput schema / properties / params / description
        Previous value: -"方法参数。game_query: 因方法而异。get_errors {since_seq?:int(默认0,只返回 seq>since_seq 的), clear?:bool(默认false,查询后清空 buffer)}。game_write: set_node_property {path, property, value}, call_method {path, method, args}。game_input: send_key {key, pressed}, send_mouse_click {x, y, button, pressed}, send_mouse_move {x, y}, send_text {text}, send_touch {x, y, pressed, index}, send_drag {x, y, index, relative, speed}。game_wait: wait_for_node {path}, wait_for_property {path, property, value}。game_playtest: playtest.seed {seed:int}, playtest.fixed_delta {hz:int}, playtest.step {frames:int(1-60)}, playtest.snapshot/restore 无参数"New value: +"方法参数。game_query: 因方法而异。get_errors {since_seq?:int(默认0,只返回 seq>since_seq 的), clear?:bool(默认false,查询后清空 buffer)}。game_write: set_node_property {path, property, value}, call_method {path, method, args}。call_method 默认只读白名单(get/has_*/get_meta 等),env GODOT_MCP_BRIDGE_EXTRA_METHODS=method1,method2 可扩展(含写方法如 take_damage);EXTRA_METHODS_BLOCKLIST(free/queue_free/set_script/call/emit_signal 等)是不可覆盖硬底线。args 按方法声明类型自动强转(传 [1,2,3] 给 Vector3 参数会正确转换)。方法不存在时返回 did-you-mean 建议。response 含 undoable=false(call 不可 undo)。game_input: send_key {key, pressed}, send_mouse_click {x, y, button, pressed}, send_mouse_move {x, y}, send_text {text}, send_touch {x, y, pressed, index}, send_drag {x, y, index, relative, speed}, send_input_sequence {timeline:[{at_frame:1-600(开窗后第N帧),type:action|key|mouse_click|mouse_move|touch|drag,...事件参数}], settle_frames?:int(0-600), wall_budget_ms?:int(1000-50000), 事件≤256}(action 字段 name/pressed/strength?,其余 type 字段同各 send_*;frozen 下自动开窗播放+完成 refreeze)。game_wait: wait_for_node {path}, wait_for_property {path, property, value}。game_playtest: playtest.seed {seed:int}, playtest.fixed_delta {hz:int}, playtest.step {frames:int(1-60)}, playtest.snapshot/restore 无参数。G1 control: playtest.freeze/unfreeze 无参数, playtest.step_until {conditions:[{path:String,property:String,op:String(==/!=/</>/<=/>=),value:标量/几何}], max_frames?:int(1-600,默认600), wall_budget_ms?:int(1000-50000,默认30000)}"
      • changedInput schema / properties / port / description
        Previous value: -"game_bridge_install: 桥接监听端口(当前忽略,始终 9081)"New value: +"game_bridge_install: 期望的起始监听端口(实际端口由游戏侧 env GODOT_MCP_BRIDGE_PORT 设起点,被占自动递增避让;此参数不影响行为,保留兼容)。实际端口见 ping 响应与实例 registry"
      • changedInput schema / properties / source_script_path / description
        Previous value: -"install_override/uninstall_override: 源调试脚本绝对路径(必须在 ALLOWED_PROJECT_PATHS 白名单内,拷贝到项目根注册为 autoload/MCPOVERRIDE_<basename>)"New value: +"install_override/uninstall_override: 源调试脚本绝对路径(必须在 ALLOWED_PROJECT_PATHS 白名单内,拷贝到项目根注册为 MCPOVERRIDE_<basename> autoload;插入 [autoload] 段末尾=在游戏 autoload 之后加载,脚本 _ready 可直接访问游戏单例,无需 await <Singleton>.ready)"
      • changedInput schema / properties / timeout / description
        Previous value: -"game_query/game_write/game_input/game_wait: 超时时间(毫秒,默认 10000)。game_wait 的 timeout 用作整个轮询窗口的总预算(在窗口内反复探测直到条件成立)"New value: +"game_query/game_write/game_input/game_wait: 超时时间(毫秒,默认 10000)。game_wait 的 timeout 用作整个轮询窗口的总预算(在窗口内反复探测直到条件成立)。send_input_sequence 延迟响应,timeout 自动放宽至 wall_budget+10s(上限 65000)"
    • Removedgodot_advanced_tool
    • Removedgodot_list_dynamic_routes
    • Removedgodot_list_instances
    • Removedgodot_select_instance
    • Changedhelp1 field changed
      • changedInput schema / properties / tool_name / enum
        Previous value: -[
        -  "android",
        -  "animation",
        -  "animation_track",
        -  "animtree",
        -  "asset",
        -  "audio",
        -  "blender",
        -  "cpp",
        -  "csv_to_resources",
        -  "docs",
        -  "editor",
        -  "game",
        -  "godot_advanced_tool",
        -  "godot_get_context",
        -  "godot_list_dynamic_routes",
        -  "godot_list_instances",
        -  "godot_select_instance",
        -  "help",
        -  "load_skill",
        -  "manage_tools",
        -  "material",
        -  "nav",
        -  "particles",
        -  "physics",
        -  "profiler",
        -  "project",
        -  "runtime",
        -  "runtime_assert",
        -  "scene",
        -  "screenshot",
        -  "script",
        -  "self_update",
        -  "signal",
        -  "testing",
        -  "tilemap",
        -  "ui",
        -  "validation",
        -  "workflow"
        -]New value: +[
        +  "analysis",
        +  "android",
        +  "animation",
        +  "animation_track",
        +  "animtree",
        +  "asset",
        +  "audio",
        +  "audit",
        +  "blender",
        +  "confirm_and_execute",
        +  "cpp",
        +  "csv_to_resources",
        +  "debug",
        +  "docs",
        +  "editor",
        +  "engine",
        +  "game",
        +  "godot_advanced_tool",
        +  "godot_get_context",
        +  "godot_list_dynamic_routes",
        +  "godot_list_instances",
        +  "godot_select_instance",
        +  "help",
        +  "load_skill",
        +  "manage_tools",
        +  "material",
        +  "nav",
        +  "particles",
        +  "physics",
        +  "profiler",
        +  "project",
        +  "qa",
        +  "runtime",
        +  "runtime_assert",
        +  "scene",
        +  "screenshot",
        +  "script",
        +  "self_update",
        +  "signal",
        +  "testing",
        +  "tilemap",
        +  "translation",
        +  "ui",
        +  "uid",
        +  "validation",
        +  "workflow"
        +]
    • Removedmanage_tools
    • Removednav
    • Removedphysics
    • Changedproject3 fields changed
      • changedInput schema / properties / godot_version / default
        Previous value: -"4.4"New value: +"4.7"
      • changedInput schema / properties / godot_version / description
        Previous value: -"CI 中使用的 Godot 版本(默认 4.4)"New value: +"CI 中使用的 Godot 版本(默认 4.7)"
      • changedInput schema / properties / max_depth / description
        Previous value: -"最大搜索深度(默认 3)"New value: +"最大搜索深度(默认 3,钳制上限 10)"
    • Addedqa
    • Changedruntime2 fields changed
      • addedInput schema / properties / quit_flag
        Added value: +{
        +  "default": "gquit",
        +  "description": "run_tests 的 GUT 退出标志。默认 gquit(GUT ≤9.5);GUT 9.6+ 移除 -gquit(报 Unknown arguments: -gquit)时切 gexit",
        +  "enum": [
        +    "gquit",
        +    "gexit"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / timeout / description
        Previous value: -"自动停止秒数(默认 30)"New value: +"自动停止秒数(默认 30。游戏冷启动 >30s 的项目传更大值如 120;wait_for_bridge 时自动取 max(bridge_timeout+10, timeout) 防与 bridge 就绪 race)"
    • Changedruntime_assert4 fields changed
      • addedInput schema / properties / max_diff_ratio
        Added value: +{
        +  "description": "screenshot_diff: 允许的差异像素占比上限(0-1,默认 0.05)。严格像素回归传 0;常规视觉回归建议以同布局好图对校准(本仓实测同布局好图对 ≈0.176,勿低于该量级)",
        +  "type": "number"
        +}
      • changedInput schema / properties / project_path / description
        Previous value: -"项目路径(可选)"New value: +"项目路径(screenshot_diff 必填:解析 user:// 截图落盘位置)"
      • changedInput schema / properties / reference / description
        Previous value: -"screenshot_diff: 参考截图路径(res:// 或绝对路径)"New value: +"screenshot_diff: 参考截图路径(res://、项目相对或绝对路径;须在白名单内)"
      • changedInput schema / properties / threshold / description
        Previous value: -"screenshot_diff: 相似度阈值(0-1,默认 0.85)"New value: +"screenshot_diff: 像素差异容忍阈值(0-1,默认 0.12)。per-pixel 归一化 RGB 距离严格大于此值才计为差异像素;值越小越严格"
    • Changedscene21 fields changed
      • changedInput schema / properties / instance_path / description
        Previous value: -"instance_scene: 要实例化的场景文件(res://scenes/player.tscn)"New value: +"要实例化的场景(res://…tscn)"
      • changedInput schema / properties / name / description
        Previous value: -"create_3d_node: 节点名称"New value: +"名称(create_3d_node)"
      • changedInput schema / properties / operations / description
        Previous value: -"commit: 批量操作列表(tile_set/tile_fill/tile_erase/tile_clear/tileset_assign/node_property/node_add)"New value: +"commit: 批量操作列表(enum 见 op 字段;铺设/TileSet 层配置/节点)"
      • addedInput schema / properties / operations / items / properties / collision_layer
        Added value: +{
        +  "description": "物理层位掩码(physics add/set)",
        +  "type": "number"
        +}
      • addedInput schema / properties / operations / items / properties / collision_mask
        Added value: +{
        +  "description": "物理遮罩位掩码(physics add/set)",
        +  "type": "number"
        +}
      • addedInput schema / properties / operations / items / properties / layer
        Added value: +{
        +  "description": "layer 索引,0 起(physics set/remove、cdata set)",
        +  "type": "number"
        +}
      • addedInput schema / properties / operations / items / properties / layers
        Added value: +{
        +  "description": "导航层位掩码(navigation add,可选)",
        +  "type": "number"
        +}
      • changedInput schema / properties / operations / items / properties / name / description
        Previous value: -"节点名称(node_add)"New value: +"节点名(node_add)/数据层名(cdata add)"
      • addedInput schema / properties / operations / items / properties / navigation_layer
        Added value: +{
        +  "description": "导航 layer 索引,0 起(navigation set)",
        +  "type": "number"
        +}
      • changedInput schema / properties / operations / items / properties / node_path / description
        Previous value: -"TileMap/TileMapLayer 节点路径(tile 操作必需)"New value: +"TileMap/TileMapLayer 节点路径"
      • addedInput schema / properties / operations / items / properties / one_way
        Added value: +{
        +  "description": "单向碰撞(collision set,默认 false)",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / operations / items / properties / op / enum
        Previous value: -[
        -  "tile_set",
        -  "tile_fill",
        -  "tile_erase",
        -  "tile_clear",
        -  "tileset_assign",
        -  "node_property",
        -  "node_add"
        -]New value: +[
        +  "tile_set",
        +  "tile_fill",
        +  "tile_erase",
        +  "tile_clear",
        +  "tileset_assign",
        +  "node_property",
        +  "node_add",
        +  "tileset_physics_layer_add",
        +  "tile_collision_set",
        +  "tileset_physics_layer_set",
        +  "tileset_physics_layer_remove",
        +  "tileset_navigation_layer_add",
        +  "tile_navigation_set",
        +  "tileset_custom_data_layer_add",
        +  "tile_custom_data_set",
        +  "tile_collision_clear"
        +]
      • addedInput schema / properties / operations / items / properties / physics_layer
        Added value: +{
        +  "description": "物理 layer 索引,0 起(collision set/clear)",
        +  "type": "number"
        +}
      • addedInput schema / properties / operations / items / properties / points
        Added value: +{
        +  "description": "polygon 点集 [{x,y}](rect 省略;逐项运行时校验)",
        +  "type": "array"
        +}
      • addedInput schema / properties / operations / items / properties / shape
        Added value: +{
        +  "description": "rect=全格四点;polygon=自定义点集",
        +  "enum": [
        +    "rect",
        +    "polygon"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / operations / items / properties / tileset_path / description
        Previous value: -"TileSet 资源路径(tileset_assign)"New value: +"TileSet .tres 路径(层配置 9 op 限 res:// 项目内)"
      • changedInput schema / properties / operations / items / properties / type / description
        Previous value: -"节点类型(node_add)"New value: +"节点类型(node_add)/int|float|bool|string|color|vector2(cdata add)"
      • changedInput schema / properties / operations / items / properties / value / description
        Previous value: -"属性值"New value: +"属性值(node_property)/数据值(cdata set,须匹配层类型)"
      • changedInput schema / properties / stop_on_error / description
        Previous value: -"commit: 遇错是否停止(默认 true)"New value: +"遇错是否停止(默认 true;false 时失败不阻止后续与 .tres 写盘)"
      • changedInput schema / properties / type / description
        Previous value: -"create_3d_node: 节点类型(仅限白名单)"New value: +"类型(create_3d_node,白名单)"
      • changedInput schema / properties / value / description
        Previous value: -"set_instance_property: 属性值(string/number/bool/null/array)"New value: +"属性值(set_instance_property)"
    • Changedscreenshot8 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Action type: capture (take a screenshot) or analyze (AI visual analysis of an image)"New value: +"Action type: capture (take a screenshot), analyze (AI visual analysis of an image), or diff (pixel-level comparison of two PNG images)"
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "capture",
        -  "analyze"
        -]New value: +[
        +  "capture",
        +  "analyze",
        +  "diff"
        +]
      • addedInput schema / properties / diff_path
        Added value: +{
        +  "description": "diff: 可选,差异图输出路径。差异像素染纯红 (255,0,0),其余保留 a 图原色。不提供则不写文件。",
        +  "type": "string"
        +}
      • addedInput schema / properties / image_a
        Added value: +{
        +  "description": "diff: 基准图(a 图)路径。相对路径需 project_path;两图尺寸必须一致。",
        +  "type": "string"
        +}
      • addedInput schema / properties / image_b
        Added value: +{
        +  "description": "diff: 对比图(b 图)路径。路径策略同 analyze 的 image_path(白名单校验)。",
        +  "type": "string"
        +}
      • addedInput schema / properties / threshold
        Added value: +{
        +  "default": 0.12,
        +  "description": "diff: per-pixel 归一化欧氏距离阈值 sqrt(Δr²+Δg²+Δb²)/(√3×255),0-1,默认 0.12。恰好等于阈值不计差(严格大于才计)。忽略 alpha 只比 RGB。",
        +  "type": "number"
        +}
      • addedInput schema / properties / vision_question
        Added value: +{
        +  "description": "vision_route=true 时传给视觉模型的上下文(可选,如\"我在调试 Player 走路动画\")。",
        +  "type": "string"
        +}
      • addedInput schema / properties / vision_route
        Added value: +{
        +  "default": false,
        +  "description": "Phase 2 Vision Routing:开启时调视觉模型(groq)把图片翻译成文字描述,返回纯文本(不含 image block),让纯文本模型(DeepSeek 等)也能\"看懂\"截图。失败时 fallback 到 detail 分层 + 追加 note。需 GODOT_MCP_VISION_KEY 环境变量。",
        +  "type": "boolean"
        +}
    • Removedself_update
    • Removedtesting
    • Removedtilemap
    • Removedui
  2. 5 tool updatesv0.26.0
    • Addedcsv_to_resources
    • Addeddebug
    • Addedengine
    • Changedgame2 fields changed
      • changedInput schema / properties / method / description
        Previous value: -"game_query/game_write/game_input/game_wait/game_playtest 的具体方法。game_query: ping, get_tree, find_nodes, get_node_properties, get_node_layout, get_performance, get_viewport_info, take_screenshot。game_write: set_node_property, call_method。game_input: send_key, send_mouse_click, send_mouse_move, send_text, send_touch, send_drag。game_wait: wait_for_node, wait_for_property。game_playtest: playtest.seed (锁全局 RNG,仅覆盖 randi/randf), playtest.fixed_delta (锁 physics 步长,delta=1/hz), playtest.step (单步推进 N 帧,走 coroutine 延迟响应), playtest.snapshot (快照场景树属性,不保信号/物理/已free节点), playtest.restore (从快照恢复属性)"New value: +"game_query/game_write/game_input/game_wait/game_playtest 的具体方法。game_query: ping, get_tree, find_nodes, get_node_properties, get_node_layout, get_performance, get_viewport_info, take_screenshot, get_errors (查询游戏运行时错误,支持 since_seq 增量 + clear 读即焚), clear_errors (清空错误 buffer)。game_write: set_node_property, call_method。game_input: send_key, send_mouse_click, send_mouse_move, send_text, send_touch, send_drag。game_wait: wait_for_node, wait_for_property。game_playtest: playtest.seed (锁全局 RNG,仅覆盖 randi/randf), playtest.fixed_delta (锁 physics 步长,delta=1/hz), playtest.step (单步推进 N 帧,走 coroutine 延迟响应), playtest.snapshot (快照场景树属性,不保信号/物理/已free节点), playtest.restore (从快照恢复属性)"
      • changedInput schema / properties / params / description
        Previous value: -"方法参数。game_query: 因方法而异。game_write: set_node_property {path, property, value}, call_method {path, method, args}。game_input: send_key {key, pressed}, send_mouse_click {x, y, button, pressed}, send_mouse_move {x, y}, send_text {text}, send_touch {x, y, pressed, index}, send_drag {x, y, index, relative, speed}。game_wait: wait_for_node {path}, wait_for_property {path, property, value}。game_playtest: playtest.seed {seed:int}, playtest.fixed_delta {hz:int}, playtest.step {frames:int(1-60)}, playtest.snapshot/restore 无参数"New value: +"方法参数。game_query: 因方法而异。get_errors {since_seq?:int(默认0,只返回 seq>since_seq 的), clear?:bool(默认false,查询后清空 buffer)}。game_write: set_node_property {path, property, value}, call_method {path, method, args}。game_input: send_key {key, pressed}, send_mouse_click {x, y, button, pressed}, send_mouse_move {x, y}, send_text {text}, send_touch {x, y, pressed, index}, send_drag {x, y, index, relative, speed}。game_wait: wait_for_node {path}, wait_for_property {path, property, value}。game_playtest: playtest.seed {seed:int}, playtest.fixed_delta {hz:int}, playtest.step {frames:int(1-60)}, playtest.snapshot/restore 无参数"
    • Addedtesting
  3. 37 tool updatesv0.25.7
    • First observedandroid
    • First observedanimation
    • First observedanimation_track
    • First observedanimtree
    • First observedasset
    • First observedaudio
    • First observedblender
    • First observedconfirm_and_execute
    • First observedcpp
    • First observeddocs
    • First observededitor
    • First observedgame
    • First observedgodot_advanced_tool
    • First observedgodot_get_context
    • First observedgodot_list_dynamic_routes
    • First observedgodot_list_instances
    • First observedgodot_select_instance
    • First observedhelp
    • First observedload_skill
    • First observedmanage_tools
    • First observedmaterial
    • First observednav
    • First observedparticles
    • First observedphysics
    • First observedprofiler
    • First observedproject
    • First observedruntime
    • First observedruntime_assert
    • First observedscene
    • First observedscreenshot
    • First observedscript
    • First observedself_update
    • First observedsignal
    • First observedtilemap
    • First observedui
    • First observedvalidation
    • First observedworkflow

TDQS

B3.1/5.0

Scored across 26 tools

Disambiguation2/5

Direct overlaps exist: `animation` and `animation_track` both expose track/keyframe operations, `screenshot` overlaps with `game`/`qa` capture capabilities, and `workflow` overlaps with `script`, `validation`, and `runtime_assert`. These tools have boundaries but not obvious ownership, so an agent will frequently need to pick between near-equivalent options.

Naming Consistency3/5

Names are mostly lowercase snake_case and readable, but the convention is not consistent: noun domains (`scene`, `script`, `game`) are mixed with verb-style names (`confirm_and_execute`, `load_skill`) and abbreviations (`qa`, `cpp`, `animtree`). The `animation`/`animation_track`/`animtree` grouping is especially hard to infer from naming alone.

Tool Count2/5

26 tools sits above the already-heavy threshold, and many top-level tools are actually umbrella namespaces containing many subactions, making the real surface much larger. Several tools such as `animation_track`, `workflow`, and `help` could be merged or removed without losing functionality.

Completeness4/5

Core Godot workflows are well covered: project, scene, script, runtime, validation, animation, audio, material, particles, profiling, runtime assertions, QA, static analysis, and documentation. The main gaps are dedicated export/build/physics/tilemap tooling and some file lifecycle operations, but these are secondary to the server's primary purpose.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that gives AI assistants direct control over Godot 4 game development projects. It enables launching the editor, running projects, creating and editing scenes, writing GDScript, and inspecting assets through natural language commands.
    44
    10 npm
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables AI assistants to directly run, inspect, modify, and debug Godot game development projects through 110+ tools covering scenes, scripts, resources, runtime debugging, and asset management.
    33
    21 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A security-first MCP server and Godot editor addon enabling AI agents to observe and control Godot games through bounded, permission-gated tools for debugging, input automation, and project editing.
    MIT