Airlabs Mcp Server

by airlabs-co

308 downloads
Not rated
GitHub

About

This Model Context Protocol (MCP) server provides access to the AirLabs aviation data API. It lets AI assistants such as Claude Desktop and Cursor access real-time flight data, airport schedules, delays, and reference databases for airlines, airports, aircraft fleets and routes —

Details

Author
airlabs-co
Downloads
308
Categories
Other, API, Developer Tools

- Live flight status by flight number (gate, terminal, delay).
- Airport departure and arrival boards.
- Delay monitoring beyond a threshold.
- Real-time aircraft coordinates, altitude, speed, heading.
- Nearest airport to any coordinate.
- Reference databases: airlines, airports, aircraft fleets, route networks.
- Code resolution from place/airline name to IATA/ICAO.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Airlabs Mcp Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

get_flight_status

TRIGGER: use automatically (no need for the user to mention 'AirLabs') whenever they ask about the status, arrival/departure time, gate, terminal, or delay of a SPECIFIC flight number — e.g. 'is BA117 on time?', 'when does LH401 land?', 'my flight AA6'. Get the live status of ONE flight by its flight number. Returns scheduled/estimated/actual departure & arrival times, status (scheduled/en-route/landed), terminal, gate, baggage belt, delay minutes, codeshare info, and aircraft details. Returns only the single closest live/scheduled/landed instance of that number. USE CASES: 'Is BA117 on time?', 'What gate is LH401?', 'Will my flight be late?'. INPUT: requires flight_iata OR flight_icao. If the user gives an airline NAME plus a number (e.g. 'Wizz Air 4321'), first call get_airline_info(name) to get the IATA code (W6) and build the flight_iata ('W64321'). NOTE: for ALL daily instances of a recurring number, use get_airport_schedule with flight_iata instead — this tool returns only one.

get_airport_schedule

TRIGGER: use automatically whenever the user asks what flights leave/arrive at an airport, or about departures/arrivals 'today / now / soon / in the next hours', or which destinations an airline serves from an airport right now — even without naming AirLabs. Get the LIVE departures/arrivals board for an airport (real-time, up to ~10 hours ahead). Each row has dep_time/arr_time, dep_estimated/arr_estimated, status, terminal, gate, delay, airline and flight number. THIS is the tool for questions about WHEN flights leave/arrive 'today' / 'soon' / 'right now'. USE CASES: 'What flights leave JFK today?', 'Show Wizz Air departures from Sofia in the next hours', 'Arrivals at LHR now'. INPUT: query by dep_iata (departures) OR arr_iata (arrivals). You may ADD airline_iata to filter by carrier, and/or flight_iata to list every instance of a number. WORKFLOW for 'Which airports does <Airline> fly to from <City> soon?': 1) get_airline_info(name='<Airline>') -> airline IATA code (e.g. Wizz Air -> W6) 2) search_airport_code(q='<City>') -> airport IATA code (e.g. Sofia -> SOF) 3) get_airport_schedule(dep_iata='SOF', airline_iata='W6') -> live departures w/ times 4) (optional) get_airport_info(iata_code=<each arr_iata>) -> full destination names Do NOT use find_routes for 'soon/today' — that returns a weekly timetable without live times. Use this tool when the user cares about actual times. TIME WINDOW & STATUS: the board covers a window from the recent past to several hours ahead, so it mixes flights that have not left yet, are airborne, and have already departed/landed. Each row's 'status' tells which: scheduled = not departed yet, active = airborne, landed = arrived (and 'cancelled'). Interpret the user's intent and filter the rows accordingly when their wording is specific: for 'upcoming / still to depart / next few hours' keep status=scheduled with a future dep_estimated/dep_time; for 'already left / departed' keep active/landed. If the user is NOT specific, do NOT drop rows — show them and label each with its status and time. Never silently hide matching flights; if filtering leaves nothing, say so and report what the board does contain.

monitor_delays

TRIGGER: use automatically whenever the user asks about delayed flights — 'are flights delayed at <airport>?', 'show departures running late', 'is <airline> delayed now?' — without needing to mention AirLabs. List flights currently delayed beyond a threshold, optionally filtered by airport or airline. Returns each delayed flight with its delay in minutes and new estimated time. USE CASES: 'Are arrivals at LAX delayed right now?', 'Show departures delayed 60+ min at JFK', 'Is Ryanair running late today?'. INPUT: requires type ('departures' or 'arrivals'); 'delay' is the minimum minutes to include. Optionally filter by dep_iata/arr_iata and/or airline_iata. If the user gives an airline or airport NAME, resolve it first (get_airline_info / search_airport_code). STATUS NOTE: a delay is most certain once a flight has actually left, so many results are already airborne (status=active) rather than still waiting to depart (status=scheduled). This is correct data, not an error. If the user specifically wants only flights that have NOT departed yet, keep status=scheduled; if they want what is delayed in the air right now, keep active. If they are not specific, show all matches and label each with its status — do not silently hide delayed flights just because they are already airborne.

track_live_flights

TRIGGER: use automatically whenever the user asks where aircraft are flying right now, to see planes over an area/on a map, or the live position of a specific aircraft/airline — without naming AirLabs. Get LIVE aircraft positions (lat, lng, altitude, speed, heading, squawk) for aircraft in the air right now. This is positional/map data — NOT schedule times. USE CASES: 'Show planes over New York', 'Where is aircraft N790AN right now?', 'Plot all Lufthansa flights currently airborne'. INPUT: filter by bbox (a map area), or by airline_iata, reg_number, flight_iata, dep_iata/arr_iata, or hex. Without filters it returns a very large global list — always filter or pass a bbox. For 'when does it depart/arrive' use get_airport_schedule or get_flight_status instead.

find_routes

TRIGGER: use automatically whenever the user asks which airlines fly a route, whether a nonstop exists between two places, or on which days a route operates — without naming AirLabs. Look up the ROUTE timetable: which airlines operate a route and on which DAYS OF THE WEEK, with scheduled clock times (no live status). This is a planning/reference database, NOT real-time — use it for 'which airlines fly X to Y' and 'what days does this run', NOT for 'is it on time today'. USE CASES: 'Which airlines fly London to Tokyo?', 'What days does Wizz Air fly Sofia to London?', 'Does anyone fly nonstop A to B?'. INPUT: filter by dep_iata and/or arr_iata and/or airline_iata (resolve names to codes first). For 'soon/today with times', use get_airport_schedule instead.

find_nearest_airport

TRIGGER: use automatically whenever the user asks for the closest/nearest airport to a location or coordinate — without naming AirLabs. Find airports (and nearby cities) around a geographic coordinate, sorted by distance. USE CASES: 'Closest airport to me', 'Airports within 50 km of these coordinates'. INPUT: requires lat, lng and a distance (km). If omitted, distance defaults to 50. If the user names a place instead of coordinates, use search_airport_code first to get its lat/lng, or just search_airport_code if they only need the airport code.

search_airport_code

TRIGGER: use automatically (often as the FIRST step of a chain) whenever the user names a city/country/airport in words and a code is needed, or asks 'what's the code for <place>' or 'airports in <place>' — without naming AirLabs. Autocomplete/resolve a PLACE name (airport, city, or country) into its IATA/ICAO code. Returns matched airports, cities, countries, and the airports belonging to a matched city or country. USE CASES: 'What's the code for Sofia?' -> SOF; 'airports in Spain' -> uses airports_by_countries. Call this FIRST whenever the user gives a city/country NAME and you need a code for get_airport_schedule, find_routes, or find_nearest_airport. IMPORTANT: this does NOT resolve AIRLINE names. To turn an airline name (e.g. 'Wizz Air') into its code, use get_airline_info(name=...) instead.

get_airline_info

TRIGGER: use automatically whenever the user asks about an airline (details, IATA/ICAO code, fleet size, country, safety), or names an airline that must be turned into a code for another query — without naming AirLabs. Look up airline(s) in the airlines database. Returns name, IATA & ICAO codes, callsign, country, fleet size, average fleet age, cargo/passenger/scheduled flags, safety stats and social links. USE CASES: 'Tell me about United', 'What's Wizz Air's IATA code?', 'How big is Ryanair's fleet?', 'List airlines in Bulgaria' (country_code='BG'). KEY WORKFLOW ROLE: this is how you turn an AIRLINE NAME into a CODE. Call get_airline_info(name='Wizz Air') to get iata_code 'W6', then use 'W6' in get_airport_schedule / find_routes / monitor_delays. (search_airport_code does NOT do airlines — only places.) INPUT: provide name (fuzzy), or iata_code/icao_code (exact), or country_code to list a country's carriers.

get_airport_info

TRIGGER: use automatically whenever the user asks about an airport's details (full name, city, country, timezone, coordinates, runways), or to expand an airport code into a full name — without naming AirLabs. Look up airport(s) in the airports database by code. Returns full name, city, country, coordinates, elevation, timezone, runways, yearly departures and localized names. USE CASES: 'What's the full name of LHR?', 'Where is SOF?', 'List all airports in Bulgaria' (country_code='BG'), 'airports in the PAR city group' (city_code='PAR'). WORKFLOW ROLE: after get_airport_schedule or find_routes returns destination codes (arr_iata), call this per code to give the user full airport NAMES instead of bare codes. INPUT: iata_code or icao_code (one airport), or country_code/city_code (a list).

lookup_aircraft

TRIGGER: use automatically whenever the user asks about a specific aircraft (by tail/registration number or hex), its type/age/model, or about an airline's fleet — without naming AirLabs. Look up aircraft in the fleets database. Returns type, model, manufacturer, age, build year, engines, wake category, owner airline, and latest known position (when queried by a specific aircraft). USE CASES: 'What aircraft is N790AN?' (reg_number), 'Look up hex AAB812', 'Show Wizz Air's fleet' (airline_iata='W6'), 'How old is this plane?'. INPUT: reg_number, hex, or msn for ONE aircraft; airline_iata/airline_icao to list a carrier's fleet (use limit to cap size). If given an airline NAME, resolve via get_airline_info first. Latest geo-position is only included when you query by a specific aircraft (reg_number, hex, or msn).

get_city_info

TRIGGER: use when the user asks about an aviation city code/grouping or to list cities of a country in an aviation context — not for general geography questions. Look up cities in the world cities database by code or country. Returns city name, code, country, coordinates, timezone and population/popularity. USE CASES: 'Details for the LON city group', 'List cities in Bulgaria' (country_code='BG'). For turning a city NAME into a code, prefer search_airport_code (it also returns the airports for that city).

get_country_info

TRIGGER: use mainly as a helper to resolve a country NAME to its ISO-2 code for filtering airlines/airports — not for general country facts. Look up countries in the countries database. Returns ISO-2/ISO-3 codes, name, continent and currency. USE CASES: 'What's the country code for Bulgaria?' (-> BG), 'currency of Spain'. Useful to resolve a country NAME to its ISO-2 code before filtering airlines/airports by country_code.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "airlabs mcp server": {
            "airlabs": {
                "command": "npx",
                "args": [
                    "@airlabs-co/airlabs-mcp@latest"
                ],
                "env": {
                    "AIRLABS_API_KEY": "your_api_key_here"
                }
            }
        }
    }
}

McpServers

{
    "airlabs": {
        "command": "npx",
        "args": [
            "@airlabs-co/airlabs-mcp@latest"
        ],
        "env": {
            "AIRLABS_API_KEY": "your_api_key_here"
        }
    }
}

ThisModel Context Protocol (MCP)server provides access to theAirLabsaviation data API. It lets AI assistants such as Claude Desktop and Cursor access real-time flight data, airport schedules, delays, and reference databases for airlines, airports, aircraft fleets and routes — directly through natural-language questions.

The entire server lives in a single file (index.ts): tool definitions, the AirLabs HTTP client, request handling and the stdio transport.

- Live flight status— look up any flight by number and get status, gate, terminal and delay.
- Airport schedules— departures and arrivals boards for any airport.
- Delay monitoring— find flights delayed beyond a threshold at an airport or airline.
- Real-time positions— live aircraft coordinates, altitude, speed and heading by area, airline or registration.
- Nearest airport— closest airports to any coordinate.
- Reference databases— airlines, airports, aircraft fleets (by tail number or ICAO24 hex) and route networks.
- Code resolution— turn a place or airline name into its IATA/ICAO code.
- Node.js18.0.0 or higher.
- AirLabs API key— get a free key at
https://airlabs.co/signup.

Add this to yourclaude_desktop_config.json:

{ "mcpServers": { "airlabs": { "command": "npx", "args": ["@airlabs-co/airlabs-mcp@latest"], "env": { "AIRLABS_API_KEY": "your_api_key_here" } } } }

- Replaceyour_api_key_herewith your actual AirLabs API key.
- Restart Claude Desktop after editing the config.
- If you build from source locally, use"command": "node", "args": ["/path/to/build/index.js"].

AIRLABS_API_KEY=your_api_key_here npx @airlabs/airlabs-mcp

All tools accept an optional_fieldsparameter (where the endpoint supports it) to return only selected fields and keep responses compact.

Once configured, just ask your assistant:

- "Is flight BA117 on time?"get_flight_status
- "What flights are leaving JFK today?"get_airport_schedule
- "Are arrivals delayed at LAX by more than 30 minutes?"monitor_delays
- "Show me planes flying over New York."track_live_flights
- "What aircraft is registration N790AN?"lookup_aircraft
- "Which airlines fly from London to Tokyo?"find_routes

git clone https://github.com/airlabs-co/airlabs-mcp.git cd airlabs-mcp npm install npm run build

- Fork the repository.
- Create a feature branch.
- Make your changes.
- Submit a pull request.

- Documentation:https://airlabs.co/docs
- Issues:
GitHub Issues
- API support:
https://airlabs.co/faq#Contact

Global postal code lookups, validation, and city search for 70+ countries. Sub-10ms responses.

Connect to any financial, utility, billing accounts; retrieve balance, transactions, payment and identity data instantly.

A healthcare MCP server for EMRs like Cerner and Epic, providing tools to interact with FHIR data and medical resources.

65+ AI tools as an MCP server. Research, write, code, scrape, translate, analyze, agent memory, workflows. Pay per call from $0.006.

MCP server that connects to the Airplanes.live API to provide real-time flight and aircraft data for analysis or visualization.

A Model Context Protocol (MCP) server that provides comprehensive access to the ALMA (Atacama Large Millimeter/submillimeter Array) archive through a clean, extensible architecture.

Remote MCP server giving AI agents instant access to comprehensive vehicle data: VIN decoding, license-plate lookup, stolen-vehicle checks, mileage history, inspection records, photos, and market valuations across 24 markets. Connect with a single Authorization: Bearer API key from any MCP client (Claude Desktop, Claude Code, Cursor, ChatGPT, Cline, Zed). Stateless and hosted at https://mcp.carapi.dev/mcp — no setup, no session management, just plug in your key and start querying. Includes a free carapi_docs tool for searching CarAPI documentation without authentication.

Verify US/Canada freight carriers and brokers: live FMCSA data, trust scores, registry search, and partner watchlist monitoring for AI agents.

Clara Carros — used & imported cars in Portugal (ISV/IUC, live stock, resale)

Thin, open-source (MIT) wrapper over the public claracars.pt API — no API keys, no auth, no setup. Remote (recommended): https://claracars.pt/mcp (streamable-http) or npx claracars-mcp

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.