返回市场
天气-mcp

天气-mcp

作者:xhgSh2 星标更新:2025-06-26

项目介绍

weather-mcp

这是一个基于Spring AI的MCP(模型上下文协议)服务器项目,其主要功能是通过爬取中国天气网来获取实时天气数据。该项目可以作为AI模型与天气数据之间的桥梁,使AI模型能够查询中国的天气信息。

项目架构

本项目使用了以下技术栈:

  • Spring Boot:构建微服务的基础框架
  • Spring AI:提供与AI模型交互的能力
  • Jsoup:用于爬取网页数据
  • Jackson:处理JSON数据的序列化/反序列化

工具介绍

getWeatherByCityAndDays

@Tool(description = "通过城市和天数查询未来的天气,最多7天,城市名用汉字,如合肥、广州")
public List<Map<String, String>> getWeatherByCityAndDays(String cityName, int days)

功能:根据提供的城市名称和天数(最多7天),返回未来指定天数的天气信息。

参数

  • cityName:城市名称(中文)
  • days:要查询的天数(最大7天)

返回值:包含每日天气信息的列表,每个元素是一个Map,包括日期(date)、天气(weather)、温度(temp)和风向(wind)等键。

getProvinceCities

@Tool(description = "查询省份的所有城市,请传入省份的拼音,如anhui")
public List<String> getProvinceCities(String provincePinyin)

功能:根据提供的拼音返回该省下的所有城市名称。

参数

  • provinceP:省份的拼音(例如'anhui')

返回值:包含城市名称的字符串列表。

getWeatherForAllCitiesInProvince

@Tool(description = "查询省份所有城市的天气,请传入省份的拼音,如anhui")
public Map<String, List<Map<String, String>>> getWeatherForAllCitiesInProvince(String provincePinyin)

功能:根据提供的省份拼音,返回该省下所有城市的天气信息。

参数

  • provincePinyin:省份的拼音(例如'anhui')

返回值:一个Map,其中键是城市名称,值是该城市的天气信息列表,每个元素包含日期(date)、天气(weather)、温度(temp)和风向(wind)等键的Map

使用说明

启动项目

确保已安装JDK 21并配置环境变量。然后运行以下命令启动应用程序:

./mvnw spring-boot:run

或者,如果您已经打包了jar文件,可以直接运行:

java -jar target/weather-mcp-0.0.1-SNAPSHOT.jar

访问接口

启动后,可以通过HTTP请求访问这些工具提供的API端点。默认情况下,服务将在http://localhost:8081上运行。

贡献指南

欢迎贡献代码或提出问题!如果您有任何建议或发现错误,请提交Issue或Pull Request。