This project enables Claude to interact with live weather data (current + forecast) using the OpenWeather API via an MCP (Multi-Command Protocol) server.
It includes:
- FastMCP server using Python
- Weather tools (
get_weatherandget_forecast) - Environment variable-based API security
- Easy integration with
claude_desktop_config.py
- Clone this repo and navigate into it:
git clone https://github.com/ChandekarDhruvin/claude-openweather-mcp.git
cd claude-weather-agent/weather- Install dependencies:
pip install -r requirements.txt- Create a
.envfile in the same directory asweather.py:
OPENWEATHER_API_KEY=your_openweather_api_key- Start the MCP server manually (for testing):
python weather.py| Tool | Parameters | Description |
|---|---|---|
get_weather |
city: str, country: str = "IN" |
Returns current weather conditions. |
get_forecast |
city: str, country: str = "IN" |
Provides a 5-day forecast (around noon). |
Add the following to your Claude config to auto-start the MCP server:
{
"mcpServers": {
"weather": {
"command": "C:\\path\\to\\uv.exe",
"args": [
"--directory",
"C:\\path\\to\\weather\\folder",
"run",
"C:\\path\\to\\weather\\weather.py"
]
}
}
}📝 Note: You must adjust the path to match your local Python virtual environment and directory structure.
weather/
├── weather.py # Main FastMCP server with weather tools
├── .env # Contains the OpenWeather API key
├── requirements.txt # Dependencies
└── README.md # You're reading it!
Using python-dotenv, we securely load the OpenWeather API key from a .env file.
from dotenv import load_dotenv
import os
load_dotenv()
OPENWEATHER_API_KEY = os.getenv("OPENWEATHER_API_KEY")Add this in your requirements.txt:
httpx
python-dotenv
fastmcpUser: What's the weather like in Mumbai today?
Claude:
Current weather in Mumbai, IN:
Condition: Clear (clear sky)
Temperature: 32°C (Feels like 35°C)
Humidity: 58%
Wind Speed: 3.5 m/s
