MCPNet——最小爱好MCP服务器(C#)
状态: 爱好项目——尚未投入生产 目的: 简单、轻量级、教育性的实现 C#中的MCP兼容扩展。
该项目演示了:-使用以下组件构建MCP请求管道 中间件
- 一个具有自动发现功能的简单工具注册表
- JSON-RPC——样式请求处理(初始化、工具/列表、工具/调用)
- 一个讲MCP兼容帧消息的小型TCP服务器示例
(Content-Length 协议)
______________________________________________________________________
❗ 这个项目实际上是什么
MCPNet本身并不是一个完整的网络服务器。
相反,它是一个MCP处理引擎(中间件管道+协议处理程序+工具系统),您可以在您选择的任何传输中托管它:
- TCP(包括示例)
- 超文本传输协议
- 双向通信
- stdio(如官方MCP服务器)
- 海关运输
这是有意的:MCP规范没有规定传输, 因此MCPNet保持网络可选性和轻量级。
您仍然可以称之为MCP服务器,因为它处理MCP请求并生成MCP响应-- 但是托管层是用户提供的。
______________________________________________________________________
🚀 特性
- ✔ 中间件管道(
IMcpMiddleware) - ✔ 具有特征收集的上下文系统
- ✔ 通过以下方式发现工具
[McpTool]属性 - ✔ 异步工具执行(
Run或RunAsync) - ✔ 工具参数的JSON模式自动生成
- ✔ MCP协议支持:
- mcp.initialize - tools/list - tools/call
______________________________________________________________________
📦 示例工具
[McpTool("echo")]
public class EchoTool
{
public string Run(EchoArgs args) => args.Text;
}
public class EchoArgs
{
public string Text { get; set; } = "";
}______________________________________________________________________
🧩 注册MCP服务器
var services = new ServiceCollection();
services.AddMcpServer()
.AddMcpTool();
var sp = services.BuildServiceProvider();
var processor = sp.GetRequiredService();______________________________________________________________________
🔌 最小TCP主机
该项目包括一个小型框架消息TCP服务器:
var listener = new TcpListener(IPAddress.Loopback, 5005);
listener.Start();
while (true)
{
var client = await listener.AcceptTcpClientAsync();
_ = HandleClient(client, processor);
}它使用MCP帧:
Content-Length:
{json}______________________________________________________________________
🧪 Node.js测试客户端
send({ jsonrpc: "2.0", id: 1, method: "mcp.initialize", params: {} });
send({ jsonrpc: "2.0", id: 2, method: "tools/list", params: {} });
send({
jsonrpc: "2.0", id: 3, method: "tools/call",
params: { tool: "echo", arguments: { text: "hello" } }
});______________________________________________________________________
📚 项目目标
- 从头开始构建MCP来学习它
- 提供极小、可读的参考代码
- 不打算取代完整的MCP堆栈或符合官方规范1:1
______________________________________________________________________
📄 许可证
麻省理工学院
