气象MCP服务器🌤️
适合初学者 模型上下文协议(MCP)服务器 它为Claude Desktop提供实时天气数据。对于任何学习构建MCP服务器的人来说,这个项目都是一个完美的起点。
🚀 什么是MCP?
这 模型上下文协议(MCP) 允许像Claude这样的人工智能助手安全地连接到外部数据源和工具。此天气服务器演示如何:
- 使用Python创建基本的MCP服务器
- 与Claude Desktop集成
- 从外部API获取实时数据
- 优雅地处理错误
✨ 特性
- 🌪️ 天气警报:获取美国任何州的活跃天气警报
- 📊 天气预报:获取任何地点的详细5天预报
- 🔧 无外部依赖关系:仅使用Python标准库(urllib)
- 📝 综合录井:内置错误处理和调试
- 🚀 轻松设置:开箱即用,配置最少
📦 安装
先决条件
- 系统上已安装Python 3.8+
- Claude桌面应用程序
- 天气数据的互联网连接
步骤1:克隆存储库
git clone https://github.com/your-username/weather-mcp-server.git
cd weather-mcp-server步骤2:安装MCP依赖项
pip install mcp备注:这是唯一需要的依赖关系!天气服务器使用Python的内置 urllib 用于HTTP请求的库,使事情变得简单。步骤3:测试服务器
python weather.py您应该看到: Starting Simple Weather MCP Server...
服务器将运行并等待连接(这是正常行为)。
🔧 Claude桌面集成
步骤1:找到您的Claude桌面配置
配置文件位于:
- 视窗:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
步骤2:更新配置
将此添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"weather": {
"command": "python",
"args": ["/path/to/your/weather-mcp-server/weather.py"]
}
}
}Windows示例:
{
"mcpServers": {
"weather": {
"command": "C:\\Python312\\python.exe",
"args": ["C:\\Users\\YourName\\weather-mcp-server\\weather.py"]
}
}
}macOS/Linux示例:
{
"mcpServers": {
"weather": {
"command": "/usr/bin/python3",
"args": ["/Users/YourName/weather-mcp-server/weather.py"]
}
}
}步骤3:重新启动克劳德桌面
- 完全关闭克劳德桌面
- 重新打开克劳德桌面
- 查找天气服务器连接状态
🧪 测试集成
连接后,在Claude Desktop中尝试以下提示:
What are the current weather alerts for California?What's the weather forecast for New York City coordinates 40.7128, -74.0060?Are there any active weather alerts for Texas?🛠️ 可用工具
get_alerts(state: str)
获取美国某个州的活跃天气警报。
参数:
state:两个字母的美国州代码(例如,“CA”、“NY”、“TX”)
例子:
Get weather alerts for Floridaget_forecast(latitude: float, longitude: float)
获取特定坐标的详细天气预报。
参数:
latitude:纬度坐标longitude:经度坐标
例子:
What's the weather forecast for coordinates 34.0522, -118.2437?🔍 故障排除
服务器未连接
- 检查Python路径:确保配置中的Python路径正确
- 验证文件路径:确保路径
weather.py绝对正确 - 重新启动克劳德:配置更改后始终重新启动Claude Desktop
- 检查日志:查看日志文件以获取错误消息
常见问题
问题:“服务器已断开连接”
- 解决方案:检查所有依赖项是否安装在正确的Python环境中
问题:“没有名为'mcp'的模块”
- 解决方案:安装MCP:
pip install mcp
问题:“找不到文件”
- 解决方案:在配置中使用绝对路径
查看日志
检查在项目目录中创建的日志文件:
- 文件:
weather.log - 包含详细的错误消息和请求信息
📁 项目结构
weather-mcp-server/
├── weather.py # Main MCP server
├── weather.log # Log file (auto-generated)
├── README.md # This file
├── LICENSE # MIT License
└── .gitignore # Git ignore patterns🔧 运作原理
- MCP服务器:
weather.py使用FastMCP创建MCP服务器 - API集成:使用美国国家气象局API(无需API密钥)
- 工具注册:暴露
get_alerts和get_forecast作为工具 - 克劳德集成:Claude Desktop通过stdio传输连接
🚀 扩展此项目
这个基本的天气服务器可以扩展为:
- 更多天气数据:添加小时预报、雷达数据等。
- 其他API:整合其他气象服务
- 缓存:添加响应缓存以提高性能
- 错误处理:增强的错误恢复和重试
- 配置:添加配置文件以进行自定义
📚 学习资源
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
💡 致谢
- 内置于 MCP(模型上下文协议)
- 天气数据来自 美国国家气象局API
- 受无障碍MCP学习资源需求的启发
______________________________________________________________________
编码愉快! 🌟 如果这个项目帮助你学习了MCP,请给它一颗星⭐
