2026 年 7 月 28 日,Model Context Protocol 正式发布 2026-07-28 版本。

这是 MCP 发布以来规模最大的一次协议调整。它没有停留在增加几个字段、补充几个工具类型,而是直接重构了 MCP 的通信基础:删除协议级会话,让每一次请求都能够独立处理。

对于普通开发者来说,这听起来可能只是一次协议升级;但对于真正需要部署 MCP 服务的后端开发者来说,它解决的是负载均衡、横向扩容、缓存、鉴权和链路追踪等生产环境问题。

MCP 到底解决什么问题?

MCP 全称是 Model Context Protocol,即模型上下文协议。

它定义了一套统一方式,让 ChatGPT、Claude、Cursor 或其他 AI Agent,可以连接外部系统并调用真实能力,例如:

  • 查询数据库中的订单;
  • 读取项目文档;
  • 搜索 GitHub Issue;
  • 创建工单;
  • 调用企业内部接口;
  • 执行一项异步任务;
  • 获取服务器监控数据。

过去,不同模型、不同应用和不同工具之间通常需要分别开发适配代码。

MCP 的作用,就是在 AI 客户端和业务系统之间建立一套统一协议。业务系统只要暴露符合 MCP 规范的工具,支持 MCP 的 AI 客户端就可以发现并调用这些工具。

因此,MCP 并不只是所谓的“AI 插件协议”,它正在逐渐成为 AI Agent 访问外部系统的基础接口层。

最大变化:MCP 不再维护协议级会话

在旧版本中,MCP 客户端连接远程服务器时,需要先发送 initialize 请求完成初始化。

服务器随后返回一个 Mcp-Session-Id,后续请求必须携带该 Session ID。这意味着来自同一个客户端的请求,通常需要继续落到创建该会话的服务器实例。

当 MCP 服务部署多个实例时,就会产生几个问题:

  1. 负载均衡器需要配置粘性会话;
  2. 多个服务实例之间可能需要共享 Session;
  3. 网关必须理解更多协议状态;
  4. 某个实例异常后,会话恢复更加复杂。

2026-07-28 版本中,initializeinitialized 握手被删除,Mcp-Session-Id 以及协议层维护的 Session 也被移除。

协议版本、客户端信息和客户端能力改为通过每次请求的 _meta 传递。如果客户端需要提前了解服务器能力,可以调用新的 server/discover 方法。

这意味着,一次 MCP 请求可以被任意服务器实例处理。

部署架构也可以从:

AI 客户端
    ↓
负载均衡器
    ↓ 粘性会话
指定 MCP 实例
    ↓
共享 Session 存储

简化为:

AI 客户端
    ↓
普通负载均衡器
    ↓
任意 MCP 实例

对于熟悉 RESTful API 的后端开发者来说,这种设计并不陌生。

协议本身保持无状态,业务状态则通过明确的业务标识传递。

例如,一个视频生成工具第一次执行后返回:

{
  "task_id": "task_20260730_10001",
  "status": "processing"
}

后续查询任务时,AI Agent 再将 task_id 作为工具参数传回:

{
  "task_id": "task_20260730_10001"
}

这里的任务状态依然可以保存在 MySQL、Redis 或消息队列中,只是不再隐藏在 MCP 协议的 Session 里。

请求变得更容易路由、缓存和追踪

新版 Streamable HTTP 请求增加了两个重要请求头:

Mcp-Method: tools/call
Mcp-Name: search

网关、负载均衡器和限流系统可以直接根据请求头判断当前调用的 MCP 方法和工具,不需要再解析整个 JSON 请求体。

这带来了几个实际价值:

  • 可以针对不同工具设置不同限流规则;
  • 可以将高消耗工具路由到独立服务;
  • 可以按照工具名称记录调用次数;
  • 可以在网关层阻止高风险工具;
  • 可以快速区分工具查询和工具执行请求。

新版还为工具列表和资源读取结果增加了 ttlMscacheScope

客户端可以明确知道 tools/list 的结果能够缓存多久,以及缓存结果是否可以跨用户共享,不再需要每次对话都重新拉取完整工具列表。

此外,新版规范统一了 W3C Trace Context 的字段,包括:

traceparent
tracestate
baggage

一次 AI 工具调用可以从客户端开始,经过 MCP SDK、MCP 服务、内部 API、数据库和消息队列,最终在兼容 OpenTelemetry 的链路追踪系统中形成完整调用链。

这说明 MCP 已经不再只考虑“工具能不能调用”,而是开始解决生产环境中的可观测性问题。

Tasks:长期任务有了正式生命周期

AI Agent 调用的操作并不一定能立即完成。

例如:

  • 生成一段视频;
  • 批量分析文件;
  • 导出大型报表;
  • 执行代码扫描;
  • 部署一个应用;
  • 处理大量数据库记录。

这些任务可能需要几十秒甚至数分钟,不适合让 HTTP 请求一直保持连接。

新版将 Tasks 作为正式扩展。服务器可以在收到 tools/call 后返回一个任务句柄,客户端再通过以下方法管理任务:

tasks/get
tasks/update
tasks/cancel

任务是否转为异步处理,由服务器根据实际情况决定,而不是让客户端强制指定。

这和后端系统常见的异步任务架构非常接近:

MCP Tool
   ↓
创建业务任务
   ↓
返回 task_id
   ↓
队列异步执行
   ↓
客户端查询任务状态

对于使用 Laravel Queue、Horizon、Redis、RabbitMQ 或 BullMQ 的项目来说,这种模式很容易与现有任务系统结合。

需要注意的是,旧版实验性 Tasks API 与新版本生命周期并不完全兼容,已经基于旧版本开发任务功能的项目需要进行迁移。

MCP Apps:工具不再只能返回文字

过去调用 MCP 工具后,最常见的结果是返回一段文本或结构化 JSON。

新版 MCP Apps 允许 MCP 服务提供交互式 HTML 界面,由支持该能力的宿主应用在沙箱 iframe 中渲染。

这意味着 MCP 工具可以返回:

  • 数据统计面板;
  • 参数填写表单;
  • 订单详情界面;
  • 图表和可视化结果;
  • 审批确认页面;
  • 任务进度页面。

工具需要提前声明对应的 UI 模板,使宿主应用能够在运行前完成预加载、缓存和安全检查。界面中的操作仍然通过 MCP 的 JSON-RPC 协议执行,因此可以继续进入统一的授权、审计和用户确认流程。

这项能力很重要。

未来的 AI Agent 不一定只通过聊天框工作,它可能在对话中直接打开一个可操作的业务页面。

授权机制进一步靠近 OAuth 和 OpenID Connect

当 MCP 只能读取公开天气信息时,鉴权问题并不突出。

但当 MCP 开始访问企业数据库、用户文件、支付订单和内部系统时,授权就会成为核心问题。

新版进一步加强了 OAuth 和 OpenID Connect 相关要求,包括:

  • 客户端验证授权响应中的 iss
  • 动态客户端注册时声明应用类型;
  • 将注册凭证绑定到对应授权服务器;
  • 补充 Refresh Token 获取方式;
  • 明确权限逐步提升时的 Scope 处理方式;
  • 完善 .well-known 服务发现规则。

这些调整主要用于避免授权服务器混淆、凭证错误复用和重定向地址识别错误等问题。

企业开发 MCP 服务时,不能因为调用方是 AI,就给它一个拥有全部权限的万能 Token。

正确做法仍然是:

用户身份
  + 应用身份
  + 最小权限
  + 操作确认
  + 审计日志

尤其是删除、支付、发布、部署和修改数据等具有外部影响的操作,必须设置更严格的权限边界。

工具参数支持完整 JSON Schema 2020-12

新版将工具的 inputSchemaoutputSchema 提升到完整的 JSON Schema 2020-12。

工具输入现在可以使用:

oneOf
anyOf
allOf
$ref
$defs
条件判断

输出结构也不再局限于对象,structuredContent 可以是任意合法 JSON 值。

这使复杂工具的参数协议更容易表达。例如,同一个搜索工具可以要求用户在“关键词搜索”和“条件筛选”之间选择一种参数结构,而不需要把所有字段都堆在同一个对象中。

不过,服务端仍然要限制 Schema 深度、验证时间和外部引用,避免复杂 Schema 消耗过多资源或形成安全风险。

PHP 和 Laravel 开发者如何接入 MCP?

Laravel 已经提供官方 laravel/mcp 扩展,可用于创建 MCP 服务端和客户端,并支持 Tools、Resources、Prompts、MCP Apps、OAuth 2.1、Sanctum 认证以及本地和远程服务。

安装扩展:

composer require laravel/mcp

发布 MCP 路由文件:

php artisan vendor:publish --tag=ai-routes

随后可以在 routes/ai.php 中注册一个 Web MCP 服务:

<?php

use App\Mcp\Servers\ProjectServer;
use Laravel\Mcp\Facades\Mcp;

/*
|--------------------------------------------------------------------------
| MCP Routes
|--------------------------------------------------------------------------
|
| 对外提供 HTTP MCP 服务。
| 生产环境必须配置认证、限流和操作审计。
|
*/

Mcp::web('/mcp/project', ProjectServer::class)
    ->middleware([
        'auth:sanctum',
        'throttle:mcp',
    ]);

Laravel MCP 也可以作为客户端连接其他 MCP 服务:

<?php

use Laravel\Mcp\Client;

// 创建远程 MCP 客户端
$client = Client::web('https://mcp.example.com')
    ->withToken($token)
    ->withTimeout(30);

// 获取服务端暴露的工具
$tools = $client->tools();

// 调用指定工具
$result = $tools['query-order']->call([
    'order_no' => 'JD202607300001',
]);

Laravel 官方还支持把 MCP 工具直接交给 Laravel AI Agent 使用,让远程工具和项目内自定义工具进入同一个 Agent 工具列表。

需要特别注意:MCP 2026-07-28 包含破坏性调整。

不要看到新版协议发布后,就直接修改底层请求格式。优先升级所使用的 MCP SDK 或 Laravel 扩展,并确认客户端、服务端和协议版本之间的兼容关系。

生产环境需要检查什么?

准备开发或升级 MCP 服务时,至少检查以下内容。

1. 固定协议与依赖版本

不要无约束地安装最新版 SDK。

composer.lockpackage-lock.json 或其他依赖锁文件中固定版本,并在测试环境完成兼容验证。

2. 显式管理业务状态

不要把任务状态依赖在某台 MCP 实例的内存中。

长期状态应保存到:

  • MySQL;
  • Redis;
  • 消息队列;
  • 对象存储;
  • 专门的任务系统。

工具通过 task_iddocument_idproject_id 等明确标识继续后续操作。

3. 保证工具调用幂等

AI Agent 可能因为超时、重试或网络异常重复调用工具。

创建订单、扣减余额、发布内容等操作必须设计幂等键,不能默认每次调用都是第一次执行。

4. 不要让网关丢弃 MCP 请求头

升级新版后,需要确认 Nginx、API Gateway 和负载均衡器能够正常转发 Mcp-MethodMcp-Name 和链路追踪相关字段。

5. 对高风险工具增加人工确认

读取数据和修改数据不能使用同一套风险策略。

删除、转账、发布、部署和批量修改等工具,应要求用户确认并记录完整审计日志。

MCP 正在从演示协议变成工程基础设施

MCP 早期最吸引人的地方,是让 AI 能够调用工具。

2026-07-28 版本真正值得关注的地方,是它开始系统性解决后端工程中的现实问题:

  • 如何横向扩容;
  • 如何进行负载均衡;
  • 如何缓存工具信息;
  • 如何处理长期任务;
  • 如何追踪完整调用链;
  • 如何统一授权;
  • 如何安全地展示交互界面;
  • 如何让协议持续升级而不频繁推翻现有实现。

这意味着 AI 应用开发正在从“调用一下大模型接口”,进入完整的系统工程阶段。

对于后端开发者来说,MCP 并没有让原有经验失效。恰恰相反,API 设计、无状态架构、队列任务、OAuth、权限控制、幂等、缓存和可观测性,会在 AI Agent 时代变得更加重要。

MCP 新版释放出的信号很明确:

AI 可以负责理解意图和规划任务,但真正让系统稳定运行的,依然是严谨的后端工程。

艾林博客 - 技术分享、开发经验与AI探索的个人技术博客
艾林博客 - 技术分享、开发经验与AI探索的个人技术博客

延伸阅读:

2026 <span class="text-primary">程序员生存指南</span>:代码通胀时代,如何构建不可替代的“工程直觉”? 技术随笔
2026 程序员生存指南:代码通胀时代,如何构建不可替代的“工程直觉”?

深入探讨 2026 年 AI 编程普及背景下程序员的核心竞争力。分析 AI 生成代码带来的隐形技术债,强调架构设计与底层系统运维在“代码通胀”时代的重要性。本文为开发者提供了从“编码者”向“系统编排者”转型的实战路线图,剖析如何在高度自动化的开发流程中建立不可替代的个人护城河。

AI 后端

Valencio

/

2026-04-07

现代接口安全实战:<span class="text-primary">从加密到防滥用的全栈策略</span> 技术随笔
现代接口安全实战:从加密到防滥用的全栈策略

很多人以为接口加了个 API-Key 或 JWT 就算“安全”。其实现代 API 安全从来不靠某一种“工具”,而是靠传输加密、认证设计、权限隔离、限速防刷、异常监控、日志审计等多个防线共同构成闭环。这一篇文章将为你系统梳理接口安全的全栈策略,避免你在业务关键点裸奔不自知。

资源 Web 安全 优化 Http 后端

Valencio

/

2025-07-04

为什么平台都不管你 key 泄露? 技术随笔
为什么平台都不管你 key 泄露?

很多开发者疑惑:如果我的 API-Key 被盗了,为什么平台方(比如腾讯云、OpenAI)都不报警、不封禁?他们难道不负责吗?本篇文章将深入解析开放平台认证背后的“边界责任模型”,帮助你厘清平台方与调用方之间的安全分工与责任归属,避免你为他人的低级错误背锅。

优化 安全 Web 后端

Valencio

/

2025-07-04