Weather App
@mindsightventures
Example MCP server implementation for weather data with testing and pre-commit setup
Overview
What is Weather App?
Weather App is a command-line and MCP (Model Context Protocol) server that provides current weather conditions, daily and hourly forecasts, and weather alerts for locations worldwide. It integrates with the OpenWeatherMap API and is intended for developers building MCP-based tools or anyone needing weather data via CLI.
How to use Weather App?
Install Python 3.12+ and the uv package manager. Clone the repository, create a .env file with your OpenWeatherMap API key (OPENWEATHER_API_KEY=your_key), then run ./scripts/install.sh. Start the server with ./scripts/run_weather.sh. The server exposes tools such as get_current_weather, get_forecast, get_alerts, and more.
Key features of Weather App
- Get current weather conditions for any location
- Get daily and hourly weather forecasts
- Get weather alerts for a location
- Get weather by geographic coordinates
- Automatic location detection
- Test API connection and check subscription status
Use cases of Weather App
- Check current weather and forecasts before traveling
- Receive weather alerts for severe conditions
- Integrate real-time weather data into MCP-powered assistants
- Validate API key and subscription status for troubleshooting
- Retrieve weather by exact coordinates for precise locations
FAQ from Weather App
What API key is required?
An OpenWeatherMap API key is required. It must be stored in a .env file as OPENWEATHER_API_KEY.
How do I start the Weather App server?
After installation, run the script ./scripts/run_weather.sh to start the MCP server.
What weather tools does the server provide?
It provides eight tools: get_current_weather, get_forecast, get_hourly_forecast, get_alerts, get_weather_by_coordinates, get_user_location, test_api_connection, and check_api_key_and_subscription.
What are the minimum system requirements?
Python 3.12 or higher and the uv package manager are required.
How can I run tests?
Use ./scripts/run_tests.sh. Optional flags include --coverage for code coverage and --integration for integration tests that require an API key.