PyWeatherMCP(注:这个名称可能是一个特定项目或工具的名称,直接翻译为中文可能无法准确传达其含义,因此保持原样。如果这是一个有特定中文名称的项目或工具,应使用相应的中文名称。)
一个使用国家气象局API提供天气信息的模型上下文协议(MCP)服务器。该服务器为兼容MCP的客户端提供天气警报、预报和位置管理功能。
特点/特性
- 🌦️ 阴天有雨 天气预警获取美国任何州的实时天气警报
- 📍(这个符号在中文里通常表示位置或地点,但没有直接的翻译,可理解为“位置”或“地点”) 天气预报获取美国任何地点的5天天气预报
- ⭐ 最喜爱的地点保存并管理您喜爱的天气地点
- 📊 表格/数据图表 搜索历史追踪您的天气查询
- 🔄 翻译成中文可以是“循环”或“重复”。这个符号通常用来表示一个过程或动作的循环进行,比如在技术、计算机科学或日常生活中,表示某个操作或步骤不断重复进行。 内存持久性自动保存您的偏好设置和历史记录
先决条件
- Python 3.14或更高版本
- 互联网连接(用于向国家气象局发起API调用)
安装
使用紫外线(推荐)
- 克隆仓库:
git clone https://github.com/yourusername/pyweathermcp.git
cd pyweathermcp- 使用 uv 安装依赖项:
uv sync使用 pip
- 克隆仓库:
git clone https://github.com/yourusername/pyweathermcp.git
cd pyweathermcp- 创建一个虚拟环境:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- 安装依赖项:
pip install -e .使用方法
运行MCP服务器
运行天气MCP服务器:
python weather.py服务器将启动并通过标准输入输出(stdio)监听MCP协议消息。
可用工具
1. 获取天气警报
获取美国某州的实时天气警报。
参数:
state(字符串):美国两字州代码(例如,“CA”,“NY”,“TX”)
示例:
get_alerts("CA")2. 获取天气预报
获取特定地点的5天天气预报。
参数:
latitude(float): 纬度坐标longitude(float):经度坐标location_name(字符串,可选):该位置的可读名称
示例:
get_forecast(37.7749, -122.4194, "San Francisco, CA")3. 保存喜爱的位置
将某个位置保存到您的收藏夹以便快速访问。
参数:
name(字符串):位置名称latitude(float):纬度坐标longitude(float): 经度坐标
示例:
save_favorite("Home", 40.7128, -74.0060)4. 获取收藏的位置
检索所有已保存的收藏位置。
示例:
get_favorites()5. 获取搜索历史
查看您最近的天气搜索记录。
参数:
limit(int, 可选):要显示的最近搜索次数(默认:10)
示例:
get_history(5)6. 清除搜索历史
清除所有搜索历史,同时保留收藏夹。
示例:
clear_history()可用资源
服务器信息
获取有关天气服务器及其功能的信息。
资源URI: weather://info
使用统计
获取使用统计数据,包括搜索次数和收藏地点。
资源URI: weather://stats
可用提示
快速天气查询
一个模板提示,用于快速查询您喜爱地点的天气。
提示: quick_weather_prompt
数据存储
服务器自动创建并维护一个 weather_memory.json 要存储的文件:
- 搜索历史
- 最喜爱的位置
- 使用统计
此文件在首次使用时自动生成,并且不纳入版本控制。
API 信息
这台服务器使用的是 国家气象局API (https://api.weather.gov),该网址:
- 为美国提供免费天气数据
- 无需API密钥或认证
- 有速率限制(请保持礼貌)
- 覆盖美国所有州和领地
错误处理
服务器具备强大的错误处理功能:
- 网络超时(30秒)
- 无效的坐标或状态代码
- API服务不可用
- 优雅地处理缺失数据的回退方案
发展
项目结构
pyweathermcp/
├── weather.py # Main MCP server implementation
├── main.py # Simple entry point
├── test_imports.py # Import testing utility
├── pyproject.toml # Project configuration and dependencies
├── weather_memory.json # User data storage (auto-generated)
├── .gitignore # Git ignore rules
└── README.md # This file依赖项
httpx>=0.28.1现代API请求的HTTP客户端mcp>=1.18.0模型上下文协议服务器框架
测试导入(或:测试导入功能)
验证所有依赖项是否已正确安装:
python test_imports.py做出贡献
- 为仓库创建分支(或:克隆仓库)
- 创建一个特性分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 提交一个拉取请求(或:发起一个合并请求)
许可证
这个项目是开源的,并且遵循以下(许可证/条款)可用 麻省理工学院许可证.
支持
如果您遇到任何问题或有任何疑问:
- 检查一下 问题 页面
- 创建一个包含详细信息的新问题
- 包含错误信息和复现步骤
更改日志
v0.1.0
- 首次发布
- 天气警报和预报
- 收藏地点管理
- 搜索历史追踪
- 内存持久性
______________________________________________________________________
注: 此服务器设计为与MCP兼容的客户端配合使用。请确保您的客户端支持MCP协议,以获得最佳体验。
