工具调用
去向你的 MCP 客户端
走 stdio 时,客户端与服务器通过两条管道通信。答复里只有这次调用要求的项目数据,不会发往别处。
一个跑在项目旁边的静态二进制。你的 Agent 不用引擎就能读懂 GDScript、场景和资源,通过写入日志的事务修改它们,还能运行、操控、截取和调试游戏与编辑器。
scene.tree.getscene: main.tscn. Node main.gdPlayer Area2D player/player.gdHUD CanvasLayer ui/hud.gdHUD/Message LabelMob RigidBody2DMob.body_entered → ._on_mob_body_entered exactgdscript.references.getscript: player/player.gdsymbol: take_damagemain.gd:6 player.take_damage() calls inferred下面每一项都是 Agent 可以调用的工具。标着「无需引擎」的只读项目文件,在没装 Godot 的机器上也能回答;其余的需要一个 Godot 可执行文件,其中一部分还需要 godot-mcp 自己启动的游戏或编辑器。
运行下方「安装」一节里对应平台的安装脚本,或者从 GitHub Releases 下载归档,安装脚本会用发布里的 SHA256SUMS.txt 核对归档。目前尚未发布任何版本,暂时请从源码构建。
claude mcp add godot-mcp -- godot-mcp serve --project /path/to/my-game
任何会启动进程的 MCP 客户端都用同一条命令。默认是只读的 core profile。
问 Agent 某个场景或脚本。它会先调 capabilities.get 和 health.get 了解这里能做什么,再调用分析工具。
--profile full
editor 增加写入,runtime 增加运行和观察游戏。依赖引擎的工具需要把 godot_binary 指向你的 Godot。
profile 是服务器能对项目做的一切的上限。core 只读,什么都不改。editor 增加写入,每次写入都写进日志,并核对它替换的内容。runtime 增加运行和观察项目。无论哪个 profile,都没有执行任意代码的工具。
| Profile | 增加的能力 | 工具举例 |
|---|---|---|
core | 只读,什么都不改 | project.info.get scene.tree.get gdscript.references.get |
editor | 写入与编辑器插件 | file.patch scene.batch.apply editor.addon.install |
runtime | 运行并观察游戏 | project.run.start input.sequence.send runtime.screenshot.capture |
full | 以上全部 | core editor runtime |
不在 profile 里的工具不会被列出。已列出的工具如果它需要的引擎、游戏或编辑器不在,就答复 unavailable 并说明缺的是哪一个。
游戏由 godot-mcp 自己启动,带一个它自己的探针,不改动项目里的任何东西。Agent 可以按键、读取实时场景树、截图;编辑器会话还能设断点、看调用栈。会话结束时,它按住的每一个输入都会被松开。
| 要做的事 | 调用 | 说明 |
|---|---|---|
| 运行游戏 | project.run.start project.run.stop | 带窗口或无窗口,直到生命周期结束 |
| 按键与点击 | input.key.send input.mouse.send input.action.send input.sequence.send | 按住的一切都会被松开 |
| 实时读取 | runtime.tree.get runtime.properties.get runtime.signals.get runtime.ui.get | 不改动游戏 |
| 截取 | runtime.screenshot.capture runtime.recording.capture | PNG 或 APNG,作为产物返回 |
| 调试 | editor.session.start debug.command | 断点、调用栈与变量 |
同时最多运行四个会话。每个会话只属于启动它的那个服务器;崩溃后新启动的服务器会结束遗留的会话。
项目支持的每个 Godot 版本都是锁文件里的一个确切补丁版本,带官方下载地址和摘要。CI 对每个版本运行引擎测试套件,并在各自平台上针对最新版本冒烟测试每个发布归档。
| Godot | CI 运行的内容 | 平台 |
|---|---|---|
4.7.1 | 引擎测试套件、导出模板、显示检查、打包冒烟 | Linux、macOS、Windows |
4.6.1 | 引擎测试套件、导出模板 | Linux |
4.5.1 | 引擎测试套件、导出模板 | Linux |
4.4.1 | 引擎测试套件、导出模板 | Linux |
确切版本来自同一个锁文件,每个都用官方 SHA-256 校验。最低支持版本是 4.4.0。
每次发布都为下面每个平台提供一个归档,并在该平台上针对锁定的 Godot 版本构建和冒烟测试。
| 平台 | 归档 | 游戏与编辑器 |
|---|---|---|
| Linux x86_64 | x86_64-unknown-linux-musl,静态链接 | X11 或 Wayland 下带窗口,或无窗口;由进程组、委派 cgroup 或容器适配器限定 |
| macOS Apple 芯片 | aarch64-apple-darwin | 已登录用户的会话里带窗口,或无窗口;由进程组或容器适配器限定 |
| Windows x86_64 | x86_64-pc-windows-msvc,crt-static | 已登录的桌面会话里带窗口,或无窗口;由 Job Object 限定 |
Intel 版 macOS、Linux arm64 和 Windows ARM64 没有现成归档,请从源码构建。
godot-mcp 只在你的机器上工作。除了在你配置 OIDC 时去取身份提供方的签名密钥,它自己不发起任何网络请求。
去向你的 MCP 客户端
走 stdio 时,客户端与服务器通过两条管道通信。答复里只有这次调用要求的项目数据,不会发往别处。
去向回环监听
trusted_local 只接受带本次启动密钥的请求;proxied_oidc 只接受经过认证的代理转发、并携带某一个用户令牌的请求。
去向你的机器
Godot 用你配置的版本在本地运行,处在服务器管理的进程边界之内。godot-mcp 从不下载引擎或导出模板。
去向本地文件
诊断信息写到 stderr 或滚动日志文件,密钥和源码会被遮蔽。截图、录屏和导出结果作为产物留在磁盘上,直到保留期结束。
目前尚未发布任何版本,安装脚本暂时没有可下载的内容;首个版本发布之前,请使用「源码」一栏。
curl -fsSL https://raw.githubusercontent.com/sunerpy/godot-mcp/main/scripts/install.sh | shirm https://raw.githubusercontent.com/sunerpy/godot-mcp/main/scripts/install.ps1 | iexgit clone https://github.com/sunerpy/godot-mcp.git
cd godot-mcp && make dist安装指南介绍各个归档、如何校验下载以及从源码构建。
问题和功能建议请提交到 GitHub Issues。godot-mcp 采用 MIT 许可证,与 Godot Engine 项目没有隶属关系。