article
README
🚀 MCP 天气工具
MCP 天气工具是一个基于 MCP 协议的简单命令行工具,借助客户端 - 服务器架构,让用户能够访问美国天气数据。同时,它利用 Google 的 Gemini AI 提供自然语言接口,方便用户查询天气信息。
🚀 快速开始
MCP 天气工具将 Python 客户端应用程序与天气数据服务器相连接,支持用户使用自然语言查询天气信息。服务器会通过模型上下文协议(MCP)与国家气象局 API 通信,以此获取天气警报和预报。
✨ 主要特性
- 可以使用州代码查询美国各州的当前天气警报。
- 能够利用纬度和经度获取特定位置的详细天气预报。
- 借助 Google 的 Gemini AI 提供自然语言接口。
- 通过模型上下文协议(MCP)实现客户端 - 服务器架构。
📦 安装指南
先决条件
- Python 3.8+
- Node.js(若运行 JavaScript 服务器)
- Google Gemini API 密钥
安装步骤
- 克隆仓库:
git clone https://github.com/Abhinavexists/MCP_Server.git cd weather-tool - 若没有安装 uv,可进行安装:
pip install uv - 创建并激活虚拟环境:
- 在 Windows 上:
.venv\Scripts\activate - 在 macOS/Linux 上:
source .venv/bin/activate
- 在 Windows 上:
- 使用 uv 安装依赖项(该项目使用 uv.lock 和 pyproject.toml):
uv pip sync - 在项目根目录创建
.env文件,并添加您的 Gemini API 密钥:GEMINI_API_KEY=your_gemini_api_key_here
💻 使用示例
基础用法
- 运行客户端并连接到天气服务器:
python client.py server.py - 连接成功后,您可以询问有关天气信息的问题,例如:
- 查询:加利福尼亚州当前有哪些天气警报?
- 查询:纬度 37.7749 和经度 -122.4194 的位置的天气预报是什么?
- 若要退出应用程序,输入
quit即可。
提供的工具
服务器提供了以下工具:
- get_alerts:获取指定美国州份(使用两个字母州代码)的天气警报。
- get_forecast:根据纬度和经度检索特定位置的天气预报。
📚 详细文档
项目结构
client.py:MCP 客户端,负责连接到服务器并使用 Gemini AI 处理用户查询。server.py:MCP 服务器,实现天气数据工具并与国家气象局 API 通信。
错误处理
该应用程序具备以下错误处理功能:
- 处理无效服务器脚本路径的情况。
- 解决与 NWS API 的连接问题。
- 处理 API 响应中缺少或无效的数据。
未来改进方向
- 添加其他天气数据端点。
- 实现常用数据的缓存功能。
- 支持使用位置名称进行查询(而非仅依赖经纬度)。
- 创建网页界面。
📄 许可证
本项目采用 MIT License。
🔗 资源
有关模型上下文协议(MCP)的更多信息,请参阅官方 Claude MCP 文档:
Scan to join WeChat group