侧边栏壁纸
博主头像
AI中文站

write sth

  • 累计撰写 39 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Spring AI - Model Context Protocol (MCP)

模型上下文协议 (MCP) 是一种标准化协议,使 AI 模型能够以结构化的方式与外部工具和资源进行交互。它支持多种传输机制,以提供跨不同环境的灵活性。

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

Spring AI MCP 通过 Spring Boot 集成扩展了 MCP Java SDK,提供了客户端和服务器端的启动器。使用 Spring Initializer 引导您的 AI 应用程序并获得 MCP 支持。

MCP Java SDK 0.8.0 中的重大变更 ⚠️

MCP Java SDK 0.8.0 版本引入了若干重大变更,包括基于会话的新架构。如果您是从 Java SDK 0.7.0 升级,请参阅迁移指南获取详细说明。

MCP Java SDK 架构

本节概述 MCP Java SDK 架构。关于 Spring AI MCP 集成,请参阅 Spring AI MCP Boot 启动器文档。
Java MCP 实现遵循三层架构:

MCP 堆栈架构

  • 客户端/服务器层:McpClient 处理客户端操作,而 McpServer 管理服务器端协议操作。两者都利用 McpSession 进行通信管理。

  • 会话层 (McpSession):通过 DefaultMcpSession 实现管理通信模式和状态。

  • 传输层 (McpTransport):处理 JSON-RPC 消息的序列化和反序列化,并支持多种传输实现。

MCP 客户端

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

  • 协议版本协商以确保与服务器的兼容性

  • 能力协商以确定可用功能

  • 工具发现与执行

  • 资源访问和管理

  • 提示系统交互

  • 可选功能:
    根管理 (Roots management)
    采样支持

  • 同步和异步操作

  • 传输选项:
    基于标准输入输出 (Stdio) 的传输,用于基于进程的通信
    基于 Java HttpClient 的 SSE 客户端传输
    用于响应式 HTTP 流传输的 WebFlux SSE 客户端传输


MCP 服务器

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

  • 服务器端协议操作的实现
    -工具暴露与发现
    -基于 URI 的资源管理
    -提示模板的提供和处理
    -与客户端的能力协商
    -结构化日志记录和通知

  • 并发客户端连接管理

  • 同步和异步 API 支持

  • 传输实现:
    -基于标准输入输出 (Stdio) 的传输,用于基于进程的通信
    -基于 Servlet 的 SSE 服务器传输
    -用于响应式 HTTP 流传输的 WebFlux SSE 服务器传输
    -用于基于 Servlet 的 HTTP 流传输的 WebMVC SSE 服务器传输


有关使用低级 MCP 客户端/服务器 API 的详细实现指南,请参阅 MCP Java SDK 文档。要使用 Spring Boot 进行简化设置,请使用下面描述的 MCP Boot 启动器。

Spring AI MCP 集成

Spring AI 通过以下 Spring Boot 启动器提供 MCP 集成:

客户端启动器
spring-ai-starter-mcp-client - 核心启动器,提供 STDIO 和基于 HTTP 的 SSE 支持
spring-ai-starter-mcp-client-webflux - 基于 WebFlux 的 SSE 传输实现

服务器启动器
spring-ai-starter-mcp-server - 核心服务器,支持 STDIO 传输
spring-ai-starter-mcp-server-webmvc - 基于 Spring MVC 的 SSE 传输实现
spring-ai-starter-mcp-server-webflux - 基于 WebFlux 的 SSE 传输实现

附加资源
MCP 客户端启动器文档
MCP 服务器启动器文档
MCP 实用工具文档
模型上下文协议规范

0

评论区