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 uMCP Server安装
先决条件
- Unity编辑器:2022.3 LTS或更高版本。
- MCP客户端必须支持流式HTTP(例如,VSCode代理模式、游标、CLINE等)。
1.安装CoreFramework
使用Unity包管理器
openupm add com.natsuneko.modelcontextprotocol.core-framework- 打开你的Unity项目。
使用Git URL
- 打开你的Unity项目。
- 首选
Window > Package Manager. - 点击
+向Add package from git URL.... - 输入URL:
https://github.com/mika-f/uMCP.git?path=/Assets/NatsunekoLaboratory/ModelContextProtocol/CoreFramework- 点击
Add. - 当您运行Unity项目时,MCP服务器会自动启动。
2.安装管理工具(和其他软件包)
使用Unity包管理器
openupm add com.natsuneko.modelcontextprotocol.management-toolsopenupm add com.natsuneko.modelcontextprotocol.vrchat-world-tools
使用Git URL
- 打开你的Unity项目。
- 首选
Window > Package Manager. - 点击
+向Add package from git URL.... - 输入URL:
https://github.com/mika-f/uMCP.git?path=/Assets/NatsunekoLaboratory/ModelContextProtocol/MagagementTools- 点击
Add.
3.配置您的MCP客户端
将支持流式HTTP(VSCode代理模式、游标、CLINE等)的MCP客户端连接到MCP服务器。
http://localhost:7225/sse
# or
http://localhost:7225/mcpVSCode代理模式示例:
{
"servers": {
"uMCP": {
"url": "http://localhost:7225/mcp"
}
}
}用法
- 打开你的Unity项目。
- 启动MCP客户端(VSCode代理模式、光标、CLINE等)。
- 互动!您的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
