扩展SemanticKernel的MCPClient

扩展SemanticKernel的MCPClient在进入教程之前我们可以先对 MCP 进行一个大概的了解 MCP 是什么 为什么要用 MCP MCP 和 Function Calling 有什么区别 Model Context Protocol MCP 是一个开放协议 它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能 无论你是构建 AI 驱动的 IDE 改善 chat 交互 还是构建自定义的 AI 工作流 MCP 提供了一种标准化的方式

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



在进入教程之前我们可以先对MCP进行一个大概的了解,MCP是什么?为什么要用MCP?MCP和Function Calling有什么区别?

Model Context Protocol (MCP) 是一个开放协议,它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能。无论你是构建 AI 驱动的 IDE、改善 chat 交互,还是构建自定义的 AI 工作流,MCP 提供了一种标准化的方式,将 LLM 与它们所需的上下文连接起来。

  • MCP Hosts: 想要通过MCP访问数据的程序,如Claude Desktop、ide或AI工具
  • MCP Clients: 与服务器保持1:1连接的协议客户端
  • MCP Servers: 轻量级程序,每个程序都通过标准化的模型上下文协议公开特定的功能
  • Local Data Sources: MCP服务器可以安全访问的计算机文件、数据库和服务
  • Remote Services: MCP服务器可以连接的internet上可用的外部系统(例如通过api)
  1. 扩展LLM的能力:让模型能够访问最新数据、专有信息和本地资源
  2. 数据私密性和安全性:数据可以保留在本地或受控环境中,减少敏感信息共享的风险
  3. 工具集成:使LLM能够调用和控制外部工具,扩展其功能范围
  4. 减少幻觉:通过提供准确的上下文信息,降低模型生成虚假内容的可能性
  5. 标准化:为开发者提供一致的接口,简化集成过程
  6. 可扩展性:支持从简单用例到复杂企业级应用的多种场景
  7. 跨语言的能力:通过标准的MCP协议我们可以使用不同语言提供的MCPServer的能力

我听过最多人问的就是MCP和Function Calling有什么区别?

特性 MCP Function Calling 基础关系 基于Function Calling构建并扩展 作为MCP的基础技术 设计范围 更广泛的协议,处理上下文获取和工具使用 主要聚焦于调用特定函数 架构 客户端-服务器架构,支持分布式系统 通常是API参数的直接定义和调用 数据处理 可以处理大型数据集和复杂上下文 主要处理结构化的函数参数和返回值 上下文管理 专门设计用于管理和提供上下文 上下文管理不是核心功能 标准化程度 开放协议,旨在跨不同系统和模型标准化 实现方式因平台而异,标准化程度较低 应用场景 适用于需要复杂上下文和工具集成的场景 适用于调用预定义函数执行特定任务

简而言之,MCP(Model Context Protocol)是在Function Calling基础上发展而来的更全面的协议,它不仅保留了Function Calling的核心功能,还扩展了上下文获取和管理能力,为LLM提供更丰富、更标准化的环境交互能力。

前提条件,您需要先将上一个教程的MCPServer跑起来一会才能进行当前步骤,因为MCPClient是需要MCPServer提供Tools,下面我默认您已经运行了MCPServer,

然后可以访问 https://account.coreshub.cn/signup?invite=ZmpMQlZxYVU= 获取免费的DeepSeek-V3模型和白嫖GPU服务器,通过上面连接注册以后访问

https://console.coreshub.cn/xb3/maas/global-keys/ 地址获取到APIKey

然后记住我们的APIKey,开始下面的旅途

创建一个McpClient的控制台项目

给项目添加依赖包

 
  

下面的教程我们将使用开发,然后依赖官方的包,然后我们需要用到

开始我们的代码开发

由于SemnaticKernel默认是不能直接使用MCP的功能,那么我们需要先对它进行扩展

创建几个基础类

 
  

接下来创建MCP的扩展类,用于将MCPFunction进行转换成SemanticKernel Function

 
  

然后创建SemanticKernel的扩展,对SKFunction进行扩展

 
  

现在我们就可以实现核心的代码了,打开我们的

 
  

然后开始启动我们的MCPClient,在此之前需要先修改代码中的参数改成自己的,然后先启动MCPServer以后,在启动我们的MCPClient

执行以后提问1+1=?然后会得到一下的结果

在执行之前我们可以先在MCPServer中的算法函数Debug,这样就可以清晰的看到进入的流程了

通过上面的案例,恭喜您您已经熟练的掌握了MCPServer+MCPClient+SemanticKernel的入门级教程

小讯
上一篇 2026-04-05 10:05
下一篇 2026-04-05 10:03

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/222337.html