MCP server that provides hourly and daily weather forecasts using the AccuWeather API
npm install @timlukahorstmann/mcp-weather





A Model Context Protocol (MCP) server that provides hourly and daily weather forecasts using the AccuWeather API.
---
You need an AccuWeather API key (free tier available).
Sign up here and create an app to get your key.
Export your API key as an environment variable:
``bash`
export ACCUWEATHER_API_KEY=your_api_key_here
Then run the MCP Weather server directly with:
`bash`
npx -y @timlukahorstmann/mcp-weather
Or, for HTTP/REST access via supergateway:
`bash`
npx -y supergateway --stdio "npx -y @timlukahorstmann/mcp-weather" \
--port 4004 \
--baseUrl http://127.0.0.1:4004 \
--ssePath /messages \
--messagePath /message \
--cors "*" \
--env ACCUWEATHER_API_KEY="$ACCUWEATHER_API_KEY"
---
For integration with Claude Desktop or other MCP-compatible clients, add this to your config (e.g. claude_desktop_config.json):
`json`
{
"mcpServers": {
"weather": {
"command": "npx",
"args": ["-y", "@timlukahorstmann/mcp-weather"],
"env": {
"ACCUWEATHER_API_KEY": "your_api_key_here"
}
}
}
}
---
This MCP server allows large language models (like Claude) to access real-time weather data. When integrated with an LLM, it enables the model to:
- Fetch accurate, up-to-date weather forecasts
- Provide hourly weather data for the next 12 hours
- Access daily weather forecasts for up to 15 days
- Display data in both metric (°C) and imperial (°F) units
- View temperature, conditions, precipitation information, and other weather details
- Provides hourly forecasts for the next 12 hours
- Parameters:
- location (required): City or location name
- units (optional): "metric" (Celsius, default) or "imperial" (Fahrenheit)$3
- Tool name: weather-get_daily
- Provides daily forecasts for up to 15 days
- Parameters:
- location (required): City or location name
- days (optional): Number of forecast days (1, 5, 10, or 15; default is 5)
- units (optional): "metric" (Celsius, default) or "imperial" (Fahrenheit)Prerequisites
- Node.js ≥18
- An AccuWeather API key (set via
.env or your shell)Setup
1. Clone this repository:
`bash
git clone https://github.com/TimLukaHorstmann/mcp-weather.git
cd mcp-weather
`2. Install dependencies:
`bash
npm install
`3. Get an AccuWeather API key:
- Register at AccuWeather API
- Create a new app and obtain an API key
4. Create a
.env file with your API key:
`
ACCUWEATHER_API_KEY=your_api_key_here
`5. Build the project:
`bash
npm run build
`Usage with Claude Desktop
1. Configure Claude Desktop to use this MCP server:
- Open Claude Desktop
- Go to Settings > Developer > Edit Config
- Add the following to your
claude_desktop_config.json:
`json
{
"mcpServers": {
"weather": {
"command": "npx",
"args": ["-y", "@timlukahorstmann/mcp-weather"],
"env": {
"ACCUWEATHER_API_KEY": "your_api_key_here"
}
}
}
}
`2. Restart Claude Desktop
3. In a new conversation, enable the MCP server by clicking the plug icon and selecting "weather"
4. Now you can ask Claude for weather forecasts, such as:
- "What's the hourly weather forecast for New York City?"
- "Give me the 5-day forecast for London."
- "What will the weather be like in Tokyo this week in Fahrenheit?"
- "Will it rain in San Francisco tomorrow?"
Development
- Install dev dependencies:
npm install
- Lint your code: npm run lint
- Build: npm run build
- Run tests: npm test
- Start in dev mode: npm run devContributing
Contributions are welcome! Please feel free to submit a Pull Request.
Future Enhancements
We're always looking to improve the MCP Weather Server. Here are some features we're considering for future releases:
- Extended Hourly Forecasts: Beyond 12 hours, e.g., 24 or 48 hours.
- Weather Alerts: Integration with AccuWeather's severe weather alerts API.
- Location Autocomplete: Improved location searching with autocomplete suggestions.
- Historical Weather Data: Access to past weather conditions.
If you have ideas for other features, feel free to open an issue!
Changelog
$3
- Removed sessionId` requirement from all tools as it was not used for anything internallyThis project is licensed under the MIT License - see the LICENSE file for details.