返回市场
开放天气地图_MCP

开放天气地图_MCP

作者:HelpFreedom8 星标更新:2025-10-22

项目介绍

🌤️ MCP 天气服务器与 OpenAI

一个简单的 MCP 服务器,通过 OpenWeatherMap API 获取天气信息,并使用 OpenAI 的 GPT-4o-mini 作为交互界面。

📋 它的功能是什么?

  • 🌍 获取任意城市的当前天气
  • 📅 显示未来几天的天气预报
  • 🤖 使用 GPT-4o-mini 进行自然语言交流
  • 🔧 实现 MCP 协议以连接 AI 到外部数据源

🚀 快速开始

1. 安装依赖

# 创建虚拟环境
python3 -m venv venv

# 激活虚拟环境
# 在 macOS/Linux 上:
source venv/bin/activate
# 在 Windows 上:
venv\Scripts\activate

# 安装依赖
pip3 install -r requirements.txt

2. 配置 API 密钥

在项目根目录创建 .env 文件:

# OpenWeatherMap API 密钥(免费)
# 获取地址:https://openweathermap.org/api
OPENWEATHER_API_KEY=你的密钥在这里

# OpenAI API 密钥
# 获取地址:https://platform.openai.com/api-keys
OPENAI_API_KEY=你的密钥在这里

如何获取密钥:

3. 启动

# 直接运行客户端
python3 client.py

💬 使用示例

启动后,可以使用自然语言询问天气:

👤 你:莫斯科现在的天气怎么样?
🤖 助手:[显示莫斯科当前天气]

👤 你:圣彼得堡未来五天的天气预测是怎样的?
🤖 助手:[显示五天天气预测]

👤 你:今天在伦敦应该穿什么?
🤖 助手:[检查天气并给出建议]

🔧 仅测试服务器

如果想不带客户端测试服务器:

# 使用 MCP Inspector
uv run mcp dev server.py

# 或者安装到 Claude Desktop
uv run mcp install server.py --name "Weather Service"

📁 项目结构

weather-mcp-server/
├── server.py          # 包含天气工具的 MCP 服务器
├── client.py          # 使用 OpenAI 和 mcp-use 的客户端
├── .env              # API 密钥(不要提交到 Git!)
├── requirements.txt   # Python 依赖
└── README.md         # 此文档

🛠️ 可用工具

get_current_weather

获取指定城市的当前天气

参数:

  • city (必需):城市名称
  • units (可选):"metric" 或 "imperial"

get_forecast

获取指定城市的未来几天天气预报

参数:

  • city (必需):城市名称
  • days (可选):天数(1-5)
  • units (可选):"metric" 或 "imperial"

⚠️ 注意事项

  1. 不要在 server.py 中使用 print() - 这会破坏 STDIO 传输
  2. 安全保存 .env - 添加到 .gitignore
  3. API 限制
    • OpenWeatherMap 免费版:每天 1000 次请求
    • OpenAI:取决于您的套餐
  4. OpenAI 成本:GPT-4o-mini 非常便宜(约每百万令牌 $0.15)

🐛 故障排除

错误:“未找到 OPENWEATHER_API_KEY”

  • 检查 .env 文件是否已创建且包含密钥
  • 确认文件位于脚本所在同一目录

错误:“无法获取天气”

  • 检查城市名称是否正确
  • 尝试使用英文城市名称

服务器无法启动

  • 确保虚拟环境已激活
  • 检查所有依赖项是否已安装

📚 相关链接