关于 Godot Forge
Godot Forge 是面向 Godot 4 项目的 MCP 服务,为编码 Agent 提供测试、文档查询、脚本与场景分析等工具。它还映射 Godot 3 到 4 的 API 变更,帮助识别过时用法。
主要功能
- 01运行 GUT 与 GdUnit4 测试
- 02查询 Godot 4 API 文档及迁移映射
- 03检测 GDScript 常见问题
- 04解析场景文件并检查问题
- 05获取 LSP 诊断与项目截图
适用场景
- 01在修改后运行并查看测试结果
- 02将旧版 Godot API 用法替换为 4.x 对应项
- 03检查脚本和场景中的错误及反模式
- 04查看编辑器诊断或游戏视口截图
MCP 相关
Godot Forge 作为 MCP 服务,向兼容 IDE 和编码 Agent 暴露 8 种 Godot 项目工具,包括测试、文档、分析、诊断和截图功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| method | string | 否 | 筛选指定的测试方法名称 |
| timeout | number | 否 | 超时时间(秒)(默认值:60) |
| framework | enum | 否 | 强制使用指定的框架(省略时自动检测)gut | gdunit4 |
| inner_class | string | 否 | 筛选指定的内部测试类 |
| script_path | string | 否 | 筛选指定的测试脚本(例如,res://tests/test_inventory.gd) |
详细介绍
Godot Forge
适用于 Godot 4 的 MCP 服务。测试运行器、API 文档、脚本分析等。
AI 编码助手在结构上不擅长处理 GDScript。由于训练数据偏向 Godot 3,模型会臆造已弃用的 API(用 yield 代替 await、用 KinematicBody 代替 CharacterBody3D、用 export var 代替 @export var)。Godot Forge 可以解决这个问题。
8 个工具。零配置。兼容所有支持 MCP 的 IDE。
安装
npx -y godot-forge
就这么简单。Godot Forge 会自动检测 Godot 二进制文件(Steam、Homebrew、直接下载),并自动查找 project.godot。
添加到 IDE
Claude Code
claude mcp add godot-forge -- npx -y godot-forge
Cursor
添加到 .cursor/mcp.json:
{
"mcpServers": {
"godot-forge": {
"command": "npx",
"args": ["-y", "godot-forge"]
}
}
}
VS Code(Copilot)
添加到 .vscode/mcp.json:
{
"servers": {
"godot-forge": {
"command": "npx",
"args": ["-y", "godot-forge"]
}
}
}
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"godot-forge": {
"command": "npx",
"args": ["-y", "godot-forge"]
}
}
}
Zed
添加到 settings.json:
{
"context_servers": {
"godot-forge": {
"command": {
"path": "npx",
"args": ["-y", "godot-forge"]
}
}
}
}
Claude Desktop
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%/Claude/claude_desktop_config.json(Windows):
{
"mcpServers": {
"godot-forge": {
"command": "npx",
"args": ["-y", "godot-forge"]
}
}
}
更多 IDE(Codex、Gemini CLI、JetBrains、Continue、Cline、Roo Code、Neovim、OpenCode、Kiro)
所有受支持 IDE 的配置代码片段,请参阅 IDE 设置指南。
工具
| 工具 | 说明 | 需要 Godot | 需要编辑器 |
|---|---|---|---|
godot_run_tests | 运行 GUT/GdUnit4 测试,获取结构化的通过/失败结果 | 是 | 否 |
godot_search_docs | 搜索 Godot 4 API 文档,并提供 3→4 迁移映射 | 否 | 否 |
godot_analyze_script | 检测 10 种 GDScript 常见陷阱(已弃用 API、耦合、重入) | 否 | 否 |
godot_analyze_scene | 解析 .tscn/.tres,检测反模式和格式错误 | 否 | 否 |
godot_get_project_info | 渐进式展示项目结构概览 | 否 | 否 |
godot_get_diagnostics | 获取 Godot 语言服务器提供的 LSP 诊断信息 | 否 | 是 |
godot_run_project | 启动/停止项目,捕获调试输出 | 是 | 否 |
godot_screenshot | 将视口截图捕获为 base64 PNG | 是 | 否 |
提示
8 个工具中有 6 个无需安装 Godot 即可使用。只有运行测试、启动项目和截屏需要 Godot 二进制文件。
功能
测试运行器
自动检测 GUT 和 GdUnit4。返回包含通过/失败数量、失败详情(包括文件路径和行号)的结构化 JSON。支持按脚本、方法或内部类筛选。
Ask your AI: "Run the water profile tests"
→ { total: 5, passed: 5, failed: 0, duration_ms: 462 }
Godot 3→4 迁移映射
AI 写出有问题的 GDScript 的头号原因。当 AI 查询已弃用的 API 时,它能立即获取正确的 Godot 4 等效项(30 多项映射,涵盖类、方法、语法和常量)。
Query: "KinematicBody" → "Renamed to CharacterBody3D in Godot 4"
Query: "yield" → "yield(obj, 'signal') → await obj.signal"
Query: "instance()" → "instance() → instantiate()"
脚本分析:10 个常见问题
检测游戏开发中实际遇到的每个常见问题:
| # | 常见问题 | 检测内容 |
|---|---|---|
| 1 | Godot 3→4 API | yield、connect("signal")、export var、instance() |
| 2 | 过于庞大的脚本 | 超过 300 行。应拆分 |
| 3 | Variant 上使用 := | 对 Dictionary.get() 进行类型推断会导致解析错误 |
| 4 | 耦合过紧 | 过多的 get_node("../../...") 引用 |
| 5 | 信号重入 | 状态变更之间发出信号 |
| 6 | 误用自动加载 | 自动加载过多、在自动加载上使用 static func |
| 7 | 未断开连接 | 使用 connect(),却没有在 _exit_tree() 中清理 |
| 8 | _init() 时机 | 节点加入场景树前访问节点树 |
| 9 | Python 风格写法 | 列表推导式、len()、Python 导入语句 |
| 10 | .tres 类型字段 | 使用自定义类名,而不是 type="Resource" |
场景分析
解析 .tscn 和 .tres 文件。检测深层嵌套(>8 层)、过大的场景(>100 个节点)、缺失的脚本引用、.tres 中的 preload()、整数资源 ID 等。
LSP 诊断
连接到 Godot 内置的语言服务器(编辑器打开时会自动运行)。返回真实的编译器错误和警告(不靠猜测)。
说明
需要运行 Godot 编辑器并打开项目。其他所有工具均可在编辑器未运行时使用。
截图捕获
将游戏视口捕获为 PNG 图像。加载项目的主场景(或指定场景),等待渲染完成,并以 base64 格式返回截图,供 AI 查看。
配置
Godot 二进制文件
按以下顺序自动检测:
GODOT_PATH环境变量- PATH 中的
godot/godot4 - Steam 安装(macOS、Windows、Linux)
- 平台默认位置(
/Applications/Godot.app、Homebrew、Scoop、Flatpak、Snap 等)
手动指定:
export GODOT_PATH="/path/to/godot"
完整的搜索路径列表请参阅 Godot 检测。
项目目录
从当前目录开始向上查找 project.godot,自动检测项目目录。手动指定:
npx godot-forge --project /path/to/godot/project
要求
- Node.js 18+:用于执行
npx - Godot 4.x:自动检测(8 个工具中有 6 个可选)
- 任意兼容 MCP 的 IDE:Claude Code、Cursor、VS Code、Windsurf、Zed 等更多
设计原则
- 关注结果,而非操作:每个工具都提供完整结果,而不是对原始 API 的简单封装
- 8 个精选工具:避免 93 个工具导致的上下文臃肿(为何这很重要)
- 渐进式呈现:先给出摘要,再按需展示详情
- 使用
spawn(),而非exec():避免命令注入和 Windows 引号错误 - 提供可操作的错误信息:每条错误信息都包含 AI 可执行的建议
- 跨平台:macOS、Windows、Linux。支持 Steam 安装和非 Steam 安装。
贡献
欢迎贡献!请参阅贡献指南。
开发
git clone https://github.com/gregario/godot-forge.git
cd godot-forge
npm install
npm run build
npm test # 74 tests across 12 test files
本地运行
# Point your IDE at the local build
claude mcp add godot-forge-dev -- node /path/to/godot-forge/dist/index.js
路线图
请参阅 ROADMAP.md 了解计划中的功能。
阶段 2:输入模拟、运行时场景树检查、性能分析、着色器验证、导出/CI 流水线。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。