wu-weather-mcp
by Rankintosh
README.md
# wu-weather-mcp
An MCP server that exposes any [Weather Underground](https://www.wunderground.com/) personal weather station (PWS) as tools in Claude. Ask Claude about current conditions, daily summaries, hourly history, and station metadata — all pulled live from your station.
## Prerequisites
- Node.js 18+
- A Weather Underground account with a PWS
- A [Weather Underground API key](https://www.wunderground.com/member/api-keys) (free)
- Your station ID (visible in your WU dashboard, e.g. `KCALAKEF92`)
## Setup
### 1. Clone and install
```bash
git clone https://github.com/your-username/wu-weather-mcp.git
cd wu-weather-mcp
npm install
```
### 2. Configure environment
```bash
cp .env.example .env
```
Edit `.env`:
```env
WU_API_KEY=your_api_key_here
WU_STATION_ID=your_station_id_here
WU_STATION_NAME=My Weather Station # optional — defaults to station ID
```
### 3. Build
```bash
npm run build
```
### 4. Test it
```bash
node build/index.js
```
The server starts on stdio and waits for MCP messages. Press Ctrl-C to exit.
---
## Claude Desktop Integration
Add this to your `claude_desktop_config.json`:
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"wu-weather": {
"command": "node",
"args": ["/absolute/path/to/wu-weather-mcp/build/index.js"]
}
}
}
```
> Replace `/absolute/path/to/wu-weather-mcp` with the actual path where you cloned the repo.
> On macOS you can run `pwd` inside the cloned folder to get it.
Restart Claude Desktop after saving. Your weather tools will appear automatically.
### Alternative: pass credentials via config instead of .env
```json
{
"mcpServers": {
"wu-weather": {
"command": "node",
"args": ["/absolute/path/to/wu-weather-mcp/build/index.js"],
"env": {
"WU_API_KEY": "your_api_key_here",
"WU_STATION_ID": "your_station_id_here",
"WU_STATION_NAME": "My Weather Station"
}
}
}
}
```
---
## Available Tools
| Tool | Parameters | Description |
|------|-----------|-------------|
| `get_current_conditions` | — | Current temp, humidity, wind, pressure, UV, precip rate, dew point, solar radiation |
| `get_daily_summary` | `days` (1–7, default 7) | Daily high/low/avg temp, max wind gust, total precip |
| `get_hourly_history` | `hours` (1–24, default 24) | Hour-by-hour temp, humidity, wind, and precip |
| `get_station_info` | — | Station name, ID, coordinates, elevation, neighborhood |
### Example prompts
- *"What's the weather like right now?"*
- *"Show me the last 3 days of weather."*
- *"What was the hourly breakdown yesterday afternoon?"*
- *"What's the elevation of my weather station?"*
---
## Development
```bash
npm run dev # watch mode — recompiles on save
npm run build # one-off build
```
Source is in `src/index.ts`. Rebuild (`npm run build`) after any changes.
## Publishing to npm
```bash
npm publish
```
Once published, users can run it without cloning:
```json
{
"mcpServers": {
"wu-weather": {
"command": "npx",
"args": ["-y", "wu-weather-mcp"],
"env": {
"WU_API_KEY": "your_api_key_here",
"WU_STATION_ID": "your_station_id_here"
}
}
}
}
```
> **Note:** Check [npmjs.com](https://www.npmjs.com/) first to confirm the package name `wu-weather-mcp` is available before publishing.
## License
MIT
TDQS
A4.2/5.0
Scored across 4 tools
Disambiguation5/5
Each tool targets a distinct aspect of weather data: current conditions, daily summary, hourly history, and station metadata. No overlap in purpose.
Naming Consistency5/5
All tool names follow a consistent 'get_' prefix followed by a clear noun phrase, maintaining snake_case throughout.
Tool Count5/5
4 tools is appropriate for a personal weather station MCP server, covering the core data retrieval needs without unnecessary bloat.
Completeness4/5
The set covers current conditions, daily summaries, hourly history, and station info. Missing features like alerts or forecast are reasonable gaps for a station-focused server.
Maintenance
ActivityInactive
ResponsivenessNo issues