Unity-MCP
Unity-MCP 是一款专为 Unity 引擎打造的 AI 开发辅助工具,旨在打通从代码编写到测试验证的完整智能开发闭环。它基于模型上下文协议(MCP)构建,让开发者能够轻松地将任意 C# 方法转化为 AI 可调用的工具,只需一行代码即可实现。
对于 Unity 开发者而言,手动编写重复性脚本或调试复杂逻辑往往耗时费力。Unity-MCP 通过提供高效的令牌(Token)使用策略和强大的命令行接口(CLI),显著降低了 AI 介入游戏开发的门槛。它不仅支持快速环境搭建,还能让 Claude Code、Gemini、GitHub Copilot、Cursor 等主流 AI 编程助手直接“理解”并操作 Unity 项目,从而自动化完成场景构建、逻辑实现及测试任务。
这款工具特别适合 Unity 游戏开发者、技术美术以及希望提升编码效率的独立创作者。其核心亮点在于极高的兼容性与灵活性:既支持在 Unity 编辑器中运行,也适用于运行时环境;同时完全免费且开放,无缝对接各类大模型客户端。无论是资深程序员还是正在学习游戏开发的新手,都能借助 Unity-MCP 让 AI 成为得力的结对编程伙伴,专注于创意实现而非繁琐的代码细节。
使用场景
独立游戏开发者阿明正在为一款 3D 平台跳跃游戏快速迭代核心机制,需要频繁调整角色移动逻辑并验证物理效果。
没有 Unity-MCP 时
- 上下文割裂严重:AI 助手无法直接读取 Unity 项目中的场景层级、Prefab 配置或 Inspector 属性,只能基于模糊描述生成通用代码,导致大量“幻觉”错误。
- 手动测试循环冗长:每次修改代码后,必须切回 Unity 编辑器手动编译、运行游戏、操控角色测试,再返回 IDE 记录问题,单次验证耗时数分钟。
- 工具集成门槛高:若想将自定义的 C# 调试方法(如“打印当前帧率”或“重置玩家位置”)暴露给 AI,需编写复杂的桥接代码或插件,开发成本高。
- Token 消耗巨大:为了让 AI 理解项目结构,不得不反复粘贴大量脚本文件和配置文件内容,迅速耗尽对话窗口的上下文限额。
使用 Unity-MCP 后
- 实时感知项目状态:Unity-MCP 让 Claude Code 或 Cursor 直接“看见”当前场景中的 GameObject 和组件数据,生成的代码能精准匹配现有的变量名与架构。
- 一键执行与验证:通过 CLI 指令,AI 可直接调用 Unity 内部方法(如
Player.ResetPosition()),在编辑器中即时运行测试并返回结果,将验证周期缩短至秒级。 - 零代码暴露工具:只需在任意 C# 方法上添加一行特性标记,即可将其转化为 AI 可调用的工具,瞬间扩展了 AI 对引擎的控制能力。
- 高效令牌利用:AI 按需查询引擎状态而非读取全量文件,大幅减少 Token 占用,使长对话中能处理更复杂的逻辑重构任务。
Unity-MCP 彻底打通了 AI 模型与 Unity 引擎间的壁垒,将原本割裂的“编码 - 测试”流程转变为流畅的自然语言交互闭环。
运行环境要求
- Windows
- macOS
- Linux
未说明
未说明 (取决于 Unity 编辑器及运行项目的系统要求)

快速开始
Unity MCP 是一款基于 AI 的游戏开发助手,适用于编辑器和运行时。通过 MCP 将 Claude、Cursor 和 Windsurf 连接到 Unity。自动化工作流、生成代码,并在您的游戏中启用 AI 功能。
与其他工具不同,此插件可在已编译的游戏内部运行,从而实现实时的 AI 调试以及玩家与 AI 的互动。
💬 加入我们的 Discord 服务器 - 提问、展示作品并与开发者交流!
- ✔️ AI 代理 - 使用来自 Anthropic、OpenAI、Microsoft 或其他任何提供商的最佳代理,无供应商锁定
- ✔️ 工具 - 丰富的默认 MCP 工具,用于在 Unity 编辑器中操作
- ✔️ 技能 - 根据操作系统、Unity 版本以及项目中的插件,为 AI 生成相应的技能
- ✔️ 代码与测试 - 利用 AI 代理开发游戏机制并进行测试
- ✔️ 运行时(游戏内) - 直接在已编译的游戏内部使用 LLM,实现动态 NPC 行为或调试
- ✔️ 调试支持 - 让 AI 调试并修复项目中的问题
- ✔️ 自然对话 - 像与人类交谈一样与 AI 对话
- ✔️ 灵活部署 - 可通过配置在本地(stdio)和远程(http)运行
- ✔️ 可扩展性 - 在项目代码中创建自定义工具
https://github.com/user-attachments/assets/228baf4d-4f00-4dce-939d-fb985ebdd8dd
或者使用命令行
# 1. 安装 unity-mcp-cli
npm install -g unity-mcp-cli
# 2. 在 Unity 项目中安装“AI 游戏开发者”
unity-mcp-cli install-plugin ./MyUnityProject
# 3. 登录云服务器
unity-mcp-cli login ./MyUnityProject
# 4. 打开 Unity 项目(自动连接并生成技能)
unity-mcp-cli open ./MyUnityProject

快速入门
只需三步即可快速上手:
- 安装插件 — 下载
.unitypackage安装包,或运行openupm add com.ivanmurzak.unity.mcp替代方案:
npx unity-mcp-cli install-plugin ./MyUnityProject— 请参阅 CLI 文档 - 选择 AI 助手 — Claude Code、Claude Desktop、GitHub Copilot、Cursor 或其他任何助手
- 设置 AI 助手 — 在 Unity 中打开
Window/AI 游戏开发者,然后点击 自动生成技能(推荐)或 配置 MCP
替代方案:
npx unity-mcp-cli setup-skills claude-code ./MyUnityProject— 请参阅 CLI 文档
就是这样。只需让你的 AI 输入 "创建一个半径为 2 的圆圈,并在其中放置 3 个立方体",它就会立即完成!✨
技能与工具参考
该插件内置了三大类共 100 多种工具。每种工具都能为 AI 增添一项技能。所有工具在安装后即可立即使用,无需额外配置。完整的参考列表及详细说明,请参阅 docs/default-mcp-tools.md。
项目与资源
assets-copy- 复制指定路径下的资源,并将其存储到新路径assets-create-folder- 在指定父文件夹中创建新文件夹assets-delete- 从项目中删除指定路径下的资源assets-find- 使用搜索过滤字符串在资源数据库中搜索资源assets-find-built-in- 搜索 Unity 编辑器的内置资源assets-get-data- 从资源文件中获取数据,包括所有可序列化的字段和属性assets-material-create- 创建具有默认参数的新材质资源assets-modify- 修改项目中的资源文件assets-move- 在项目中移动指定路径下的资源(也可用于重命名)assets-prefab-close- 关闭当前打开的预制件assets-prefab-create- 从当前活动场景中的 GameObject 创建预制件assets-prefab-instantiate- 在当前活动场景中实例化预制件assets-prefab-open- 打开特定 GameObject 的预制件编辑模式assets-prefab-save- 在预制件编辑模式下保存预制件assets-refresh- 刷新 AssetDatabaseassets-shader-list-all- 列出项目资源和包中所有可用着色器package-add- 从 Unity Package Manager 注册表、Git URL 或本地路径安装包package-list- 列出 Unity 项目中已安装的所有包(UPM 包)package-remove- 从 Unity 项目中移除(卸载)某个包package-search- 在 Unity Package Manager 注册表和已安装的包中搜索包
场景与层级视图
gameobject-component-add- 向 GameObject 添加组件gameobject-component-destroy- 销毁目标 GameObject 上的一个或多个组件gameobject-component-get- 获取 GameObject 上特定组件的详细信息gameobject-component-list-all- 列出继承自 UnityEngine.Component 的 C# 类名gameobject-component-modify- 修改 GameObject 上的特定组件gameobject-create- 在打开的预制件或场景中创建新的 GameObjectgameobject-destroy- 销毁 GameObject 及其所有嵌套的 GameObject(递归操作)gameobject-duplicate- 在打开的预制件或场景中复制 GameObjectgameobject-find- 根据提供的信息查找特定 GameObjectgameobject-modify- 修改 GameObject 及其附加组件的字段和属性gameobject-set-parent- 将一组 GameObject 的父级设置为指定 GameObjectobject-get-data- 获取指定 Unity 对象的数据object-modify- 修改指定的 Unity 对象scene-create- 在项目资源中创建新场景scene-get-data- 获取指定场景中根 GameObject 的列表scene-list-opened- 返回 Unity 编辑器中当前打开的场景列表scene-open- 从项目资源文件中打开场景scene-save- 将打开的场景保存到资源文件中scene-set-active- 将指定的打开场景设置为活动场景scene-unload- 从 Unity 编辑器的已打开场景中卸载场景screenshot-camera- 从摄像机捕获截图并返回图像screenshot-game-view- 从 Unity 编辑器的游戏视图中捕获截图screenshot-scene-view- 从 Unity 编辑器的场景视图中捕获截图
脚本编写与编辑器
console-get-logs- 获取 Unity 编辑器日志,并提供筛选选项editor-application-get-state- 返回 Unity 编辑器应用程序状态信息(播放模式、暂停状态、编译状态)editor-application-set-state- 控制 Unity 编辑器的应用程序状态(启动/停止/暂停播放模式)editor-selection-get- 获取 Unity 编辑器中当前选中的信息editor-selection-set- 设置 Unity 编辑器中的当前选中内容reflection-method-call- 调用任意 C# 方法,传入参数并返回结果reflection-method-find- 使用 C# 反射技术在项目中查找方法(甚至包括私有方法)script-delete- 删除脚本文件script-execute- 使用 Roslyn 动态编译并执行 C# 代码script-read- 读取脚本文件的内容script-update-or-create- 使用提供的 C# 代码更新或创建脚本文件tests-run- 执行 Unity 测试(编辑模式/播放模式),并提供筛选和详细结果
安装更多技能与工具
当需要更多工具时,可以安装扩展;或者 创建您自己的工具。
| 扩展 | 描述 |
|---|---|
| AI 动画 | 一套用于 Unity 动画的附加工具 |
| AI 粒子系统 | 一套用于 Unity 粒子系统的附加工具 |
| AI ProBuilder | 一套用于 Unity ProBuilder 的附加工具 |
目录
更多文档
| 文档 | 描述 |
|---|---|
| 默认 MCP 工具 | 包含描述的全部内置工具的完整参考 |
| MCP 服务器设置 | 服务器配置、环境变量、远程托管 |
| Docker 部署 | 分步 Docker 部署指南 |
| 开发指南 | 架构、代码风格、CI/CD — 供贡献者参考 |
| Wiki | 入门、教程、API 参考、常见问题解答 |
| CLI 工具 | 通过命令行安装插件、配置并连接 |
安装
步骤1:安装Unity MCP 插件
⚠️ 要求(点击)
[!IMPORTANT] 项目路径不能包含空格
- ✅
C:/MyProjects/MyProject- ❌
C:/My Projects/MyProject- ❌
C:/My Projects/My Project- ❌
C:/MyProjects/My Project
选项1 - 安装程序
- ⬇️ 下载安装程序
- 📂 将安装程序导入 Unity 项目
- 您可以双击该文件——Unity 会自动打开它
- 或者:先打开 Unity 编辑器,然后点击
Assets/Import Package/Custom Package,再选择该文件
选项2 - CLI(推荐)
通过 unity-mcp-cli 安装插件——无需 Unity 编辑器:
# 1.1 安装 unity-mcp-cli # ┌────────────────────┐
npm install -g unity-mcp-cli # │ 可用的 AI 代理 │
# ├────────────────────┤
# 1.2(可选)安装 Unity # │ antigravity │
unity-mcp-cli install-unity # │ claude-code │
# │ claude-desktop │
# 1.3(可选)创建 Unity 项目 # │ cline │
unity-mcp-cli create-project ./MyUnityProject # │ codex │
# │ cursor │
# 2. 在 Unity 项目中安装“AI 游戏开发者” # │ gemini │
unity-mcp-cli install-plugin ./MyUnityProject # │ github-copilot-cli │
# │ kilo-code │
# 3. 登录云端服务器 # │ open-code │
unity-mcp-cli login ./MyUnityProject # │ rider-junie │
# │ unity-ai │
# 4. 打开 Unity 项目(自动连接并生成技能) │ vs-copilot │
unity-mcp-cli open ./MyUnityProject # │ vscode-copilot │
# └────────────────────┘
# 5. 等待 Unity 编辑器准备就绪
unity-mcp-cli wait-for-ready ./MyUnityProject
请参阅 完整的 CLI 文档,以了解所有可用的命令。
步骤2:安装AI代理
请选择您偏好的单一AI代理——您无需安装所有代理。这将是您与 LLM 交流的主要窗口。
- Claude Code (推荐)
- Claude Desktop
- GitHub Copilot in VS Code
- Antigravity
- Cursor
- Windsurf
- 任何其他支持的代理
AI 游戏开发者非常通用,因此您可以使用任何您喜欢的 AI 代理——它将像其他代理一样顺畅地工作。唯一重要的要求是,AI 代理必须支持技能或动态的 MCP 工具更新。
步骤3:配置AI代理
自动配置
- 打开 Unity 项目
- 打开
Window/AI 游戏开发者 - 选项1:点击
自动生成技能 (推荐) - 选项2:点击
配置模型上下文协议(MCP)

如果您的 MCP 客户端不在列表中,请使用窗口中显示的原始 JSON 将其注入到您的 MCP 客户端中。请阅读针对您特定 MCP 客户端的说明,了解如何操作。
手动配置
如果自动配置由于任何原因无法正常工作,请使用 AI Game Developer (Unity-MCP) 窗口中的 JSON 文件,手动配置任何 MCP 客户端。
命令行配置
创建 command
1. 根据您的环境选择合适的 <command>
| 平台 | <command> |
|---|---|
| Windows x64 | "<unityProjectPath>/Library/mcp-server/win-x64/unity-mcp-server.exe" port=<port> client-transport=stdio |
| Windows x86 | "<unityProjectPath>/Library/mcp-server/win-x86/unity-mcp-server.exe" port=<port> client-transport=stdio |
| Windows arm64 | "<unityProjectPath>/Library/mcp-server/win-arm64/unity-mcp-server.exe" port=<port> client-transport=stdio |
| MacOS Apple-Silicon | "<unityProjectPath>/Library/mcp-server/osx-arm64/unity-mcp-server" port=<port> client-transport=stdio |
| MacOS Apple-Intel | "<unityProjectPath>/Library/mcp-server/osx-x64/unity-mcp-server" port=<port> client-transport=stdio |
| Linux x64 | "<unityProjectPath>/Library/mcp-server/linux-x64/unity-mcp-server" port=<port> client-transport=stdio |
| Linux arm64 | "<unityProjectPath>/Library/mcp-server/linux-arm64/unity-mcp-server" port=<port> client-transport=stdio |
2. 将 <unityProjectPath> 替换为 Unity 项目的完整路径
3. 将 <port> 替换为 AI Game Developer 配置中的端口号
4. 使用命令行添加 MCP 服务器
Gemini CLI
gemini mcp add ai-game-developer <command>
将
<command>替换为上表中的内容
Claude Code CLI
claude mcp add ai-game-developer <command>
将
<command>替换为上表中的内容
GitHub Copilot CLI
copilot
/mcp add
服务器名称:ai-game-developer
服务器类型:local
命令:<command>
将
<command>替换为上表中的内容
AI 工作流示例
与您 AI 代理 中的 AI(LLM)进行交流。请它完成您想要的任何任务。您对任务或想法描述得越清晰,它就能越好地完成工作。
一些 AI 代理 允许您选择不同的 LLM 模型。请注意这一功能,因为某些模型的表现可能远优于其他模型。
示例提示:
解释我的场景层级结构
在顶部堆叠三个球体
创建金属金色材质,并将其应用到一个新的球形游戏对象上
如果使用带有 Copilot 的 VS Code,请确保已启用“代理”模式
LLM 的高级功能
Unity MCP 提供了先进的工具,使 LLM 能够更快、更有效地工作,避免错误并在出现错误时自我纠正。这一切都是为了高效地实现您的目标。
核心能力
- ✔️ 适用于代理的工具 - 只需 1–2 步即可找到所需内容
- ✔️ 即时编译 - 使用
Roslyn编译和执行 C# 代码,以加快迭代速度 - ✔️ 完全访问资源 - 对资源和 C# 脚本具有读写权限
- ✔️ 智能反馈 - 提供清晰的正面和负面反馈,以便正确理解问题
基于反思的功能
- ✔️ 对象引用 - 提供现有对象的引用,以便快速生成 C# 代码
- ✔️ 项目数据访问 - 以可读格式获取整个项目的数据
- ✔️ 精细修改 - 可以填充和修改项目中的任何数据
- ✔️ 方法发现 - 在整个代码库中查找任何方法,包括已编译的 DLL 文件
- ✔️ 方法执行 - 调用整个代码库中的任何方法
- ✔️ 高级参数 - 为方法调用提供任何属性,甚至内存中现有对象的引用
- ✔️ 实时 Unity API - Unity API 即时可用——即使 Unity 发生变化,您也能获得最新的 API
- ✔️ 自文档化 - 通过
Description属性访问任何类、方法或属性的人类可读描述
自定义工具
Unity MCP 支持项目所有者自定义开发 MCP 工具、MCP 资源 和 MCP 提示。MCP 服务器会从 Unity MCP 插件 获取数据,并将其暴露给客户端。MCP 通信链中的任何人都将收到有关新 MCP 功能的信息,LLM 可能会在适当的时候决定使用这些功能。
添加自定义工具
要添加自定义工具,您需要:
- 一个带有
McpPluginToolType属性的类 - 类中一个带有
McpPluginTool属性的方法 - 可选: 为每个方法参数添加
Description属性,以帮助 LLM 理解其含义 - 可选: 使用带有
?和默认值的string? optional = null属性,将其标记为 LLM 的可选项
请注意,
MainThread.Instance.Run(() =>这一行允许您在主线程上运行代码,这是与 Unity API 交互所必需的。如果您不需要这样做,并且可以在后台线程上运行工具,则为了避免效率损失,建议不要使用主线程。
[McpPluginToolType]
public class Tool_GameObject
{
[McpPluginTool
(
"MyCustomTask",
Title = "创建一个新的游戏对象"
)]
[Description("在此向 LLM 解释这是什么,以及何时应该调用它。")]
public string CustomTask
(
[Description("向 LLM 解释这是什么。")]
string inputData
)
{
// 在后台线程中执行任何操作
return MainThread.Instance.Run(() =>
{
// 如果需要,在主线程中执行一些操作
return $"[成功] 操作已完成。";
});
}
}
添加自定义 MCP 提示
MCP 提示 允许您将自定义提示注入到与 LLM 的对话中。它支持两种发送者角色:用户和助手。这是一种快速指导 LLM 执行特定任务的方式。您可以使用自定义数据生成提示,提供列表或其他相关信息。
[McpPluginPromptType]
public static class Prompt_ScriptingCode
{
[McpPluginPrompt(Name = "add-event-system", Role = Role.User)]
[Description("在游戏对象之间实现基于 UnityEvent 的通信系统。")]
public string AddEventSystem()
{
return "使用 UnityEvents、UnityActions 或自定义事件委托创建事件系统,以实现游戏系统和组件之间的解耦通信。";
}
}
运行时使用(游戏中)
在您的游戏或应用中使用 Unity MCP。可以使用工具、资源或提示。默认情况下没有工具,您需要实现自己的自定义工具。
// 构建 MCP 插件
var mcpPlugin = UnityMcpPluginRuntime.Initialize(builder =>
{
builder.WithConfig(config =>
{
config.Host = "http://localhost:8080";
config.Token = "your-token";
});
// 自动注册当前程序集中的所有工具
builder.WithToolsFromAssembly(Assembly.GetExecutingAssembly());
})
.Build();
await mcpPlugin.Connect(); // 启动与 Unity-MCP-Server 的主动连接,并自动重试
await mcpPlugin.Disconnect(); // 停止主动连接并关闭现有连接
示例:AI 驱动的国际象棋游戏机器人
这里有一个经典的国际象棋游戏。让我们将机器人逻辑外包给 LLM,由机器人根据游戏规则完成回合操作。
[McpPluginToolType]
public static class ChessGameAI
{
[McpPluginTool("chess-do-turn", Title = "执行回合")]
[Description("在国际象棋游戏中执行一个回合。如果回合被接受则返回 true,否则返回 false。")]
public static Task<bool> DoTurn(int figureId, Vector2Int position)
{
return MainThread.Instance.RunAsync(() => ChessGameController.Instance.DoTurn(figureId, position));
}
[McpPluginTool("chess-get-board", Title = "获取棋盘")]
[Description("获取当前国际象棋棋盘的状态。")]
public static Task<BoardData> GetBoard()
{
return MainThread.Instance.RunAsync(() => ChessGameController.Instance.GetBoardData());
}
}
为什么需要运行时使用?
应用场景有很多,比如您正在开发一款带有机器人的国际象棋游戏。只需编写几行代码,就可以将机器人的决策逻辑外包给 LLM。
Unity MCP 服务器 设置
Unity MCP 服务器支持多种启动方式和 Docker 部署。它同时支持两种传输协议:streamableHttp 和 stdio。如果您需要自定义或在云端部署 Unity MCP 服务器,本节内容将对您有所帮助。阅读更多...
变量
无论您选择哪种启动方式,它们都支持通过环境变量和命令行参数进行自定义配置。如果您只是想简单启动服务器,使用默认值即可,无需花费时间设置这些变量。请确保 Unity 插件也使用默认值,尤其是 --port 参数,两者应保持一致。
| 环境变量 | 命令行参数 | 描述 |
|---|---|---|
MCP_PLUGIN_PORT |
--port |
客户端 -> 服务器 <- 插件 的连接端口(默认:8080) |
MCP_PLUGIN_CLIENT_TIMEOUT |
--plugin-timeout |
插件 -> 服务器 的连接超时时间(毫秒)(默认:10000) |
MCP_PLUGIN_CLIENT_TRANSPORT |
--client-transport |
客户端 -> 服务器 的传输类型:stdio 或 streamableHttp(默认:streamableHttp) |
命令行参数既支持单个
-前缀的形式(如-port),也支持不带前缀的形式(如port)。 传输方式的选择: 当 MCP 客户端直接启动服务器二进制文件时(本地使用——这是最常见的设置),请使用stdio。当服务器作为独立进程运行,或在 Docker/云环境中运行并通过 HTTP 连接时,请使用streamableHttp。
插件变量
Unity MCP 插件在启动时会读取以下环境变量(以及命令行参数),以覆盖保存的配置文件中的值。这些覆盖会在运行时生效;首次运行或生成新的身份验证令牌时,覆盖后的值会被写入配置文件。在后续运行中,覆盖值仅在内存中生效,不会自动保存。例外情况是 UNITY_MCP_TOOLS,它使用 [JsonIgnore] 注解,永远不会持久化——仅在运行时有效。
| 环境变量 | 命令行参数 | 值 | 描述 |
|---|---|---|---|
UNITY_MCP_HOST |
-UNITY_MCP_HOST |
URL 字符串 | 覆盖 MCP 服务器的主机 URL |
UNITY_MCP_KEEP_CONNECTED |
-UNITY_MCP_KEEP_CONNECTED |
true / false |
强制启用或禁用主动连接 |
UNITY_MCP_AUTH_OPTION |
-UNITY_MCP_AUTH_OPTION |
none / required |
强制设置身份验证模式 |
UNITY_MCP_TOKEN |
-UNITY_MCP_TOKEN |
字符串 | 强制设置身份验证令牌 |
UNITY_MCP_TOOLS |
-UNITY_MCP_TOOLS |
逗号分隔的工具 ID | 仅启用列出的工具;其他工具将被禁用。未知的工具 ID 将被记录为错误。 |
命令行参数优先于环境变量。两者都会覆盖保存的配置文件中的值。
示例(CI/CD 批处理模式):
Unity.exe -batchmode -nographics \
-UNITY_MCP_HOST=http://localhost:8080 \
-UNITY_MCP_KEEP_CONNECTED=true \
-UNITY_MCP_AUTH_OPTION=required \
-UNITY_MCP_TOKEN=my-secret-token
Docker 📦
请确保已安装 Docker。如果您使用的是 Windows 操作系统,请务必启动 Docker Desktop。
streamableHttp 传输方式
docker run -p 8080:8080 ivanmurzakdev/unity-mcp-server
MCP 客户端配置:
{
"mcpServers": {
"ai-game-developer": {
"url": "http://localhost:8080"
}
}
}
如果您的服务托管在云端,请将
url替换为实际的端点。
stdio 传输方式
要使用此变体,MCP 客户端 应在 Docker 中启动 MCP 服务器。这可以通过修改后的 MCP 客户端 配置来实现。
docker run -t -e MCP_PLUGIN_CLIENT_TRANSPORT=stdio -p 8080:8080 ivanmurzakdev/unity-mcp-server
MCP 客户端配置:
{
"mcpServers": {
"ai-game-developer": {
"command": "docker",
"args": [
"run",
"-t",
"-e",
"MCP_PLUGIN_CLIENT_TRANSPORT=stdio",
"-p",
"8080:8080",
"ivanmurzakdev/unity-mcp-server"
]
}
}
}
自定义 port
docker run -e MCP_PLUGIN_PORT=123 -p 123:123 ivanmurzakdev/unity-mcp-server
MCP 客户端配置:
{
"mcpServers": {
"ai-game-developer": {
"url": "http://localhost:123"
}
}
}
如果您的服务托管在云端,请将
url替换为实际的端点。
二进制可执行文件
您可以直接从二进制文件运行 Unity MCP 服务器。您需要拥有专门为您的 CPU 架构编译的二进制文件。请查看 GitHub 发布页面,其中包含了适用于所有 CPU 架构的预编译二进制文件。
./unity-mcp-server --port 8080 --plugin-timeout 10000 --client-transport stdio
MCP 客户端配置:
将
<project>替换为您 Unity 项目的路径。
{
"mcpServers": {
"ai-game-developer": {
"command": "<project>/Library/mcp-server/win-x64/unity-mcp-server.exe",
"args": [
"--port=8080",
"--plugin-timeout=10000",
"--client-transport=stdio"
]
}
}
}
Unity MCP 架构的工作原理
Unity MCP 充当 LLM 与 Unity 之间的桥梁。它向 LLM 公开并解释 Unity 的工具,使 LLM 能够理解这些接口,并根据用户请求使用这些工具。
通过集成的 AI 连接器 窗口,将 Unity MCP 连接到诸如 Claude 或 Cursor 等 LLM 客户端。同时也支持自定义客户端。
该系统具有高度可扩展性——您可以在 Unity 项目代码库中直接定义自定义的 MCP 工具、MCP 资源 或 MCP 提示词,从而向 AI 或自动化客户端暴露新的功能。这使得 Unity MCP 成为构建高级工作流、快速原型设计以及将 AI 驱动的功能集成到开发流程中的灵活基础。
什么是 MCP
MCP——模型上下文协议。简而言之,它是 AI 的“USB Type-C”,特别是针对 LLM(大型语言模型)。它教会 LLM 如何使用外部功能,例如本例中的 Unity 引擎,甚至是您代码中的自定义 C# 方法。官方文档。
什么是 AI 代理
它是一个带有聊天窗口的应用程序。它可以配备智能代理以更好地运行,也可以嵌入先进的 MCP 工具。总的来说,优秀的 MCP 客户端是任务成功执行的关键因素之一,因此选择最适合的客户端非常重要。
什么是 MCP 服务器
它是 MCP 客户端 与“其他事物”之间的桥梁,在本例中就是 Unity 引擎。本项目包含 MCP 服务器。
什么是 MCP 工具
MCP 工具 是 LLM 可调用以与 Unity 交互的函数或方法。这些工具充当自然语言请求与实际 Unity 操作之间的桥梁。当您要求 AI“创建一个立方体”或“更改材质颜色”时,它会使用 MCP 工具来执行这些操作。
关键特性:
- 可执行的函数,用于执行特定操作
- 带描述的类型化参数,帮助 LLM 理解应提供哪些数据
- 返回值,用于反馈操作的成功或失败
- 线程感知——可以在线程主线上运行 Unity API 调用,或在后台线程上进行密集处理
何时使用 Tool
- 自动化重复性任务——为经常执行的常见操作创建工具
- 复杂操作——将多个 Unity API 调用打包成一个易于使用的工具
- 项目特定的工作流程——构建能够理解您项目特定结构和约定的工具
- 易出错的任务——创建包含验证和错误处理的工具
- 自定义游戏逻辑——向 AI 公开您的游戏系统,以实现动态内容生成
示例:
- 创建并配置带有特定组件的 GameObject
- 批量处理资源(纹理、材质、预制件)
- 设置光照和后期处理效果
- 生成关卡几何体或程序化放置物体
- 配置物理设置或碰撞层
什么是 MCP 资源
MCP 资源 提供对 Unity 项目内数据的只读访问。与执行操作的 MCP 工具不同,资源允许 LLM 检查和理解您项目的当前状态、资产和配置。可以将其视为向 AI 提供项目上下文的“传感器”。
关键特性:
- 只读访问项目数据和 Unity 对象
- 结构化信息,以 LLM 可理解的格式呈现
- 实时数据,反映您项目的当前状态
- 情境意识,帮助 AI 做出明智决策
何时使用 MCP Resource
- 项目分析:让 AI 理解您的项目结构、资源和组织方式。
- 调试辅助:提供当前状态信息以帮助排查问题。
- 智能建议:为 AI 提供上下文,以便做出更好的推荐。
- 文档生成:根据项目状态自动生成文档。
- 资产管理:帮助 AI 了解可用的资源及其属性。
示例:
- 暴露场景层级和 GameObject 属性。
- 列出可用的材质、纹理及其设置。
- 显示脚本依赖关系和组件关联。
- 展示当前的光照设置和渲染管线配置。
- 提供关于音频源、动画和粒子系统的信息。
什么是 MCP Prompt
MCP Prompt 允许您将预定义的提示注入到与 LLM 的对话中。这些是智能模板,可以提供上下文、指令或知识,以引导 AI 的行为。提示可以是静态文本,也可以根据项目的当前状态动态生成。
关键特性:
- 上下文引导,影响 AI 的响应方式。
- 角色化——可模拟不同角色(用户请求或助手知识)。
- 动态内容——可包含实时项目数据。
- 可重用模板——适用于常见场景和工作流。
何时使用 MCP Prompt
- 提供领域知识:分享针对您项目的最佳实践和编码规范。
- 设定编码规范:确立命名规范、架构模式和代码风格。
- 提供项目结构背景:解释您的项目是如何组织的以及原因。
- 分享工作流程说明:为常见任务提供分步操作指南。
- 注入专业知识:添加关于特定 Unity 功能、第三方资源或自定义系统的信息。
示例:
- “公共方法始终使用 PascalCase,私有字段则使用 camelCase。”
- “该项目使用位于 Scripts/Events/ 的自定义事件系统。”
- “创建 UI 元素时,务必将其添加到 Scene/UI/MainCanvas 中的 Canvas 上。”
- “性能至关重要——对于频繁实例化的对象,优先使用对象池技术。”
- “该项目遵循 SOLID 原则——请解释任何架构决策。”
贡献 💙💛
我们非常欢迎您的贡献!请带来您的想法,让我们一起把游戏开发变得比以往任何时候都更加简单吧!您是否有关于新工具或功能的想法,或者发现了一个 bug 并知道如何修复它?
如果您觉得这个项目有用,请给它点个赞 🌟!
- 👉 阅读开发文档
- 👉 Fork 该项目
- 克隆您的分支,并在 Unity 中打开
./Unity-MCP-Plugin文件夹。 - 在项目中实现新功能,提交更改并推送到 GitHub。
- 创建一个 Pull Request,目标仓库为原始的 Unity-MCP 仓库,分支为
main。
版本历史
0.63.32026/04/010.63.22026/03/310.63.12026/03/300.63.02026/03/290.62.02026/03/280.61.02026/03/250.60.02026/03/240.59.02026/03/240.58.02026/03/240.57.32026/03/230.57.22026/03/220.57.12026/03/200.57.02026/03/200.56.02026/03/180.55.12026/03/170.55.02026/03/160.54.02026/03/150.53.12026/03/140.53.02026/03/140.52.02026/03/13常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。