YetAnotherUnityMcp
又一个Unity Mcp客户端/服务器
注意: 这是一个演示项目,用于测试 Claude 生成代码的能力,不建议用于生产环境。
概述
YetAnotherUnityMcp 是一个通过模型上下文协议(MCP)连接 Unity 与 AI 工具的系统,由两部分组成:
- Unity 插件(MCP TCP 服务器)
- Python MCP 客户端(基于 FastMCP)
主要功能
- 从 AI 代理直接在 Unity 中执行 C# 代码
- 查询 Unity 场景状态、对象层次结构
- 捕获截图和编辑器日志
- 修改 GameObject 属性
- 使用容器方式组织 MCP 资源和工具
安装设置
Unity 服务器设置
-
在 Unity 项目(2020.3+)中导入插件:
# 方法1: 复制文件夹到 Assets 目录 # 方法2: 导入 Unity 包 # 方法3: 创建符号链接 New-Item -ItemType SymbolicLink -Target "D:Dev\YetAnotherUnityMcp\plugin" -Path "C:\Users\username\My project\Assets\Plugins\YetAnotherUnityMcp"
-
启动 TCP 服务器:
- 菜单:
MCP > TCP Server > Start Server
- 或:
Window > MCP Server > Start Server
- 菜单:
Python 客户端设置
# 克隆仓库
git clone https://github.com/yourusername/YetAnotherUnityMcp.git
cd YetAnotherUnityMcp
# 创建并激活虚拟环境
uv venv -p 3.11
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 安装带开发依赖的服务器
uv pip install -e ".[dev]"
# 运行 MCP 客户端
python -m server.mcp_server
MCP 集成
# 安装 FastMCP
uv pip install fastmcp
# 使用 MCP 检查器运行客户端进行调试
fastmcp dev server/mcp_server.py
# 在 Claude 中安装
fastmcp install server/mcp_server.py --name "Unity Controller"
使用方式
可用工具
execute_code_in_unity
- 在 Unity 中执行 C# 代码unity_screenshot
- 截取 Unity 编辑器截图unity_modify_object
- 修改 GameObject 属性unity_logs
- 获取 Unity 日志
可用资源
unity://info
- Unity 环境基本信息unity://logs
- 编辑器日志unity://scene/{scene_name}
- 特定场景信息unity://object/{object_id}
- GameObject 详细信息
架构要点
- Unity 服务器和 Python 客户端通过 TCP 套接字通信
- 使用帧协议传输 JSON 消息和图像数据
- 动态工具注册和资源查询
- 基于容器的工具和资源组织
更多详细信息请参考完整文档。