Aviation Model Context Protocol
# Aviation MCP: Model Context Protocol Servers for Aviation Data
Aviation MCP provides a suite of Model Context Protocol (MCP) servers that map to FAA and other aviation APIs, making it easy to integrate real-time aviation data into your LLM-powered workflows. This project is designed for developers who want to connect their LLM clients (such as Cursor, Claude, or others) to authoritative aviation data sources for weather, NOTAMs, charts, aircraft info, and more.
> **⚠️ Disclaimer ⚠️**
>
> The developer of this code is **not responsible** for the correctness or safety of the APIs providing data, or your flight planning for your particular flight. This applies to both the software and the instructions in [FlightPlanning.md](./FlightPlanning.md), which **do NOT substitute for the expertise of an appropriately licensed pilot**. The pilot in command is solely responsible for the safety of flight and compliance with all relevant regulations.
## Features
- Modular MCP servers for aviation data
- Integrates with FAA, Aviation Weather, and other APIs
- Easy configuration for use with any MCP-compatible LLM client
- Published as an npm package: [`aviation-mcp`](https://www.npmjs.com/package/aviation-mcp)
## Using the MCP Server
Add the aviation-mcp server to your mcp.json like so. Make sure to update the keys to contain valid values (visit https://api.faa.gov/s/ for FAA API client creds, https://api-ninjas.com/ for their API keys) or remove them (and the relevant APIs will be hidden).
Aviation Weather (including lots of geo-referenced data) and Charts do not need any API keys. NOTAMs require an FAA client id/secret.
```json
{
"mcpServers": {
"aviation": {
"command": "npx",
"args": [
"-y",
"aviation-mcp"
],
"env": {
"API_NINJA_KEY": "<your-key>",
"FAA_CLIENT_ID": "<your-id>",
"FAA_CLIENT_SECRET": "<your-secret>"
}
}
}
}
```
### Official Sources
- **weather**: Aviation weather data (METAR, TAF, PIREP, SIGMET, G-AIRMET, etc.)
- **charts**: Sectional, TAC, IFR enroute, and TPP charts
- **notam**: FAA NOTAM API
### 🚧 Broken Sources 🚧
These sources would be helpful, but the integration or API access is not yet working:
- **precipitation**: FAA EIM Weather Proximity API (precipitation data)
- **airports**: FAA airport and runway information
### Not Implemented
- **delays**: The ASWS FAA API provides information about airport delays.
### 🚧🚧 Unofficial Sources 🚧🚧
- **aircraft**: Aircraft data
### 🚧 Missing Sources 🚧
- Procedure routes in a machine-readable format. TODO: Download CIFP data and use something like [arinc424](https://github.com/jack-laverty/arinc424) to transform it into a usable format.
- Airspace data in a machine-readable format. TODO: Download NASR data and use a library to read shapefiles and/or AIXM data.
## Usage
Once configured, your LLM client can connect to the MCP servers and query aviation data as needed. Refer to your client's documentation for details on supplying the `mcp.json` config.
See [FlightPlanning.md](./FlightPlanning.md) for a sample system prompt to be used for flight planning.
For temporal awareness, I recommend combining with [time](https://github.com/modelcontextprotocol/servers/tree/main/src/time).
For EFB management, consider combining with [filesystem](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem)
or [gdrive](https://github.com/modelcontextprotocol/servers/tree/main/src/gdrive).
## API Coverage
For a detailed list of supported APIs, endpoints, and integration status, see [`Sources.md`](./Sources.md).
## License
MIT
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'get_notams' has a clear, distinct purpose focused on retrieving NOTAMs.
The tool name 'get_notams' follows a clear verb_noun pattern (get + notams). Since there is only one tool, consistency is inherently perfect with no deviations or mixed conventions.
The server has only one tool, which feels thin for a domain like aviation that typically involves multiple operations such as querying weather, flight plans, or airspace data. This minimal toolset limits functionality and suggests an incomplete surface.
The toolset is severely incomplete for an aviation context. It only provides NOTAM retrieval, with no coverage for other essential aviation data like METARs, TAFs, flight tracking, or airspace information, leading to significant gaps in agent workflows.