模型上下文协议

模型上下文协议（，缩写：MCP）是Anthropic所推动的一项开放标准，目的是为大型语言模型应用提供一个标准化接口，使其能够连接外部数据源和工具，并与其交互。

MCP的目标在克服大型语言模型应用仅依赖其训练数据的局限性，使其能够获取所需的上下文信息，以执行更广泛的任务。MCP通过定义一套通用的准则和格式，使得大型语言模型应用可以在需要时动态地获取相关信息、执行操作，从而增强其功能和使用范围。

 概述 

模型上下文协议的核心在于建立一个标准化的通信层，使得大型语言模型能够在处理用户请求或执行任务时，如果需要访问外部信息或功能，可以通过MCP客户端向MCP服务器发送请求。MCP服务器则负责与相应的外部数据源或工具进行交互，获取数据并按照MCP协议规范进行格式化，最后将格式化后的数据返回给大型语言模型。大型语言模型接收到上下文信息后，可以将其用于生成更准确、更相关的回复，或者执行用户请求的操作。

 核心概念 
 协议规范（Protocol Specification）: 定义了客户端和服务器端之间通信的规则、数据格式、请求和响应结构以及错误处理机制。
MCP客户端（MCP Client）: 在 LLM或其服务基础设施端的实现，负责构建请求并发送给MCP服务器。Anthropic 提供了多种编程语言（如Python、TypeScript和Java）的SDK，以简化MCP客户端的开发。
 MCP服务器（MCP Server）: 在外部系统端的实现，接收来自MCP客户端的请求，与实际的数据源或工具进行交互，并将获取的数据按照MCP协议规范格式化后返回给客户端。
 上下文信息交换（Contextual Information Exchange）: 促进大型语言模型与外部系统之间上下文信息的双向交换。
 能力协商（Capability Negotiation）: 允许客户端和服务器在通信开始时确定彼此支持的功能和协议版本。

 技术细节 
模型上下文协议 的技术实现旨在为大型语言模型应用与外部数据源和工具之间的无缝集成提供标准化的方法。 该协议基于JSON-RPC 2.0消息格式，建立状态连接，并支持服务器和客户端的能力协商。

 基础协议 
MCP的核心通信协议基于JSON-RPC 2.0消息格式。 这是一种轻量级的远程过程调用协议，使用JSON作为数据格式。 MCP连接是状态化的，允许在连接的生命周期内进行多次请求和响应。 协议还支持 服务器和客户端的能力协商，使得双方在通信开始时可以确定彼此支持的功能。

 通信方式 
MCP使用JSON-RPC 2.0消息在主机（发起连接的大型语言模型应用）、 客户端（主机应用内的连接器） 和服务器（提供上下文和能力的外部服务） 之间建立通信。

 服务器功能 
MCP服务器可以向客户端提供以下功能：

 资源（Resources）: 供用户或 AI 模型使用的上下文和数据。
 提示（Prompts）: 供用户使用的模板化消息和工作流。
 工具（Tools）: 供 AI 模型执行的函数。

 客户端功能 
MCP客户端可以向服务器提供以下功能：

 采样（Sampling）: 服务器发起的代理行为和递归 LLM 交互。

 MCP 架构和组件 
Model Context Protocol 具有清晰的结构，各组件协同工作，帮助 LLM 与外部系统轻松交互。

 MCP 主机 
LLM 包含在 MCP 主机中，也就是 AI 应用或环境，例如由 AI 赋能的 IDE 或对话式 AI。这通常是用户的交互点，MCP 主机会在此使用 LLM 处理可能需要外部数据或工具的请求。

 MCP 客户端 
MCP 客户端位于 MCP 主机内，帮助 LLM 与 MCP 服务器进行通信。它将 LLM 的请求转换为 MCP 可处理的格式，并将 MCP 的回复转换为 LLM 可理解的格式。它还会发现并调用可用的 MCP 服务器。

 MCP 服务器 
MCP 服务器是为 LLM 提供上下文、数据和功能的外部服务。它通过连接数据库和 Web 服务等外部系统来帮助 LLM，将这些系统的响应转换为 LLM 可理解的格式，从而协助开发者提供多样化的功能。

 传输层 
传输层通过 JSON-RPC 2.0 消息在客户端和服务器之间通信，主要采用以下两种传输方式：

 标准输入/输出 (stdio)：适用于本地资源，可实现快速的同步消息传输。
 服务器发送的事件 (SSE)：是远程资源的首选方法，可实现高效的实时数据流传输。

 附加实用工具 
MCP 还定义了以下附加实用工具，以增强协议的功能：

 配置（Configuration）
 进度跟踪（Progress tracking）
 取消（Cancellation）
 错误报告（Error reporting）
 日志记录（Logging）

 应用场景 
MCP可以应用于增强型AI助手、知识管理系统、客户服务聊天机器人、内容创作工具、软件开发、金融分析和医疗保健等领域。

 参见 
大型语言模型
人工智能
应用程序编程接口
开放源代码
Anthropic

 参考资料 

 外部链接 


 SDK documentation from OpenAI 

Category:生成式人工智能
Category:应用层协议
Category:公開標準