mcp-weather-sse
The MCP Weather SSE Server is a Model Context Protocol server providing real-time weather data via Server-Sent Events using the OpenWeatherMap API. It facilitates seamless integration with AI tools and offers tools to fetch weather data by city or coordinates.
MCP Weather SSE Server
A Model Context Protocol (MCP) server that connects to the OpenWeatherMap API through Server-Sent Events (SSE). This server provides real-time weather data to AI clients like Claude, CursorAI, or MCP-Inspector.
Features
- Implements the Model Context Protocol for seamless integration with AI tools
- Uses Server-Sent Events (SSE) transport for real-time communication
- Connects to the OpenWeatherMap API to fetch live weather data
- Provides three tools:
get_current_weather
: Get current weather conditions for a cityget_weather_forecast
: Get a multi-day weather forecast for a cityget_weather_by_coordinates
: Get weather for specific geographic coordinates
Prerequisites
- Python 3.8+
- An OpenWeatherMap API key (sign up at openweathermap.org)
Installation
-
Clone this repository:
git clone https://github.com/yourusername/mcp-weather-sse.git cd mcp-weather-sse
-
Create a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install mcp requests
Usage
Starting the Server
You can start the server with your OpenWeatherMap API key:
# Using command line argument
python mcp_weather_sse.py --api-key YOUR_API_KEY
# Using environment variable
export OPENWEATHER_API_KEY=YOUR_API_KEY
python mcp_weather_sse.py
# Customize host and port (default: 127.0.0.1:3001)
python mcp_weather_sse.py --host 0.0.0.0 --port 8080
Connecting with MCP Clients
Cursor AI
- Open Cursor AI
- Go to File → Preferences → Cursor Settings → MCP → Add New Server
- Enter the following details:
- Name: Weather SSE
- Type: sse
- URL: http://127.0.0.1:3001/sse
Claude Desktop
- Open Claude Desktop
- Go to Settings → MCP Servers
- Add a new server with the following configuration:
{ "mcpServers": { "weather": { "type": "sse", "url": "http://127.0.0.1:3001/sse" } } }
MCP-Inspector
You can use the MCP-Inspector tool to test your server:
npm install -g @anthropic-ai/mcp-inspector
mcp-inspector http://127.0.0.1:3001/sse
Example Queries
Once connected, you can use the following queries to interact with the server:
- "What's the current weather in New York?"
- "Can you give me a 3-day forecast for Tokyo?"
- "What's the weather at coordinates 40.7128, -74.0060?"
API Reference
get_current_weather
Get current weather conditions for a city.
Parameters:
city
(string): City name (e.g., 'London', 'New York')units
(string, optional): Units of measurement ('metric' or 'imperial', default: 'metric')
get_weather_forecast
Get a multi-day weather forecast for a city.
Parameters:
city
(string): City name (e.g., 'London', 'New York')days
(integer, optional): Number of days to forecast (1-5, default: 3)units
(string, optional): Units of measurement ('metric' or 'imperial', default: 'metric')
get_weather_by_coordinates
Get weather for specific geographic coordinates.
Parameters:
latitude
(number): Latitude coordinatelongitude
(number): Longitude coordinateunits
(string, optional): Units of measurement ('metric' or 'imperial', default: 'metric')
Security Considerations
- The server binds to 127.0.0.1 by default, making it only accessible from your local machine
- For production use, implement proper authentication and HTTPS
- Consider rate limiting to avoid exceeding OpenWeatherMap API quotas
License
MIT
Acknowledgments
- Built with the Model Context Protocol
- Uses data from the OpenWeatherMap API