Weather MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Weather MCP Serverwhat's the weather in Tokyo?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Weather MCP Server - Day 10
Overview
Day 10 of the 30-Day RAG Learning Journey focuses on building a Weather MCP Server that integrates with real-time weather APIs. This project combines RAG (Retrieval-Augmented Generation) principles with Location-Based Context Synthesis (LBCS) systems.
Related MCP server: OpenWeatherMap MCP Server
Project Structure
day10-weather-mcp/
├── weather_mcp_server.py # Main MCP server with weather tools
├── test_weather.py # Test client for API validation
├── requirements.txt # Python dependencies
├── .env # Environment variables (API keys)
├── .env.example # Template for environment setup
├── README.md # This file
└── venv/ # Virtual environmentFeatures - 5 Weather Tools
1. get_current_weather (location: str)
Returns comprehensive current weather data:
Temperature
Feels Like temperature
Humidity percentage
Weather description
Wind speed
Pressure
Cloud coverage
# Example usage
location = "London"
units = "metric" # or "imperial", "standard"2. get_forecast (location: str, days: int)
Returns 5-day weather forecast with daily highs/lows:
Daily high temperatures
Daily low temperatures
Weather conditions
Configurable forecast days (1-5)
# Example usage
location = "Paris"
days = 53. get_weather_alerts (location: str)
Returns severe weather warnings and alerts (if any):
Alert event type
Start/end times
Alert descriptions
Severity indicators
# Example usage
location = "New York"4. compare_locations (location1: str, location2: str)
Returns side-by-side weather comparison:
Temperature comparison
Humidity levels
Wind speeds
Weather conditions
Pressure readings
# Example usage
location1 = "London"
location2 = "New York"5. get_weather_by_coords (lat: float, lon: float)
Returns weather for specific latitude/longitude:
Temperature at coordinates
Location name (reverse geocoding)
All weather parameters
Pressure, humidity, wind
# Example usage
lat = 51.5074
lon = -0.1278Tech Stack
Python 3.11: Core programming language
MCP 1.25.0: Model Context Protocol for Claude integration
httpx 0.28.1: Async HTTP client for API calls
OpenWeatherMap API: Real-time weather data provider
python-dotenv: Environment variable management
Async/await patterns: Non-blocking I/O operations
Setup Instructions
1. Prerequisites
Python 3.8+
OpenWeather API key (free tier available)
Virtual environment (recommended)
2. Get API Key
Visit OpenWeather API
Sign up for a free account
Get your API key from the account dashboard
Copy your API key
3. Install Dependencies
# Navigate to directory
cd week2-mcp/day10-weather-mcp
# Create and activate virtual environment
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
# Install packages
pip install -r requirements.txt4. Configure Environment
# Copy template
cp .env.example .env
# Edit .env and add your API key
# WEATHER_API_KEY=your_actual_api_key_here5. Run Server
python weather_mcp_server.py6. Test Integration
python test_weather.pyAPI Response Examples
Current Weather (London)
Current Weather in London, GB:
Description: Partly Cloudy
Temperature: 8.5°C
Feels Like: 6.2°C
Humidity: 72%
Wind Speed: 4.5 m/s
Pressure: 1013 hPa
Cloudiness: 40%Weather Forecast (5-Day)
5-Day Weather Forecast for London:
Date: 2025-12-28
High: 10.2°C | Low: 5.3°C
Conditions: Rainy
--------------------------------------------------
Date: 2025-12-29
High: 9.1°C | Low: 4.8°C
Conditions: Cloudy
--------------------------------------------------Weather Comparison
Weather Comparison: London vs Paris
============================================================
London | Paris
------------------------------------------------------------
Temperature: 8.5°C | 9.2°C
Feels Like: 6.2°C | 7.1°C
Humidity: 72% | 65%
Conditions: Cloudy| Clear
Wind Speed: 4.5 | 3.2 m/sIntegration with Claude Desktop
To use this MCP server with Claude Desktop:
Edit your Claude Desktop configuration file:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Add the weather server:
{
"mcpServers": {
"weather": {
"command": "python",
"args": ["C:\\path\\to\\weather_mcp_server.py"]
}
}
}Restart Claude Desktop
Learning Concepts
RAG & LBCS Integration
This project demonstrates:
Context-Aware Retrieval: Using location data to retrieve relevant weather information
Real-time Data Processing: Async handling of API calls
MCP Protocol: Integrating external tools with LLMs
Error Handling: Graceful degradation when APIs fail
Data Formatting: Structured output for LLM consumption
Key Technologies
asyncio: Asynchronous Python for concurrent requests
httpx: Async HTTP client for API calls
OpenWeather API: Real-time weather data provider
MCP Protocol: Tool integration with Claude
Type Hints: Full Python type annotations
Usage Examples
Ask Claude
"What's the weather like in Tokyo right now?"
Claude uses get_current_weather tool to retrieve current conditions.
"Compare the weather between London, Paris, and New York"
Claude uses compare_locations tool for side-by-side analysis.
"What will the weather be like in Sydney over the next 5 days?"
Claude uses get_forecast tool to get daily predictions.
"Get the weather at coordinates 51.5074, -0.1278"
Claude uses get_weather_by_coords for precise location weather.
"Are there any weather alerts for Los Angeles?"
Claude uses get_weather_alerts to check for severe weather.
Troubleshooting
API Key Not Working
Verify your API key is correct in
.envCheck if your OpenWeather account is activated
Ensure you have enough API call quota
Wait 10 minutes after creating account before first use
Connection Errors
Check your internet connection
Verify OpenWeather API is accessible
Check firewall settings
Verify the domain isn't blocked in your region
Import Errors
Ensure virtual environment is activated
Reinstall requirements:
pip install -r requirements.txtCheck Python version (3.8+ required)
Tool Not Found Errors
Restart Claude Desktop after adding server config
Verify server config JSON is valid
Check file paths are absolute, not relative
File Descriptions
weather_mcp_server.py
Main MCP server implementation with:
Tool registration (
list_tools)Tool execution (
call_tool)Handler functions for each weather tool
Async HTTP client setup
Error handling and logging
test_weather.py
Test client for validating:
Server startup
Tool execution
API connectivity
Response formatting
requirements.txt
Python package dependencies:
mcp==1.25.0
aiosqlite==0.21.0
python-dotenv==1.0.0
httpx>=0.27.1
requests==2.31.0
.env / .env.example
Environment configuration:
WEATHER_API_KEY: Your OpenWeather API key
SERVER_PORT: Server port (default 8000)
LOG_LEVEL: Logging level (INFO, DEBUG, etc.)
Next Steps (Day 11)
Add air quality index (AQI) integration
Implement weather history retrieval
Add UV index and visibility data
Create weather-based activity recommendations
Build predictive models for weather patterns
Add support for severe weather notifications
Integrate multiple weather providers
Create weather analytics dashboard
Performance Metrics
Average Response Time: ~500-800ms per API call
Concurrent Requests: Supports multiple simultaneous queries
API Rate Limit: Depends on OpenWeather plan (1000/day free)
Server Memory: ~100MB baseline
Database: Currently stateless (can add persistent cache)
Resources
Contributing
To extend this project:
Add new weather tools in
list_tools()Create handler functions in
weather_mcp_server.pyAdd tool calls in
call_tool()functionTest with
test_weather.pyUpdate documentation
Author
Rithwik Nyalam
Date: December 28, 2025
Part of: 30-Day RAG Learning Journey - Week 2
Last Updated: December 28, 2025
Status: Production Ready
Version: 1.0.0
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nyalamrithwik-oss/day10-Weather-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server