MCP Server Starter
Spring AI MCP(模型上下文协议)Server Starter 为在 Spring Boot 应用程序中设置 MCP Server 提供自动配置。它使 MCP Server 功能能够与 Spring Boot 的自动配置系统无缝集成。
MCP Server Starter 提供:
-
MCP Server 组件的自动配置
-
支持同步和异步操作模式
-
多种传输层选项
-
灵活的 Tool、Resource 和 Prompt 规范
-
变更通知功能
Starter
Spring AI 自动配置和 Starter 模块的构件名称发生了重大变化。 请参阅 升级说明 了解更多信息。
根据您的传输需求选择以下 Server Starter 之一:
标准 MCP Server
具有 STDIO Server 传输的完整 MCP Server 功能支持。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-mcp-server-spring-boot-starter</artifactId>
</dependency>
-
适用于命令行和桌面工具
-
不需要 额外的 Web 依赖项
Server Starter 激活 McpServerAutoConfiguration 自动配置,负责:
-
配置基本服务器组件
-
处理 Tool、Resource 和 Prompt 规范
-
管理服务器功能和变更通知
-
提供同步和异步服务器实现
WebMVC 服务器传输
具有基于 Spring MVC 的 SSE(服务器发送事件)Server 传输和可选的 STDIO 传输的完整 MCP Server 功能支持。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
</dependency>
Starter 激活 McpWebMvcServerAutoConfiguration 和 McpServerAutoConfiguration 自动配置,提供:
使用 Spring MVC 的基于 HTTP 的传输(WebMvcSseServerTransportProvider)
自动配置的 SSE 端点
可选的 STDIO 传输(通过设置 spring.ai.mcp.server.stdio=true 启用)
包含 spring-boot-starter-web 和 mcp-spring-webmvc 依赖项
WebFlux 服务器传输
具有基于 Spring WebFlux 的 SSE(服务器发送事件)服务器传输和可选的 STDIO 传输的完整 MCP 服务器功能支持。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webflux</artifactId>
</dependency>
Starter 激活 McpWebFluxServerAutoConfiguration 和 McpServerAutoConfiguration 自动配置,提供:
使用 Spring WebFlux 的反应式传输(WebFluxSseServerTransportProvider)
自动配置的反应式 SSE 端点
可选的 STDIO 传输(通过设置 spring.ai.mcp.server.stdio=true 启用)
包含 spring-boot-starter-webflux 和 mcp-spring-webflux 依赖项
配置属性
所有属性都以 spring.ai.mcp.server 为前缀:
| 属性 | 描述 | 默认值 |
|---|---|---|
enabled | 启用/禁用 MCP 服务器 | true |
stdio | 启用/禁用 stdio 传输 | false |
name | 用于标识的服务器名称 | mcp-server |
version | 服务器版本 | 1.0.0 |
instructions | 可选说明,为客户端提供与此服务器交互的指导 | null |
type | 服务器类型(SYNC/ASYNC) | SYNC |
capabilities.resource | 启用/禁用资源功能 | true |
capabilities.tool | 启用/禁用工具功能 | true |
capabilities.prompt | 启用/禁用提示功能 | true |
capabilities.completion | 启用/禁用完成功能 | true |
resource-change-notification | 启用资源变更通知 | true |
prompt-change-notification | 启用提示变更通知 | true |
tool-change-notification | 启用工具变更通知 | true |
tool-response-mime-type | (可选)每个工具名称的响应 MIME 类型。例如 spring.ai.mcp.server.tool-response-mime-type.generateImage=image/png 将 image/png mime 类型与 generateImage() 工具名称关联 | - |
sse-message-endpoint | 用于 Web 传输的自定义 SSE 消息端点路径,供客户端发送消息使用 | /mcp/message |
sse-endpoint | 用于 Web 传输的自定义 SSE 端点路径 | /sse |
base-url | 可选的 URL 前缀。例如 base-url=/api/v1 意味着客户端应该访问 /api/v1 + sse-endpoint 的 sse 端点,消息端点是 /api/v1 + sse-message-endpoint | - |
request-timeout | 等待服务器响应的超时时间。适用于通过客户端发出的所有请求,包括工具调用、资源访问和提示操作。 | 20 秒 |
同步/异步服务器类型
-
同步服务器 - 使用
McpSyncServer实现的默认服务器类型。 它设计用于应用程序中的简单请求-响应模式。 要启用此服务器类型,在配置中设置spring.ai.mcp.server.type=SYNC。 激活时,它会自动处理同步工具规范的配置。 -
异步服务器 - 异步服务器实现使用
McpAsyncServer,针对非阻塞操作进行了优化。 要启用此服务器类型,使用spring.ai.mcp.server.type=ASYNC配置您的应用程序。 此服务器类型自动设置具有内置 Project Reactor 支持的异步工具规范。