Unity-MCP

GitHub
1.9k 179 简单 1 次阅读 2天前Apache-2.0Agent图像开发框架语言模型插件
AI 解读 由 AI 自动生成,仅供参考

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
GPU

未说明

内存

未说明 (取决于 Unity 编辑器及运行项目的系统要求)

依赖
notes该工具是 Unity 的插件和 MCP 服务器,主要通过 npm 包 (unity-mcp-cli) 或 Docker 容器进行部署。它需要安装 Unity 编辑器才能发挥完整功能,同时也支持在编译后的游戏运行时中使用。配置 AI 代理(如 Claude, Cursor 等)需要用户自行拥有相应的 API 密钥或服务订阅。未提及具体的 GPU 显存或 CUDA 版本要求,因为计算负载主要取决于所连接的外部大模型服务或本地运行的 LLM 配置,而非插件本身。
python未说明 (通过 Node.js/npm 或 Docker 部署,非纯 Python 环境)
Unity Editor (版本未限定,支持存档中的多个版本)
Node.js / npm (用于安装 unity-mcp-cli)
Docker (可选,用于运行服务器)
Unity-MCP hero image

快速开始

✨ AI 游戏开发者 — Unity 技能、MCP

MCP OpenUPM Docker 镜像 Unity 编辑器 Unity 运行时 r
Discord OpenUPM 星标 许可证 与乌克兰同在

AI 工作

Claude   Codex   Cursor   GitHub Copilot   Gemini   Antigravity   VS Code   Rider   Visual Studio   Open Code   Cline   Kilo Code

中文 | 日本語 | Español

Unity MCP 是一款基于 AI 的游戏开发助手,适用于编辑器和运行时。通过 MCP 将 ClaudeCursorWindsurf 连接到 Unity。自动化工作流、生成代码,并在您的游戏中启用 AI 功能

与其他工具不同,此插件可在已编译的游戏内部运行,从而实现实时的 AI 调试以及玩家与 AI 的互动。

💬 加入我们的 Discord 服务器 - 提问、展示作品并与开发者交流!

AI 游戏开发者 — Unity MCP

  • ✔️ AI 代理 - 使用来自 AnthropicOpenAIMicrosoft 或其他任何提供商的最佳代理,无供应商锁定
  • ✔️ 工具 - 丰富的默认 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

AI 游戏开发者 Windows

AI 游戏开发者 — Unity 技能与 MCP

快速入门

只需三步即可快速上手:

  1. 安装插件 — 下载 .unitypackage 安装包,或运行 openupm add com.ivanmurzak.unity.mcp

    替代方案: npx unity-mcp-cli install-plugin ./MyUnityProject — 请参阅 CLI 文档

  2. 选择 AI 助手 — Claude Code、Claude Desktop、GitHub Copilot、Cursor 或其他任何助手
  3. 设置 AI 助手 — 在 Unity 中打开 Window/AI 游戏开发者,然后点击 自动生成技能(推荐)或 配置 MCP 设置 AI 技能

    替代方案: 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 - 刷新 AssetDatabase
  • assets-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 - 在打开的预制件或场景中创建新的 GameObject
  • gameobject-destroy - 销毁 GameObject 及其所有嵌套的 GameObject(递归操作)
  • gameobject-duplicate - 在打开的预制件或场景中复制 GameObject
  • gameobject-find - 根据提供的信息查找特定 GameObject
  • gameobject-modify - 修改 GameObject 及其附加组件的字段和属性
  • gameobject-set-parent - 将一组 GameObject 的父级设置为指定 GameObject
  • object-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 的附加工具

AI 游戏开发者 — Unity 技能与 MCP

目录

更多文档

文档 描述
默认 MCP 工具 包含描述的全部内置工具的完整参考
MCP 服务器设置 服务器配置、环境变量、远程托管
Docker 部署 分步 Docker 部署指南
开发指南 架构、代码风格、CI/CD — 供贡献者参考
Wiki 入门、教程、API 参考、常见问题解答
CLI 工具 通过命令行安装插件、配置并连接

AI 游戏开发者 — Unity 技能与 MCP

安装

步骤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 交流的主要窗口。

AI 游戏开发者非常通用,因此您可以使用任何您喜欢的 AI 代理——它将像其他代理一样顺畅地工作。唯一重要的要求是,AI 代理必须支持技能或动态的 MCP 工具更新。

步骤3:配置AI代理

自动配置

  • 打开 Unity 项目
  • 打开 Window/AI 游戏开发者
  • 选项1:点击 自动生成 技能 (推荐)
  • 选项2:点击 配置 模型上下文协议(MCP)

Unity_AI

如果您的 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 CLI
gemini mcp add ai-game-developer <command>

<command> 替换为上表中的内容

Claude Code CLI Claude Code CLI
claude mcp add ai-game-developer <command>

<command> 替换为上表中的内容

GitHub Copilot CLI GitHub Copilot CLI
copilot
/mcp add

服务器名称:ai-game-developer 服务器类型:local 命令:<command>

<command> 替换为上表中的内容

AI Game Developer — Unity SKILLS and MCP

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 属性访问任何 方法属性 的人类可读描述

AI Game Developer — Unity SKILLS and MCP

自定义工具

Unity MCP 支持项目所有者自定义开发 MCP 工具MCP 资源MCP 提示。MCP 服务器会从 Unity MCP 插件 获取数据,并将其暴露给客户端。MCP 通信链中的任何人都将收到有关新 MCP 功能的信息,LLM 可能会在适当的时候决定使用这些功能。

添加自定义工具

要添加自定义工具,您需要:

  1. 一个带有 McpPluginToolType 属性的类
  2. 类中一个带有 McpPluginTool 属性的方法
  3. 可选: 为每个方法参数添加 Description 属性,以帮助 LLM 理解其含义
  4. 可选: 使用带有 ? 和默认值的 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 或自定义事件委托创建事件系统,以实现游戏系统和组件之间的解耦通信。";
    }
}

AI 游戏开发者 — Unity 技能与 MCP

运行时使用(游戏中)

在您的游戏或应用中使用 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。

AI 游戏开发者 — Unity 技能与 MCP

Unity MCP 服务器 设置

Unity MCP 服务器支持多种启动方式和 Docker 部署。它同时支持两种传输协议:streamableHttpstdio。如果您需要自定义或在云端部署 Unity MCP 服务器,本节内容将对您有所帮助。阅读更多...

变量

无论您选择哪种启动方式,它们都支持通过环境变量和命令行参数进行自定义配置。如果您只是想简单启动服务器,使用默认值即可,无需花费时间设置这些变量。请确保 Unity 插件也使用默认值,尤其是 --port 参数,两者应保持一致。

环境变量 命令行参数 描述
MCP_PLUGIN_PORT --port 客户端 -> 服务器 <- 插件 的连接端口(默认:8080)
MCP_PLUGIN_CLIENT_TIMEOUT --plugin-timeout 插件 -> 服务器 的连接超时时间(毫秒)(默认:10000)
MCP_PLUGIN_CLIENT_TRANSPORT --client-transport 客户端 -> 服务器 的传输类型:stdiostreamableHttp(默认: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 镜像

请确保已安装 Docker。如果您使用的是 Windows 操作系统,请务必启动 Docker Desktop。

阅读高级 Docker 配置说明

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"
      ]
    }
  }
}

AI 游戏开发者 — Unity 技能与 MCP

Unity MCP 架构的工作原理

Unity MCP 充当 LLM 与 Unity 之间的桥梁。它向 LLM 公开并解释 Unity 的工具,使 LLM 能够理解这些接口,并根据用户请求使用这些工具。

通过集成的 AI 连接器 窗口,将 Unity MCP 连接到诸如 ClaudeCursor 等 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 原则——请解释任何架构决策。”

AI 游戏开发者 — Unity 技能与 MCP

贡献 💙💛

我们非常欢迎您的贡献!请带来您的想法,让我们一起把游戏开发变得比以往任何时候都更加简单吧!您是否有关于新工具或功能的想法,或者发现了一个 bug 并知道如何修复它?

如果您觉得这个项目有用,请给它点个赞 🌟!

  1. 👉 阅读开发文档
  2. 👉 Fork 该项目
  3. 克隆您的分支,并在 Unity 中打开 ./Unity-MCP-Plugin 文件夹。
  4. 在项目中实现新功能,提交更改并推送到 GitHub。
  5. 创建一个 Pull Request,目标仓库为原始的 Unity-MCP 仓库,分支为 main

AI 游戏开发者 — Unity 技能与 MCP

版本历史

0.63.32026/04/01
0.63.22026/03/31
0.63.12026/03/30
0.63.02026/03/29
0.62.02026/03/28
0.61.02026/03/25
0.60.02026/03/24
0.59.02026/03/24
0.58.02026/03/24
0.57.32026/03/23
0.57.22026/03/22
0.57.12026/03/20
0.57.02026/03/20
0.56.02026/03/18
0.55.12026/03/17
0.55.02026/03/16
0.54.02026/03/15
0.53.12026/03/14
0.53.02026/03/14
0.52.02026/03/13

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

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 真正成长为懂上

140.4k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

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 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|昨天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架