About MCP Weather Server
MCP Weather Server is an MCP server for weather app development, data analysis, and travel planning. It offers city-based tools for current conditions, forecasts, air quality, UV levels, alerts, astronomy, and weather maps.
Key features
- 01Get current weather and five-day forecasts
- 02Check air quality and pollutant data
- 03Retrieve UV levels and safety guidance
- 04Compare weather across multiple cities
- 05Query alerts, sunrise and sunset, and map data
Use cases
- 01Compare destinations when planning a trip
- 02Check air quality and UV conditions for outdoor activities
- 03Use city weather trends in data analysis
- 04Find sunrise and sunset times for a shoot
MCP support
The MCP server exposes nine weather tools to MCP clients, covering conditions, forecasts, air quality, UV, city comparisons, alerts, astronomy, statistics, and map data.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README🌤️ Enhanced MCP Weather Server v2.0
A comprehensive Model Context Protocol (MCP) server that provides extensive weather data, forecasts, air quality, UV index, and much more! Get detailed weather information directly in your VS Code chat with 9 powerful tools.
🚀 What Makes This Special?
This isn't just another weather tool - it's a comprehensive weather intelligence system that provides:
🎯 9 Powerful Weather Tools:
- 🌡️ Enhanced Current Weather - Detailed conditions with emojis and comprehensive data
- 📅 5-Day Weather Forecast - Complete weather predictions with trends
- 🌬️ Air Quality Index - Real-time pollution levels and health warnings
- ☀️ UV Index & Sun Safety - Solar radiation levels with safety recommendations
- 🌍 Multi-City Comparison - Compare weather across multiple locations
- 🚨 Weather Alerts - Severe weather warnings and emergency notifications
- 🌅 Astronomy Data - Sunrise, sunset, day length, and astronomical information
- 📊 Weather Statistics - Comprehensive trends, averages, and climate insights
- 🗺️ Weather Maps - Access to radar, satellite, and weather map data
💡 Why Use This Tool?
For Developers:
- 🏗️ Building weather apps? Get comprehensive data in one place
- 🌐 Need location-based features? Access weather, air quality, and astronomy data
- 📱 Creating travel apps? Compare weather across multiple destinations
- 🎯 Building outdoor apps? Get UV index, air quality, and safety information
For Data Analysis:
- 📊 Weather trends and patterns for business intelligence
- 🌡️ Climate data analysis for research projects
- 📈 Multi-city comparisons for location planning
- 🗺️ Geographic weather mapping for visualization projects
For Personal Use:
- ✈️ Travel planning with detailed forecasts and air quality
- 🏃 Outdoor activities with UV index and weather safety
- 🌍 Multi-location monitoring for family/business across cities
- 📱 Comprehensive weather briefings beyond basic conditions
For Content Creation:
- 📝 Weather-aware content with detailed environmental data
- 🎥 Location scouting with comprehensive weather analysis
- 📊 Data visualization with rich weather statistics
- 🌡️ Climate storytelling with historical and trend data
🚨 Quick Note: If the install buttons below open in your browser instead of VS Code, use Method 1 below for manual configuration - it's more reliable!
🚀 Easy Installation Methods
🎯 Method 1: NPM Package (Recommended)
Install directly from npm with automated setup:
npm install -g mohaimen-weather-mcp
Then in your settings just add
"<name of your server>":
{
"command": "npx",
"args": [
"mohaimen-weather-mcp"
],
"env": {
"OPENWEATHER_API_KEY": "<YOUR_KEY>"
}
}
This will:
- Install the package globally
- Run an interactive setup that asks for your API key
- Automatically configure VS Code settings with correct paths
- No manual configuration needed!
🎯 Method 2: Manual Configuration (Most Reliable)
-
Clone and build:
git clone https://github.com/mohaimenhasan/mcp-weather-server.git cd mcp-weather-server npm run setup -
Get your API key:
- Visit OpenWeatherMap (free account)
- Copy your API key
-
Add to VS Code:
- Open VS Code
- Press
Ctrl+Shift+P(orCmd+Shift+Pon Mac) - Type "Preferences: Open User Settings (JSON)"
- Add this to your settings:
{ "mcpServers": { "weather": { "command": "node", "args": ["/absolute/path/to/mcp-weather-server/dist/index.js"], "env": { "OPENWEATHER_API_KEY": "your_api_key_here" } } } }
✨ All Features & Examples
�️ Enhanced Current Weather
🌤️ Weather in London, GB
🌡️ Temperature: ☀️ 22°C (feels like ☀️ 24°C)
📊 Condition: clear sky
💧 Humidity: 65%
🌬️ Wind: 3.2 m/s (120°)
👁️ Visibility: 10.0 km
🌡️ Pressure: 1013 hPa
📈 Min/Max: ☀️ 18°C / ☀️ 26°C
☁️ Cloudiness: 10%
🌅 Sunrise: 6:42:15 AM
🌇 Sunset: 8:15:30 PM
📍 Coordinates: 51.5074, -0.1278
📅 5-Day Weather Forecast
📅 5-Day Weather Forecast for Paris
☀️ Day 1 - 12/27/2024
🌡️ Temp: ☀️ 24°C (☀️ 20°C - ☀️ 28°C)
📊 clear sky
💧 Humidity: 68%
🌬️ Wind: 2.1 m/s
☁️ Clouds: 15%
🌬️ Air Quality Index
🌬️ Air Quality in Tokyo
📊 Overall AQI: 2/5 - 🟡 Fair - Moderate air quality
Pollutant Levels (μg/m³):
� CO: 233.75
🚗 NO: 0.01
🚗 NO₂: 8.13
🌫️ O₃: 78.32
💨 SO₂: 1.64
🏭 PM2.5: 5.15
🏭 PM10: 8.04
💨 NH₃: 0.63
☀️ UV Index & Sun Safety
☀️ UV Index for Sydney
📊 Current UV Index: 7.2
🟠 High - Protection essential
Sun Safety Tips:
🧴 Apply sunscreen (SPF 30+)
👕 Wear protective clothing
🕶️ Wear sunglasses and hat
🌍 Multi-City Weather Comparison
🌍 Weather Comparison
☀️ London, GB
🌡️ ☀️ 22°C (feels like ☀️ 24°C)
📊 clear sky
💧 65% humidity
🌬️ 3.2 m/s wind
🌧️ Seattle, US
🌡️ 🌡️ 16°C (feels like 🌡️ 14°C)
📊 moderate rain
💧 85% humidity
🌬️ 5.1 m/s wind
🚨 Weather Alerts
🚨 Weather Alerts for Miami
⚠️ Alert 1: Hurricane Warning
📅 Start: 12/27/2024, 2:00:00 PM
📅 End: 12/28/2024, 8:00:00 AM
📝 Hurricane conditions expected...
🏢 Source: National Weather Service
🌅 Astronomy Data
🌅 Astronomy Data for Tokyo
☀️ Currently: Daytime
🌅 Sunrise: 6:47:12 AM
🌇 Sunset: 4:32:45 PM
⏰ Day Length: 9h 45m
📍 Location: 35.6762°, 139.6503°
🌍 Timezone: UTC+9
⏳ Next sunset: in 3h 15m
📊 Weather Statistics & Trends
📊 Weather Statistics for Berlin
Current Conditions:
🌡️ Temperature: 🌡️ 18°C
💧 Humidity: 72%
🌡️ Pressure: 1015 hPa
👁️ Visibility: 8.5 km
24-Hour Trends:
🌡️ Temperature Range: 🌡️ 15°C to ☀️ 21°C
📊 Average Temperature: 🌡️ 18°C
📈 Temperature Trend: Rising 📈
💧 Average Humidity: 68.2%
🌡️ Average Pressure: 1014.8 hPa
📈 Pressure Trend: Rising 📈
🗺️ Weather Maps
🗺️ Weather Maps for New York
📍 Coordinates: 40.7128, -74.0060
Available Map Layers:
�️ Precipitation: Rainfall and snow patterns
☁️ Clouds: Cloud coverage and density
🌡️ Temperature: Temperature distribution
🌬️ Wind Speed: Wind patterns and speeds
🌡️ Pressure: Atmospheric pressure systems
Center Map On: Latitude 40.7128, Longitude -74.0060
Recommended Zoom: 10 for city view
🎯 Usage Examples
Once installed, you can ask VS Code Copilot questions like:
🌡️ Basic Weather Queries:
- "What's the weather like in London?"
- "Get me comprehensive weather data for Tokyo"
- "Show me detailed current conditions in New York"
📅 Forecast Queries:
- "What's the 5-day forecast for Paris?"
- "Give me the weather forecast for Seattle this week"
- "Show me a 3-day forecast for Berlin"
🌬️ Air Quality & Health:
- "What's the air quality in Beijing?"
- "Check pollution levels in Delhi"
- "Is the air quality safe in Los Angeles?"
☀️ Sun & UV Safety:
- "What's the UV index in Sydney?"
- "Do I need sunscreen in Miami today?"
- "Check sun safety for outdoor activities in Phoenix"
🌍 Multi-City Comparisons:
- "Compare weather between London, Paris, and Berlin"
- "Which city has better weather: Miami or San Diego?"
- "Show me weather comparison for Tokyo, Seoul, and Bangkok"
🚨 Weather Alerts:
- "Are there any weather warnings for Florida?"
- "Check for severe weather alerts in Texas"
- "Show me storm warnings for the East Coast"
🌅 Astronomy & Timing:
- "When does the sun rise in Moscow?"
- "What time is sunset in Hawaii?"
- "Show me astronomical data for Stockholm"
📊 Weather Analysis:
- "Give me weather statistics for Chicago"
- "Show weather trends for the past 24 hours in Denver"
- "Analyze weather patterns in San Francisco"
🗺️ Weather Maps:
- "How can I access weather radar for Dallas?"
- "Show me weather map information for Portland"
- "Get precipitation map data for the Pacific Northwest"
💡 Advanced Usage Examples:
Travel Planning: "I'm planning a trip to Rome next week. Show me the forecast, air quality, and UV index."
Outdoor Event Planning: "Compare weather conditions between Austin, Nashville, and Denver for an outdoor concert."
Health & Safety: "Check air quality and UV index for Los Angeles - I have respiratory issues and need safe outdoor exercise conditions."
Agricultural/Gardening: "Show me detailed weather statistics and forecast for Portland - I need to plan my garden watering schedule."
Photography/Filming: "Give me sunrise/sunset times and weather conditions for Yosemite for a photo shoot."
🛠️ Development
Prerequisites
- Node.js (>= 18.x)
- npm (>= 9.x)
- OpenWeatherMap API key
Local Development
# Install dependencies
npm install
# Build the project
npm run build
# Start in development mode (with auto-rebuild)
npm run dev
# Test the server
npm start
# Generate install URLs for your own use
npm run install-urls
# Get manual configuration for VS Code settings
npm run config
Project Structure
mcp-weather-server/
├── .vscode/
│ ├── settings.json # Pre-configured MCP settings (user-specific)
│ ├── settings.template.json # Template for settings.json
│ ├── tasks.json # VS Code tasks for easy setup
│ ├── inputs.json # Input prompts for API key
│ ├── launch.json # Debug configuration
│ └── extensions.json # Recommended extensions
├── dist/ # Compiled JavaScript (generated)
├── index.ts # Main server code
├── mcp-config.json # MCP configuration template
├── install.html # Beautiful one-click install page
├── generate-install-urls.js # Script to generate install URLs
├── setup.bat # Windows setup script
├── setup.sh # Unix setup script
├── .env # Environment variables (user-specific)
├── .gitignore # Git ignore rules
└── package.json
🔧 Configuration
The server uses environment variables for configuration:
OPENWEATHER_API_KEYorAPI_KEY: Your OpenWeatherMap API key (required)
📡 Complete API Reference
Available Tools
🌡️ get-weather
Enhanced current weather with comprehensive data
Parameters:
city(string): Name of the city to get weather for
Returns:
- Detailed temperature with emoji indicators
- Weather conditions with icons
- Humidity, wind speed, visibility
- Pressure, cloudiness, min/max temps
- Sunrise/sunset times
- Geographic coordinates
📅 get-forecast
5-day weather forecast with detailed predictions
Parameters:
city(string): Name of the city to get forecast fordays(number, optional): Number of days to show (1-5, default: 5)
Returns:
- Daily temperature ranges with emojis
- Weather conditions for each day
- Humidity, wind, and cloud coverage
- Organized by day with clear formatting
🌬️ get-air-quality
Air quality index and pollution data
Parameters:
city(string): Name of the city to get air quality for
Returns:
- Overall Air Quality Index (1-5 scale)
- Detailed pollutant levels (CO, NO, NO₂, O₃, SO₂, PM2.5, PM10, NH₃)
- Health recommendations based on AQI
- Color-coded quality indicators
☀️ get-uv-index
UV index and sun safety information
Parameters:
city(string): Name of the city to get UV index for
Returns:
- Current UV index value
- Safety level description (Low/Moderate/High/Very High/Extreme)
- Specific sun protection recommendations
- Time-based safety advice
🌍 compare-weather
Compare weather between multiple cities
Parameters:
cities(array of strings): Array of city names to compare (2-5 cities)
Returns:
- Side-by-side weather comparison
- Temperature, conditions, humidity for each city
- Weather emojis for quick visual reference
- Organized display for easy comparison
🚨 get-weather-alerts
Severe weather alerts and warnings
Parameters:
city(string): Name of the city to get weather alerts for
Returns:
- Active weather warnings and alerts
- Alert severity and timing
- Detailed descriptions of weather threats
- Official source attribution
🌅 get-astronomy
Detailed sunrise, sunset, and astronomical data
Parameters:
city(string): Name of the city to get astronomy data for
Returns:
- Sunrise and sunset times
- Day length calculation
- Current day/night status
- Time until next sunrise/sunset
- Geographic coordinates and timezone
- Moon phase information (with additional API)
📊 get-weather-stats
Comprehensive weather statistics and trends
Parameters:
city(string): Name of the city to get weather statistics for
Returns:
- Current weather conditions summary
- 24-hour temperature trends and ranges
- Pressure and humidity patterns
- Weather trend indicators (rising/falling)
- Statistical analysis of recent conditions
🗺️ get-weather-maps
Weather map information and access URLs
Parameters:
city(string): Name of the city to get map information for
Returns:
- Geographic coordinates for mapping
- Available weather layer types
- Direct URLs for weather map tiles
- Integration instructions for mapping libraries
- Recommended zoom levels and center points
API Response Format
All tools return responses in this format:
{
"content": [{
"type": "text",
"text": "Formatted weather information with emojis and detailed data"
}]
}
Error Handling
The server handles various error conditions:
- 404 Errors: City not found - suggests checking spelling
- 401 Errors: Invalid API key - prompts key configuration check
- Network Errors: Timeout or connection issues - suggests retrying
- API Limitations: Some features require premium OpenWeatherMap subscription
🆘 Troubleshooting
Common Issues
-
"Undefined input variable 'openweatherApiKey'" error:
- This happens when VS Code can't resolve the input variable
- Solution: Copy
.vscode/settings.template.jsonto.vscode/settings.jsonand replaceYOUR_API_KEY_HEREwith your actual API key - Or create a
.envfile withOPENWEATHER_API_KEY=your_api_key_here
-
"API key is required" error:
- Make sure you've set your API key in the environment variables or
.envfile - Check that your API key is valid and active at OpenWeatherMap
- Make sure you've set your API key in the environment variables or
-
"Module not found" error:
- Run
npm run buildto compile TypeScript - Ensure all dependencies are installed with
npm install
- Run
-
MCP server not appearing in VS Code:
- Check that the path in your MCP configuration is correct
- Ensure the
dist/index.jsfile exists after building - Restart VS Code after adding the server configuration
-
One-click install buttons not working:
- If buttons open in browser instead of VS Code:
- The MCP extension might not be installed or URL handler not registered
- Use Method 1 (Manual Configuration) instead - it's more reliable
- Run
npm run configto get the exact configuration to copy
- Make sure you have VS Code or VS Code Insiders installed
- Ensure your project is built before attempting installation
- If buttons open in browser instead of VS Code:
Getting Help
- 📧 Contact: @mohaimenhasan
- 🐛 Issues: GitHub Issues
- 📖 MCP Documentation: Model Context Protocol
🎉 What's Next?
After installation, you can:
- Ask weather questions directly in VS Code chat
- Integrate weather data into your coding workflow
- Build weather-aware applications with real-time data
- Explore other MCP servers for enhanced functionality
📄 License
MIT License - feel free to use this in your own projects!
Made with ❤️ for the VS Code and MCP community
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.