weather-mcp
š¦ļø Weather MCP RAG Assistant
An AI-powered weather assistant built using Model Context Protocol (MCP), Retrieval-Augmented Generation (RAG), LangChain, ChromaDB, Groq LLM, and OpenWeather API.
The project exposes a custom MCP tool that retrieves real-time weather data and combines it with a RAG pipeline to generate contextual, natural-language weather insights.
š Key Features
Custom MCP server built using FastMCP
Real-time weather retrieval using OpenWeather API
Retrieval-Augmented Generation (RAG) pipeline for contextual responses
ChromaDB vector store for storing and retrieving weather context
Sentence Transformer embeddings using
all-MiniLM-L6-v2Groq-hosted LLM integration through LangChain
MCP tool integration with VS Code / GitHub Copilot
Supports dynamic weather queries for different cities
Secure API-key management using environment variables
š§ How It Works
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š ļø Tech Stack
Language: Python
AI / GenAI: LLMs, RAG, Prompt Engineering, Sentence Transformers
Frameworks: LangChain, FastMCP
Vector Database: ChromaDB
LLM Provider: Groq
External API: OpenWeather API
Protocol: Model Context Protocol (MCP)
Development Environment: VS Code, Git, GitHub
š Project Structure
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āļø Setup
1. Clone the repository
git clone https://github.com/rudraniai/Weather-MCP-RAG-Assistant.git
cd Weather-MCP-RAG-Assistant2. Create a virtual environment
python -m venv .venvActivate it on Windows:
.venv\Scripts\activate3. Install dependencies
pip install -r requirements.txt4. Configure environment variables
Copy the example environment file:
copy env.example .envAdd your credentials to .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_dbAPI credentials are kept outside version control using
.gitignore.
5. Run the MCP server
python server.pyš MCP Configuration
Configure the local MCP server in VS Code using:
{
"servers": {
"weather-mcp": {
"type": "stdio",
"command": "python",
"args": [
"PATH_TO_PROJECT/server.py"
]
}
},
"inputs": []
}Replace PATH_TO_PROJECT with the local path to server.py.
After configuration:
Open the VS Code Command Palette.
Select
MCP: List Servers.Select
weather-mcp.Start the MCP server.
Open GitHub Copilot Chat and allow the MCP tool when requested.
š„ Project Demo
The following demo shows the custom weather-mcp MCP tool being invoked through GitHub Copilot to retrieve and generate contextual weather information.

š¬ Example Usage
Ask Copilot:
Use the weather-mcp MCP tool to get the weather in Pune.Other examples:
Use the weather-mcp MCP tool to get the weather in Mumbai.
Use the weather-mcp MCP tool to get the weather in Nagpur.Example information returned by the assistant includes:
Current temperature
Feels-like temperature
Humidity
Wind speed and direction
Cloud conditions
Weather summary
Air-quality information when available
š Security
Sensitive credentials such as API keys are stored in a local .env file.
The following files/directories are excluded from Git:
.env
chroma_db/
__pycache__/
.vscode/Never commit real API keys to the repository.
š What I Learned
Through this project, I gained hands-on experience with:
Building and exposing tools through Model Context Protocol (MCP)
Integrating external APIs with LLM-based applications
Implementing a RAG pipeline
Working with embeddings and vector databases
Using ChromaDB for contextual retrieval
Connecting LangChain with a hosted LLM
Integrating a custom MCP server with GitHub Copilot
Managing environment variables and API credentials securely
š® Future Improvements
Add multi-day weather forecasting
Add weather alerts and recommendations
Improve retrieval and contextual memory
Add additional weather and environmental data sources
Build a standalone web interface using Streamlit or FastAPI
Containerize the application using Docker
š©āš» Author
Rudrani Gulhane
B.Tech Computer Science Engineering ā Artificial Intelligence & Machine Learning
Interested in AI/ML, Generative AI, RAG, LLMs, AI Agents, and MCP-based applications.
š License
This project is intended for educational, portfolio, and experimental use.