欢迎来到科站长!

ASP.NET

当前位置: 主页 > 网络编程 > ASP.NET

.NET MCP 文档详细指南

时间:2025-07-25 10:25:30|栏目:ASP.NET|点击:

MCP 概述

MCP(Model Context Protocol)是由 Anthropic 推出的一种开放协议,类似 AI 的 USB-C 扩展坞,用于在大模型和数据源之间建立安全的通信(授权),让 AI 应用能够安全地访问和操作本地或远程数据,例如操作本地文件、浏览器和 Web 服务。

为了更好地理解 MCP,我们可以用一个简单的类比:如果把 AI 比作电脑主机,那么 MCP 就相当于 USB 协议,而 MCP Server 则类似于各种 USB 设备(如摄像头、麦克风等)。通过实现 MCP Server,我们可以让 AI 轻松连接到各种数据源,大大扩展其功能范围。

MCP 协议的核心价值在于标准化了 AI 模型与外部工具和数据源的交互方式,使开发者能够创建可被多种 AI 应用程序使用的工具和服务。这种标准化的接口极大地简化了 AI 应用的开发过程,并提高了工具和服务的可重用性。

MCP 的主要特点

  • 标准化的工具调用接口
  • 安全的双向通信
  • 支持多种传输方式(stdio、SSE、WebSocket 等)
  • 丰富的数据类型支持
  • 与主流 LLM 的无缝集成
  • 跨平台和跨语言支持

MCP 服务器

MCP 服务器是实现 MCP 协议的服务端,负责注册和提供工具,处理客户端的工具调用请求,并返回结果。服务器可以使用多种传输方式与客户端通信,如标准输入输出、SSE 或 WebSocket。

MCP 客户端

MCP 客户端是实现 MCP 协议的客户端,负责连接到 MCP 服务器,获取可用工具列表,调用工具,并处理返回结果。客户端通常与 LLM 集成,使 LLM 能够使用 MCP 工具。

.NET MCP 实现项目对比

在 .NET 生态系统中,目前有几个主要的 MCP 实现项目,它们各有特点。以下是这些项目的对比分析:

官方 C# SDK:csharp-sdk

这是 Model Context Protocol(MCP)官方提供的 C# SDK,为 MCP 服务器和客户端提供简单易用的接口,主要由微软维护。该项目已经成为 MCP 社区的官方 SDK 项目,最近发布了 0.1.0-preview 版本。

GitHub 仓库: 

https://github.com/modelcontextprotocol/csharp-sdk

MCPSharp

MCPSharp 是一个 .NET 库,旨在帮助开发者构建 Model Context Protocol(MCP)服务器和客户端。它提供了创建 MCP 合规的工具和函数、连接现有 MCP 服务器、将 .NET 方法暴露为 MCP 端点、处理 MCP 协议细节和 JSON-RPC 通信等功能。

特点:

  • 与 Microsoft.Extensions.AI 集成
  • Semantic Kernel 支持
  • 动态工具注册
  • 工具变更通知
  • 复杂对象参数支持
  • 错误处理
  • 易用的基于属性的 API
  • 内置 JSON-RPC 支持
  • 自动参数验证和类型转换

GitHub 仓库: 

https://github.com/afrise/MCPSharp

mcpdotnet

mcpdotnet 是一个 .NET 实现的模型上下文协议(MCP),使 .NET 应用程序能够与 MCP 客户端和服务器进行交互。该项目已经进入归档状态,相关的开发工作都集中到了官方的 csharp-sdk。

特点:

  • 支持多种 MCP 功能
  • 遵循规范的实现
  • 提供全面的日志支持
  • 兼容 .NET 8.0 及以上版本

GitHub 仓库: 

https://github.com/PederHP/mcpdotnet

ModelContextProtocol.NET

ModelContextProtocol.NET 是一个 C# SDK,实现了模型上下文协议(MCP)。

特点:

  • 标准输入输出通信
  • 工具集成框架
  • 原生 AOT 兼容
  • 计算器演示实现
  • 开发中功能:WebSocket 支持、资源管理和提示系统

GitHub仓库:

https://github.com/salty-flower/ModelContextProtocol.NET

服务器端实现

基本结构

使用官方的 C# SDK (csharp-sdk) 实现 MCP 服务器的基本结构如下:

这段代码展示了如何创建一个基本的 MCP 服务器,它使用标准输入输出(stdio)作为传输方式,并自动注册当前程序集中的所有工具。

关键组件说明:

AddMcpServer()

 - 向依赖注入容器添加 MCP 服务器服务

WithStdioServerTransport()

 - 配置服务器使用标准输入输出作为传输方式

WithToolsFromAssembly()

 - 自动注册当前程序集中的所有 MCP 工具

工具注册与实现

在 MCP 服务器中,工具是通过特性(Attribute)来注册的。下面是一个简单的工具实现示例:

1
2
3
4
5
6
[McpServerToolType]
public static class EchoTool
{
    [McpServerTool, Description("Echoes the message back to the client.")]
    public static string Echo(string message) => $"hello {message}";
}

更复杂的工具可以使用依赖注入和服务器交互:


上一篇:.NET 中的深拷贝实现方法详解

栏    目:ASP.NET

下一篇:.NET WPF 可视化树(Visual Tree)详解

本文标题:.NET MCP 文档详细指南

本文地址:https://fushidao.cc/wangluobiancheng/23809.html

广告投放 | 联系我们 | 版权申明

申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:257218569 | 邮箱:257218569@qq.com

Copyright © 2018-2025 科站长 版权所有冀ICP备14023439号