模型上下文协议

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

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

概述

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

核心概念

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

技术细节

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

基础协议

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

通信方式

MCP使用JSON-RPC 2.0消息在主机(发起连接的大型语言模型应用)、[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]

参见

参考资料

外部链接

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya