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 — 启动服务器

  1. 编辑 > 编辑器首选项 > 一般 > 模型上下文协议
  2. 打开 自动启动服务器
  3. 设置 服务器端口号。默认值是 8000。如果 8000 被占用,你会看到 HttpListener unable to bind to 127.0.0.1:8000 在日志中 — 选择另一个端口(我使用的是 8137)。
  4. 打开控制台(反引号 ``` 键)并运行: ModelContextProtocol.StartServer 8137
  5. 确认日志显示: 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 并验证

  1. 完全 退出并重新打开 Claude 桌面应用程序。
  2. 启动时您应该会收到一个 Node.js 权限提示 — 这是 mcp-remote 启动的。允许它。
  3. 确保 Unreal 编辑器已打开,服务器正在运行。
  4. 在一个新会话中,向 Claude 询问 list_toolsets,或“我选择的角色有哪些?”如果工具集列表返回,则已连接。

故障排除 / 小问题

  • HttpListener unable to bind to 127.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 等 — 依赖于你启用的工具集插件。