一、概述
MCP(Model Context Protocol,即模型上下文协议)是由 Anthropic(Claude 的母公司)于 2024年11月 开源发布的一项 全新技术。
简单来说,MCP 是一个 AI 大模型的标准化工具箱。
大模型可以通过这些工具与 外界互动,获取信息,并 完成具体任务。
在日常工作和学习中,我们经常需要与 浏览器、文件、数据库 和 代码仓库 等外部工具进行交互。
在 传统方式 中,我们需要 手动截图 或 复制文本,再将其 粘贴 到 AI 窗口 中进行对话。
大家请注意,我的插画中的箭头都是从右到左,表示内容是单向流动的,而不是双向的。
这意味着我们是将浏览器、文件系统或GitHub中的信息复制到 AI 中,以便进行对话时的数据流向。
MCP通过标准化的协议,让我们不再需要手动截图、复制文本,然后再粘贴到AI 窗口中进行对话。
这一过程被自动化了,简化了我们的操作。
MCP 服务充当AI 和外部工具之间的桥梁,能够自动替代人类访问和操作这些外部工具。
在我的插图中,箭头为双向,表示AI 可以直接访问 MCP 服务。
而 MCP 服务则能访问浏览器、文件系统等数据源。
通过这种方式,数据能够通过 MCP 服务传输到 AI 中。
每个 MCP 服务(也称为 MCP Server)专注于特定的任务。
例如,有的服务专门用于读取和写入浏览器信息,有的负责处理本地文件,还有的用于操作 Git 仓库等。
MCP Server 通常是一个在本地运行的程序,可能是用 Node.js 或 Python 开发的。
大模型通过操作系统的 标准输入输出(stdio),即我们常说的输入与输出通道,来进行信息交流与处理,并调用某个 MCP Server。
它的信息格式是 JSON,这是一种常用的数据交换格式。
{
"jsonrpc": "2.0",
"id": 129,
"method": "tools/call",
"params": {
"name": "search_repositories",
"arguments": {
"query": "user:BNTang"
}
}
}
MCP Server 在接收到请求后,会通过自身的代码或外部工具的 API来执行任务。
从这里可以看出,MCP 协议与 Function Calling 非常相似。
MCP 的最大优点是整合了之前各大模型不同的Function Call 标准,形成了一个统一的标准协议。
而且,不仅是 Claude,几乎所有市面上的大模型都可以接入 MCP。