weather-mcp
2
The Weather MCP Service is a weather information system utilizing Model Control Protocol to provide real-time weather alerts and forecasts for the US, delivered via FastMCP Server with SSE transport. It is designed for querying weather conditions using state codes or geographic coordinates.
Weather MCP Service
一个基于 Model Control Protocol (MCP) 的天气信息服务,提供天气预报和警报查询功能。
功能
- 获取美国各州的天气警报(
get_alerts
) - 通过经纬度查询天气预报(
get_forecast
)
技术栈
- Python 3.11+
- MCP (Model Control Protocol)
- FastMCP 服务器
- LangGraph + LangChain
- SSE (Server-Sent Events) 传输
安装
-
克隆仓库:
git clone https://github.com/haichaozheng/weather-mcp.git cd weather-mcp
-
创建虚拟环境:
# 使用 Python 标准库 python -m venv weather_venv # 激活虚拟环境(Windows) weather_venv\Scripts\activate # 激活虚拟环境(Linux/Mac) source weather_venv/bin/activate
-
安装依赖:
pip install -r requirements.txt
-
配置环境变量:
- 创建
.env
文件,参考.env.example
文件格式 - 添加必要的 API 密钥
- 创建
使用方法
-
启动 Weather 服务器:
python weather/weather.py
服务器将在 http://localhost:8000 上启动,使用 SSE 传输。
-
在另一个终端窗口中运行客户端:
python weather/mcp_client.py
客户端将连接到服务器并执行一系列天气查询测试。
API 功能
天气警报查询
get_alerts(state: str) -> str
state
: 两字母美国州代码(例如:CA, NY)- 返回:该州的活跃天气警报列表
天气预报查询
get_forecast(latitude: float, longitude: float) -> str
latitude
: 位置纬度longitude
: 位置经度- 返回:该位置的天气预报
项目结构
weather-mcp/ ├── weather/ │ ├── weather.py # 主服务器文件 │ ├── mcp_client.py # 客户端测试文件 ├── requirements.txt # 项目依赖 ├── .env.example # 环境变量示例 └── README.md # 本文档
## 环境变量配置
项目使用 `.env` 文件存储环境变量和敏感信息。请按照以下步骤设置:
1. 复制环境变量模板文件:
```bash
cp .env.example .env
-
编辑
.env
文件,填入您的实际配置:MOONSHOT_API_KEY=your_actual_api_key
-
确保
.env
文件不会被提交到版本控制系统中