realvirtual Unity MCP包
让AI代理完全控制你的Unity编辑器——场景、游戏对象、组件、模拟、数字双胞胎等等。
这个开源Unity包实现了 模型上下文协议(MCP) 该服务器允许Claude、Cursor或任何兼容MCP的客户端等AI代理与Unity实时交互。专为 任何Unity项目 -包括工业数字孪生、机器人仿真和虚拟调试。
为什么此MCP服务器不同
Unity的大多数MCP服务器都要求您 编辑Python代码 每次添加新工具时。这个没有。你完全用C#定义工具,并使用一个简单的属性——Python服务器会自动发现它们:
[McpTool("Spawn an enemy at position")]
public static string SpawnEnemy(
[McpParam("Prefab name")] string prefab,
[McpParam("X position")] float x,
[McpParam("Z position")] float z)
{
// Your Unity code here - runs on main thread
}就是这样。没有Python更改,没有服务器重启,没有工具注册。只需在Unity中重新编译,AI代理就会看到你的新工具。
主要优势:
- 适用于任何Unity项目 -不依赖于特定的框架或资产。在任何项目中安装它,并开始添加AI可控工具
- 无需Python知识 -用C#定义工具,这是你已经在使用的语言
- 自动发现 -通过反射找到工具,无需手动注册
- 60+内置工具 -场景、游戏对象、组件、变换、模拟、屏幕截图、预制件等
- 可在几分钟内扩展 -添加
[McpTool]任何静态方法,AI代理都可以使用 - 自足 -附带嵌入式Python 3.12,无需系统Python
- 一键安装 -从Unity工具栏下载Python+配置Claude
- 域重新加载后仍然有效 -Unity重新编译脚本后自动重新连接
- 多实例支持 -运行多个Unity实例,每个实例都有自己的MCP服务器
带有realvirtual的数字孪生工具
- 驱动器 -控制电机、执行器、输送机:
drive_to,drive_jog_forward,drive_stop,drive_set_speed - 传感器 -读取工业传感器:
sensor_list,sensor_get,sensor_get_occupied - PLC信号 -读/写PLC I/O:
signal_set_bool,signal_set_int,signal_set_float - 机器人IK -反向运动学控制:
ik_get_state,ik_solve_target,ik_verify_fk
这使得AI代理能够操作完整的虚拟工厂模拟——移动机器人、控制输送机、读取传感器,并与PLC程序实时交互。
AI Agent (Claude Desktop / Claude Code / Cursor)
|
| MCP Protocol (stdio or SSE)
v
Python MCP Server --> github.com/game4automation/realvirtual-MCP
|
| WebSocket (JSON, Port 18711)
v
This Unity Package (C# WebSocket server + tool registry)安装
通过Unity包管理器(Git URL)
- 开放团结 窗口>包管理器
- 点击 +>从git URL添加包
- 输入:
https://github.com/game4automation/io.realvirtual.mcp.git
更新中
Unity通过提交哈希缓存git包。要获取最新版本:
- 打开 窗口>包管理器
- 选择 realvirtual MCP服务器
- 点击 更新 (如果可用)
如果没有出现更新按钮,请删除的锁定条目 io.realvirtual.mcp 从 Packages/packages-lock.json 并重新开放Unity。
需求
- Unity 6000.0+
- Newtonsoft JSON(
com.unity.nuget.newtonsoft-json) - 版本控制系统 必须安装并在PATH中可用(用于Python服务器下载/更新)-- git-scm.com
设置
自动设置(推荐)
安装Unity软件包后:
- A. 大脑图标 出现在Unity工具栏中-这是MCP状态指示器
- 点击 齿轮图标 在它旁边打开安装弹出窗口
- 点击 克隆Python服务器 -这运行
git clone将Python服务器(约70 MB)下载到Assets/StreamingAssets/realvirtual-MCP/ - 点击 配置Claude -这会将MCP配置写入克劳德桌面和/或克劳德代码
要稍后更新,请单击 更新Python服务器(git pull) 在同一个弹出窗口中。
您还可以通过Unity菜单访问设置: 工具>realvirtual>MCP
手动设置
如果您更喜欢手动设置或自动设置不起作用:
- 克隆Python服务器存储库:
cd /Assets/StreamingAssets
git clone https://github.com/game4automation/realvirtual-MCP.git- 稍后更新:
cd /Assets/StreamingAssets/realvirtual-MCP
git pull- 手动配置MCP客户端(请参阅 Python MCP服务器 有关配置详细信息)
Python MCP服务器可单独在 ****.
运作原理
此程序包运行 WebSocket服务器 在Unity编辑器中。当AI代理发送工具调用时,Python MCP服务器通过WebSocket将其转发给Unity,Unity在主线程上执行并返回结果。
关键部件:
- McpWebSocketHandler -WebSocket服务器(端口18711,繁忙时自动递增)
- McpToolRegistry -发现全部
[McpTool]启动时通过反思的方法 - McpMainThreadDispatcher -将WebSocket线程连接到Unity的主线程
- McpEditor桥 -Unity打开时自动启动服务器(
[InitializeOnLoad]) - McpToolbar按钮 -带有颜色编码连接状态的状态指示器
内置工具
该软件包包括60多种按类别组织的工具:
| 类别 | 示例 |
|---|---|
| 模拟 | sim_play, sim_stop, sim_pause, sim_status |
| 场景 | scene_hierarchy, scene_find, scene_get_info |
| 游戏对象 | game_object_create, game_object_destroy, game_object_rename |
| 组件 | component_get, component_set, component_add, component_remove |
| 变换 | transform_set_position, transform_set_rotation, transform_set_scale |
| 材料 | material_set_color, material_get_color |
| 物理学 | physics_add_rigidbody, physics_add_collider |
| 预制件 | prefab_instantiate, prefab_find, prefab_open, prefab_save |
| 编辑 | editor_recompile, editor_read_log, editor_save_scene, editor_wait_ready |
| 截图 | screenshot_editor, screenshot_game, screenshot_scene |
当与 realvirtual 框架,其他工具可用:
| 类别 | 示例 |
|---|---|
| 驱动器 | drive_list, drive_to, drive_jog_forward, drive_stop |
| 传感器 | sensor_list, sensor_get, sensor_get_occupied |
| 信号 | signal_list, signal_set_bool, signal_set_int, signal_set_float |
| 我 | ik_get_state, ik_solve_target, ik_verify_fk |
创建自定义工具
添加 [McpTool] 对于任何 public static string 方法。工具通过反射自动发现,无需注册。
using realvirtual.MCP;
public static class MyTools
{
[McpTool("Get current time")]
public static string GetTime()
{
return $"{{\"time\":\"{System.DateTime.Now}\"}}";
}
[McpTool("Add two numbers")]
public static string Add(
[McpParam("First number")] float a,
[McpParam("Second number")] float b)
{
return $"{{\"result\":{a + b}}}";
}
}规则:
- 方法必须是
public static并返回string(JSON) - 工具名称自动从PascalCase转换为snake_case(
GetTime->get_time) - 使用
[McpParam("description")]人工智能代理上下文参数研究 - 可选参数需要默认值
- 使用
ToolHelpers.FindGameObject(),ToolHelpers.Ok(),ToolHelpers.Error()常见模式
工具栏状态
工具栏大脑图标显示连接状态:
| 颜色 | 含义 |
|---|---|
| 灰色 | 服务器已停止 |
| 黄色 | 服务器正在运行,未连接客户端 |
| 绿色 | 客户端已连接 |
| Orange | Unity编译脚本 |
它旁边的活动标签显示了当前正在执行的工具以及经过的时间。
故障排除
服务器未启动
- 检查Unity控制台
[MCP]日志条目 - 通过齿轮弹出窗口切换调试模式以进行详细记录
未发现工具
- 确保方法
public static string随着[McpTool]属性 - 检查Unity控制台中的编译错误
- 点击工具栏弹出窗口中的“刷新”
播放模式期间超时
- Unity在播放模式下限制编辑器更新-工具调用可能较慢
- 一些操作(
component_set)在游戏模式下不工作
Python MCP服务器
将MCP客户端连接到此Unity包的Python服务器是单独维护的:
****
它附带了嵌入式Python 3.12运行时,可以直接从Unity工具栏弹出窗口下载。
支持
此套餐已提供 按原样 不包括任何支持或服务。
对于商业客户 realvirtual,我们提供专业服务 数字孪生发展, 虚拟调试,以及 LLM/AI代理集成.联系我们https://realvirtual.io了解详情。
许可证
麻省理工学院许可证 - 版权所有 (c) 2026 realvirtual GmbH
看 许可证.md 全文。
链接
- 网站:https://realvirtual.io
- 文档:https://doc.realvirtual.io/extensions/mcp-server
- Python MCP服务器:https://github.com/game4automation/realvirtual-MCP
- Unity资产存储(MCP服务器):https://assetstore.unity.com/preview/361912/1260684
- Unity资产商店(初学者):https://assetstore.unity.com/packages/tools/integration/realvirtual-io-digital-twin-starter-6-303030
- Unity资产商店(专业版):https://assetstore.unity.com/packages/tools/integration/realvirtual-io-digital-twin-professional-6-301340
