UE 5.8 中包含了一个实验性的 Unreal MCP 插件,允许在编辑器中启动 MCP 服务器。任何 MCP 客户端都可以连接并控制编辑器(读取/修改角色,蓝图,属性,运行日志等)。大多数指南都涵盖了 Claude Code CLI,这是一个更简单更好地文档化的路径。这个指南专门针对 Claude 桌面应用程序 / Cowork,因为设置方式不同,并且有一些步骤不是很明显。
这里所有的内容都是 实验性的。请预期会有很多问题和功能缺失。请先备份您的项目。
需要什么
- Unreal Engine 5.8,您的项目已打开。
- Claude 桌面应用程序 (Cowork)。
- Node.js(提供
npx)。桥梁通过npx运行,因此没有 Node.js 就什么也干不了。https://nodejs.org - Git for Windows(提供
bash.exe)。Cowork 启动 MCP 命令通过bash.exe;如果没有安装/在 PATH 中,你会收到一个 bash 错误。https://git-scm.com/download/win
步骤 1 — 在 Unreal 中启用插件
在 编辑 > 插件 中,启用这些,然后重启编辑器:
- Unreal MCP(它的真实 ID 是
ModelContextProtocol)。它会自动启用其 工具集注册表 依赖项。 - Python 编辑器脚本插件 — 必须的,因为有用的工具集大多是用 Python 编写的,否则它们不会注册。
- 你实际上想要启用的 工具集 插件。它们是每个单独的实验性插件, 默认关闭。如果你跳过这一步,连接成功但是只会得到一个简单的工具集。搜索
toolset在插件窗口中。一个好的起始集: - 编辑工具集(角色,蓝图,属性 — 最重要的)
- GASToolsets(游戏能力系统)
- GameplayTagsToolset
- StateTreeToolset
- 还有一个 所有工具集 的聚合器,如果你只想得到所有的。
重启编辑器后。
步骤 2 — 启动服务器
- 编辑 > 编辑器首选项 > 一般 > 模型上下文协议。
- 打开 自动启动服务器。
- 设置 服务器端口号。默认值是
8000。如果8000被占用,你会看到 HttpListener unable to bind to127.0.0.1:8000在日志中 — 选择另一个端口(我使用的是8137)。 - 打开控制台(反引号 ``` 键)并运行: ModelContextProtocol.StartServer 8137
- 确认日志显示: Created new HttpListener on 127.0.0.1:8137
您的服务器 URL 是 http://127.0.0.1:<端口>/mcp。
步骤 3 — 安装 Node.js 和 Git
如果您没有安装它们,请安装 Node.js 和 Git(见上方链接)。重启任何终端以使 PATH 更新。快速检查:
node -v
npx -v
bash --version
所有三个都应该打印出版本。
步骤 4 — 编辑 Cowork 的 MCP 配置
这是一个耗时的部分。配置文件不在明显的 %APPDATA%\Claude\ 位置(用于 Store/MSIX 构建)。按 Win + R 并粘贴:
%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\
(Claude_pzs8sxrjxfjjc 包文件夹名称可能会在您的机器上稍微不同 — 它是 MSIX 包 ID。)
打开 claude_desktop_config.json 文件。在该文件夹中。先备份它 — 它包含应用程序偏好,且不良的 JSON 可能会阻止应用程序启动。
该文件已经包含内容(偏好等)。添加一个 mcpServers 键作为 顶级兄弟,与现有的内容匹配:
"mcpServers": {
"unreal-mcp": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://127.0.0.1:8137/mcp"]
}
}
mcp-remote 是一个 stdio-to-HTTP 桥梁。Cowork 只能启动一个命令,而 Unreal 的服务器是 HTTP 的,所以这个桥梁连接了两者。由于它在您的机器上运行,因此 127.0.0.1 是可达的(一个云侧的自定义连接器 不会 可以到达您的本地主机 — 这个方法对于这个不起作用)。
步骤 5 — 重启 Cowork 并验证
- 完全 退出并重新打开 Claude 桌面应用程序。
- 启动时您应该会收到一个 Node.js 权限提示 — 这是
mcp-remote启动的。允许它。 - 确保 Unreal 编辑器已打开,服务器正在运行。
- 在一个新会话中,向 Claude 询问
list_toolsets,或“我选择的角色有哪些?”如果工具集列表返回,则已连接。
故障排除 / 小问题
HttpListener unable to bind to127.0.0.1:8000— 端口已被占用。更改端口(步骤 2)并更新配置(步骤 4)。- 只显示一个工具集(
AgentSkillToolset)— 你没有启用 Python 插件和/或个别工具集插件(步骤 1)。启用它们,重启,然后运行ModelContextProtocol.RefreshTools。 - 启动时出现 bash 错误 — Git for Windows 未安装/未在 PATH 中。Cowork 运行命令通过
bash.exe。 Unknown session id ... client should reinitialize— 发生在编辑器重启后(服务器重启,客户端持有一个过时的会话)。桥梁重新握手下一次调用;如果没有,请重启 Claude 应用程序。- 调用超时 — 服务器未运行(重新运行
ModelContextProtocol.StartServer <端口>后任何编辑器重启)或您正在进行 PIE 并编辑器忙碌。 - 工具集的
describe巨大 — 某些工具集(例如 BlueprintTools)返回的架构太大以至于无法在一次响应中加载。调用特定的工具而不是将整个工具集都传递给它。
值得知道的限制
- 它是 实验性的;许多功能是不完整的。
- 只限本地连接,不进行身份验证 — 不要将服务器暴露到您的机器之外。
- 代理没有 实时/连续观察 — 它在您询问它时会检查状态;它无法在您玩游戏时实时观察。
- 在 任何编辑器重启 后,您通常需要重新确认服务器是否绑定到您的端口。
一旦连接后您可以做什么
读取和修改角色和属性,检查和编辑蓝图,读取输出日志(用于在不复制粘贴的情况下验证游戏),检查 GASP 属性/能力在运行时,移动视口摄像头,捕获视口截图,运行/停止 PIE 等 — 依赖于你启用的工具集插件。
评论 (0)