Weather MCP Server
A Model Context Protocol (MCP) server that provides real-time weather information for any location worldwide using the wttr.in service.
Overview
This MCP server exposes a fetch_weather tool that allows AI assistants like Claude to retrieve current weather information for any city or location. It's built using FastMCP and provides a simple, reliable interface for weather data.
Features
- 🌤️ Real-time weather information for any location
- 🌍 Worldwide coverage
- ⚡ Fast and lightweight
- 🔌 Easy integration with MCP-compatible clients (Claude Desktop, etc.)
- 📦 Simple setup with minimal dependencies
Prerequisites
- Python 3.12 or higher
uvpackage manager (recommended) orpip
Installation
- Clone this repository:
git clone <your-repo-url>
cd weather-mcp
- Install dependencies using
uv:
uv pip install -e .
Or using pip:
pip install -e .
Configuration
Claude Desktop
To use this server with Claude Desktop, add the following configuration to your Claude Desktop config file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"weather-bot": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/weather-mcp",
"run",
"main.py"
]
}
}
}
Replace /absolute/path/to/weather-mcp with the actual path to this project directory.
Usage
Once configured, the weather tool will be available to your AI assistant. You can ask questions like:
- "What's the weather in London?"
- "Tell me the current weather in New York"
- "How's the weather in Tokyo?"
Running Standalone
You can also run the server directly for testing:
python main.py
Or test the weather function directly:
python tools/weather.py
Available Tools
fetch_weather
Retrieves current weather information for a specified location.
Parameters:
location(string): The city or location name (e.g., "London", "New York", "Tokyo")
Returns:
- A string containing the weather information including temperature and conditions
Example Response:
London: ⛅️ +12°C
Project Structure
weather-mcp/
├── main.py # MCP server entry point
├── tools/
│ ├── __init__.py
│ └── weather.py # Weather fetching logic
├── pyproject.toml # Project configuration
├── README.md # This file
└── uv.lock # Dependency lock file
Technical Details
- MCP Framework: FastMCP
- Weather API: wttr.in - a console-oriented weather service
- Transport: stdio (standard input/output)
- Python Version: 3.12+
How It Works
- The server exposes a
fetch_weathertool via the Model Context Protocol - When called, it makes an HTTP request to wttr.in's API
- The weather data is formatted and returned to the MCP client
- The AI assistant can then present this information naturally to the user
Troubleshooting
Server not appearing in Claude Desktop
- Verify the path in your config file is absolute and correct
- Restart Claude Desktop completely
- Check the Claude Desktop logs for any error messages
Weather data not loading
- Ensure you have an active internet connection
- The wttr.in service must be accessible from your network
- Some corporate networks may block access to external weather services
Acknowledgments
Made with ❤️ for the MCP community
