[Request] Support MCP Version 2026-07-28

当 LobeChat 通过 Streamable HTTP 连接一个只接受 MCP 协议版本 2026-07-28 的 MCP 服务时,客户端仍以 2025-11-25 发起初始化,被服务端拒绝,报错为 [Request] Support MCP Version 2026-07-28。优先排查客户端

快速结论:当 LobeChat 通过 Streamable HTTP 连接一个只接受 MCP 协议版本 2026-07-28 的 MCP 服务时,客户端仍以 2025-11-25 发起初始化,被服务端拒绝,报错为 [Request] Support MCP Version 2026-07-28。优先排查客户端侧 MCP 版本协商机制,而不是先怀疑 MCP 服务配置。

适用环境:Issue 中确认的场景为 LobeChat 的 MCP 客户端(Web/服务端与 Electron 侧),通过 Streamable HTTP 连接 MCP 服务;未提供操作系统、Python、CUDA、显卡等环境信息。

最快修复方案:暂无确认的一步修复方案。Issue 中的参考实现仅为限定在客户端的自测方案,尚未在作者使用的具体服务上验证。

注意事项:Issue 提到的做法是 Web/服务端与 Electron 的 MCP 客户端改用独立的 @modelcontextprotocol/client v2 并在 HTTP 启用 versionNegotiation: { mode: 'auto' },stdio 保留 legacy 启动,内置 MCP 服务端及 OAuth discovery 回调继续使用 v1,并未做全库 SDK 升级。该方案只有测试服务的回归结果,未覆盖具体服务与产品界面,新增交互功能也不在其范围内;落地前需按官方迁移指南自行评估兼容性。

问题场景

用户在 LobeChat 中配置并连接 MCP 服务(Streamable HTTP 方式),尝试获取 Manifest 时失败。用户希望 LobeChat 支持最新的 MCP 协议版本 2026-07-28,而客户端当前只支持 2025-11-25 等较早版本。

报错原文

获取 Manifest 失败: Streamable HTTP error: Error POSTing to endpoint: {"jsonrpc":"2.0","error":{"code":-32022,"message":"Unsupported protocol version: 2025-11-25","data":{"supported":["2026-07-28"],"requested":"2025-11-25"}},"id":0}

原因分析

根据 Issue 中维护者的定位,当前 HTTP 连接由 SDK v1 发起 2025-11-25 初始化,报错中的 requested 版本正来自这里;2024-11-05 常量只用于 stdio 失败后的诊断,不影响该 HTTP 场景。也就是说,问题出在客户端侧发起的协议版本与服务端要求的版本不匹配,而非服务端配置错误。服务端 data 中 supported 仅列出 2026-07-28,客户端发起的 2025-11-25 因此被拒绝。

环境排查

  • 确认 LobeChat 的 MCP 连接方式:本次报错属于 Streamable HTTP 场景,stdio 场景不适用该结论。
  • 确认 MCP 服务端支持的协议版本(报错 data.supported 字段会直接列出)。
  • 确认当前 LobeChat 所用 MCP SDK 版本及其默认发起的协议版本;Issue 指出当前 HTTP 连接由 SDK v1 发起 2025-11-25。
  • 如需在 Electron 端复现,需同时区分 Web/服务端与 Electron 的 MCP 客户端实现。

解决步骤

  1. 先确认报错来自 Streamable HTTP 连接,且服务端仅支持 2026-07-28,排除 stdio 及其他连接方式的干扰。
  2. 参考 Issue 中维护者提供的限定客户端参考实现(固定 diff),检查 LobeChat 的 MCP 客户端依赖与初始化逻辑。
  3. 按参考实现方向,将 Web/服务端与 Electron 的 MCP 客户端改用独立的 @modelcontextprotocol/client v2,并在 HTTP 初始化中启用 versionNegotiation: { mode: 'auto' },通过 server/discover 识别 2026 服务并回退兼容旧协议。
  4. stdio 连接保留 legacy 启动方式;内置 MCP 服务端与 OAuth discovery 回调继续使用 v1,避免全库 SDK 升级带来的连带影响。
  5. 改动后保留工具超时、认证头以及协议错误的工具失败结果处理,避免排错信息丢失。
  6. 可优先尝试:在测试环境按上述方式改造后,用 2026 与 2025 两种 HTTP 协议回归测试,并运行现有 stdio 测试与协议错误分类回归测试。
  7. 若你使用的是具体第三方 MCP 服务,请在改造后的版本上再次连接该服务验证;Issue 未验证作者实际使用的服务,不宜直接将测试结果视为生产可用结论。

验证方法

再次在 LobeChat 中通过 Streamable HTTP 连接该 MCP 服务并获取 Manifest,若不再出现 Unsupported protocol version 且能正常拉取工具列表,即说明版本协商生效。同时应确认连接旧版协议的 MCP 服务仍可正常回退,stdio 连接与协议错误处理行为未发生回归。

参考来源

lobehub/lobe-chat #20108

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 32572

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注