跳转到内容

模型上下文协议

本页使用了标题或全文手工转换
维基百科,自由的百科全书

模型上下文协议(英语:Model Context Protocol,缩写:MCP)是 Anthropic 所推动的一项开放标准[1],旨在为大型语言模型(LLMs)应用提供一个标准化的接口,使其能够连接和交互外部数据源和工具[2]

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

概述

[编辑]

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

核心概念

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

技术细节

[编辑]

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

基础协议

[编辑]

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

通信方式

[编辑]

MCP 使用 JSON-RPC 2.0 消息在主机(发起连接的 LLM 应用)、[2] 客户端(主机应用内的连接器)[2] 和服务器(提供上下文和能力的外部服务)[2] 之间建立通信。[2]

服务器功能

[编辑]

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

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

客户端功能

[编辑]

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

  • 采样 (Sampling): 服务器发起的代理行为和递归 LLM 交互。[2]

附加实用工具

[编辑]

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

  • 配置 (Configuration)[2]
  • 进度跟踪 (Progress tracking)[2]
  • 取消 (Cancellation)[2]
  • 错误报告 (Error reporting)[2]
  • 日志记录 (Logging)[2]

应用场景

[编辑]

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

参见

[编辑]

参考资料

[编辑]

外部链接

[编辑]