天气数据服务

一个基于FastMCP的天气服务器,提供实时天气、预报、历史数据、空气质量和位置搜索功能。

  • by Anique-1
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 anique-1/weather-mcp-server

使用说明

气象MCP服务器

该项目是一个使用FastMCP构建的天气服务器,通过MCP工具提供天气和空气质量数据。它与 WeatherAPI 提供当前天气、预报、历史数据、空气质量和位置搜索。

特性

  • 当前天气:获取任何位置的实时天气状况。
  • 天气预报:检索最多10天的天气预报。
  • 天气历史:访问特定日期的历史天气数据(免费套餐最多7天)。
  • 空气质量:获取某个地点的详细空气质量指标。
  • 位置搜索:搜索与查询匹配的位置。

MCP工具

以下MCP工具可用:

  • get_current_weather(location: str) -> str
    返回指定位置的当前天气状况。

  • get_weather_forecast(location: str, days: int = 3) -> str
    返回指定位置和天数(1-10)的天气预报。

  • get_weather_history(location: str, date: str) -> str
    返回指定位置和日期(YYYY-MM-DD)的历史天气数据。

  • search_locations(query: str) -> str
    搜索与查询字符串匹配的位置。

  • get_air_quality(location: str) -> str
    返回指定位置的空气质量数据。

需求

  • Python 3.7+
  • httpx
  • FastMCP
  • WeatherAPI密钥(设置为 WEATHER_API_KEY 环境变量)

设置

  1. 安装依赖项
    使用pip安装所需的软件包:

    pip install httpx fastmcp
    
  2. 设置WeatherAPI密钥
    从获取API密钥 WeatherAPI 并将其设置为环境变量:

    set WEATHER_API_KEY=your_api_key_here
    

    (在Linux/macOS上,使用 export WEATHER_API_KEY=your_api_key_here)

  3. 运行服务器
    启动MCP服务器:

    python main.py
    

文件描述

  • main.py
    主服务器脚本。定义所有MCP工具并处理对WeatherAPI的请求。

  • .gitignore
    指定Git要忽略的文件和目录。

示例用法

您可以通过编程或MCP客户端使用MCP工具。工具使用示例:

# Example: Get current weather for London
result = await get_current_weather("London")
print(result)

许可证

这个项目是为了教育目的而提供的。看 WeatherAPI术语 API使用限制。