MCPSharp

MCPSharp

site icon
2025.03.18 268
C#AI集成API开发开发效率
MCPSharp是一个.NET库,用于构建符合Model Context Protocol (MCP)标准的服务器和客户端。MCP是AI助手和模型使用的标准化API协议。MCPSharp简化了MCP协议的实现细节,使开发者能够轻松创建MCP兼容的工具和函数,并将其暴露为MCP端点。
View on GitHub

Overview

基本能力

产品定位

MCPSharp是一个用于构建MCP协议兼容服务器和客户端的.NET库,旨在简化AI助手和模型与后端服务的集成。

核心功能

  • 创建MCP兼容的工具和函数,供AI模型发现和使用
  • 通过简单的属性将.NET方法暴露为MCP端点
  • 处理MCP协议细节和JSON-RPC通信
  • 支持动态工具注册和工具变更通知
  • 支持复杂对象参数和更好的错误处理
  • 与Microsoft.Extensions.AI和Semantic Kernel集成

适用场景

  • 创建AI助手(如Anthropic的Claude Desktop)可以使用的工具
  • 构建MCP兼容的API而不需要处理协议细节
  • 将现有.NET代码暴露为MCP端点
  • 通过标准化接口为应用程序添加AI能力
  • 与Microsoft.Extensions.AI和/或Semantic Kernel集成而不锁定单一供应商

工具列表

  • [McpTool]:标记类或方法为MCP工具
  • [McpParameter]:为函数参数提供元数据
  • [McpResource]:标记属性或方法为MCP资源

常见问题解答

  • [McpFunction]已弃用,改用[McpTool]
  • 使用MCPServer.Register<T>()而不是MCPServer.RegisterTool<T>()(旧方法仍可用但已弃用)

使用教程

使用依赖

安装教程

dotnet add package MCPSharp

快速开始

  1. 定义工具
using MCPSharp;

public class Calculator
{
    [McpTool("add", "Adds two numbers")]
    public static int Add([McpParameter(true)] int a, [McpParameter(true)] int b)
    {
        return a + b;
    }
}
  1. 启动服务器
await MCPServer.StartAsync("CalculatorServer", "1.0.0");

调试方式

  • 使用XML注释生成文档
<PropertyGroup>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
  • 动态注册工具并测试功能
MCPServer.AddToolHandler(new Tool() 
{
    Name = "dynamicTool",
    Description = "A dynamic tool",
    InputSchema = new InputSchema {
        Type = "object",
        Required = ["input"],
        Properties = new Dictionary<string, ParameterSchema>{
            {"input", new ParameterSchema{Type="string", Description="Input value"}}
        }
    }
}, (string input) => { return $"You provided: {input}"; });

许可证

该项目遵循 MIT 开源许可条款。