csharp-sdk
MCP 协议的官方 C#/.NET 实现,让 .NET 应用无缝接入 AI 工具生态
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
MCP 协议的官方 C#/.NET 实现,让 .NET 应用无缝接入 AI 工具生态
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2024 年底,Anthropic 正式发布 Model Context Protocol(MCP)——一个用于连接 AI 助手与外部数据源、工具的开放协议。如果说 AI 是大脑,MCP 就是让它能「看见」和「操作」现实世界的神经系统。然而,早期 MCP 主要面向 Python 和 JavaScript 生态,大量 .NET 开发者面临「协议在手却无法接入」的困境。
modelcontextprotocol/csharp-sdk 正是为了解决这个痛点而生:由 Model Context Protocol 官方维护,是 .NET 生态中唯一获得「官方」背书的 MCP SDK,让 C# 开发者能够与 Python、JS 开发者站在同一起跑线上。
通俗地理解,MCP 协议定义了 AI 如何「发现」工具、「理解」工具、「调用」工具的完整流程。传统做法:每个 AI 应用要自己实现一遍工具注册、参数校验、调用转发等重复逻辑。MCP 的做法是:把这些共性抽象成标准协议,任何实现了 MCP 的服务端(工具提供方)和客户端(AI 应用方)都可以无缝对接。
MCP C# SDK 的职责,就是让 .NET 开发者既能实现 MCP 服务端(暴露自己的工具给 AI),也能实现 MCP 客户端(让 AI 应用调用外部工具),而不需要手写 JSON-RPC 通信协议细节。
SDK 拆分为三个独立 NuGet 包,职责清晰,开发者按需引用:
| 包名 | 定位 | 适用场景 |
|---|---|---|
| ModelContextProtocol.Core | 核心包,依赖最少 | 只需客户端 API 或低阶服务端 API,追求最小依赖 |
| ModelContextProtocol | 主包,含 DI 扩展 | 绝大多数业务场景,ASP.NET Core / 控制台均可 |
| ModelContextProtocol.AspNetCore | HTTP 服务端扩展 | 需要通过 HTTP 暴露 MCP 服务端(SSRF 友好架构) |
这样的分层设计非常值得称道:Core 包给嵌入式场景用,主包给通用场景用,AspNetCore 包给 HTTP 服务场景用,不会出现「引入一个包带了 50 个传递依赖」的问题。
从源码结构来看,SDK 采用了分层模块化架构:
ModelContextProtocol.Core/ # 核心协议实现
├─ Client/ # MCP 客户端实现
├─ Server/ # MCP 服务端实现
├─ Transport/ # 传输层(stdio / HTTP SSE)
└─ JsonRpc/ # JSON-RPC 协议编解码
ModelContextProtocol/ # 依赖注入 + 主机集成
└─ McpServerBuilderExtensions.cs # 链式构建器模式
ModelContextProtocol.AspNetCore/
└─ HttpMcpServerBuilderExtensions.cs # ASP.NET Core 集成
值得关注的是,代码中大量使用了 .NET 8 的**源生成器(Source Generators)**特性:通过 ModelContextProtocol.Analyzers 项目中的分析器,自动从 C# 方法签名生成 MCP 的 tool schema,免去了手写 JSON schema 的繁琐,也保证了类型安全。
以官方 QuickstartWeatherServer 为例,整个流程不到 50 行代码。创建服务端构建器,注册工具,然后启动(支持 stdio 传输或 HTTP SSE 两种方式)。而客户端调用同样简洁,只需指定服务端地址即可调用远程 MCP 工具。
整个 SDK 的设计哲学是:让业务代码关注「做什么」,协议细节交给 SDK 处理。
经过源码级别的审视,这个 SDK 的工程水准相当高:
综合评分:90/100。扣分项:无 Dockerfile(SDK 本身不需要),以及 AspNetCore 包对某些边缘 HTTP headers 的处理还在迭代中。
| 维度 | 评价 |
|---|---|
| 学习曲线 | 低,samples 覆盖了从零到生产的所有常见场景 |
| 前置技能 | 需熟悉 .NET / C# 基础,了解依赖注入(DI)概念 |
| 运行环境 | .NET 8.0+,无需 GPU |
| 文档完整性 | 高,API docs + 概念文档 + 10+ samples |
| 社区活跃度 | 高(官方维护,GitHub Stars 持续增长) |
不适合:纯 Python/JS 开发者(请用官方 Python/JS SDK);不需要与 AI 工具交互的普通 .NET 应用。
MCP C# SDK 的意义不仅是「多了一个 SDK」,更代表着 .NET 生态正式融入 MCP 协议生态。随着 MCP 协议被 Claude Desktop、Cursor、Cline 等主流 AI 工具采用,C# 开发者现在可以:
在 AI 工具生态越来越强调「互联互通」的今天,MCP C# SDK 是 .NET 开发者不可绕过的基础设施。

项目主页:https://modelcontextprotocol.io/ 官方文档:https://csharp.sdk.modelcontextprotocol.io/ NuGet 包:https://nuget.org/packages/ModelContextProtocol