Token导航 LogoToken导航TokenDH.com
Unreal Remote Control MCP logo
运维云端未说明官方级别未说明来源级核验

Unreal Remote Control MCP

MCP Server

一个模型上下文协议(MCP)服务器,使Claude和其他MCP客户端能够通过远程控制API与Unreal Engine 5.6+进行交互。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
游戏开发RustClaude远程控制Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

5pMika

提供方

5pMika

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

虚幻引擎远程控制MCP服务器

模型上下文协议(MCP)服务器,使Claude和其他MCP客户端能够通过远程控制API与虚幻引擎5.6+进行交互。

特性

此MCP服务器提供以下用于控制虚幻引擎的工具:

  • 获取信息 -获取有关所有可用远程控制API路由的信息
  • 调用函数 -在UObjects(Actor、Assets等)上调用蓝图可调用函数
  • get_财产 -从UObjects读取属性值
  • set_属性 -将属性值写入UObjects
  • 搜索资产 -在项目的资产注册表中搜索资产
  • describe_object -获取有关UObjects的详细元数据,包括属性和函数
  • 批处理请求 -在单个批处理中执行多个API请求以获得更好的性能

需求

  • Windows 11 25H2 (或兼容的Windows版本)
  • Rust 1.91.0或更高版本
  • 虚幻引擎5.6+ 启用远程控制插件

虚幻引擎设置

1.启用远程控制插件

  1. 打开虚幻引擎项目
  2. 首选 Edit → 插件
  3. 搜索“远程控制”
  4. 启用 Web远程控制 插件
  5. 重新启动虚幻引擎

2.配置远程控制设置

  1. 首选 Edit → 项目设置
  2. 导航至 插件→ Web远程控制
  3. 配置以下内容:

- 远程控制HTTP服务器端口:默认值为 30010 (可以更改) - 启用HTTP服务器:确保已检查此项 - 启用实验路线:如果要使用事件订阅功能,请选中此项

3.启动远程控制服务器

当您打开启用了插件的虚幻编辑器时,远程控制HTTP服务器会自动启动。您可以通过检查输出日志中的以下消息来验证它是否正在运行:

LogRemoteControl: Remote Control API server is listening on port 30010

安装

从源头构建

  1. 克隆此存储库:
git clone https://github.com/yourusername/unreal-remote-control-mcp.git
cd unreal-remote-control-mcp
  1. 构建项目:
cargo build --release
  1. 编译后的二进制文件将位于:
target/release/unreal-remote-control-mcp.exe

配置

环境变量

  • UNREAL_API_URL -虚幻远程控制API的基本URL(默认值: http://127.0.0.1:30010)
  • RUST_LOG -日志记录级别(默认值: info,选项: trace, debug, info, warn, error)

Claude桌面配置

将以下内容添加到您的Claude Desktop配置文件中:

视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "unreal-remote-control": {
      "command": "C:\\path\\to\\unreal-remote-control-mcp.exe",
      "env": {
        "UNREAL_API_URL": "http://127.0.0.1:30010"
      }
    }
  }
}

用法示例

配置后,您可以通过Claude与虚幻引擎进行交互。以下是一些示例提示:

获取可用的API路线

Show me all available Unreal Engine Remote Control API routes

搜索资产

Search for all StaticMesh assets in my project

调用函数

Move the actor at path /Game/Maps/MyMap.MyMap:PersistentLevel.MyActor to position X=100, Y=200, Z=300

读取属性

Get all properties of the actor at /Game/Maps/MyMap.MyMap:PersistentLevel.MyActor

设置属性

Set the bHidden property to true for actor at /Game/Maps/MyMap.MyMap:PersistentLevel.MyActor

描述一个对象

Describe the object at /Game/Maps/MyMap.MyMap:PersistentLevel.MyActor and show me its functions

查找UObject路径

UObject路径对于与虚幻引擎对象交互至关重要。以下是找到它们的几种方法:

方法1:使用撤消历史记录

  1. 打开 撤消历史记录 虚幻编辑器中的面板
  2. 单击过滤器图标并启用 显示交易详细信息
  3. 对要控制的对象进行一个小更改
  4. 将鼠标悬停在条目上 修改对象和属性
  5. 工具提示将显示完整的对象路径

方法2:使用编辑器脚本工具

您可以使用MCP服务器本身查询对象路径:

  1. 获取当前级别的所有参与者:
Call the GetAllLevelActors function on /Script/EditorScriptingUtilities.Default__EditorLevelLibrary
  1. 获取所有加载的资产:
Search for assets with an empty query to return all assets

方法3:常见路径模式

对象路径通常遵循以下格式:

/Game/Path/To/Asset.AssetName:SubObject.Component

示例:

  • 演员级别: /Game/Maps/MyMap.MyMap:PersistentLevel.MyActor
  • 演员组件: /Game/Maps/MyMap.MyMap:PersistentLevel.MyActor.StaticMeshComponent0
  • 资产: /Game/Materials/MyMaterial.MyMaterial

工具参考

获取信息

获取有关所有可用远程控制API路由的信息。

参数:

例子:

{
  "name": "get_info",
  "arguments": {}
}

调用函数

调用UObject上的函数。

参数:

  • objectPath (字符串,必填)-UObject的完整路径
  • functionName (string,必填)-要调用的函数的名称
  • parameters (对象,可选)-函数参数作为键值对
  • generateTransaction (布尔值,可选)-在撤消历史记录中记录(默认值:false)

例子:

{
  "name": "call_function",
  "arguments": {
    "objectPath": "/Game/Maps/MyMap.MyMap:PersistentLevel.MyActor",
    "functionName": "SetActorLocation",
    "parameters": {
      "NewLocation": {"X": 100, "Y": 200, "Z": 300},
      "bSweep": false
    },
    "generateTransaction": true
  }
}

get_财产

从UObject读取属性值。

参数:

  • objectPath (字符串,必填)-UObject的完整路径
  • propertyName (字符串,可选)-特定属性名称(省略以获取所有属性)

例子:

{
  "name": "get_property",
  "arguments": {
    "objectPath": "/Game/Maps/MyMap.MyMap:PersistentLevel.MyActor",
    "propertyName": "bHidden"
  }
}

set_属性

将属性值写入UObject。

参数:

  • objectPath (字符串,必填)-UObject的完整路径
  • propertyName (字符串,必填)-要设置的属性名称
  • propertyValue (object,必填)-具有属性名称和新值的对象
  • generateTransaction (布尔值,可选)-在撤消历史记录中记录(默认值:false)

例子:

{
  "name": "set_property",
  "arguments": {
    "objectPath": "/Game/Maps/MyMap.MyMap:PersistentLevel.MyActor",
    "propertyName": "bHidden",
    "propertyValue": {
      "bHidden": true
    },
    "generateTransaction": true
  }
}

搜索资产

在资产注册表中搜索资产。

参数:

  • query (string,必填)-搜索查询(空字符串返回全部)
  • packageNames (数组,可选)-按确切的包名筛选
  • classNames (数组,可选)-按类名筛选
  • packagePaths (数组,可选)-按包路径筛选
  • recursivePaths (布尔值,可选)-搜索子文件夹
  • recursiveClasses (布尔值,可选)-包括子类

例子:

{
  "name": "search_assets",
  "arguments": {
    "query": "Cube",
    "classNames": ["StaticMesh"],
    "recursiveClasses": true
  }
}

describe_object

获取有关UObject的详细元数据。

参数:

  • objectPath (字符串,必填)-UObject的完整路径

例子:

{
  "name": "describe_object",
  "arguments": {
    "objectPath": "/Game/Maps/MyMap.MyMap:PersistentLevel.MyActor"
  }
}

批处理请求

在单个批处理中执行多个请求。

参数:

  • requests (array,必填)-请求对象数组,每个对象具有:

- requestId (整数,必填)-匹配响应的唯一ID - url (字符串,必需)-API端点(例如,“/remote/object/property”) - verb (字符串,必填)-HTTP方法(PUT、GET、POST、DELETE) - body (对象,可选)-请求正文

例子:

{
  "name": "batch_request",
  "arguments": {
    "requests": [
      {
        "requestId": 1,
        "url": "/remote/object/property",
        "verb": "PUT",
        "body": {
          "objectPath": "/Game/Maps/MyMap.MyMap:PersistentLevel.Actor1",
          "access": "READ_ACCESS"
        }
      },
      {
        "requestId": 2,
        "url": "/remote/object/property",
        "verb": "PUT",
        "body": {
          "objectPath": "/Game/Maps/MyMap.MyMap:PersistentLevel.Actor2",
          "access": "READ_ACCESS"
        }
      }
    ]
  }
}

故障排除

连接问题

问题:“向虚幻引擎发送请求失败”

解决方案:

  1. 验证虚幻引擎是否正在运行
  2. 检查是否启用了远程控制插件
  3. 验证配置中的端口是否与虚幻的设置匹配
  4. 检查Windows防火墙是否阻止连接
  5. 在虚幻输出日志中查找远程控制消息

对象路径问题

问题:“找不到对象”或“对象路径无效”

解决方案:

  1. 使用“撤消历史记录”方法查找正确的路径
  2. 确保对象当前已加载到内存中
  3. 对于演员,确保他们处于当前加载的级别
  4. 对于资源,确保它们已加载(而不仅仅是在内容浏览器中)

权限问题

问题:“属性为只读”或“无法调用函数”

解决方案:

  1. 检查该物业是否 EditAnywhere C中的说明符++
  2. 确保该功能标记为 BlueprintCallable
  3. 对于受保护/私有成员,您无法通过远程控制访问它们
  4. 某些属性需要 BlueprintGetter/BlueprintSetter 函数

发展

项目结构

unreal-remote-control-mcp/
├── src/
│   ├── main.rs           # MCP server and request handling
│   ├── types.rs          # Type definitions for MCP and Unreal API
│   └── unreal_client.rs  # HTTP client for Unreal Remote Control API
├── Cargo.toml            # Rust dependencies and project config
└── README.md             # This file

在调试模式下运行

对于开发,您可以使用详细日志记录运行:

RUST_LOG=debug cargo run

运行测试

cargo test

贡献

欢迎投稿!请随时提交拉取请求。

许可证

MIT许可证-有关详细信息,请参阅许可证文件

资源

目录标签

目录标签

游戏开发RustClaude远程控制虚幻引擎本地部署MCP服务器API交互

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP