问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MCP(Model Context Protocol)协议介绍

创作时间:
作者:
@小白创作中心

MCP(Model Context Protocol)协议介绍

引用
CSDN
1.
https://blog.csdn.net/weixin_38358700/article/details/144087381

MCP(Model Context Protocol)是一种开放协议,可实现LLM应用程序与外部数据源和工具之间的无缝集成。无论是构建智能IDE、扩展接口,还是创建AI工作流程,MCP都提供了一种标准化方法,将LLMs与其所需的上下文连接起来。本文将详细介绍MCP的各个组件及其功能,并通过实例说明其工作原理。

如上图所示,MCP的主要组件包括:

  • MCP Hosts: 通过MCP访问资源的程序,例如Claude Desktop、IDE或AI工具。
  • MCP Clients: 与服务器保持1:1连接的协议客户端。
  • MCP Servers: 每个轻量级程序都通过标准化模型上下文协议公开特定功能。
  • Local Resources: MCP服务器可以安全访问的计算机资源(数据库、文件、服务)。
  • Remote Resources: MCP服务器可以连接到的互联网上可用的资源(例如,通过API)。

其中,MCPServer是核心组件,它实现了本地资源或远端资源的交互,并且实现了MCP协议。Host通过调用不同的MCPServer来访问各种资源,例如GitHub相关或SQLite相关。

原理

当使用MCP与Claude Desktop交互时,具体流程如下:

  1. Server Discovery: Claude Desktop在启动时连接到配置好的MCP服务器。
  2. Protocol Handshake: 当询问数据时,Claude Desktop:
  • 确定哪个MCP服务器可以提供帮助(在本例中为SQLite)
  • 通过协议协商能力
  • 从MCP服务器请求数据或操作
  1. Interaction Flow:
  2. Security:
  • MCP服务器仅公开特定的、受控的功能
  • MCP服务器在本地运行,它们访问的资源不会暴露在互联网上
  • 需要用户确认敏感操作

不过,这种架构也存在一个问题:MCPServer是如何部署到本地的?如果一开始就集成到安装包里面,那后续要扩展,是否需要动态从仓库中下载?

已有的MCPServer

在官方给出的仓库里面,已经包含了10余种Server,包括git、github、sqlite等,不过目前来看,数量还是比较少的。所以理论上,如果要获取更多服务,还是要面向自己的业务编写Server。

如何创建自己的MCPServer

以下是用Python生成一个MCPServer的示例,总体来说还是比较方便。

  1. 前置工作
  • 创建工程:MCP已经提供了工程创建器,可以通过“create-mcp-server”直接创建模板工程。这里使用uv包管理器。
  • 创建环境:需要创建一个访问服务的Key。当要访问的服务需要验证时,就需要添加访问Key。
  1. 创建服务
    在模板weather_service/src/weather_service/server.py文件中,添加具体代码。后续只要实现MCP的具体接口即可。

总结

MCP是一个全新的协议,在AI领域也需要一个统一的协议去抽象不同工具、数据的调用。MCP如果能继续发展完善,将有可能成为AI领域的LSP。此外,对工具的调用,让我们容易想到另一种方式——Function Call,以下是它和MCP的使用建议:

  • 对于需要复杂上下文管理的场景,优先考虑MCP
  • 对于需要明确功能调用的场景,继续使用Function Call
  • 在大型项目中考虑两者结合使用

目前来看,可以将MCP、FunctionCall、视觉驱动三者结合起来,进而增大AI的交互边界,为用户带来更便捷的体验。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号