Skip to main content
Glama
CodeByWaqas

Weather MCP Server

by CodeByWaqas
README.md
# Weather MCP Server

[![smithery badge](https://smithery.ai/badge/@CodeByWaqas/weather-mcp-server)](https://smithery.ai/server/@CodeByWaqas/weather-mcp-server)

A Modern Code Protocol (MCP) server that provides weather information using the OpenWeatherMap API.

## Features

- Real-time weather data retrieval
- Metric units for temperature
- Detailed weather information including:
  - Temperature
  - Humidity
  - Wind Speed
  - Sunrise/Sunset times
  - Weather description

## Prerequisites

- Python 3.12 or higher
- OpenWeatherMap API key

## Installation

### Installing via Smithery

To install Weather MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@CodeByWaqas/weather-mcp-server):

```bash
npx -y @smithery/cli install @CodeByWaqas/weather-mcp-server --client claude
```

### Manual Installation
1. Clone the repository
2. Create a virtual environment:
```bash
python -m venv .venv
source .venv/bin/activate  # On Windows use: .venv\Scripts\activate
```
3. Install dependencies:
```bash
pip install -e .
```

## Setup Intructions

### Setup with Claude Desktop
```json
# claude_desktop_config.json
# Can find location through:
# Claude -> Settings -> Developer -> Edit Config
{
  "mcpServers": {
      "mcp-weather-project": {
          "command": "uv",
          "args": [
              "--directory",
              "/<absolute-path>/weather-mcp-server/src/resources",
              "run",
              "server.py"
          ],
          "env": {
            "WEATHER_API_KEY": "YOUR_API_KEY"
          }
      }
  }
}
```
## Local/Dev Setup Instructions
### Clone repo
`git clone https://github.com/CodeByWaqas/weather-mcp-server`
### Install dependencies
Install MCP server dependencies:
```bash
cd weather-mcp-server

# Create virtual environment and activate it
uv venv

source .venv/bin/activate # MacOS/Linux
# OR
.venv/Scripts/activate # Windows

# Install dependencies
uv add "mcp[cli]" python-dotenv requests httpx
```

## Configuration

1. Copy `src/resources/env.example` to `src/resources/.env`
2. Add your OpenWeatherMap API key to the `.env` file:
```
WEATHER_API_KEY=your_api_key_here
```

## Usage

Run the Claude Desktop and use LLM to retrieve weather info

## License

This project is licensed under the MIT License - see the LICENSE file for details.

TDQS

B3.1/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool has a clear, distinct purpose of fetching weather reports for a city.

Naming Consistency5/5

The single tool name 'weather' is straightforward and descriptive. Since there is only one tool, naming consistency is inherently perfect with no deviations or mixed conventions to evaluate.

Tool Count2/5

A single tool for a weather server is too few for the apparent scope, as it lacks essential operations like forecasts, historical data, or multi-location queries. This minimal set limits functionality and may cause agent failures in broader weather-related tasks.

Completeness2/5

The tool surface is severely incomplete for a weather domain, missing obvious gaps such as forecasts, alerts, or location-based searches. While it covers basic current weather, agents will struggle with common weather-related workflows due to these significant omissions.

Maintenance

ActivityInactive
ResponsivenessNo issues