返回

MCP C# SDK 入门指南:使用 .NET 构建 Model Context Protocol 客户端与服务器

2026-03-12 MCP C# .NET 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 的基本流程是:

  1. 创建 Transport(通信方式)
  2. 初始化 McpClient
  3. 获取工具列表
  4. 调用工具

示例代码如下:

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 生态做好技术准备。

顶部