by TimLukaHorstmann
Provides hourly and daily weather forecasts via the AccuWeather API for seamless integration with large language models.
MCP Weather Server delivers real‑time weather data—hourly forecasts for the next 12 hours and daily forecasts for up to 15 days—by querying the AccuWeather API. It exposes two tools (weather-get_hourly
and weather-get_daily
) that LLMs can invoke to obtain accurate, location‑based forecasts in metric or imperial units.
ACCUWEATHER_API_KEY
.npx -y @timlukahorstmann/mcp-weather
Or launch it behind Supergateway for HTTP/REST access.weather-get_hourly
or weather-get_daily
from the LLM prompt, supplying location
, units
, and optionally days
.npx
.Q: Do I need a paid AccuWeather plan? A: No. The free tier provides sufficient calls for development and moderate usage.
Q: Which Node.js version is required? A: Node.js 18 or later.
Q: How many forecast days can I request?
A: Up to 15 days; the days
parameter accepts 1, 5, 10, or 15.
Q: Can I change the default units?
A: Yes. Pass units: "imperial"
for Fahrenheit or omit for the default Celsius.
Q: Is a session ID required?
A: No. Since version 0.4.0 the tools no longer require a sessionId
.
Q: How do I run the server behind a gateway? A: Use the supplied Supergateway command‑line example, which forwards STDIO and sets the required environment variable.
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:
export ACCUWEATHER_API_KEY=your_api_key_here
Then run the MCP Weather server directly with:
npx -y @timlukahorstmann/mcp-weather
Or, for HTTP/REST access via supergateway:
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
):
{
"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:
weather-get_hourly
location
(required): City or location nameunits
(optional): "metric" (Celsius, default) or "imperial" (Fahrenheit)weather-get_daily
location
(required): City or location namedays
(optional): Number of forecast days (1, 5, 10, or 15; default is 5)units
(optional): "metric" (Celsius, default) or "imperial" (Fahrenheit).env
or your shell)Clone this repository:
git clone https://github.com/TimLukaHorstmann/mcp-weather.git
cd mcp-weather
Install dependencies:
npm install
Get an AccuWeather API key:
Create a .env
file with your API key:
ACCUWEATHER_API_KEY=your_api_key_here
Build the project:
npm run build
Configure Claude Desktop to use this MCP server:
claude_desktop_config.json
:{
"mcpServers": {
"weather": {
"command": "npx",
"args": ["-y", "@timlukahorstmann/mcp-weather"],
"env": {
"ACCUWEATHER_API_KEY": "your_api_key_here"
}
}
}
}
Restart Claude Desktop
In a new conversation, enable the MCP server by clicking the plug icon and selecting "weather"
Now you can ask Claude for weather forecasts, such as:
npm install
npm run lint
npm run build
npm test
npm run dev
Contributions are welcome! Please feel free to submit a Pull Request.
We're always looking to improve the MCP Weather Server. Here are some features we're considering for future releases:
If you have ideas for other features, feel free to open an issue!
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.
Please log in to share your review and rating for this MCP.
{ "mcpServers": { "weather": { "command": "npx", "args": [ "-y", "@timlukahorstmann/mcp-weather" ], "env": { "ACCUWEATHER_API_KEY": "<YOUR_API_KEY>" } } } }