模型上下文协议(MCP)
| MCP新手?请先从我们的《MCP入门指南》开始,这里有快速的入门介绍和实践示例。 |
模型上下文协议(MCP)是一种标准化协议,使人工智能模型能够以结构化的方式与外部工具和资源交互。 可以把它看作是连接你的AI模型与现实世界的桥梁——让它们通过一致的界面访问数据库、API、文件系统和其他外部服务。 它支持多种传输机制,以在不同环境中提供灵活性。
MCP Java SDK 提供了模型上下文协议的 Java 实现,通过同步和异步通信模式实现与 AI 模型和工具的标准化交互。
Spring AI 通过专用的启动Starters和 MCP Java 注释,全面支持 MCP,使构建能够无缝连接外部系统的复杂 AI 应用变得前所未有的简单。 这意味着Spring开发者可以参与MCP生态系统的两端——构建消耗MCP服务器的AI应用,以及创建将基于Spring的服务展示给更广泛AI社区的MCP服务器。 使用 Spring 初始化器启动支持 MCP 的 AI 应用。
MCP Java SDK 架构
| 本节概述了MCP Java SDK架构。 关于 Spring AI MCP 集成,请参阅 Spring AI MCP 启动启动文档。 |
Java MCP 实现采用三层架构,将可维护性和灵活性的考虑区分开来:
客户端/服务器层(顶部)
顶层处理主要的应用逻辑和协议作:
-
McpClient - 管理客户端作和服务器连接
-
McpServer - 处理服务器端协议作和客户端请求
-
这两个组件都利用下面的会话层进行通信管理
会话层(中间层)
中间层管理通信模式并维护连接状态:
-
McpSession - 核心会话管理接口
-
McpClientSession - 客户端特定会话实现
-
McpServerSession - 服务器特定会话实现
传输层(底部)
底层负责实际的消息传输和序列化:
-
McpTransport - 管理 JSON-RPC 消息序列化和反序列化
-
支持多种传输实现(STDIO、HTTP/SSE、Streamable-HTTP 等)
-
为所有高层次沟通提供基础
| MCP 客户端 | |
|---|---|
MCP 客户端是模型上下文协议(MCP)架构中的关键组件,负责建立和管理与 MCP 服务器的连接。它实现协议的客户端,处理:
|
|
| MCP服务器 | |
|---|---|
MCP服务器是模型上下文协议(MCP)架构中的基础组件,为客户端提供工具、资源和能力。它实现了协议的服务器端,负责:
|
|
有关使用低级MCP客户端/服务器API的详细实现指导,请参阅MCP Java SDK文档。 为了简化使用 Spring Boot 的设置,请使用下面介绍的 MCP 启动启动工具。
Spring AI MCP 集成
Spring AI 通过以下 Spring Boot 启动程序提供 MCP 集成:
客户端启动
-
Spring-AI-starter-mcp-client- 核心Starters提供STDIO,基于Servlet的可流式HTTP,无状态流式HTTP和SSE支持 -
Spring-AI-starter-mcp-client-webflux- 基于WebFlux可流式HTTP,无状态流式HTTP和SSE交通实施
服务器启动者
WebMVC
服务器类型 |
Dependency |
属性 |
|
|
|
|
|
|
|
|
Spring AI MCP 注释
除了程序化的MCP客户端和服务器配置外,Spring AI还通过MCP注释模块为MCP服务器和客户端提供基于注释的方法处理。 这种方法简化了MCP作的创建和注册,采用干净的声明式编程模型,并带有Java注释。
MCP 注释模块使开发者能够:
-
利用简单的注释创建MCP工具、资源和提示
-
以声明式方式处理客户端通知和请求
-
减少样板代码并提升可维护性
-
自动生成工具参数的JSON模式
-
访问特殊参数和上下文信息
主要特点包括: