Spring AI MCP Weather STDIO Server
这是一个 Spring Boot 启动项目,展示了如何使用国家气象局(weather.gov)API 构建一个提供天气相关工具的模型上下文协议(Model Context Protocol, MCP)服务器。该项目通过 STDIO 传输实现,展示了 Spring AI MCP Server Boot Starter 的功能。
先决条件
- Java 17 或更高版本
- Maven 3.6 或更高版本
- 了解 Spring Boot 和 Spring AI 概念
- (可选)Claude Desktop 用于 AI 助手集成
关于 Spring AI MCP Server Boot Starter
spring-ai-mcp-server-spring-boot-starter
提供了以下功能:- 自动配置 MCP 服务器组件
- 支持同步和异步操作模式
- STDIO 传输层实现
- 通过 Spring bean 灵活注册工具
- 变更通知功能
项目结构
构建与运行
服务器使用 STDIO 传输模式,通常由客户端自动启动。构建服务器 jar 文件:
工具实现
该项目展示了如何使用 Spring 的依赖注入和自动配置来实现和注册 MCP 工具:
自动配置会自动将这些工具注册到 MCP 服务器。你可以有多个生成
ToolCallbacks
列表的 bean,自动配置会将它们合并。可用工具
1. 天气预报工具
2. 天气警报工具
客户端集成
Java 客户端示例
手动创建 MCP 客户端
ClientStdio.java 展示了如何手动实现 MCP 客户端。
为了获得更好的开发体验,可以考虑使用 MCP Client Boot Starters。这些启动器支持自动配置多个 STDIO 和/或 SSE 连接到 MCP 服务器。请参阅 starter-default-client 和 starter-webflux-client 项目以获取示例。
使用 MCP Client Boot Starter
使用 starter-default-client 连接到天气
starter-stdio-server
:- 按照
starter-default-client
的 readme 说明构建mcp-starter-default-client-0.0.1-SNAPSHOT.jar
客户端应用程序。
- 使用配置文件运行客户端:
Claude Desktop 集成
要与 Claude Desktop 集成,请将以下配置添加到 Claude Desktop 设置中:
将
/absolute/path/to/
替换为实际构建的 jar 文件路径。配置
应用属性
所有属性都以
spring.ai.mcp.server
为前缀:关键配置说明
- STDIO 模式要求
- 禁用 Web 应用类型 (
spring.main.web-application-type=none
) - 禁用 Spring 横幅 (
spring.main.banner-mode=off
) - 清除控制台日志模式 (
logging.pattern.console=
)
- 服务器类型
SYNC
(默认):使用McpSyncServer
进行简单的请求-响应模式ASYNC
:使用McpAsyncServer
进行非阻塞操作,支持 Project Reactor
其他资源
- Author:waytomcp
- URL:https://www.waytomcp.com/article/cloud4java/my-mcp-stdio-server
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!