此版本仍在开发中,尚不被认为是稳定的。对于最新的快照版本,请使用 Spring AI 1.0.1! |
MCP 服务器启动Starters
模型上下文协议 (MCP) 服务器是通过标准化协议接口向 AI 应用程序公开特定功能的程序。 每个服务器都为特定域提供重点功能。
Spring AI MCP Server Boot Starters 提供自动配置,用于在 Spring Boot 应用程序中设置 MCP Server。 它们可以将 MCP 服务器功能与 Spring Boot 的自动配置系统无缝集成。
MCP 服务器启动Starters提供:
-
自动配置 MCP 服务器组件,包括工具、资源和提示
-
支持不同的 MCP 协议版本,包括 STDIO、SSE、Streamable-HTTP 和无状态服务器
-
支持同步和异步作模式
-
多种传输层选项
-
灵活的工具、资源和提示规范
-
更改通知功能
MCP 服务器Starters
MCP 服务器支持多种协议和传输机制。
使用专用Starters和正确的spring.ai.mcp.server.protocol
属性来配置您的服务器:
WebMVC
服务器类型 |
Dependency |
属性 |
|
|
|
|
|
|
|
|
服务器功能
根据服务器和传输类型,MCP 服务器可以支持各种功能,例如:
-
工具 - 允许服务器公开可由语言模型调用的工具
-
资源 - 为服务器提供向客户端公开资源的标准化方法
-
提示 - 为服务器提供向客户端公开提示模板的标准化方法
-
实用程序/补全 - 为服务器提供一种标准化方法,为提示和资源 URI 提供参数自动补全建议
-
实用程序/日志记录 - 为服务器提供向客户端发送结构化日志消息的标准化方法
-
实用程序/进度 - 通过通知消息对长时间运行的作进行可选的进度跟踪
-
Utility/Ping - 服务器报告其状态的可选健康检查机制
默认情况下,所有功能都处于启用状态。禁用功能将阻止服务器注册并向客户端公开相应的功能。
服务器协议
MCP 提供多种协议类型,包括:
-
STDIO - 进程中(例如,服务器在主机应用程序内运行)协议。通信是标准输入和标准输出。要启用
STDIO
设置spring.ai.mcp.server.stdio=true
. -
SSE - 用于实时更新的服务器发送事件协议。服务器作为一个独立的进程运行,可以处理多个客户端连接。
-
Streamable-HTTP - Streamable HTTP 传输允许 MCP 服务器作为独立的进程运行,这些进程可以使用 HTTP POST 和 GET 请求处理多个客户端连接,并为多个服务器消息提供可选的服务器发送事件 (SSE) 流。它取代了 SSE 传输。要启用
STREAMABLE
协议, 设置spring.ai.mcp.server.protocol=STREAMABLE
. -
无状态 - 无状态 MCP 服务器专为简化部署而设计,其中在请求之间不维护会话状态。 它们非常适合微服务架构和云原生部署。要启用
STATELESS
协议, 设置spring.ai.mcp.server.protocol=STATELESS
.
同步/异步服务器 API 选项
MCP 服务器 API 支持命令式(例如同步)和响应式(例如异步)编程模型。
-
同步服务器 - 使用
McpSyncServer
. 它专为应用程序中的简单请求-响应模式而设计。 要启用此服务器类型,请将spring.ai.mcp.server.type=SYNC
在您的配置中。 激活后,它会自动处理同步刀具规格的配置。 -
异步服务器 - 异步服务器实现使用
McpAsyncServer
并针对非阻塞作进行了优化。 要启用此服务器类型,请使用spring.ai.mcp.server.type=ASYNC
. 此服务器类型通过内置的 Project Reactor 支持自动设置异步工具规范。
示例应用
-
Weather Server (SSE WebFlux) - 具有 WebFlux 传输的 Spring AI MCP 服务器启动Starters
-
天气服务器 (STDIO) - 具有 STDIO 传输功能的 Spring AI MCP 服务器Starters
-
Weather Server 手动配置 - Spring AI MCP Server Boot Starter,不使用自动配置,而是使用 Java SDK 手动配置服务器
-
Streamable-HTTP WebFlux/WebMVC 示例 - TODO
-
无状态 WebFlux/WebMVC 示例 - TODO