模型上下文协议(MCP)

MCP新手?请先从我们的《MCP入门指南》开始,这里有快速的入门介绍和实践示例。

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

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

Spring AI 通过专用的启动Starters和 MCP Java 注释,全面支持 MCP,使构建能够无缝连接外部系统的复杂 AI 应用变得前所未有的简单。 这意味着Spring开发者可以参与MCP生态系统的两端——构建消耗MCP服务器的AI应用,以及创建将基于Spring的服务展示给更广泛AI社区的MCP服务器。 使用 Spring 初始化器启动支持 MCP 的 AI 应用。spring-doc.cadn.net.cn

MCP Java SDK 架构

本节概述了MCP Java SDK架构。 关于 Spring AI MCP 集成,请参阅 Spring AI MCP 启动启动文档

Java MCP 实现采用三层架构,将可维护性和灵活性的考虑区分开来:spring-doc.cadn.net.cn

MCP 栈架构
图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 客户端架构
MCP服务器

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

Java MCP 服务器架构

有关使用低级MCP客户端/服务器API的详细实现指导,请参阅MCP Java SDK文档。 为了简化使用 Spring Boot 的设置,请使用下面介绍的 MCP 启动启动工具。spring-doc.cadn.net.cn

Spring AI MCP 集成

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

客户端启动

  • Spring-AI-starter-mcp-client- 核心Starters提供STDIO,基于Servlet的可流式HTTP,无状态流式HTTPSSE支持spring-doc.cadn.net.cn

  • Spring-AI-starter-mcp-client-webflux- 基于WebFlux可流式HTTP,无状态流式HTTPSSE交通实施spring-doc.cadn.net.cn

服务器启动者

STDIO

服务器类型 Dependency 属性

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

WebMVC

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

Dependencyspring-doc.cadn.net.cn

属性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

Streamable-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

Dependencyspring-doc.cadn.net.cn

属性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

Streamable-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服务器和客户端提供基于注释的方法处理。 这种方法简化了MCP作的创建和注册,采用干净的声明式编程模型,并带有Java注释。spring-doc.cadn.net.cn

MCP 注释模块使开发者能够:spring-doc.cadn.net.cn

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