A Model Context Protocol (MCP) server that provides access to NOTAMs (Notice to Airmen) data through the Notamify API. This server allows LLMs to retrieve aviation notices, warnings, and operational information for airports worldwide.
- 🛩️ NOTAM Retrieval - Get active NOTAMs for specific airports
- 🕐 Time Filtering - Query NOTAMs for specific date/time ranges
- 📊 Rich Interpretations - Access AI-generated interpretations of NOTAM data
- 🌍 Global Coverage - Support for worldwide airports using ICAO codes
- 📄 Pagination - Handle large result sets automatically
- Python 3.10 or higher
- Notamify API key (get one here)
-
Fetch the repository:
git pull https://github.com/skymerse/notamify-mcp
-
Install dependencies:
# Using uv (recommended) uv sync # Or using pip pip install -r requirements.txt
-
Configure API key:
cp env.example .env # Edit .env and add your API key: # NOTAMIFY_API_KEY=your_actual_api_key_here
-
Make executable:
chmod +x notamify_server.py
# Install the server
uv run mcp install notamify_server.py --name "Notamify NOTAM Server"
# With environment variables, if not set previously
uv run mcp install notamify_server.py -v NOTAMIFY_API_KEY=your_key_here
Retrieve NOTAMs for specified airports and time periods.
Parameters:
locations
(required) - Comma-separated ICAO codes (max 5)starts_at
(optional) - Start time in ISO 8601 formatends_at
(optional) - End time in ISO 8601 formathours_from_now
(optional) - Hours from current time (default: 24)
Example:
get_notams(locations="KJFK,EGLL", hours_from_now=48)
Extract and display all affected elements from NOTAMs for specified airports.
Parameters:
locations
(required) - Comma-separated ICAO codes (max 5)starts_at
(optional) - Start time in ISO 8601 formatends_at
(optional) - End time in ISO 8601 formathours_from_now
(optional) - Hours from current time (default: 24)
Returns: Comprehensive summary including:
- Total NOTAMs and affected airports
- Categories of NOTAMs (runway, navigation, airspace, etc.)
- Specific affected elements with type, identifier, effect, and details
- Spatial elements with coordinates
- Flight planning recommendations
notams://airports/{icao_codes}
- Get current NOTAMs for airportsconfig://api
- API configuration and usage limits
analyze_notams
- Generate structured NOTAM analysis for airports
Query: "What are the current NOTAMs for JFK and Heathrow?"
get_notams(locations="KJFK,EGLL")
Query: "I'm flying to Munich tomorrow. What NOTAMs should I know about?"
get_affected_elements(locations="EDDM", hours_from_now=48)
- Maximum 5 ICAO codes per request
- Start date cannot be earlier than 1 day before current UTC time
- End date must be later than start date
- Page size limited to 1-30 items per page
- ISO 8601 format required:
YYYY-MM-DDTHH:MM:SSZ
uv sync --group dev
uv run pytest
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Submit a pull request
- Notamify API Docs: api.notamify.com/docs
- MCP Protocol: modelcontextprotocol.io
- Issues: Report bugs via GitHub issues
MIT License - see LICENSE file for details.
Built with MCP Python SDK and Notamify API