此版本仍在开发中,尚未被视为稳定版。如需最新的快照版本,请使用 Spring AI 1.1.3spring-doc.cadn.net.cn

模型上下文协议 (MCP)

初次接触 MCP? 从我们的 MCP 入门指南 开始,快速了解并上手实践示例。

模型上下文协议(MCP)是一种标准化协议,使 AI 模型能够以结构化的方式与外部工具和资源进行交互。 您可以将其视为连接 AI 模型与现实世界的桥梁——允许它们通过一致的接口访问数据库、API、文件系统和其他外部服务。 它支持多种传输机制,以便在不同环境中提供灵活性。spring-doc.cadn.net.cn

MCP Java SDK 提供了模型上下文协议(Model Context Protocol)的 Java 实现,支持通过同步和异步通信模式与 AI 模型及工具进行标准化交互。spring-doc.cadn.net.cn

Spring AI 通过专用的 Boot Starters 和 MCP Java 注解提供全面的支持,从而拥抱 MCP,让构建能够无缝连接外部系统的复杂 AI 驱动应用变得前所未有的简单。 这意味着 Spring 开发者可以参与 MCP 生态系统的两端——既构建消费 MCP 服务器的 AI 应用,也创建将基于 Spring 的服务暴露给更广泛 AI 社区的 MCP 服务器。 使用 Spring Initializer 快速启动带有 MCP 支持的 AI 应用。spring-doc.cadn.net.cn

MCP Java SDK 架构

本部分提供了 MCP Java SDK 架构 的概述。 有关 Spring AI MCP 集成,请参阅 Spring AI MCP Boot Starters 文档。

Java MCP 实现遵循三层架构,将关注点分离以提高可维护性和灵活性:spring-doc.cadn.net.cn

MCP Stack Architecture
图 1. MCP 堆栈架构

客户端/服务器层(顶部)

顶层处理主要的应用逻辑和协议操作:spring-doc.cadn.net.cn

会话层(中间)

中间层管理通信模式并维护连接状态:spring-doc.cadn.net.cn

传输层(底部)

底层负责实际的消息传输和序列化:spring-doc.cadn.net.cn

MCP 客户端

MCP 客户端是模型上下文协议(MCP)架构中的关键组件,负责建立和管理与 MCP 服务器的连接。它实现了协议的客户端部分,处理:spring-doc.cadn.net.cn

Java MCP Client Architecture
MCP 服务器

MCP 服务器是模型上下文协议 (MCP) 架构中的基础组件,为客户端提供工具、资源和能力。它实现了协议的服务器端,负责:spring-doc.cadn.net.cn

Java MCP Server Architecture

有关使用低级 MCP 客户端/服务器 API 的详细实施指南,请参阅 MCP Java SDK 文档。 若要使用 Spring Boot 进行简化设置,请使用下文介绍的 MCP Boot Starters。spring-doc.cadn.net.cn

Spring AI MCP 集成

Spring AI 通过以下 Spring Boot Starters提供 MCP 集成:spring-doc.cadn.net.cn

客户端Starters

  • spring-ai-starter-mcp-client - 提供 STDIO、基于 Servlet 的 Streamable-HTTPStateless Streamable-HTTPSSE 支持的核心Startersspring-doc.cadn.net.cn

  • spring-ai-starter-mcp-client-webflux - 基于 WebFlux 的 Streamable-HTTPStateless Streamable-HTTPSSE 传输实现spring-doc.cadn.net.cn

服务器Starters

标准输入输出

服务器类型 依赖 <property> </property>

标准输入/输出 (STDIO)spring-doc.cadn.net.cn

spring-ai-starter-mcp-serverspring-doc.cadn.net.cn

spring.ai.mcp.server.stdio=truespring-doc.cadn.net.cn

Web MVC

服务器类型spring-doc.cadn.net.cn

依赖spring-doc.cadn.net.cn

<property> </property>spring-doc.cadn.net.cn

SSE WebMVCspring-doc.cadn.net.cn

spring-ai-starter-mcp-server-webmvcspring-doc.cadn.net.cn

spring.ai.mcp.server.protocol=SSE 或空spring-doc.cadn.net.cn

可流式传输的 HTTP WebMVCspring-doc.cadn.net.cn

spring-ai-starter-mcp-server-webmvcspring-doc.cadn.net.cn

spring.ai.mcp.server.protocol=STREAMABLEspring-doc.cadn.net.cn

无状态可流式 HTTP WebMVCspring-doc.cadn.net.cn

spring-ai-starter-mcp-server-webmvcspring-doc.cadn.net.cn

spring.ai.mcp.server.protocol=STATELESSspring-doc.cadn.net.cn

WebMVC(响应式)

服务器类型spring-doc.cadn.net.cn

依赖spring-doc.cadn.net.cn

<property> </property>spring-doc.cadn.net.cn

SSE WebFluxspring-doc.cadn.net.cn

spring-ai-starter-mcp-server-webfluxspring-doc.cadn.net.cn

spring.ai.mcp.server.protocol=SSE 或空spring-doc.cadn.net.cn

可流式传输的 HTTP WebFluxspring-doc.cadn.net.cn

spring-ai-starter-mcp-server-webfluxspring-doc.cadn.net.cn

spring.ai.mcp.server.protocol=STREAMABLEspring-doc.cadn.net.cn

无状态可流式 HTTP WebFluxspring-doc.cadn.net.cn

spring-ai-starter-mcp-server-webfluxspring-doc.cadn.net.cn

spring.ai.mcp.server.protocol=STATELESSspring-doc.cadn.net.cn

Spring AI MCP 注解

除了程序化的 MCP 客户端和服务器配置外,Spring AI 还通过 MCP 注解模块为 MCP 服务器和客户端提供基于注解的方法处理。 这种方法利用清晰的声明式编程模型和 Java 注解,简化了 MCP 操作的创建和注册。spring-doc.cadn.net.cn

MCP 注解模块使开发人员能够:spring-doc.cadn.net.cn

主要特性包括:spring-doc.cadn.net.cn