天气查询服务

一个通过OpenWeatherMap API获取天气数据并使用OpenAI GPT-4o-mini作为自然语言交互界面的MCP服务器。

  • by HelpFreedom
  • Python
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 HelpFreedom/OpenWeatherMap_MCP

使用说明

🌤️ 带有OpenAI的MCP天气服务器

一个简单的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 在项目的核心中:

# API ключ OpenWeatherMap (бесплатный)
# Получите на: https://openweathermap.org/api
OPENWEATHER_API_KEY=ваш_ключ_здесь

# API ключ OpenAI
# Получите на: https://platform.openai.com/api-keys
OPENAI_API_KEY=ваш_ключ_здесь

如何获取密钥:

  • OpenWeatherMap(开放天气图):

    1. 请在https://openweathermap.org进行注册
    2. 转到API密钥部分
    3. 复制密钥(免费计划每天提供1000次请求)
  • OpenAI(开放人工智能研究所):

    1. 请访问https://platform.openai.com进行注册
    2. 创建一个新的API密钥
    3. 充值余额(至少5美元)

3. 启动

# Просто запустите клиент
python3 client.py

💬 使用示例

启动后,只需用自然语言询问天气:

👤 Вы: Какая погода в Москве?
🤖 Ассистент: [Показывает текущую погоду в Москве]

👤 Вы: А какой прогноз на 5 дней для Санкт-Петербурга?
🤖 Ассистент: [Показывает прогноз на 5 дней]

👤 Вы: Что лучше надеть в Лондоне сегодня?
🤖 Ассистент: [Проверяет погоду и дает рекомендации]

🔧 仅服务器测试

如果您想在没有客户端的情况下测试服务器:

# Используйте 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 (可选):“公制”或“英制”

get_forecast

获取多日天气预报

参数:

  • city (必填):城市名称
  • days (可选):天数(1-5)
  • units (可选):“公制”或“英制”

⚠️ 重要备注

  1. 不要使用 print() 在 server.py 中 - 这将破坏STDIO传输
  2. 保存 .env 在安全方面 - 添加到 .gitignore
  3. API限制:
    • OpenWeatherMap 免费版:每天1000次查询
    • OpenAI:取决于您的套餐
  4. OpenAI的成本GPT-4o-mini非常便宜(每100万个token约0.15美元)

🐛 解决问题

错误:“未找到OPENWEATHER_API_KEY”

  • 检查文件是否 .env 已创建并包含密钥
  • 确保文件与脚本位于同一文件夹中

错误:“无法获取天气信息”

  • 检查城市名称的拼写是否正确
  • 试试这个城市的英文名字

服务器无法启动

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

📚 有用链接