关于 Weather MCP Server
Weather MCP Server 是一个基于 Spring Boot 的天气服务示例,面向需要通过 MCP 获取天气信息的 AI 助手开发者。它为指定地点提供模拟天气数据。
主要功能
- 01按地点获取当前天气
- 02生成模拟天气数据
- 03基于 Spring Boot 构建
- 04支持 MCP Inspector 调试
适用场景
- 01让 AI 助手查询指定地点天气
- 02使用 MCP Inspector 测试天气工具
MCP 相关
该 MCP 服务通过 getWeather 工具向 MCP 客户端提供指定地点的模拟天气信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
天气 MCP 服务
这是一个 Spring Boot 应用,通过模型上下文协议(MCP)提供天气信息。本项目演示了如何使用 Spring AI 创建 MCP 服务,将天气数据作为工具开放给 AI 助手使用。
📋 目录
🔍 概述
本项目实现了一个天气服务,可为不同地点提供模拟天气数据。它通过模型上下文协议(MCP)开放此功能,使 AI 助手能够获取指定地点的天气信息。
✨ 功能
- 获取任意地点的当前天气信息
- 使用真实参数生成模拟天气数据
- 集成 MCP,兼容 AI 助手
- Spring Boot 应用,易于设置和配置
🛠️ 技术
- Java 17
- Spring Boot 3.2.0
- Spring AI MCP Server
- Maven
- Lombok
📁 项目结构
src/
├── main/
│ ├── java/
│ │ └── com/
│ │ └── gox/
│ │ └── weather/
│ │ ├── WeatherMcpApplication.java # Main application class
│ │ ├── model/
│ │ │ └── WeatherData.java # Weather data model
│ │ └── service/
│ │ └── WeatherService.java # Weather service with MCP tool
│ └── resources/
│ └── application.properties # Application configuration
📋 前置条件
- Java 17 或更高版本
- Maven 3.6 或更高版本
- Node.js 和 npm(用于 MCP Inspector)
🚀 安装
-
克隆仓库:
git clone https://github.com/yourusername/weather-mcp-java.git cd weather-mcp-java -
构建项目:
mvn clean install
🏃♂️ 运行应用
启动 Spring Boot 应用:
mvn spring-boot:run
应用默认将在 8080 端口启动(可在 application.properties 中配置)。
⚙️ 在 IDE 工具中配置 MCP
要在 Cursor 或 Cline 等 IDE 工具中将此 MCP 服务与 AI 助手配合使用:
- 打开 IDE 中的 AI 助手配置设置
- 找到 MCP 或 Model Context Protocol 设置
- 添加新的 MCP 服务,并使用以下 SSE 端点:
http://localhost:8089/sse - 保存设置;如有必要,重启 AI 助手
- 现在,AI 助手应该可以使用天气工具了
注意:确保端口(8089)与 application.properties 文件中配置的端口一致。
🔧 使用 MCP Inspector
MCP Inspector 是一个用于测试和调试 MCP 服务的工具(如果你想调试 MCP 服务)。使用方法如下:
-
安装并运行 MCP Inspector:
npx @modelcontextprotocol/inspector -
在浏览器中打开 MCP Inspector:
http://127.0.0.1:6274/#tools -
输入 SSE 端点,连接到 MCP 服务:
http://localhost:8080/mcp/sse注意:端口(8080)应与 Spring Boot 应用运行的端口一致。
-
连接后,你可以提供地点参数来测试
getWeather工具。
📚 API 文档
天气服务
天气服务提供以下功能:
获取天气
返回指定地点的天气信息。
工具名称:getWeather
参数:
location(String):要查询天气的地点名称(例如,“New York”“London”“Tokyo”)
响应:
{
"location": "New York",
"temperature": 22.5,
"condition": "Partly Cloudy",
"humidity": 65,
"windSpeed": 12.3
}
🤝 贡献
欢迎贡献!请随时提交 Pull Request。
📄 许可证
本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。