Token导航 LogoToken导航TokenDH.com
Min MCP Sharp logo
AI代理未说明官方级别未说明来源级核验

Min MCP Sharp

MCP Server

MinMCPSharp是一个轻量级的模型上下文协议(MCP)服务器和客户端,适用于.NET和Unity,支持HTTP和stdio传输。

工具数

0

提示词数

0

GitHub Stars

4

资源数

0
轻量级C#AI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ManuelKugelmann

提供方

ManuelKugelmann

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MinMCPSharp

轻量级 模型上下文协议 (MCP)服务器和客户端 .NET统一.

  • 基于属性的API
  • HTTP和stdio
  • 最小依赖性

特性

  • [McpTool] / [McpResource] 属性API-标记方法,并且服务器已准备就绪
  • MCP客户端 --通过HTTP或stdio(子进程)连接到任何MCP服务器
  • HTTP传输 (可流式HTTP,MCP 2025-03-26规范) System.Net.HttpListener --没有ASP。NET必需
  • 标准运输 用于编辑器集成和管道通信
  • Unity兼容 --netstandard2.0,没有IL2CPP破坏依赖关系,包括主线程调度
  • 交叉装配工具装载 --从外部DLL注册工具
  • 运行时的动态工具注册
  • 客户端工具调用的权限门
  • 具有自动JSON模式生成功能的复杂对象参数

依赖项

目的运行时依赖
Newtonsoft。JsonJson序列化0
PolySharpC#13 polyfills仅限编译时

安装

dotnet add package MinMCPSharp

快速开始

1.定义工具

using MinMCPSharp;

public class Calculator
{
    /// Adds two numbers together
    /// 
First number

    /// 
Second number

    [McpTool]
    public static int Add([McpParameter(true)] int a, [McpParameter(true)] int b)
        => a + b;
}

2.启动服务器(HTTP)

using MinMCPSharp;

var server = new McpServer("CalculatorServer", "1.0.0");
server.Register();
await server.RunAsync(port: 8080); // POST http://localhost:8080/mcp

3.启动服务器(Stdio)

await server.RunStdioAsync();

动态工具注册

server.AddTool(new McpTool
{
    Name = "greet",
    Description = "Greets a user",
    InputSchema = new McpInputSchema
    {
        Type = "object",
        Required = ["name"],
        Properties = new Dictionary
        {
            { "name", new McpParameterSchema { Type = "string", Description = "User name" } }
        }
    }
}, (string name) => $"Hello, {name}!");

Unity集成

将netstandard2.0 DLL和两个下拉脚本复制到Unity项目中:

Assets/
  Plugins/
    MinMCPSharp.dll              # netstandard2.0 build
  Scripts/
    McpServerBehaviour.cs        # MonoBehaviour wrapper
    MainThreadDispatcher.cs      # Main-thread dispatch helper

CI构建生成了一个即用型 MinMCPSharp.Unity 这些文件中的工件。

// Option A: Inspector-driven
// Add McpServerBehaviour to a GameObject, configure in Inspector

// Option B: Code-driven
var behaviour = McpServerBehaviour.Create("MyGame", "1.0.0", port: 8080);
behaviour.Register();
behaviour.StartServer();

McpServerBehaviour 处理生命周期(唤醒/销毁),并可选择通过以下方式将工具调用分派到Unity的主线程 MainThreadDispatcher.

平台说明: HTTP传输使用 System.Net.HttpListener,适用于Windows和macOS桌面版本(Mono和IL2CPP)。 HttpListener不可用 在iOS、Android或WebGL上——在这些平台上,你需要一个自定义的传输实现 IMcpTransport.

api参考

属性

属性目标属性
[McpTool]方法、类Name, Description
[McpParameter]参数Required, Description
[McpResource]方法、性质Name, Uri, MimeType, Description

McpServer

var server = new McpServer(name, version);
server.Register();                          // Register tool/resource class
server.RegisterAssembly(assembly);             // Scan assembly for attributed types
server.AddTool(tool, delegate);                // Register dynamic tool
server.Start(endpoint, port);                  // Start HTTP (non-blocking)
server.Start(transport, endpoint, port);       // Start with custom transport
await server.RunAsync(port: 8080);             // Start HTTP and block
await server.RunStdioAsync();                  // Start stdio and block
server.Stop();                                 // Stop server

运输

运输类别用例
HTTPHttpListenerTransportWeb客户端、跨进程、Unity
停止StdioTransport编辑器集成、管道I/O
自定义实施 IMcpTransport您自己的交通工具

MCP客户端

通过HTTP或生成子进程连接到任何MCP服务器:

// HTTP client
var client = new McpClient("MyClient", "1.0.0",
    new Uri("http://localhost:8080/mcp"));
await client.InitializeAsync();

var tools = await client.GetToolsAsync();
var result = await client.CallToolAsync("echo",
    new Dictionary { { "input", "hello" } });
Console.WriteLine(result.Content[0].Text);

// Stdio client (spawns process)
var stdioClient = new McpClient("MyClient", "1.0.0",
    "dotnet", "path/to/server.dll");
await stdioClient.InitializeAsync();

许可门

client.GetPermission = (parameters) =>
{
    Console.WriteLine($"Tool: {parameters["tool"]}");
    Console.Write("Allow? (y/N) ");
    return Console.ReadKey().Key == ConsoleKey.Y;
};

交叉装配工具

从外部DLL注册工具:

// In ExternalTools.dll
public class MyExternalTool
{
    [McpTool("external-tool", "A tool from another assembly")]
    public static string Run() => "success";
}

// In your server
server.Register();

贡献

我们欢迎捐款!请随时提交拉取请求。

致谢

该项目源自 afrise/MCPSharp.

许可证

此项目根据MIT许可证获得许可——请参阅 LICENSE.txt 了解详情。

目录标签

目录标签

轻量级C#AI代理本地部署模型上下文协议服务器客户端.NETUnity

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP