文章摘要MCP 2026-07-28规范已经正式发布核心协议转向无状态并增加请求路由头、列表缓存语义及扩展框架。与此同时Spring AI 2.0文档已经提供STDIO、Streamable HTTP和STATELESS等MCP客户端与服务端配置。很多Java开发者因此认为只要把spring.ai.mcp.server.protocol改成STATELESS项目就已经完整支持新规范。实际上传输能力、SDK版本、协议协商和扩展支持是四个不同层面。本文梳理Spring AI 2.0与MCP 2026-07-28之间的真实兼容关系并给出生产升级清单。一、先给出结论不能简单回答“完全支持”或“完全不支持”。更准确的结论是Spring AI 2.0已经具备MCP生产接入所需的大部分基础能力 包括STDIO、Streamable HTTP、STATELESS、工具适配与注解开发 但某个具体项目是否完整兼容2026-07-28规范 仍取决于实际MCP Java SDK版本、协议协商结果、客户端版本和扩展能力尤其需要避免下面这个错误判断配置了STATELESS 完整支持2026-07-28全部规范STATELESS首先描述服务端传输和会话模型并不能证明以下能力已经全部落地新协议版本协商Mcp-Method与Mcp-Name请求头ttlMs与cacheScopeTasks扩展MCP Apps扩展新授权流程正式弃用策略目标客户端的互操作性。二、Spring AI 2.0当前提供哪些MCP能力Spring AI 2.0提供专门的MCP Boot Starter。客户端dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-starter-mcp-client/artifactId/dependencyWebFlux客户端dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-starter-mcp-client-webflux/artifactId/dependency服务端WebMVCdependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-starter-mcp-server-webmvc/artifactId/dependency服务端WebFluxdependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-starter-mcp-server-webflux/artifactId/dependency服务端协议可以配置为spring:ai:mcp:server:protocol:STREAMABLE或spring:ai:mcp:server:protocol:STATELESS此外Spring AI还提供McpToolMcpResourceMcpPromptMCP Tool到Spring AIToolCallback的适配同步与异步客户端多个命名MCP连接工具过滤工具名前缀OAuth 2.0与API Key安全扩展Micrometer与OpenTelemetry观测能力。这些能力足以搭建生产级MCP客户端和服务端但“框架能搭建”与“完全匹配最新协议修订”仍需分开验证。三、为什么Spring AI 2.0 GA说明仍提到旧规范Spring AI 2.0.0 GA发布时官方说明其MCP Java SDK基线与当时最新稳定规范对应。MCP 2026-07-28是在Spring AI 2.0.0 GA之后发布的重大修订。因此会出现三种信息同时存在Spring AI 2.0.0 GA发布说明 → 对应当时稳定规范 Spring AI当前在线文档 → 已展示STATELESS与更新后的传输能力 MCP 2026-07-28最终规范 → 包含新的协议语义和扩展框架生产项目不能只看文章标题或Starter名称应该检查实际构建结果mvn dependency:tree\-Dincludesio.modelcontextprotocol.sdkGradle./gradlew dependencies\--configurationruntimeClasspath重点确认MCP Java SDK实际版本 Spring AI实际版本 是否存在依赖覆盖 是否引用Snapshot 是否被其他Starter降级四、协议版本与SDK版本不是一回事常见版本包括Spring AI 2.0.0 MCP Java SDK 2.x MCP Protocol 2026-07-28三者编号不能直接比较。错误理解Java SDK 2.0 所以一定支持协议2026-07-28正确做法是查看SDK发行说明支持的协议版本客户端初始化或请求中的版本协商新字段和新请求头实现官方互操作性测试结果。企业项目应维护兼容矩阵组件当前版本支持协议验证状态Spring AI2.0.x待确认测试中MCP Java SDK实际版本待确认测试中桌面客户端版本号2025-11-25已验证企业Agent版本号2026-07-28待验证自建MCP Server版本号双版本已验证五、STATELESS到底解决什么问题有状态Streamable HTTP通常需要初始化 → 建立逻辑会话 → 后续请求携带会话标识 → 服务端维护会话状态无状态服务端则更接近每次请求自包含 → 任意实例处理 → 不依赖协议级会话Spring AI配置spring:ai:mcp:server:protocol:STATELESS主要价值普通轮询负载均衡无需Sticky Session容器实例可随时替换更容易横向扩容更适合Serverless简化共享会话存储。但无状态服务端通常不能提供依赖双向会话的能力例如服务端主动SamplingElicitation部分通知连接级进度交互。因此不能为了扩容而一律切换STATELESS。六、STREAMABLE与STATELESS如何选选择STREAMABLE适合服务端需要回调客户端需要Sampling需要Elicitation需要复杂双向通知一次交互中存在持续上下文客户端与服务端都支持会话。选择STATELESS适合工具主要是请求—响应服务端不主动调用客户端云原生水平扩容API Gateway统一接入高并发查询工具工具状态已经外置。选择STDIO适合本地开发桌面客户端插件单机工具不暴露网络端口随客户端进程启动和退出。七、2026-07-28带来的新增验证项1. 无状态核心验证项目是否仍依赖初始化握手副作用 Mcp-Session-Id Sticky Session 进程内会话Map2. 请求路由头新规范引入用于网关识别的请求头。网关需要确认是否保留未知请求头是否按方法统计是否被WAF删除是否在跨域配置中允许是否加入日志脱敏规则。3. 列表缓存语义工具、资源和Prompt列表可能带ttlMs cacheScope需要验证客户端是否识别TTL按身份隔离缓存正确响应listChanged不缓存高动态工具不跨租户共享private结果。4. 扩展框架Tasks和MCP Apps属于扩展能力不能因为服务端支持核心协议就默认客户端支持扩展。八、最稳妥的兼容策略双协议运行生产服务不要立即只支持新协议。推荐旧协议客户端 → 旧兼容入口 新协议客户端 → 2026-07-28入口或者通过版本协商在同一入口处理。灰度顺序内部测试客户端 → 开发环境 → 测试租户 → 只读工具 → 低风险写工具 → 核心生产工具九、不要只做“能连通”的测试最小连接成功只证明网络可达 JSON-RPC可以解析还需要测试工具发现工具数量 名称 Schema Description 缓存变化 权限过滤工具调用参数校验 错误映射 超时 取消 重试 幂等 审计资源与PromptURI模板 内容类型 大文件 分页 权限 动态变化通知兼容性旧客户端连接新服务端 新客户端连接旧服务端 不支持扩展时降级 未知字段是否安全忽略十、Spring AI项目的升级清单□ 锁定Spring AI具体版本 □ 检查MCP Java SDK依赖树 □ 确认支持的协议版本 □ 不把STATELESS等同于完整新规范 □ 盘点Sampling和Elicitation需求 □ 决定STREAMABLE或STATELESS □ 验证请求头经过网关 □ 设计工具列表缓存隔离 □ 检查OAuth Scope与租户权限 □ 建立双版本互操作测试 □ 先灰度只读工具 □ 预留回滚入口十一、推荐的配置隔离开发环境可以spring:ai:mcp:server:protocol:STREAMABLE云端只读工具服务spring:ai:mcp:server:protocol:STATELESS不要让所有环境共享同一个配置文件。可以使用application-local.yml application-test.yml application-prod.yml十二、我的判断Spring AI 2.0已经给Java团队提供了成熟的MCP开发入口并提前具备了无状态服务端、Streamable HTTP和企业安全等关键能力。但MCP 2026-07-28是一轮协议级重大变更。真正的兼容必须通过精确版本 协议协商 新语义实现 客户端互操作 生产网关验证共同确认。总结判断Spring AI项目是否支持MCP 2026-07-28不应只看有没有STATELESS配置而应检查SDK版本 协议版本 请求路由头 列表缓存 扩展能力 安全机制 互操作测试对于生产系统最稳妥的做法是锁定依赖、建立兼容矩阵、双版本灰度而不是在没有完整验证时直接替换全部MCP连接。