wu-weather-mcp
An MCP server that exposes any Weather Underground 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 (free)
- Your station ID (visible in your WU dashboard, e.g.
KCALAKEF92)
Setup
1. Clone and install
git clone https://github.com/your-username/wu-weather-mcp.git
cd wu-weather-mcp
npm install
2. Configure environment
cp .env.example .env
Edit .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
npm run build
4. Test it
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
{
"mcpServers": {
"wu-weather": {
"command": "node",
"args": ["/absolute/path/to/wu-weather-mcp/build/index.js"]
}
}
}
Replace
/absolute/path/to/wu-weather-mcpwith the actual path where you cloned the repo.On macOS you can runpwdinside 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
{
"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
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
npm publish
Once published, users can run it without cloning:
{
"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 first to confirm the package name
wu-weather-mcpis available before publishing.
License
MIT