MCP C# SDK 入门指南:使用 .NET 构建 Model Context Protocol 客户端与服务器
2026-03-12 167 0
什么是 MCP C# SDK
随着 AI Agent 和工具调用(Tool Calling)生态的发展,越来越多的应用需要让大语言模型安全地访问外部工具、数据库和服务。Model Context Protocol(MCP) 正是在这样的背景下诞生的,它是一种开放协议,用于标准化应用程序向大语言模型提供上下文、工具和资源的方式。
MCP 的目标类似于“AI 世界的 USB-C”,通过统一协议让不同系统之间能够互相连接。AI 模型不再需要为每个工具编写单独的适配层,而是通过 MCP 统一调用接口即可完成工具调用、数据访问和任务执行。
MCP C# SDK 是该协议在 .NET 生态中的官方实现,由 Model Context Protocol 社区与 Microsoft 合作维护。它允许开发者使用 C# 构建 MCP 客户端和服务器,使 .NET 应用能够直接参与 AI Agent 生态。通过该 SDK,开发者可以实现以下能力:
- 创建 MCP Server,让 AI 模型调用你的 API 或工具
- 编写 MCP Client,连接并调用其他 MCP 服务
- 将 .NET 应用、数据库、文件系统或业务系统暴露给 AI Agent
- 在 AI 应用中实现标准化的 Tool Calling
对于使用 .NET 构建 AI 应用的开发者来说,MCP C# SDK 提供了一种官方、标准化的集成方式。
MCP C# SDK 的核心架构
MCP C# SDK 的设计遵循 MCP 协议的核心思想,即通过 Client-Server 架构让 AI 模型与工具之间实现解耦。SDK 提供了多个核心组件,方便开发者在不同场景中使用。
在官方实现中,SDK 主要包含三个包:
- ModelContextProtocol:这是主要的 SDK 包,提供 MCP Server 和 Client 的核心功能,同时集成 .NET 的依赖注入和 Hosting 体系。大多数项目只需要这个包即可。
- ModelContextProtocol.AspNetCore:用于构建基于 HTTP 的 MCP Server,适合 Web API 或云服务环境。
- ModelContextProtocol.Core:提供底层协议实现,适用于只需要 Client 或轻量级 Server 的场景。
在 MCP 体系中,主要有三个核心概念:
- Tools(工具):AI 可以调用的函数或服务,例如搜索、数据库查询、API 请求等。
- Resources(资源):可以被 AI 访问的数据,例如文件、文档或数据库记录。
- Prompts(提示模板):可复用的提示词模板,用于指导模型执行特定任务。
通过这些组件,MCP 可以把 AI 模型、应用程序和工具系统连接成一个标准化的生态。
三、使用 MCP C# SDK 创建客户端
在 MCP 中,客户端的主要作用是连接 MCP Server,并调用其中的工具。
首先需要安装 SDK:
dotnet add package ModelContextProtocol
创建 MCP Client 的基本流程是:
- 创建 Transport(通信方式)
- 初始化 McpClient
- 获取工具列表
- 调用工具
示例代码如下:
using ModelContextProtocol.Client;
using ModelContextProtocol.Protocol;
var clientTransport = new StdioClientTransport(new StdioClientTransportOptions
{
Name = "Everything",
Command = "npx",
Arguments = ["-y", "@modelcontextprotocol/server-everything"],
});
var client = await McpClient.CreateAsync(clientTransport);
// 获取可用工具
foreach (var tool in await client.ListToolsAsync())
{
Console.WriteLine($"{tool.Name} ({tool.Description})");
}
// 调用工具
var result = await client.CallToolAsync(
"echo",
new Dictionary<string, object?>()
{
["message"] = "Hello MCP!"
});
Console.WriteLine(result);
在实际 AI 应用中,这些工具通常会被绑定到 LLM 的 Tool Calling 系统,从而让模型自动调用工具完成任务。
使用 MCP C# SDK 创建 MCP Server
如果你希望让 AI 模型调用自己的服务,就需要创建 MCP Server。MCP C# SDK 可以非常方便地在 .NET 应用中注册工具,并自动暴露给客户端。
基本示例:
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using ModelContextProtocol.Server;
var builder = Host.CreateApplicationBuilder(args);
builder.Services
.AddMcpServer()
.WithStdioServerTransport()
.WithToolsFromAssembly();
await builder.Build().RunAsync();
接下来只需要定义一个工具方法即可:
[McpServerToolType]
public static class EchoTool
{
[McpServerTool]
public static string Echo(string message)
{
return $"hello {message}";
}
}
运行后,该服务就成为一个 MCP Server,任何 MCP Client 或 AI Agent 都可以调用 Echo 工具。SDK 还支持:
- 依赖注入
- HTTP 服务
- 资源访问
- 进度通知
- 任务存储
这些能力使得 MCP Server 可以很容易与企业系统或业务 API 集成。
MCP C# SDK 的典型应用场景
随着 AI Agent 技术的发展,MCP 正逐渐成为 AI 工具调用的重要标准。在 .NET 生态中,MCP C# SDK 主要应用于以下场景:
- AI Agent 工具系统:构建可被 AI 自动调用的工具,例如搜索、代码执行、数据查询等。
- 企业系统 AI 接入:将 ERP、CRM、数据库或内部 API 暴露给 AI。
- AI 自动化工作流:让 AI 自动完成任务,例如生成报告、调用 API、分析数据。
- 跨语言 AI 工具生态:因为 MCP 是标准协议,C# Server 可以被 Python、TypeScript 或其他语言的客户端调用。
总结
MCP C# SDK 为 .NET 开发者提供了一个官方且标准化的方式,将应用程序接入 AI Agent 生态。通过 MCP 协议,开发者可以轻松创建 AI 可调用的工具服务器,或者构建能够调用各种工具的 AI 客户端。
随着 MCP 在 AI 领域的普及,它正在成为连接 LLM、工具系统和企业应用的重要基础设施。对于 .NET 开发者来说,掌握 MCP C# SDK 不仅能提升 AI 应用的扩展能力,也能为未来的 Agent 生态做好技术准备。