天气查询服务

一个基于OpenWeather API的实时天气数据查询服务,提供全球城市的温度、湿度、风速等天气信息,适用于AI代理和其他MCP客户端集成。

  • by D0nG4667
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 d0ng4667/mcp_app_server

使用说明

MCP天气应用服务器

该项目是一个简单的模型上下文协议(MCP)服务器,使用OpenWeather API为任何城市提供实时天气信息。它是用Python构建的,并利用FastMCP框架实现简单的工具集成和API服务。

特性

  • 获取全球任何城市的当前天气数据
  • 返回温度、湿度、天气描述、风速/风向、云量等信息
  • 使用OpenWeather的地理编码和天气API
  • 设计为MCP工具,便于与AI代理和其他MCP客户端集成

需求

安装

  1. 克隆存储库:

    git clone <your-repo-url>
    cd mcp_app_server
    
  2. 安装依赖项: 如果使用 pip:

    pip install -r requirements.txt
    

    或者,如果使用 pyproject.toml (带紫外线):

    uv install
    

    确保你有 uv 安装。如果没有,你可以通过pip安装它:

  3. 设置环境变量:

    • 创建一个 .env 文件,并添加您的OpenWeather API密钥:

      echo "OPENWEATHER_API_KEY=your_openweather_api_key_here" > .env
      
    • 创建一个 .env 项目根目录中的文件:

    OPENWEATHER_API_KEY=your_openweather_api_key_here
    

用法

使用以下命令运行服务器:

python main.py

服务器将启动并公开MCP工具以进行天气查询。

工具使用示例

主要工具是 get_weather(city: str) -> dict,它获取指定城市的天气数据。

示例请求

from mcp_weather import get_weather
result = get_weather("London")
print(result)

示例响应

{
  "city": "London",
  "temperature": 18.5,
  "humidity": 65,
  "description": "light rain",
  "icon": "10d",
  "wind_speed": 4.1,
  "wind_direction": 80,
  "cloudiness": 90,
  "timestamp": 1719324000,
  "timezone": 3600,
  "country": "GB"
}

项目结构

mcp_app_server/
├── LICENSE
├── main.py            # Entry point to run the MCP server
├── Notes.txt
├── pyproject.toml     # Project metadata and dependencies
├── README.md
├── uv.lock
└── src/
    ├── mcp_weather.py # Weather tool implementation

环境变量

  • OPENWEATHER_API_KEY:来自OpenWeather的API密钥。服务器获取天气数据所必需的。

错误处理

  • 如果API密钥丢失或无效,服务器将引发错误。
  • 如果找不到城市,则返回描述性错误。
  • 优雅地处理意外的API响应格式。

延伸

  • 通过定义新功能添加更多MCP工具 @mcp.tool() 室内装饰师 src/mcp_weather.py 或新模块。
  • 根据需要与其他兼容MCP的代理或客户端集成。

📝 许可证

这个项目是 麻省理工学院 得到许可的。

致谢