2 篇文章带有标签 “transport”

MCP 基础协议

模型上下文协议(Model Context Protocol)由几个协同工作的关键组件组成:

  • 基础协议:核心 JSON-RPC 消息类型
  • 生命周期管理:连接初始化、能力协商和会话控制
  • 服务器功能:服务器提供的资源、提示和工具
  • 客户端功能:客户端提供的采样和根目录列表
  • 实用工具:跨领域关注点,如日志记录和参数补全

所有实现必须支持基础协议和生命周期管理组件。其他组件可以根据应用程序的特定需求来实现。

这些协议层在实现客户端和服务器之间丰富交互的同时,建立了明确的关注点分离。模块化设计允许实现精确支持所需的功能。

消息

MCP 客户端和服务器之间的所有消息必须遵循 JSON-RPC 2.0 规范。协议定义了以下类型的消息:

请求(Requests)

请求从客户端发送到服务器,或者从服务器发送到客户端,用于启动操作。

{
  jsonrpc: "2.0";
  id: string | number;
  method: string;
  params?: {
    [key: string]: unknown;
  };
}
  • 请求必须包含字符串或整数 ID。
  • 与基本 JSON-RPC 不同,ID 不得null
  • 请求 ID 不得在同一会话中被请求者先前使用过。

响应(Responses)

响应是对请求的回复,包含操作的结果或错误。

Model Context Protocol (MCP) 的核心概念和能力

Introduction简介

Model Context Protocol (MCP) 入门

MCP 是一个开放协议,用于标准化应用程序向 LLM 提供上下文的方式。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。

为什么选择 MCP?

MCP 帮助您在 LLM 之上构建代理和复杂的工作流程。LLM 经常需要与数据和工具集成,而 MCP 提供了:

  • 越来越多的预构建集成,您的 LLM 可以直接插入
  • 在 LLM 提供商和供应商之间切换的灵活性
  • 在您的基础设施中保护数据的最佳实践

一般架构

MCP 的核心遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器:

flowchart LR
    subgraph "您的计算机"
        Host["带有 MCP 客户端的主机<br>(Claude、IDE、工具)"]
        S1["MCP 服务器 A"]
        S2["MCP 服务器 B"]
        S3["MCP 服务器 C"]
        Host <-->|"MCP 协议"| S1
        Host <-->|"MCP 协议"| S2
        Host <-->|"MCP 协议"| S3
        S1 <--> D1[("本地<br>数据源 A")]
        S2 <--> D2[("本地<br>数据源 B")]
    end
    subgraph "互联网"
        S3 <-->|"Web APIs"| D3[("远程<br>服务 C")]
    end
  • MCP 主机:希望通过 MCP 访问数据的程序,如 Claude Desktop、IDE 或 AI 工具
  • MCP 客户端:维护与服务器 1:1 连接的协议客户端
  • MCP 服务器:轻量级程序,每个程序通过标准化的模型上下文协议公开特定的功能
  • 本地数据源:您的计算机的文件、数据库和服务,MCP 服务器可以安全地访问
  • 远程服务:通过互联网(例如,通过 API)可用的外部系统,MCP 服务器可以连接到

Core architecture(核心架构)

了解 MCP 如何连接客户端、服务器和 LLM