Unity MCP Integration

Unity MCP Integration

一个服务器,使人工智能助手能够实时理解并与 Unity 项目交互,提供对场景层级结构、项目设置的访问,并能够直接在 Unity 编辑器中执行代码。

Category
访问服务器

README

🚀 高级 Unity MCP 集成

MCP smithery badge Unity Node.js TypeScript WebSockets

Stars Forks License

<div align="center"> <img src="mcpInspector.png" alt="Unity MCP Inspector" width="400" align="right" style="margin-left: 20px; margin-bottom: 20px;"/> </div>

此包提供了 模型上下文协议 (MCP) 和 Unity 编辑器之间的无缝集成,允许 AI 助手实时理解并与您的 Unity 项目交互。通过此集成,AI 助手可以访问有关您的场景层级结构、项目设置的信息,并直接在 Unity 编辑器上下文中执行代码。

📚 功能

  • 直接浏览和操作项目文件
  • 访问有关您的 Unity 项目的实时信息
  • 了解您的场景层级结构和游戏对象
  • 直接在 Unity 编辑器中执行 C# 代码
  • 监控日志和错误
  • 控制编辑器的播放模式
  • 等待代码执行

🚀 开始使用

前提条件

  • Unity 2021.3 或更高版本
  • Node.js 18+(用于运行 MCP 服务器)

安装

1. 安装 Unity 包

您有几个选项来安装 Unity 包:

选项 A:包管理器(Git URL)

  1. 打开 Unity 包管理器 (Window > Package Manager)
  2. 单击 + 按钮并选择 Add package from git URL...
  3. 输入存储库 URL:https://github.com/quazaai/UnityMCPIntegration.git
  4. 单击 Add

选项 B:导入自定义包

  1. 克隆此存储库或将其下载为 unityPackage
  2. 在 Unity 中,转到 Assets > Import Package > Custom Package
  3. 选择 UnityMCPIntegration.unitypackage 文件

2. 设置 MCP 服务器

您有两个选项来运行 MCP 服务器:

选项 A:直接运行服务器

  1. 导航到 mcpServer (可能 <path-to-project>\Library\PackageCache\com.quaza.unitymcp@d2b8f1260bca\mcpServer\) 目录
  2. 安装依赖项:
    npm install
    
  3. 运行服务器:
    node build/index.js
    

选项 B:添加到 MCP Host 配置

将服务器添加到您的 MCP Host 配置,用于 Claude Desktop、自定义实现等

{
  "mcpServers": {
    "unity-mcp-server": {
      "command": "node",
      "args": [
        "path-to-project>\\Library\\PackageCache\\com.quaza.unitymcp@d2b8f1260bca\\mcpServer\\mcpServer\\build\\index.js"
      ],
      "env": {
        "MCP_WEBSOCKET_PORT": "5010"
      }
    }
  }
}

演示视频

YouTube

通过 Smithery 安装

要通过 Smithery 为 Claude Desktop 自动安装 Unity MCP Integration:

npx -y @smithery/cli install @quazaai/unitymcpintegration --client claude

🔧 用法

调试和监控

您可以在 Unity 中打开 MCP 调试窗口来监控连接并测试功能:

  1. 转到 Window > MCP Debug
  2. 使用调试窗口来:
    • 检查连接状态
    • 测试代码执行
    • 查看日志
    • 监控事件

可用工具

Unity MCP 集成为 AI 助手提供了几个工具:

Unity 编辑器工具
  • get_editor_state: 获取有关 Unity 项目和编辑器状态的全面信息
  • get_current_scene_info: 获取有关当前场景的详细信息
  • get_game_objects_info: 获取有关场景中特定游戏对象的信息
  • execute_editor_command: 直接在 Unity 编辑器中执行 C# 代码
  • get_logs: 检索和过滤 Unity 控制台日志
  • verify_connection: 检查是否与 Unity 编辑器建立了活动连接
文件系统工具
  • read_file: 读取 Unity 项目中文件的内容
  • read_multiple_files: 一次读取多个文件
  • write_file: 创建或覆盖具有新内容的文件
  • edit_file: 使用差异预览对现有文件进行有针对性的编辑
  • list_directory: 获取目录中文件和文件夹的列表
  • directory_tree: 获取目录和文件的分层视图
  • search_files: 查找与搜索模式匹配的文件
  • get_file_info: 获取有关特定文件或目录的元数据
  • find_assets_by_type: 查找特定类型的所有资源(例如,材质、预制件)
  • list_scripts: 获取项目中所有 C# 脚本的列表

文件路径可以是绝对路径,也可以是相对于 Unity 项目的 Assets 文件夹的相对路径。 例如,"Scenes/MyScene.unity" 指的是 <project>/Assets/Scenes/MyScene.unity

🛠️ 架构

该集成由两个主要组件组成:

  1. Unity 插件 (C#):驻留在 Unity 编辑器中,并提供对编辑器 API 的访问
  2. MCP 服务器 (TypeScript/Node.js):实现 MCP 协议并与 Unity 插件通信

它们之间的通信通过 WebSocket 进行,传输用于命令和数据的 JSON 消息。

文件系统访问

Unity MCP 集成现在包含强大的文件系统工具,允许 AI 助手:

  • 浏览、读取和编辑 Unity 项目中的文件
  • 创建新文件和目录
  • 搜索特定文件或资源类型
  • 分析您的项目结构
  • 使用差异预览进行有针对性的代码更改

所有文件操作都限制在 Unity 项目目录中以确保安全。 该系统智能地处理绝对路径和相对路径,始终将它们解析为相对于项目 Assets 文件夹的路径,以方便使用。

用法示例:

  • 获取目录列表:list_directory(path: "Scenes")
  • 读取脚本文件:read_file(path: "Scripts/Player.cs")
  • 编辑配置文件:edit_file(path: "Resources/config.json", edits: [{oldText: "value: 10", newText: "value: 20"}], dryRun: true)
  • 查找所有材质:find_assets_by_type(assetType: "Material")

👥 贡献

欢迎贡献! 这是您可以贡献的方式:

  1. Fork 存储库
  2. 创建一个功能分支 (git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 提交更改 (git commit -m 'Add some amazing feature')
  5. 将其推送到分支 (git push origin feature/amazing-feature)
  6. 打开一个 Pull Request

开发设置

Unity 端

  • 在 Unity 中打开项目
  • 修改 UnityMCPConnection/Editor 目录中的 C# 脚本

服务器端

  • 导航到 mcpServer 目录
  • 安装依赖项:npm install
  • src 目录中的 TypeScript 文件进行更改
  • 构建服务器:npm run build
  • 运行服务器:node build/index.js

📄 许可证

该项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。

📞 支持

如果您遇到任何问题或有疑问,请在 GitHub 存储库上提交 issue。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选