内容
Beckett — Godot 的 MCP 服务器
> *不再等待 Godot。CI](https://github.com/beckettlab/beckett-godot-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/beckettlab/beckett-godot-mcp/actions/workflows/ci.yml)
[](https://discord.gg/pBAugYuerR)
[](LICENSE)
[](https://godotengine.org)
[](https://modelcontextprotocol.io)
[
[](https://github.com/beckettlab/beckett-godot-mcp/stargazers)
[](https://githubeckettlab/beckett-godot-mcp/commits)
**Beckett** 是一个 **零边车** 模型上下文协议(MCP)服务器,直接嵌入到 **Godot 4** 编辑器中,作为 GDScript `EditorPlugin`。AI Claude 等)通过 HTTP 驱动编辑器 — 无需 Node/Python 桥接,无需,无需云服务。
本仓库是免费的、**MIT 许可**的精简完整的 **检查 → 作者 → 运行** 开发循环(41 个工具)。付费的 **完整** 版本使 AI 可以**玩**你的游戏(截图、输入、断言),并添加了测试运行器、动画工具、后台导出等 36 个知识包 — 请参阅 [完整版新增功能](#完整版新增功能)。
**精简版:您玩,AI 读取日志。完整版:AI 玩。**
## 演示
[](https://www.youtube.com/watch?v=oUHrA4ojqdg)
## 为什么
现有的 Godot MCP么使用 CLI(无法玩游戏、截图或检查运行时),要么运行一个 Node/Python **边车**,该边车中继到一个薄的编辑插件使**插件本身成为 MCP 服务器**,并暴露了**基于反射**的,这些工具通过 `ClassDB` 在任何类上工作 — 而不是数百个特定于领域的硬编码包装器(一种反模式:LLM 在约 40 个工具后会退化)。
## 亮点
- **零边车** — `TCPServer` HTTP/JSON-RPC 服务器在编辑器的主线程上轮询。无需编组,无需安装额外的软件。
- **基于反射 + 发现** — `find_classes` / `describe_class` /` 使整个引擎表面可搜索;`describe_object` / `set_property` / `call_method` 然后驱动任何 `Node` / `Resource` / `Object`。可达 TileMap、GPUParticles、AnimationTree、NavMesh、着色器… 无需特定于领域的代码。
- **GDScript 开发循环,验证后写入** — `write_script` / `script_patch` 在写入前解析代码,并拒绝写入无法编译的代码(关闭 #1 AI-on-Godot 故障:幻觉的 GDScript)。Godot 的优势在于,无需编译步骤即可重新加载。
- **可撤销的创作** — 每个场景/节点突变都经过 `EditorUndoRedoManager`(原子级 + 可撤销);`batch_execute` 在失败时回滚整个批次。
- **一键安装** — 启用插件会自动启动服务器并写入 `.mcp.json`,因此 `claude`/Cursor 连接时无需手动编辑(无需安装 Node.js — 竞争对手需要它才能尝试)。
- **安全** — 仅限本地主机,带有 `Origin` 验证(反 DNS 绑定)+ 可选的 bearer token;只读/白名单/确认破坏性网关;自动启动是可选的(`beckett/autostart=false`)。
- **运行 + 读取日志循环** — `play_scene` → `wait_until` → `logs_read` → 修复:启动游戏,尾随其输出和错误,同时您玩游戏。(完整版自主关闭循环 — AI 自己看到并驱动正在运行的游戏。)另外还有 **MCP 资源 + 提示**。
- **停靠面板,一键启动/停止,复制客户端配置,以及一个 努力滑块**(1-3 在精简版),限制了公开的工具数量:当您只需要一部分功能时,模型上下文更便宜。**实时应用,无需重新连接** — 服务器通过其 SSE 流推送 `notifications/tools/list_changed`,而列表更改感知的客户端(Claude Code,Cursor,...)立即重新获取。
- **即使未聚焦也响应** — 当 MCP 流量活动时,服务器限制编辑器的低处理器睡眠,因此当您终端而不是编辑器时,调用仍然很快(通常的代理设置)。
- **规范当前 MCP** — 协议版本协商,工具 **注释**(`readOnlyHint`/`destructiveHint`/`openWorldHint`)在每个工具上,以及 `structuredContent`(2025-06-18)与文本结果一起。一个 ****(`recent`)记录了最近 200 次工具调用 — 查看 AI 执行的所有操作。
## 工具(41)· 资源(6)· 提示(5)
> **故意减少工具数量 — 这是护城河,而不是限制。** 大多数 Godot MCP 硬编码一个工具用于每个任务(`create_sprite`,`add_collision`,`make_timer`...)- 数百个工具仍然会错过类并淹没模型的LLM 在约 40 个工具后明显下降)。Beckett 的工具是**基于反射的通用工具`describe_class` / `set_property` / `call_method` 通过 `ClassDB` 驱动 Godot 的 1000+ 类中的任何一个 — TileMap,GPUParticles,AnimationTree,着色器,您自己的 `class_name` — 无需特定于领域的代码。**不要计算工具,计算覆盖率:** 一个较小、更锐利的工具集可以覆盖整个引擎,胜过数百个狭窄的包装器,它们无法覆盖所有类。
免费精简版 — 完整的检查 → 作者 → 运行循环:
- **反射 / 发现:** `get_godot_version`,`find_classes`,`describe_class`,`find_methods`,`describe_object`,`set_property`,`call_method`,`get_scene_tree`
- **场景创作(可撤销):** `create_node`,`delete_node`,`rename_node`,`reparent_node`,`duplicate_node`,`move_node`,`instance_scene`,`save_scene`,`open_scene`
- **GDScript 开发循环:** `validate_script`,`write_script`,`script_patch`,`read_script`,`attach_script`
- **信号:** `connect_signal`,`disconnect_signal`list_signals`
- **资源资产:** `create_resource`,`set_resource`
- **文件 / 项目:** `read_file`,`write_file`,`list_dir`,`search_files`,`get_project_setting`,`set_project_setting`
- **运行 + 日志循环:** `play_scene`,`stop_scene`,`get_play_state`,`wait,`logs_read`
- **项目 / 创作助手:** `get_project_statistics`,`apply_template`,`batch_execute`
- **MCP 资源:** `scene://tree`,`scene://selection`,`project://settings`,`assets://list`,`log://output`,`audit://recent`
- **MCP 提示:** `inspect_node`,`audit_scene`,`setup_2d_player`,`fix_script_errors`,`build_test_fix`,`make_game`
## 完整版新增功能
**完整 是在相同核心上的付费增强层,使 AI 成为**测试者** — 它看到屏幕,按下按钮结果:
- **AI 玩:** `screenshot`,`get_remote_tree`,`simulate_input`,2D + 3D 中的 UI 点击(`click_control `click_node3d` / `click_world`),` / `drag`,`find_nodes`堆栈跟踪的实时 `game_logs`,`record_input` / `replay_input`。
- **AI `assert_node_state`,`assert_screen_text`,`compare_screenshots`,以及编辑器中的 **测试运行器**(`test_run`)。
- **创作 + 发布:** `animation_manage`(键 / 跟 预设),`scatter_nodes`(场景绘制批量放置),后台 `export_project` + `job_status`,项目范围分析(`find_unused_resources`,`detect_circular_dependencies`),以及 Godot **资产商店 / 库** 浏览器安装程序(`asset_lib_search` / `asset_lib_info` / `asset_lib_install`)。
- **36 个技能知识包**(`list_skills` / `load_skill`):gdscript,粒子,动画,ui,物理,多人游戏等 — 因此反射可以访问每个领域,无需特定于领域的工具。
完整版是一次性购买,享有终身更新:**https://beckettlabs.itch.io/beckett-godot-mcp**
## 使用
1. 将 `addons/beckett/` 复制到您的 Godot **4.4+** 项目中(在 4.4.1、4.6.2 和 4.7 上验证),并在 *项目 → 项目设置 → 插件* 中启用 **Beckett — Godot 的 MCP 服务器**。
2. 完成 — 启用插件将**自动启动**服务器并写入 `.mcp.json`。(退出:`beckett/autostart=false`,`beckett/auto_write_client_config=false`。其他选项:`BECKETT_PORT` 默认 `8770`,`BECKETT_TOKEN`,`BECKETT_READONLY=1`,`B_ALLOWLIST`,`BECKETT_CONFIRM_DESTRUCTIVE=1`。面板具有启动/停止功能。)
3. 连接您的客户端。对于 **Claude Code**,只需在项目中运行 `claude` — 自动编写的 [.mcp.json](.mcp.json) 将其连接起来(`/mcp` → **beckett**)。对于 Cursor/其他,请指向 `http://127.0.0.1:8770/mcp`(可流式传输的 HTTP)或使用面板的 **设置...** 按钮。参见 [INSTALL.md](INSTALL.md)。
## 状态
这是免费、MIT 许可的**精简版** — 完整的**检查 + 作者 + 运行**核心:反射/发现,场景和脚本创作,**信号**,**资源创建/分配**,**文件和项目设置**,**运行 → 等待 → `logs_read`** 开发循环,以及 **资源 + 提示 + 停靠面板**。**41 个工具。** 在 Godot 4.4.1、4.6.2 和 4.7(无头编辑器 + 真实的 HTTP MCP 客户端)上构建和验证。
**完整版** 添加了 AI 驱动的游戏测试层(截图,输入注入,UI 点击,断言,测试运行器,`animation_manage`),后台导出作业和捆绑的技能包 — 它可以**看到并驱动**正在运行的游戏。
## 许可证
**精简版 — MIT** (此仓库)。免费开源:使用它,fork 它,发布它。请参阅 [LICENSE](LICENSE)。
**完整版** (AI 驱动的游戏测试层,背景导出作业和技能包)是一个单独的商业产品 — 一次购买,享有终身更新。
*Beckett 是一个第三方工具,与 Godot 基金会无关联或获得
连接信息
猜你喜欢
暂无推荐服务器