前言

今天大姚给大家推荐一个由 MCP 官方推出的 C# SDK,使 .NET 应用程序、服务和库能够快速实现与 MCP 客户端和服务器交互:MCP C# SDK

项目介绍

MCP C# SDK 是由 Model Context Protocol(MCP)官方推出的 C# 软件开发工具包(SDK),它使 .NET 应用程序、服务和库能够快速实现与 MCP 客户端和服务器进行交互。MCP是一个开放协议,它标准化了应用程序如何为大型语言模型(LLMs)提供上下文,并实现了 LLMs 与各种数据源和工具之间的安全集成。

模型上下文协议(MCP)

Model Context Protocol(MCP)是一个开放的协议,它标准化了应用程序如何向LLMs提供上下文。想象一下 MCP 就像 AI 应用的 USB-C 端口。正如 USB-C 提供了一种标准化的方式来连接您的设备到各种外围设备和配件,MCP 提供了一种标准化的方式来连接 AI 模型到不同的数据源和工具。

为什么选择 MCP?

MCP为LLMs与各种数据源和工具之间的交互提供了一个标准化、安全、灵活且可扩展的解决方案,因此具有广泛的应用场景和重要的应用价值。

  • MCP是一个开放的、标准化的协议,它定义了应用程序如何为LLMs提供上下文信息。使用MCP可以确保不同的应用程序和服务之间在交互时遵循相同的规则和标准,从而避免了因协议不一致而导致的兼容性问题。
  • MCP协议支持多种传输类型和选项,使得开发者可以根据实际需求选择最适合的传输方式。同时,MCP还提供了细粒度的控制选项,使得开发者可以灵活地配置服务器和客户端的行为。
  • MCP协议具有良好的可扩展性,可以随着技术的发展和应用的需求不断扩展和完善。这意味着未来即使有新的数据源、工具或LLMs出现,只要它们遵循MCP协议,就可以轻松地与现有的系统进行集成和交互。

MCP 的核心遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器:

项目源代码

Nuget包安装

dotnet add package ModelContextProtocol --version 0.1.0-preview.4
  • https://www.nuget.org/packages/ModelContextProtocol

MCP Client

要开始编写客户端,可以使用 McpClientFactory.CreateAsync 方法实例化和连接到服务器的一个 IMcpClient 。一旦你有了 IMcpClient ,你就可以与之交互,例如列出所有可用的工具和调用工具。

MCP Server

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看,别忘了给项目一个Star支持。

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没)。

由 MCP 官方推出的 C# SDK,使 .NET 应用程序、服务和库能够快速实现与 MCP 客户端和服务器交互!的更多相关文章

  1. Productivity Power Tools 是微软官方推出的 Visual Studio 扩展

    Productivity Power Tools 是微软官方推出的 Visual Studio 扩展 免费的精品: Productivity Power Tools 动画演示

  2. 学不动了!微信官方推出 Web 前端和小程序统一框架 Kbone

    听说最近微信官方推出了一个统一 Web 前端和小程序的框架 -- Kbone ,特意去看了下... 为什么微信要搞Kbone? 微信小程序的底层模型和 Web 端不同,开发者无法直接把 Web 端的代 ...

  3. 同样是NGK官方推出的代币,SPC与BGV有何异同?

    近日,币圈又火热了起来,而这次火热是由NGK搅动的.原来,NGK官方空投了200万枚SPC,用于奖励NGK算力持有者.当前,已经有一部分算力持有者获得了SPC奖励,有的算力持有者获得的SPC数量惊人, ...

  4. 通过官方API结合源码,如何分析程序流程

    通过官方API结合源码,如何分析程序流程通过官方API找到我们关注的API的某个方法,然后把整个流程执行起来,然后在idea中,把我们关注的方法打上断点,然后通过Step Out,从内向外一层一层分析 ...

  5. 一个尖括号能干什么,画一个笑脸开始(为了支持交互,它又增添了JavaScript。HTML页面也越来越臃肿。于是CSS便诞生了。API和核心代码的出现使HTML能够访问更复杂的软件功能--支持更高级的交互和云服务集成。这就是今天的HTML5)

    一个尖括号 < 一个尖括号能干什么 < ? 你可以编出一顶帽子 <(:-p 或一张笑脸 :-> 再或者更直接一些 20世纪90年代初,html作为一种简单标记语言面世,用于在互 ...

  6. QQ 邀你上线小程序,官方生态能力持续赋能你的小程序

    转: QQ 邀你上线小程序,官方生态能力持续赋能你的小程序 你身边总有一些朋友,他们的表情包极其丰富,能时刻应对各种聊天场景. 表情包奇奇怪怪,可可爱爱,非常形象生动体现我们当下的心情,逐渐成为社交平 ...

  7. 微软官方推出的win10安装或者创建安装u盘的工具

    https://www.microsoft.com/zh-cn/software-download/windows10 下载安装后,可根据提示,一步步的安装win10或者创建安装u盘

  8. 使用声网 SDK 构建 Piloteer 助盲服务平台的最佳实践

    前言 在今年声网主办的「RTE2022 编程挑战赛」中,数支队伍经过一个多月的努力开发,很多优秀的作品最终突出重围,斩获大奖.本文由RTE2022编程挑战赛获奖者之一李新春撰写,他主要围绕获奖作品「P ...

  9. 使用WakeLock使Android应用程序保持后台唤醒

     在使用一些产品列如微信.QQ之类的,如果有新消息来时,手机屏幕即使在锁屏状态下也会亮起并提示声音,这时用户就知道有新消息来临了.但是,一般情况下手机锁屏后,Android系统为了省电以及减少CP ...

  10. Rhino 使 JavaScript 应用程序更灵动(转载)

    脚本语言有良好的快速开发,高效率的执行,解释而非编译执行等优点,并且具有与其他语言编写的组件之间强大的通信功能.JavaScript 一直是脚本语言中的领头羊,它是一门具有非常丰富特性的语言.除了浏览 ...

随机推荐

  1. 工作流调度器-Azkaban

    1.工作流调度器 1.为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 各任务单元之间存在时间先后 ...

  2. oracle配置SGA参数不当导致不能正确启动数据库实例处理

    原因:生成环境数据库想要增加数据库内存配置参数SGA_TARGET增加到42G,但是没有配置SGA_MAX_SIZE参数值,导致SHUTDOWN IMMEDIATE停止数据库,再STARTUP启动数据 ...

  3. flutter设置导航栏顶部标题与组件Text和Center和Container详解

    无状态组件和有状态组件的介绍 StatelessWidget 是无状态组件,状态是不可以改变的 StatefulWidget 是有状态组件 持有的状态可能在 widge 生命周期中改变 Statele ...

  4. 深入理解Mybatis分库分表执行原理

    前言 工作多年,分库分表的场景也见到不少了,但是我仍然对其原理一知半解.趁着放假前时间比较富裕,我想要解答三个问题: 为什么mybatis的mapper.xml文件里的sql不需要拼接表名中的分表? ...

  5. changeServer.sh一键切换服务器脚本

    直接看改进版2.0 切换服务器,免密登录vi changeServer.sh #!/bin/bash #authe by wangxp export IFCFG=/etc/sysconfig/netw ...

  6. Yarn公平调度器(Fair Scheduler)切换容量调度器(Capacity Scheduler)

    一.调度器简介 Fair Scheduler称为公平调度器,是Apache YARN内置的调度器.公平调度器主要目标是实现YARN上运行的应用能公平的分配到资源,其中各个队列使用的资源根据设置的权重( ...

  7. SecureCRT 屏幕输出行数设置

    第一步:打开设置 第二步:设置历史展示行数 第三步:保存后重启软件即可

  8. 傻妞教程——对接mongoDB使用返佣系统

    使用docker安装mongo 1.安装 1.1 拉取mongo镜像 docker pull mongo:4.4 1.2 创建mongo数据持久化目录 mkdir -p /docker_volume/ ...

  9. c++经典卡常

    1.展开函数 如下代码: void lowbit(int x) { return x&(-x); } signed main() { cout << lowbit(12345); ...

  10. 【ABAQUS2023-Output Vars】使用记录

    计算结构的应变能,ALLSE=所有单元的ESEDEN*EVOL.但这不适用于模态分析,因为模态分析EVOL不能用 ALLSE Field: no History: yes .fil: automati ...