unreal-mcp
通过 Model Context Protocol 让 AI 编程助手直接操控 Unreal Eng
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
通过 Model Context Protocol 让 AI 编程助手直接操控 Unreal Eng
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:深夜你正在开发一款 Unreal Engine 开放世界游戏,需要快速在关卡中添加一个带物理材质的发光球体、调整主摄像机的曝光参数、创建一个新的 Blueprint 类并为其编写输入映射逻辑——往常这意味着反复在 UE5 编辑器的节点编辑器、World Outliner、Details Panel 之间来回切换,花费数分钟甚至更长时间。而现在,你只需要向 Claude(或者 Cursor、Windsurf)发送一条自然语言指令:
在当前场景中添加一个直径 2 米的发光球体,位置在 (500, 300, 100),使用物理材质,并创建对应的 Blueprint 类
这条指令会通过 unreal-mcp 项目实时传递给正在运行的 Unreal Engine 5.5 编辑器,所有操作在数秒内完成。这不是科幻,而是已经可用的现实。
Unreal Engine(UE)是全球最主流的 3A 级游戏引擎之一,广泛应用于游戏开发、影视制作、建筑可视化、工业仿真等领域。然而,UE5 的蓝图可视化编程系统和 C++ 代码框架虽然功能强大,日常工作流却高度依赖鼠标操作:创建 Actor、配置组件、编辑节点图、调整 Transform……每一个看似简单的操作都需要在多个面板之间反复切换。
随着 AI 编程助手(Cursor、Claude Desktop、Windsurf 等)的普及,开发者开始习惯用自然语言描述代码需求。问题在于:AI 助手能写代码,但它无法直接操作正在运行的引擎。 大多数 AI 编程工具只能生成代码片段,开发者仍需手动复制粘贴到 UE 中运行验证。
开发者 chongdashu 敏锐地捕捉到了这个 gap:如果能让 AI 助手直接操控 Unreal Engine,而不是只生成代码,那么整个工作流将被彻底重构。他选择将 Model Context Protocol(MCP)—— Anthropic 提出的 AI 工具调用标准——引入到游戏引擎领域,诞生了 unreal-mcp 项目。
unreal-mcp 的架构设计非常清晰,采用双层通信机制:
第一层:C++ 原生插件(UnrealMCP)
插件位于 MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/,实现了 Unreal Engine 原生的 TCP 服务器监听模块(MCPServerRunnable)和编辑器子系统桥接层(UnrealMCPBridge)。C++ 插件运行在 UE5 编辑器进程内部,直接与 UE 的 UActor、UBlueprint、UBlueprintGeneratedClass 等核心对象模型交互,执行真正的引擎操作。这是整个系统的执行器——所有指令最终都在这里落地。
第二层:Python MCP 服务器(unreal_mcp_server.py)
Python 端基于 FastMCP 框架实现,通过 TCP socket(端口 55557)与 C++ 插件通信。Python 服务器负责 MCP 协议的消息序列化、工具注册和 HTTP 风格的接口暴露。开发者通过 uv run unreal_mcp_server.py 启动该服务器后,AI 编程助手即可通过 MCP 协议调用全部工具。
这种设计有以下优势:
@mcp.tool() 装饰器,无需改动 C++ 插件根据项目文档和源码分析,unreal-mcp 提供了以下 MCP 工具(按功能模块分类):
| 工具 | 功能 |
|---|---|
| create_actor | 在当前关卡中创建 Actor(支持多种预设类型:Cube、Sphere、PointLight、Camera 等) |
| delete_actor | 删除指定 Actor |
| set_actor_transform | 设置 Actor 的位置(Position)、旋转(Rotation)、缩放(Scale) |
| get_actor_properties | 查询 Actor 的属性值 |
| find_actors_by_name | 按名称模糊查找关卡中的 Actor |
| list_actors | 列出当前关卡中的所有 Actor |
| 工具 | 功能 |
|---|---|
| create_blueprint_class | 创建新的 Blueprint 类并添加指定组件 |
| add_component_to_blueprint | 向 Blueprint 添加组件(Mesh、Camera、Light 等) |
| set_component_property | 设置组件属性值 |
| compile_blueprint | 编译 Blueprint,触发节点图验证 |
| spawn_blueprint_actor | 在关卡中生成 Blueprint 实例 |
| create_input_mapping | 创建 Input Mapping Context 并绑定按键 |
| 工具 | 功能 |
|---|---|
| add_event_node | 向节点图添加事件节点(BeginPlay、Tick、ActorBeginOverlap 等) |
| add_function_call_node | 创建函数调用节点 |
| add_variable | 创建变量节点并设置默认值 |
| create_component_reference / self_reference | 创建组件引用和 self 引用节点 |
| find_nodes | 按类型或名称查找节点 |
| 工具 | 功能 |
|---|---|
| focus_viewport | 将编辑器视口聚焦到指定 Actor 或位置 |
| set_viewport_camera | 控制视口相机方向和距离 |
这套工具覆盖了 UE 日常开发中最频繁的操作:从创建基础场景对象,到构建复杂的 Blueprint 逻辑,再到编辑器视口操控,全部可通过自然语言驱动。
安装过程分三步:
uv 包管理器,uv pip install -e . 即可完成依赖安装和服务器配置mcp.json 中的配置复制到 Claude Desktop、Cursor 或 Windsurf 的 MCP 配置文件中,并将路径替换为实际仓库路径启动流程要求 Unreal Engine 5.5+ 编辑器先启动并加载示例项目(MCPGameProject),然后再运行 Python MCP 服务器。Python 服务器通过 TCP 连接到编辑器内的 C++ 插件,建立双向通信通道。
对于完全没有 UE 开发经验的 AI 工程师来说,最大的门槛是对 Unreal Engine 基本概念的理解——Actor、Component、Blueprint、Transform 这些术语对游戏开发者是常识,但对纯软件工程师可能需要一定的学习成本。不过,一旦理解了 UE 的对象模型,工具的逻辑就非常直观。
| 维度 | 评估 |
|---|---|
| 主语言 | C++(插件核心)+ Python 3.10+(MCP 服务器) |
| AI 协议 | Model Context Protocol(MCP)+ FastMCP 框架 |
| UE 版本 | Unreal Engine 5.5+ |
| 通信方式 | TCP Socket(55557 端口)+ JSON 序列化 |
| Python 依赖 | mcp[cli]>=1.4.1, fastmcp>=0.2.0, fastapi, pydantic, uvicorn |
| 代码规模 | C++ 插件约 6 个核心文件 + Python 端约 5 个工具模块 |
| 代码风格 | 使用 @mcp.tool() 装饰器定义工具,风格现代,注释清晰 |
| 文档质量 | README 结构完整,包含详细的工具列表和使用说明 |
| 许可 | MIT |
项目目前处于 Experimental(实验性) 状态,作者明确警告:API、功能和实现细节可能随时发生破坏性变更,文档可能不完整,不建议用于生产环境。但从代码结构和已有功能来看,核心架构已经相当成熟。
首先,项目依赖本地安装的 Unreal Engine 5.5+。UE5 本身是一款体积庞大的商业软件(完整安装超过 100GB),这使得 unreal-mcp 无法在云端或 Docker 容器中运行,部署和使用都有较高的硬件门槛。
其次,当前版本仅支持英文指令。AI 助手发送给 MCP 服务器的仍然是英文自然语言,工具响应也未经本地化。中文开发者在使用时需要切换到英文描述模式。
第三,由于是实验性项目,工具覆盖还不完整——例如蓝图节点的连线(wire connection)、UMG(UI Widget)编辑等高级功能仍在建设中。复杂场景下的操作稳定性也有待大规模验证。
第四,TCP 通信依赖固定的端口 55557,如果该端口被占用或防火墙阻断,连接会失败。项目目前没有提供优雅的端口自动选择或错误恢复机制。
unreal-mcp 的出现,代表了 AI 编程助手从「生成代码」到「执行操作」的关键跃迁。在传统的 AI 辅助编程中,AI 扮演的是高级代码补全器角色——它输出代码片段,开发者负责复制、粘贴、运行、调试。这是一个手动循环,是 AI 能力的巨大浪费。
unreal-mcp 通过将 MCP 协议引入游戏引擎,让 AI 获得了对运行中程序的控制权。AI 不再只是建议者,而成为了真正的执行者。这种模式的影响远不止于 Unreal Engine——任何拥有可编程 API 的运行时(DAW 音乐软件、CAD 软件、工业仿真引擎)都可以通过类似的 MCP 集成获得 AI 控制能力。
从更宏观的视角看,Anthropic 的 MCP 协议正在构建一个 AI 工具生态:模型厂商负责协议标准,应用开发者负责实现工具接口,AI 助手负责调用——三方解耦、快速迭代。unreal-mcp 正是这场生态建设中,游戏开发领域的一个重要节点。
目前该项目 stars 接近 2000,且持续更新中(最近更新:2026-06-11),值得持续关注其功能完善进度。