Skip to main content
Glama

🌦️ Weather MCP RAG Assistant

Помощник по погоде на основе ИИ, созданный с использованием Model Context Protocol (MCP), Retrieval-Augmented Generation (RAG), LangChain, ChromaDB, Groq LLM и OpenWeather API.

Проект предоставляет пользовательский MCP-инструмент, который получает данные о погоде в реальном времени и объединяет их с RAG-конвейером для генерации контекстуальных ответов о погоде на естественном языке.

🚀 Ключевые возможности

  • Пользовательский MCP-сервер, созданный с помощью FastMCP

  • Получение данных о погоде в реальном времени через OpenWeather API

  • Конвейер Retrieval-Augmented Generation (RAG) для контекстуальных ответов

  • Векторное хранилище ChromaDB для хранения и поиска погодного контекста

  • Эмбеддинги Sentence Transformer с использованием all-MiniLM-L6-v2

  • Интеграция LLM, размещённой на Groq, через LangChain

  • Интеграция MCP-инструмента с VS Code / GitHub Copilot

  • Поддержка динамических запросов о погоде для разных городов

  • Безопасное управление API-ключами с помощью переменных окружения

Related MCP server: Weather MCP Server

🧠 Как это работает

User Query
    ↓
GitHub Copilot / MCP Client
    ↓
Weather MCP Server
    ↓
get_weather(location)
    ↓
OpenWeather API
    ↓
Weather Data Processing
    ↓
ChromaDB Vector Store
    ↓
RAG Retrieval
    ↓
Groq LLM
    ↓
Context-Aware Weather Response

🛠️ Технологический стек

Язык: Python

AI / GenAI: LLM, RAG, Prompt Engineering, Sentence Transformers

Фреймворки: LangChain, FastMCP

Векторная база данных: ChromaDB

Поставщик LLM: Groq

Внешний API: OpenWeather API

Протокол: Model Context Protocol (MCP)

Среда разработки: VS Code, Git, GitHub

📂 Структура проекта

Weather-MCP-RAG-Assistant/
│
├── rag/
│   ├── embedding.py
│   ├── llm.py
│   ├── retriever.py
│   └── vector_store.py
│
├── services/
│   └── weather_service.py
│
├── utils/
│   └── parser.py
│
├── config.py
├── server.py
├── requirements.txt
├── env.example
├── .gitignore
└── README.md

⚙️ Настройка

1. Клонируйте репозиторий

git clone https://github.com/rudraniai/Weather-MCP-RAG-Assistant.git
cd Weather-MCP-RAG-Assistant

2. Создайте виртуальное окружение

python -m venv .venv

Активируйте его в Windows:

.venv\Scripts\activate

3. Установите зависимости

pip install -r requirements.txt

4. Настройте переменные окружения

Скопируйте пример файла окружения:

copy env.example .env

Добавьте свои учётные данные в .env:

OPENWEATHER_API_KEY=your_openweather_api_key
GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=your_groq_model
EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
CHROMA_DB_DIR=./chroma_db

Учётные данные API хранятся вне системы контроля версий с помощью .gitignore.

5. Запустите MCP-сервер

python server.py

🔌 Конфигурация MCP

Настройте локальный MCP-сервер в VS Code, используя:

{
  "servers": {
    "weather-mcp": {
      "type": "stdio",
      "command": "python",
      "args": [
        "PATH_TO_PROJECT/server.py"
      ]
    }
  },
  "inputs": []
}

Замените PATH_TO_PROJECT на локальный путь к server.py.

После настройки:

  1. Откройте палитру команд в VS Code.

  2. Выберите MCP: List Servers.

  3. Выберите weather-mcp.

  4. Запустите MCP-сервер.

  5. Откройте GitHub Copilot Chat и разрешите использование MCP-инструмента при запросе.

🎥 Демонстрация проекта

Следующая демонстрация показывает, как пользовательский MCP-инструмент weather-mcp вызывается через GitHub Copilot для получения и генерации контекстуальной информации о погоде.

Weather MCP Demo

💬 Пример использования

Спросите Copilot:

Use the weather-mcp MCP tool to get the weather in Pune.

Другие примеры:

Use the weather-mcp MCP tool to get the weather in Mumbai.

Use the weather-mcp MCP tool to get the weather in Nagpur.

Пример информации, возвращаемой помощником, включает:

  • Текущую температуру

  • Ощущаемую температуру

  • Влажность

  • Скорость и направление ветра

  • Облачность

  • Сводку о погоде

  • Информацию о качестве воздуха, когда она доступна

🔐 Безопасность

Конфиденциальные данные, такие как API-ключи, хранятся в локальном файле .env.

Следующие файлы/каталоги исключены из Git:

.env
chroma_db/
__pycache__/
.vscode/

Никогда не коммитьте реальные API-ключи в репозиторий.

📌 Чему я научился

В ходе этого проекта я получил практический опыт в:

  • Создании и предоставлении инструментов через Model Context Protocol (MCP)

  • Интеграции внешних API с приложениями на основе LLM

  • Реализации RAG-конвейера

  • Работе с эмбеддингами и векторными базами данных

  • Использовании ChromaDB для контекстуального поиска

  • Подключении LangChain к размещённой LLM

  • Интеграции пользовательского MCP-сервера с GitHub Copilot

  • Безопасном управлении переменными окружения и учётными данными API

🔮 Планы на будущее

  • Добавить многодневный прогноз погоды

  • Добавить погодные оповещения и рекомендации

  • Улучшить поиск и контекстуальную память

  • Добавить дополнительные источники погодных и экологических данных

  • Создать отдельный веб-интерфейс с помощью Streamlit или FastAPI

  • Контейнеризировать приложение с помощью Docker

👩💻 Автор

Rudrani Gulhane

B.Tech Computer Science Engineering — Artificial Intelligence & Machine Learning

Интересы: AI/ML, Generative AI, RAG, LLM, AI Agents и приложения на основе MCP.

📄 Лицензия

Этот проект предназначен для образовательных целей, портфолио и экспериментов.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI agents to fetch real-time weather data for any location using the OpenWeatherMap API. Demonstrates how to build a simple MCP server that exposes weather information as a tool for LLMs.
    1
    GPL 3.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time weather updates and city geocoding by integrating the Nominatim and Open-Meteo APIs. It enables users to retrieve current weather conditions for any location through natural language queries in MCP-compatible clients.
    19 npm
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides weather data from OpenWeatherMap API through MCP tools and a REST API with OpenAPI support. Enables LLM agents to retrieve current weather, forecasts, and temperature ranges by city or coordinates.
    11 npm
    MIT