找回密码
 立即注册
首页 业界区 业界 C#实现自己的MCP Client

C#实现自己的MCP Client

尤晓兰 前天 10:16
市面上,有很多免费Client客户端。
虽然说,这些Client客户端可以满足我们大部分的需求,但是在实际企业业务场景中,免费的Client无法全部满足我们的需求。
下面我们用C# 实现MCP Client。
一、新建控制台项目

新建项目
1.png

框架选择.Net 8
2.png

二、添加MCP SDK

添加依赖库:ModelContextProtocol,版本为:最新预发行版 0.1.0-preview.13,添加的时候记得勾选:包括预发行版。
3.png

这个是官方提供的C#版本的SDK,官网:https://modelcontextprotocol.io/introduction。
三、实现客户端

下面代码,创建一个SSE客户端实例,并获取工具列表。
  1. using ModelContextProtocol.Client; // 包含 McpClientFactory 和 McpClient 相关定义
  2. using ModelContextProtocol.Protocol.Transport; // 包含传输层相关类,如 SseClientTransport
  3. // 创建一个 SSE(Server-Sent Events)客户端传输配置实例
  4. var config = new SseClientTransport(
  5.     // 配置传输选项,指定服务端点(Endpoint)
  6.     new SseClientTransportOptions()
  7.     {
  8.         // 设置远程服务器的 URI 地址  (记得替换真实的地址,从魔搭MCP广场获取)
  9.         Endpoint = new Uri("https://mcp.api-inference.modelscope.cn/sse/215e9461d2xxxxx")
  10.     }
  11. );
  12. // 使用配置创建 MCP 客户端实例
  13. var client = await McpClientFactory.CreateAsync(config);
  14. // 调用客户端的 ListToolsAsync 方法,获取可用工具列表
  15. var listToolsResult = await client.ListToolsAsync();
  16. Console.WriteLine("功能列表:");
  17. // 遍历工具列表,并逐个输出到控制台
  18. foreach (var tool in listToolsResult)
  19. {
  20.     Console.WriteLine($"  名称:{tool.Name},说明:{tool.Description}" );
  21. }
复制代码
运行效果如下,Fetch网页内容抓取,提供的工具列表。
4.png

这里MCP Server用的协议是Sse,Stdio协议实现,等后续文章自定义MCP Server会讲到。
官方也有提供C# 实现客户端的例子:
https://modelcontextprotocol.io/quickstart/client#c。
- End -
文章首发于公众号【编程乐趣】,欢迎大家关注。
5.png

推荐阅读
盘点11个.Net比较流行的开源的ORM框架
盘点6个WebAPI+Vue前后端分离的.Net开源项目
Duplicati:一款跨平台的备份客户端,支持加密、增量、压缩的备份存储在云存储服务和远程文件服务器
一个简单又好用的.Net版本.env文件读写操作库
盘点4个浏览器插件相关的.Net开源项目

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册