# weather-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/darshan0548/weather-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/weather-mcp

## Description
MCP server for weather with reasoning — umbrella advice, outdoor checks, city comparisons.

## Claude Desktop Quick Installation
Remote MCP endpoint (confidence: high). Install path detected from listing signals. Add as a URL/SSE server in your client:

```json
"mcpServers": {
  "weather-mcp": {
    "url": "https://open-meteo.com"
  }
}
```

## Documentation & README

# weather-mcp

An MCP (Model Context Protocol) server that lets an AI assistant  Claude, Gemini CLI, or any MCP-compatible client  answer real weather questions using live data, instead of just fetching raw numbers.

Powered by [Open-Meteo](https://open-meteo.com) — free, no API key required.

## Why this isn't just a raw weather API wrapper

Most weather integrations just return `temperature: 22°C`. This one adds a reasoning layer on top, so you can ask things a plain API can't answer directly:

- `get_weather("Bangalore")` — current conditions + today's forecast
- `should_i_carry_umbrella("Mumbai")` — a yes/no answer with reasoning, not just a rain percentage
- `is_good_for_outdoors("Delhi")` — checks rain, wind, and temperature together to judge if it's a good day to be outside
- `compare_weather("Bangalore", "Delhi")` — compares two cities at once

## Setup

```bash
git clone https://github.com/darshan0548/weather-mcp.git
cd weather-mcp
python3 -m venv venv
source venv/bin/activate   # on Windows: venv\Scripts\activate
pip install -r requirements.txt
```

## Running the tests

A quick sanity check against the real API (no mocking, no API key needed):

```bash
python test_weather.py
```

## Connecting it to Claude Desktop

Add this to your Claude Desktop config (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": ["/absolute/path/to/weather-mcp/server.py"]
    }
  }
}
```

## Connecting it to Gemini CLI

Add this to `~/.gemini/settings.json`:

```json
{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": ["/absolute/path/to/weather-mcp/server.py"]
    }
  }
}
```

Restart your client, then just ask it something like *"should I carry an umbrella in Chennai today?"*

## Project structure

```
weather_core.py     # talks to the Open-Meteo API, no MCP-specific code
weather_advice.py    # reasoning layer built on top of raw weather data
server.py            # MCP server — wires the above into tools
test_weather.py       # sanity tests against the real API
```

Kept as separate files on purpose — `weather_core.py` and `weather_advice.py` have no MCP dependency at all, so they're easy to test or reuse on their own.

## Contributing

PRs welcome. Some ideas if you want to add a tool:

- Hourly forecast breakdown instead of just today's summary
- Air quality data (Open-Meteo has a free endpoint for this too)
- Multi-day trip planning (best day this week for an outdoor event)
- Severe weather alerts

Keep new tools in `weather_advice.py` if they add reasoning on top of raw data, or `weather_core.py` if they're pure data fetching — then wire them into `server.py` as a new `@mcp.tool()`.

## License

MIT — see [LICENSE](https://github.com/darshan0548/weather-mcp/blob/HEAD/LICENSE).

