Unity MCP协议服务器

uMCP是一个用于Unity的MCP协议服务器实现,旨在连接AI代理与Unity应用,提供安全且可扩展的操作接口。

  • by mika-f
  • C#
  • 云端部署
  • 7 星标
  • 更新于

使用说明

uMCP

uMCP是MCP协议的服务器实现,专为在Unity中使用AI而设计。
它是一个简洁高效的服务器,可用于将AI代理连接到Unity应用程序。

特性

  • 安全:uMCP不允许AI​​并且任何和所有操作只能通过预先授权的操作来执行。
  • 可扩展:uMCP设计为易于扩展,允许您通过以下方式添加自己的自定义命令和操作 McpServerToolType 和 McpServerTool 属性。
    • 您可以在 Assets/NatsunekoLaboratory/ModelContextProtocol/ManagementTools 目录。

它是如何工作的(与其他MCP实现有何不同)

uMCP可以使用Streamable HTTP协议直接与MCP客户端通信,没有任何其他依赖关系。 与依赖于此的其他MCP服务器相比,这允许更高效、更轻量级的实现。这需要额外的依赖关系,如Python、Node.js或其他语言运行时。

Your MCP Client <-- Streamable HTTP --> uMCP Server

安装

先决条件

  • Unity编辑器:2022.3 LTS或更高版本。
  • MCP客户端必须支持流式HTTP(例如,VSCode代理模式、游标、CLINE等)。

1.安装CoreFramework

使用Unity包管理器

  1. openupm add com.natsuneko.modelcontextprotocol.core-framework
  2. 打开你的Unity项目。

使用Git URL

  1. 打开你的Unity项目。
  2. 首选 Window > Package Manager.
  3. 点击 + 向 Add package from git URL....
  4. 输入URL:
    https://github.com/mika-f/uMCP.git?path=/Assets/NatsunekoLaboratory/ModelContextProtocol/CoreFramework
    
  5. 点击 Add.
  6. 当您运行Unity项目时,MCP服务器会自动启动。

2.安装管理工具(和其他软件包)

使用Unity包管理器

  • openupm add com.natsuneko.modelcontextprotocol.management-tools
  • openupm add com.natsuneko.modelcontextprotocol.vrchat-world-tools

使用Git URL

  1. 打开你的Unity项目。
  2. 首选 Window > Package Manager.
  3. 点击 + 向 Add package from git URL....
  4. 输入URL:
    https://github.com/mika-f/uMCP.git?path=/Assets/NatsunekoLaboratory/ModelContextProtocol/MagagementTools
    
  5. 点击 Add.

3.配置您的MCP客户端

将支持流式HTTP(VSCode代理模式、游标、CLINE等)的MCP客户端连接到MCP服务器。

http://localhost:7225/sse
# or
http://localhost:7225/mcp

VSCode代理模式示例:

{
  "servers": {
    "uMCP": {
      "url": "http://localhost:7225/mcp"
    }
  }
}

用法

  1. 打开你的Unity项目。
  2. 启动MCP客户端(VSCode代理模式、光标、CLINE等)。
  3. 互动!您的MCP客户端现在应该能够与Unity应用程序通信。

扩展

您可以通过创建自己的自定义命令和操作来扩展uMCP。

using System;
using System.ComponentModel;

using NatsunekoLaboratory.ModelContextProtocol.CoreFramework.Attributes;
using NatsunekoLaboratory.ModelContextProtocol.CoreFramework.Models;
using NatsunekoLaboratory.ModelContextProtocol.CoreFramework.Protocol.Abstractions;
using NatsunekoLaboratory.ModelContextProtocol.CoreFramework.Protocol.Interfaces;

namespace NatsunekoLaboratory.Examples.MyCustomCommands
{
    [McpServerToolType]
    public class MyCustomCommand
    {
        [McpServerTool]
        [Description("This is a custom command that does something.")]
        public static IToolResult Execute([Description("An example parameter for the custom command.")] string exampleParameter)
        {
            // Your custom command logic here
            return new TextResult($"Executed custom command with parameter: {exampleParameter}");
        }
    }
}

许可证

麻省理工学院by @6jz