前言
前一阵,AI领域又出现一件令人兴奋的事件,不是某个新模型的发布,也不是某个应用的创新,而是一个 Anthropic 在2024年11月推出的开放协议------MCP。
这个协议热起来有一段时间了,但是由于个人前期使用不多,一直没有分享,最近学习了下,尝试和大家聊聊。
缘起
首先,我们需要了解下,为什么会出现 MCP?
大模型最初的时候,只能进行对话,不管是文本,还是多模态的图片、视频,但是本质都是问答。
这距离我们想要的 AI,差距有点大,最起码,它得可以帮我我们"做"事才行。
后来,有了 function call
,我们可以通过自行调用外部 API 来实现大模型与外部能力的打通。
当时,大模型和外部能力的关系如下图:
这种情况下,整个大模型生态的复杂度会指数级上升。
并且,实际工作中,我们经常会在大模型中集成了某个外部能力,比如Gitee代码仓库操作,但大模型A中集成的代码在大模型B中往往不能直接使用,这会造成整体工作的大量重复和浪费。
因此,MCP 就诞生了。
简介
MCP 全称 Model Context Protocol,模型上下文协议,旨在通过统一标准约定 大模型
与 外部数据(资源)
和 外部能力(工具)
的通信。
MCP 核心组件如下:
-
Host:宿主程序,即当前使用的大模型的载体应用,比如 Claude Desktop、Cursor、字节Trae等等。
-
Client:MCP 客户端,即负责与 MCP Server 进行通信的组件,内置在 Host 中,比如 Cursor 就已经内置了,直接录入 MCP Server 后即可实现调用。
-
Server:MCP 服务器,即实际提供外部数据和外部能力的组件,一般在 Host 外部,可以是本地文件的封装,也可以是远程 REST 接口的封装。
其它概念:
- Resources :各类大模型外部的资源,可以是文本类型(源码、日志等),也可以是二进制类型(PDF、图片等),包括:
- 文件内容
- 数据库记录
- API 响应
- 实时系统数据
- 截图/图片
- 日志文件
- Tools :各类大模型外部的工具,可以是已经存在的接口改造而来,也可以是全新开发,包括:
- 文件系统接口
- 数据库访问(SQL)
- API接口
- 各类应用(企业微信) 等。
刚看到的资讯,MCP 最初的响应协议采用的 SSE 方案,前几天升级为 Streamable HTTP,更快,更方便。
应用场景
简单列举几个场景,方便大家了解 MCP 的应用。
- 代码开发:将自有组件或者非常用组件的文档集成进来,提供更加准确的AI辅助编码;集成浏览器 MCP,自动获取网页错误日志,加速调试工作。
- 数据分析:直接接入数据库、Excel等数据源,借助大模型能力分析各类指标。
- 企业办公:常用的邮箱、企业微信等应用,借助 MCP,不仅可以一步获取相关数据,还能代替人工进行邮件回复、企业微信消息发送。
总结
本次分享主要介绍了 MCP 的理论知识,让大家对其有个直观了解。
下次分享,会基于真实应用场景为大家呈现如何使用 MCP,敬请期待~