MCP:模型上下文协议
MCP 起源于 2024 年 11 月 25 日 Anthropic 发布的文章 Introducing the Model Context Protocol【1】。MCP (Model Context Protocol,模型上下文协议)定义了应用程序和 AI 模型之间交换上下文信息的方式。这使得开发者能够以一致的方式将各种数据源、工具和功能连接到 AI 模型(一个中间协议层),就像 USB-C
介绍MCP (Model Context Protocol,模型上下文协议)
1.介绍
MCP 起源于 2024 年 11 月 25 日 Anthropic 发布的文章 Introducing the Model Context Protocol【1】。
MCP (Model Context Protocol,模型上下文协议)定义了应用程序和 AI 模型之间交换上下文信息的方式。这使得开发者能够以一致的方式将各种数据源、工具和功能连接到 AI 模型(一个中间协议层),就像 USB-C 让不同设备能够通过相同的接口连接一样。MCP 的目标是创建一个通用标准,使 AI 应用程序的开发和集成变得更加简单和统一,如图1所示【2】。
图1:MCP概念图
随着人工智能助手获得主流采用,该行业在模型能力方面投入巨资,在推理和质量方面取得了快速进步。然而,即使是最复杂的模型也会受到与数据隔离的限制,这些模型被困在信息孤岛和遗留系统后面。每个新数据源都需要自己的自定义实现,这使得真正互联的系统难以扩展。
MCP 解决了这一挑战。它提供了一个通用的、开放的标准,用于将人工智能系统与数据源连接起来,用单一协议取代零散的集成。其结果是一种更简单、更可靠的方式,让人工智能系统能够访问所需的数据。
可以看出,MCP 就是以更标准的方式让 LLM Chat 使用不同工具,更简单的可视化如下图2所示,这样你应该更容易理解“中间协议层”的概念了。Anthropic 旨在实现 LLM Tool Call 的标准【2】。
图2:mcp 简单理解
为什么使用MCP?
我认为 MCP 的出现是 prompt engineering 发展的产物。更结构化的上下文信息对模型的 performance 提升是显著的。我们在构造 prompt 时,希望能提供一些更 specific 的信息(比如本地文件,数据库,一些网络实时信息等)给模型,这样模型更容易理解真实场景中的问题。
想象一下没有 MCP 之前我们会怎么做?我们可能会人工从数据库中筛选或者使用工具检索可能需要的信息,手动的粘贴到 prompt 中。随着我们要解决的问题越来越复杂,手工把信息引入到 prompt 中会变得越来越困难。
为了克服手工 prompt 的局限性,许多 LLM 平台(如 OpenAI、Google)引入了 function call 功能。这一机制允许模型在需要时调用预定义的函数来获取数据或执行操作,显著提升了自动化水平。
但是 function call 也有其局限性(我对于 function call vs MCP 的理解不一定成熟,欢迎大家补充),我认为重点在于 function call 平台依赖性强,不同 LLM 平台的 function call API 实现差异较大。例如,OpenAI 的函数调用方式与 Google 的不兼容,开发者在切换模型时需要重写代码,增加了适配成本。除此之外,还有安全性,交互性等问题。
数据与工具本身是客观存在的,只不过我们希望将数据连接到模型的这个环节可以更智能更统一。Anthropic 基于这样的痛点设计了 MCP,充当 AI 模型的"万能转接头",让 LLM 能轻松的获取数据或者调用工具。更具体的说 MCP 的优势在于:
- 生态 - MCP 提供很多现成的插件,你的 AI 可以直接使用。
- 统一性 - 不限制于特定的 AI 模型,任何支持 MCP 的模型都可以灵活切换。
- 数据安全 - 你的敏感数据留在自己的电脑上,不必全部上传。(因为我们可以自行设计接口确定传输哪些数据)【2】
2.模型上下文协议
MCP架构图如图3所示。MCP 由三个核心组件构成:Host、Client 和 Server。让我们通过一个实际场景来理解这些组件如何协同工作:
假设你正在使用 Claude Desktop (Host) 询问:“我桌面上有哪些文档?”
- Host:Claude Desktop 作为 Host,负责接收你的提问并与 Claude 模型交互。
- Client:当 Claude 模型决定需要访问你的文件系统时,Host 中内置的 MCP Client 会被激活。这个 Client 负责与适当的 MCP Server 建立连接。
- Server:在这个例子中,文件系统 MCP Server 会被调用。它负责执行实际的文件扫描操作,访问你的桌面目录,并返回找到的文档列表。
整个流程是这样的:你的问题 → Claude Desktop(Host) → Claude 模型 → 需要文件信息 → MCP Client 连接 → 文件系统 MCP Server → 执行操作 → 返回结果 → Claude 生成回答 → 显示在 Claude Desktop 上。
这种架构设计使得 Claude 可以在不同场景下灵活调用各种工具和数据源,而开发者只需专注于开发对应的 MCP Server,无需关心 Host 和 Client 的实现细节。
图3:MCP架构图
模型上下文协议是一种开放标准,使开发人员能够在其数据源和 AI 驱动的工具之间构建安全的双向连接。该架构很简单:开发人员可以通过MCP 服务器公开他们的数据,也可以构建连接到这些服务器的 AI 应用程序(MCP 客户端)。
今天,我们为开发人员介绍模型上下文协议的三个主要组件:
模型上下文协议规范和 SDK
Claude 桌面应用程序中的本地 MCP 服务器支持
MCP 服务器的开源存储库
Claude 3.5 Sonnet 擅长快速构建 MCP 服务器实现,使组织和个人可以轻松地将他们最重要的数据集与一系列人工智能驱动的工具快速连接起来。为了帮助开发人员开始探索,我们正在分享适用于 Google Drive、Slack、GitHub、Git、Postgres 和 Puppeteer 等流行企业系统的预构建 MCP 服务器。
Block 和 Apollo 等早期采用者已将 MCP 集成到他们的系统中,而 Zed、Replit、Codeium 和 Sourcegraph 等开发工具公司正在与 MCP 合作以增强他们的平台——使 AI 代理能够更好地检索相关信息,以进一步了解编码任务的上下文,并以更少的尝试生成更细致和实用的代码。
“在 Block,开源不仅仅是一种开发模式,它是我们工作的基础,也是我们致力于创造推动有意义的变革并作为所有人的公共产品的技术的承诺,”Block 首席技术官 Dhanji R. Prasanna 说。“模型上下文协议等开放技术是将人工智能与现实世界应用程序连接起来的桥梁,确保创新可访问、透明并植根于协作。我们很高兴能合作制定协议并使用它来构建代理系统,这消除了机械的负担,让人们可以专注于创意。
开发人员现在可以根据标准协议进行构建,而不是为每个数据源维护单独的连接器。随着生态系统的成熟,人工智能系统将在不同工具和数据集之间移动时保持上下文,用更可持续的架构取代当今分散的集成【1】。
3.开始
开发人员可以立即开始构建和测试 MCP 连接器。所有 Claude.ai 计划都支持将 MCP 服务器连接到 Claude 桌面应用程序。
Claude for Work 客户可以开始在本地测试 MCP 服务器,将 Claude 连接到内部系统和数据集。我们很快将提供用于部署远程生产 MCP 服务器的开发人员工具包,这些服务器可以为您的整个 Claude for Work 组织提供服务。
开始构建:
- 通过 Claude 桌面应用程序安装预构建的 MCP 服务器 ,提供了详细的教程【3】
- 按照我们的快速入门指南构建您的第一个 MCP 服务器
- 为我们的连接器和实现的开源存储库做出贡献
我们致力于将 MCP 构建为一个协作式开源项目和生态系统,我们渴望听到您的反馈。无论您是人工智能工具开发人员、希望利用现有数据的企业,还是探索前沿的早期采用者,我们都邀请您共同构建上下文感知人工智能的未来【1】。
参考文献
【1】Introducing the Model Context Protocol
https://www.anthropic.com/news/model-context-protocol
【2】MCP (Model Context Protocol),一篇就够了。
https://zhuanlan.zhihu.com/p/29001189476
【3】Connect to Local MCP Servers
https://modelcontextprotocol.io/quickstart/user
更多推荐



所有评论(0)