基本能力
产品定位
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>()
(旧方法仍可用但已弃用)
使用教程
使用依赖
- 支持.NET Standard 2.0的任何版本
安装教程
bash
dotnet add package MCPSharp
快速开始
- 定义工具
```csharp
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;
}
}
```
- 启动服务器
csharp
await MCPServer.StartAsync("CalculatorServer", "1.0.0");
调试方式
- 使用XML注释生成文档
xml
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup> - 动态注册工具并测试功能
csharp
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}"; });