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

模型上下文协议(MCP)

初次接触MCP? 请从我们的MCP入门指南开始,了解快速介绍和实战示例。

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

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

Spring AI 通过专用的 Boot Starters 和 MCP Java 注解全面支持 MCP,使得构建能够无缝连接到外部系统的复杂人工智能应用程序变得前所未有的简单。 这意味着 Spring 开发者可以参与 MCP 生态系统的两端——创建使用 MCP 服务器的人工智能应用,以及构建向更广泛的人工智能社区暴露基于 Spring 服务的 MCP 服务器。 使用 Spring Initializer 初始化带有 MCP 支持的人工智能应用。spring-doc.cadn.net.cn

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进行的简化设置,请使用下文所述的MCPStarters。spring-doc.cadn.net.cn

Spring AI MCP 集成

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

客户端Starters

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

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

服务器Starters

标准输出

服务池类型设置 依赖 属性

标准输入输出(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

Spring Boot

服务池类型设置spring-doc.cadn.net.cn

依赖spring-doc.cadn.net.cn

属性spring-doc.cadn.net.cn

Spring Security Extended Web MVCspring-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

Spring的流式HTTP MVC框架spring-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

属性spring-doc.cadn.net.cn

Spring 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