Skip to main content
Glama
Pradumnasaraf

Aviationstack MCP Server

Aviationstack MCP Server

This project is an MCP (Model Context Protocol) server that provides a set of tools to interact with the AviationStack API. It exposes endpoints for retrieving real-time and future flight data, aircraft and airplane details, and core reference data (airports, airlines, routes, taxes), making it easy to integrate aviation data into your applications.

You can also find the Aviationstack MCP server in these well-known MCP server repositories for easy access:

Demo

https://github.com/user-attachments/assets/9325fcce-8ecc-4b01-8923-4ccb2f6968f4

Features

  • Look up a single flight by its flight number

  • Get flights for a specific airline

  • Fetch historical flights by date

  • Retrieve arrival and departure schedules for airports

  • Fetch future flight schedules (from tomorrow through about 12 months ahead)

  • Get random aircraft types

  • Get detailed info on random airplanes

  • Get detailed info on random countries

  • Get detailed info on random cities

  • List airports, airlines, routes, and taxes

All endpoints are implemented as MCP tools and are ready to be used in an MCP-compatible environment.

Every tool returns the same JSON envelope. On success: {"ok": true, "count": N, "data": [...]}, plus a pagination block on the list_* tools and a message when there were no matches. On failure: {"ok": false, "context": "...", "error": "..."}. Any limit is capped at 100 records per call.

Prerequisites

  • Aviationstack API Key (You can get a FREE API Key from Aviationstack)

  • Python 3.13 or newer

  • uv package manager installed

Available Tools

Tool

Description

Parameters

get_flight_status(flight_iata: str, flight_date: str = "")

Look up one flight by its IATA flight number, for today or a given date.

- flight_iata: Flight IATA number (e.g., "AA100") - flight_date: Optional date in YYYY-MM-DD format

flights_with_airline(airline_name: str, number_of_flights: int, flight_status: str = "")

Get live flights for a specific airline.

- airline_name: Name of the airline (e.g., "Delta Air Lines") - number_of_flights: Number of flights to return - flight_status: Optional status filter: scheduled, active, landed, cancelled, incident, diverted

historical_flights_by_date(flight_date: str, number_of_flights: int, airline_iata: str = "", dep_iata: str = "", arr_iata: str = "")

Get historical flights for a date (Basic plan+).

- flight_date: Date in YYYY-MM-DD format - number_of_flights: Number of flights to return - airline_iata: Optional airline IATA filter - dep_iata: Optional departure airport IATA filter - arr_iata: Optional arrival airport IATA filter

flight_arrival_departure_schedule(airport_iata_code: str, schedule_type: str, airline_name: str, number_of_flights: int)

Get today's arrival or departure board for a given airport and airline. Current day only.

- airport_iata_code: IATA code of the airport (e.g., "JFK") - schedule_type: "arrival" or "departure" - airline_name: Name of the airline - number_of_flights: Number of flights to return

future_flights_arrival_departure_schedule(airport_iata_code: str, schedule_type: str, airline_iata: str, date: str, number_of_flights: int)

Get scheduled flights for a given airport, airline, and future date. Covers tomorrow through about 12 months ahead, including the next 7 days.

- airport_iata_code : IATA code of the airport - schedule_type: "arrival" or "departure" - airline_iata: IATA code of the airline (e.g., "DL" for Delta) - date: Date in YYYY-MM-DD format, from tomorrow up to about 12 months ahead - number_of_flights: Number of flights to return

random_aircraft_type(number_of_aircraft: int)

Get aircraft types from a random offset in the dataset.

- number_of_aircraft: Number of aircraft types to return

random_airplanes_detailed_info(number_of_airplanes: int)

Get detailed info on airplanes from a random offset in the dataset.

- number_of_airplanes: Number of airplanes to return

random_countries_detailed_info(number_of_countries: int)

Get detailed info on countries from a random offset in the dataset.

- number_of_countries: Number of countries to return

random_cities_detailed_info(number_of_cities: int)

Get detailed info on cities from a random offset in the dataset.

- number_of_cities: Number of cities to return

list_airports(limit: int = 10, offset: int = 0, search: str = "")

List airports.

- limit: Number of results to return - offset: Pagination offset - search: Optional search query

list_airlines(limit: int = 10, offset: int = 0, search: str = "")

List airlines.

- limit: Number of results to return - offset: Pagination offset - search: Optional search query

list_routes(limit: int = 10, offset: int = 0, airline_iata: str = "", dep_iata: str = "", arr_iata: str = "")

List routes.

- limit: Number of results to return - offset: Pagination offset - airline_iata: Optional airline IATA filter - dep_iata: Optional departure airport IATA filter - arr_iata: Optional arrival airport IATA filter

list_taxes(limit: int = 10, offset: int = 0, search: str = "")

List aviation taxes.

- limit: Number of results to return - offset: Pagination offset - search: Optional search query

Prompts

The server ships reusable prompts that steer a model toward the right tool.

Prompt

Arguments

Purpose

plan_flight_status_lookup

flight_iata, flight_date

Check one specific flight, and explain its codeshares.

plan_airline_flight_lookup

airline_name, number_of_flights

Query live flights for an airline.

plan_future_schedule_lookup

airport_iata_code, date, schedule_type

Query a future airport schedule.

plan_reference_data_lookup

data_type, search

Explore airport, airline, route or tax reference data.

Resources

Resource

URI

Contents

server_metadata

aviationstack://meta/server

API base URL and the accepted API key variables.

aviationstack_endpoints

aviationstack://meta/endpoints

The Aviationstack endpoints each tool calls.

tool_input_examples

aviationstack://examples/tool-input/{tool_name}

A sample payload for a given tool.

Development

  • The main server logic is in src/aviationstack_mcp/server.py.

  • All MCP tools are defined as Python functions decorated with @mcp.tool().

  • Each tool is a thin wrapper that validates input with a Pydantic model, then calls the matching plain function. Tests target the plain functions.

  • The server uses the FastMCP class from mcp.server.fastmcp. The mcp dependency is pinned to <2, because 2.x renames FastMCP to MCPServer.

  • Tools never raise. Every failure is caught and returned as the error envelope.

Set up and run the checks the CI runs:

uv sync --all-groups

# Unit tests
uv run python -m unittest discover -s tests -v

# Lint, must stay at 10.00/10
uv run pylint $(git ls-files '*.py')

# Coverage
uv run coverage run --source=aviationstack_mcp -m unittest discover -s tests
uv run coverage report

.well-known/mcp/server-card.json is generated, not hand-edited. After changing any tool, prompt or resource, regenerate it or CI will fail:

uv run python scripts/generate_server_card.py          # rewrite the card
uv run python scripts/generate_server_card.py --check  # what CI runs

MCP Server configuration

To add this server to your favorite MCP client, you can add the following to your MCP client configuration file.

  1. Using uvx without cloning the repository (recommended)

{
  "mcpServers": {
    "Aviationstack MCP": {
      "command": "uvx",
      "args": [
        "aviationstack-mcp"
      ],
      "env": {
        "AVIATION_STACK_API_KEY": "<your-api-key>"
      }
    }
  }
}
  1. By cloning the repository and running the server locally

{
  "mcpServers": {
    "Aviationstack MCP": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/aviationstack-mcp/src/aviationstack_mcp",
        "run",
        "-m",
        "aviationstack_mcp",
        "mcp",
        "run"
      ],
      "env": {
        "AVIATION_STACK_API_KEY": "<your-api-key>"
      }
    }
  }
}

Related MCP server: flights-mcp

License

This project is licensed under the MIT License. See LICENSE for details.

Available Tools

13 tools
flight_arrival_departure_scheduleA

Return today's arrival or departure board for an airport, optionally filtered by airline name. Returns airline, flight number, scheduled, estimated and actual times, terminals, gates and departure delay per flight. Covers the current day only: for any later date use future_flights_arrival_departure_schedule instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
airline_nameNoOptional airline name filter.
schedule_typeYesWhether to return the arrival board or the departure board. One of: arrival, departure.
airport_iata_codeYesAirport IATA code (for example: SFO).
number_of_flightsNoMaximum number of flights to return, from 1 to 100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It discloses the current-day-only limitation, optional airline filtering, and the per-flight fields returned. This is strong for a read-only schedule tool, though it does not discuss ordering or data availability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with no filler: the core action and scope are front-loaded, followed by useful return-field details and the key routing to the future-date sibling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, scope, key returned fields, and the critical date limitation. The schema fully documents parameters and the output schema covers return structure, so nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented. The description adds context by linking schedule_type to arrival/departure boards and mentioning airline_name filtering, but it does not add new syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Return') and resource: today's arrival or departure board for an airport, with an optional airline filter. It also names the sibling future_flights_arrival_departure_schedule, making it easy to distinguish from the related tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly scopes the tool to the current day and directs the agent to future_flights_arrival_departure_schedule for any later date. This gives clear when-to-use guidance and an explicit alternative, leaving no inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flights_with_airlineA

Return live flights for one airline, optionally narrowed to a single flight status. Returns flight number, airline, departure and arrival airports with timezones, scheduled departure time, status, delay, terminal and gate. Use this to survey an airline's current activity; use get_flight_status when you already know the flight number.

ParametersJSON Schema
NameRequiredDescriptionDefault
airline_nameYesAirline name to filter flights (for example: Delta Air Lines).
flight_statusNoOptional flight status filter. One of: scheduled, active, landed, cancelled, incident, diverted.
number_of_flightsYesMaximum number of flights to return, from 1 to 100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure itself. It communicates the live nature of the data, the optional status narrowing, and exactly which fields will be returned. It does not discuss auth, rate limits, or empty-result behavior, but these are not critical for a read-only lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no wasted words: purpose first, return fields second, routing to the sibling third. Every sentence contributes distinct value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, full parameter docs, and existing output schema together cover the main contract. Minor gaps remain around API limitations (rate limits, live-data freshness guarantees), but an agent knows what to call, with what inputs, and what kind of output to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents airline_name, flight_status, and number_of_flights. The description only restates the optional status narrowing and adds no new parameter-level meaning, matching the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair ('Return live flights for one airline') and an optional filter, and then explicitly contrasts it with get_flight_status. An agent can tell exactly what this tool does and how it differs from its nearest sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit when-to-use cue ('survey an airline's current activity') and points to get_flight_status for the known-flight-number case, but it does not mention exclusions for historical or schedule-based siblings such as historical_flights_by_date. Context is clear, but exclusions are partial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

future_flights_arrival_departure_scheduleA

Return the scheduled arrival or departure board for an airport on a specific future date. Covers any date from tomorrow through about 12 months ahead, including the next 7 days. Returns airline, flight number, scheduled times, arrival airport, terminal, gate and aircraft model. Use flight_arrival_departure_schedule for today's board instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate to query, in YYYY-MM-DD format. Any date from tomorrow through about 12 months ahead, including the next 7 days.
airline_iataNoOptional airline IATA code filter (for example: UA).
schedule_typeYesWhether to return the arrival board or the departure board. One of: arrival, departure.
airport_iata_codeYesAirport IATA code (for example: SFO).
number_of_flightsNoMaximum number of flights to return, from 1 to 100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It openly states the future-date limitation, the fact that the board is scheduled rather than live, and the outputs returned. It doesn't discuss error conditions or default behavior when date is omitted, but those are minor for a read-style query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: the main action, the applicable date window, the output fields, and the sibling alternative. Every sentence earns its place and no information is repeated except the deliberate emphasis of the next-7-days coverage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderately parameterized tool with a rich input schema and an output schema, the description covers purpose, temporal scope, return contents, and the key alternative. Nothing essential to selecting or invoking the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents date format, airport code, airline filter, schedule_type values, and number_of_flights. The description adds no parameter-level meaning beyond emphasizing the future-date window, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action and resource: returns the scheduled arrival/departure board for an airport on a future date. It further defines the date window and explicitly routes today's board queries to flight_arrival_departure_schedule, so it is clearly distinguished from the sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says this tool covers tomorrow through about 12 months ahead and names flight_arrival_departure_schedule as the tool to use for today's board instead. This gives clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_flight_statusA

Look up one specific flight by its IATA flight number, for the current day or a given date. Returns flight status plus scheduled, estimated and actual times, terminal, gate, baggage belt and delay minutes for both ends, with the operating flight ordered ahead of its codeshares. Use this when the question names a flight number; use flights_with_airline to browse an airline's flights, or historical_flights_by_date for past dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
flight_dateNoOptional date in YYYY-MM-DD format. Defaults to the current day.
flight_iataYesFlight IATA number (for example: AA100).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the transparency burden. It does this well by detailing what the response contains—scheduled, estimated, and actual times, terminal, gate, baggage belt, delay minutes, and both ends of the flight—and by disclosing that the operating flight is ordered ahead of codeshares. It does not discuss not-found behavior, but that is a minor gap for a lookup tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three tightly packed sentences: core purpose, return-value summary, and usage guidance with alternatives. It front-loads the most important information and every sentence earns its place without unnecessary wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter lookup tool with an output schema, the description is complete. It explains the search key, date behavior, the scope of returned data, the ordering nuance, and when to choose sibling tools instead. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters with descriptions and examples. The description adds some useful context around the date default and the IATA number, but it does not significantly deepen parameter meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Look up one specific flight by its IATA flight number' and clearly scopes the operation to 'the current day or a given date.' It also differentiates from sibling tools by emphasizing a single flight and by listing distinct return data like actual times, gate, baggage belt, and delay minutes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('when the question names a flight number') and names concrete alternatives for related cases: flights_with_airline for browsing an airline's flights and historical_flights_by_date for past dates. This gives an agent clear routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

historical_flights_by_dateA

Return flights that already operated on a past date, with optional airline and route filters. Returns flight date, status, flight number, airline, and both airports with their scheduled times. Requires the Basic plan or higher. Use this for past dates only: use flight_arrival_departure_schedule for today and future_flights_arrival_departure_schedule for later dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
arr_iataNoOptional arrival airport IATA code filter (for example: LAX).
dep_iataNoOptional departure airport IATA code filter (for example: JFK).
flight_dateYesPast date to query, in YYYY-MM-DD format.
airline_iataNoOptional airline IATA code filter (for example: DL).
number_of_flightsYesMaximum number of flights to return, from 1 to 100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the transparency burden. It discloses the Basic plan requirement, the historical scope, the optional filters, and the data fields returned. It does not discuss edge cases such as invalid dates, empty results, or date-range limits, but the plan requirement and output scope are meaningful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences deliver the core purpose, filter options, return fields, plan requirement, and sibling routing without redundancy. The most important usage constraint is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a historical list tool with a full output schema and sibling tools, the description covers what the tool does, when to use it, what it returns, which plan it requires, and which alternatives to use instead. Nothing essential is missing for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all five parameters with descriptions, and coverage is 100%, so the baseline is 3. The description adds a small amount of context by referring to 'route filters' and listing return fields, but it does not materially go beyond the schema's parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Return flights that already operated on a past date.' It clearly distinguishes this tool from its siblings by emphasizing 'past date only' and naming the alternatives for today and future dates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'Use this for past dates only.' It also names two sibling tools for the other time contexts, making the selection decision explicit and unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_airlinesA

List airlines from the reference catalog, one page at a time, with optional text search. Each record has airline name, IATA and ICAO codes, callsign, operational status, country name and ISO2, alongside a pagination block carrying limit, offset and total. Use search to resolve an airline name to the IATA code the flight tools expect.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of airlines to return per page, from 1 to 100.
offsetNoZero-based offset for pagination. Combine with limit and the total in the response to page through results.
searchNoOptional text matched against airline name and codes. Autocomplete search requires the Basic plan or higher, as does this endpoint.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description carries the behavioral burden well: it discloses one-page-at-a-time pagination, the pagination block with limit/offset/total, and the presence of operational status. It does not explicitly address rate limits or plan requirements in the description, but the schema already carries the Basic plan note and the operation is inherently read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and is free of filler. The field-list sentence is useful but partly duplicates what the output schema already documents, keeping it just below a perfect 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, paged catalog-listing tool with all parameters described in the schema and an output schema available, the description is sufficient. It covers the operation, the return shape, pagination, and the key integration use case for flight tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by telling the agent that search is the mechanism to resolve a user-supplied airline name to the IATA code expected by flight tools. It also frames limit/offset in terms of the pagination block returned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'List airlines from the reference catalog,' with pagination and optional search. The 'airlines' scope distinguishes it from sibling catalog tools like list_airports and list_routes, and the record-field list makes the resource concrete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear practical use: 'Use search to resolve an airline name to the IATA code the flight tools expect,' which positions the tool as the reference lookup for flight-related siblings. It does not explicitly name when-not-to-use alternatives, so it misses the top tier.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_airportsA

List airports from the reference catalog, one page at a time, with optional text search. Each record has airport name, IATA and ICAO codes, city IATA code, country name and ISO2, timezone and GMT offset, alongside a pagination block carrying limit, offset and total. Use search to resolve an airport name to the IATA code the flight tools expect.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of airports to return per page, from 1 to 100.
offsetNoZero-based offset for pagination. Combine with limit and the total in the response to page through results.
searchNoOptional text matched against airport name and codes. Autocomplete search requires the Basic plan or higher, as does this endpoint.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently explains pagination behavior, optional search, and the shape of each record including the pagination block. It does not mention auth or rate limits, but for a read-only catalog listing the disclosed behavior is thorough and accurate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly written in three sentences: a clear action statement, a record contents overview, and a practical use-case note. Every sentence contributes meaningful information, and the most important purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, all-optional-parameter list tool with an output schema present, the description covers everything an agent needs: operation, pagination semantics, record fields, search behavior, and the intended downstream use. No critical information appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by explaining how pagination works ('one page at a time', 'pagination block carrying limit, offset and total') and framing 'search' as the mechanism to resolve names to IATA codes for flight tools. This is useful contextual value that the parameter descriptions alone do not fully convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the operation ('List'), the resource ('airports from the reference catalog'), and key distinguishing features like pagination and optional text search. It also explains each record's contents and the intended use case for resolving airport names to IATA codes, making it easy to differentiate from sibling list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool: when you need airport reference data or need to resolve an airport name to the IATA code expected by flight tools. It does not name alternatives or state explicit exclusions, but the resource focus and sibling names are sufficiently distinct that no confusion is likely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_routesA

List scheduled routes, one page at a time, filtered by any combination of airline, departure airport and arrival airport. Each record has airline IATA and ICAO codes, flight number, and departure and arrival airport codes, alongside a pagination block carrying limit, offset and total. This says which routes exist, not whether a flight is operating: use get_flight_status for that. Requires the Basic plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of routes to return per page, from 1 to 100.
offsetNoZero-based offset for pagination. Combine with limit and the total in the response to page through results.
arr_iataNoOptional arrival airport IATA code filter.
dep_iataNoOptional departure airport IATA code filter.
airline_iataNoOptional airline IATA code filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden and does so well: it discloses pagination behavior, response shape, filter semantics, and plan requirements. It does not mention sorting or rate limits, but those are minor for a read-only listing operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three densely informative sentences with no filler. The purpose and key scoping (filters, pagination) are front-loaded, followed by response details and a clear alternative, all in an efficient structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a filtered, paginated list tool: it covers what it returns, how filters and paging work, the key limitation, and the authentication/plan requirement. The rich input schema and output schema handle the remaining details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful value beyond the schema by clarifying that filters can be combined in any combination and that results are returned one page at a time with a pagination block.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List'), a clear resource ('scheduled routes'), and the available filters. It also explicitly differentiates itself from get_flight_status by clarifying this describes route existence rather than flight operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use context ('filtered by any combination...') and an explicit alternative for the related case ('use get_flight_status for that'). It also discloses the plan prerequisite, which is important for invocation decisions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_taxesA

List aviation taxes from the reference catalog, one page at a time, with optional text search. Each record has tax id, tax name and the associated IATA code, alongside a pagination block carrying limit, offset and total. This is static reference data, not fares or amounts charged on a booking. Requires a paid plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tax records to return per page, from 1 to 100.
offsetNoZero-based offset for pagination. Combine with limit and the total in the response to page through results.
searchNoOptional text matched against tax name and IATA code.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It reveals the pagination model, record structure (tax id, tax name, IATA code), the static reference data nature, and the paid plan prerequisite. This goes beyond what the schema provides, though it omits details like rate limits or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: the first states the core action, the second describes the response shape, and the third clarifies data type and access requirement. It is concise, front-loaded, and free of filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward list tool with three optional parameters and an output schema, the description is complete. It explains what is returned, pagination semantics, the nature of the data, and the prerequisite paid plan. No critical missing information is apparent for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does echo the search and pagination parameters conceptually, but it does not add meaningful semantic detail beyond what the input schema already documents for limit, offset, and search.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), resource ('aviation taxes from the reference catalog'), and key behaviors (pagination, optional text search). It also distinguishes the tool from fare/booking charge data by clarifying it is static reference data, which separates it from potentially confusing uses and sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool: for static reference data, not for fares or amounts charged. It also notes the paid plan requirement. However, it does not explicitly name alternative tools or state when not to use this tool in favor of a sibling, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_aircraft_typeA

Return a random sample of aircraft types from the Aviationstack reference catalog. Each record has aircraft_name and iata_code. Records are drawn from a random offset, so repeated calls return different rows. This samples the catalog and cannot look up a specific model: there is no search parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
number_of_aircraftYesNumber of random aircraft types to sample, from 1 to 100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well. It discloses the random-offset mechanism, that repeated calls return different rows, and that the tool only samples without a search parameter. This goes well beyond a generic 'returns random data'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences front-load the main purpose, then record fields, then the behavioral caveat. Every sentence earns its place; no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter sampler, the description covers all essential behaviors: random selection, record fields, non-determinism across calls, and the impossibility of lookup. The presence of an output schema means return-value detail does not need to be restated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: the schema fully describes number_of_aircraft as an integer 1-100 with exclusiveMinimum 0. The description does not add material parameter information beyond confirming this is a sample count, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and resource: 'Return a random sample of aircraft types from the Aviationstack reference catalog.' It also defines the record shape and explicitly states a non-goal: 'cannot look up a specific model,' which distinguishes it from lookup-oriented tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context: use when you need a random sample, and it explicitly says there is no search parameter, telling the agent when not to use it. However, it does not name a specific alternative tool for lookups, so it stops short of full 5-level guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_airplanes_detailed_infoA

Return a random sample of individual airplanes from the reference catalog. Each record has model name and code, series, production line, registration number, owner, age, engine type and count, delivery date and first flight date. Records are drawn from a random offset, so repeated calls return different aircraft. Sampling only: there is no lookup by registration.

ParametersJSON Schema
NameRequiredDescriptionDefault
number_of_airplanesYesNumber of random airplanes to sample, from 1 to 100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It transparently explains the random offset mechanism, that repeated calls return different aircraft, and that lookup by registration is not supported. This goes beyond the input schema and gives an agent realistic expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three focused sentences: it states the operation, lists the record contents, and then clarifies sampling behavior and a key limitation. It is front-loaded with the core action and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with an output schema, the description provides all essential context: what is returned, how randomness works, and what the tool cannot do. Nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage for the single parameter, including range constraints (1 to 100). The description adds only the generic notion of sampling, which is already implied by the tool name and schema. Baseline 3 is appropriate because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Return a random sample of individual airplanes from the reference catalog.' It clearly distinguishes the tool from sibling random_aircraft_type by emphasizing individual airplane records and listing concrete fields, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states 'Sampling only: there is no lookup by registration,' which tells an agent when not to use the tool. It does not name sibling alternatives directly, but the sampling-only caveat provides clear usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_cities_detailed_infoA

Return a random sample of cities from the reference catalog. Each record has city name, IATA code, country ISO2, latitude, longitude, timezone, GMT offset and geoname id. Records are drawn from a random offset, so repeated calls return different cities. Sampling only: there is no lookup by city name.

ParametersJSON Schema
NameRequiredDescriptionDefault
number_of_citiesYesNumber of random cities to sample, from 1 to 100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It usefully reveals that records come from a random offset and that repeated calls return different cities, but it does not specify edge behavior such as what happens if the requested sample size exceeds the catalog.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, putting the core purpose first and then adding behavior and boundaries. The field-enumeration sentence may partially overlap with the output schema, but it is not padded or verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter sampling tool with a complete schema and an output schema, the description provides enough context: purpose, returned record fields, randomness behavior, and the no-lookup boundary. Nothing critical is missing for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents number_of_cities with type, range, and required status. The tool description adds no further parameter-specific meaning beyond the sampling context, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Return a random sample of cities from the reference catalog.' The field list and the explicit 'no lookup by city name' boundary make it easy to distinguish from lookup and other random-catalog sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly frames the intended use as sampling and explicitly states a when-not condition: 'there is no lookup by city name.' It does not name specific sibling alternatives, so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_countries_detailed_infoA

Return a random sample of countries from the reference catalog. Each record has country name, capital, continent, ISO2, ISO3 and numeric ISO codes, FIPS code, currency name and code, phone prefix and population. Records are drawn from a random offset, so repeated calls return different countries. Sampling only: there is no lookup by country name or code.

ParametersJSON Schema
NameRequiredDescriptionDefault
number_of_countriesYesNumber of random countries to sample, from 1 to 100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the random-offset mechanism, that repeated calls return different countries, and that the tool only samples rather than supports lookups. This gives an agent an accurate model of the tool's runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, each earning its place: purpose, output fields, randomness behavior, and the sampling-only limitation. It is front-loaded with the core action and avoids unnecessary elaboration or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter sampling tool with an output schema, the description adequately explains what records contain, how randomness works, and the tool's boundary. Nothing critical for selecting or invoking the tool is missing; an agent can confidently call it based on this definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% description coverage for the single parameter, including its range and meaning. The tool description does not add any extra parameter-specific semantics beyond what the schema states, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Return a random sample of countries from the reference catalog.' It clearly distinguishes this tool from siblings that target cities, airports, aircraft, or flights, and the explicit 'Sampling only' statement reinforces that it is not a lookup tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool (when a random country sample is needed) and when not to use it: 'there is no lookup by country name or code.' This exclusion is clear enough to prevent an agent from calling it for deterministic retrieval, even without naming an alternative sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv1.8.1
    • Changedflight_arrival_departure_schedule2 fields changed
      • changedInput schema / properties / number_of_flights / description
        Previous value: -"Number of flights to return."New value: +"Maximum number of flights to return, from 1 to 100."
      • changedInput schema / properties / schedule_type / description
        Previous value: -"Schedule type: arrival or departure."New value: +"Whether to return the arrival board or the departure board. One of: arrival, departure."
    • Changedflights_with_airline1 field changed
      • changedInput schema / properties / number_of_flights / description
        Previous value: -"Number of flights to return."New value: +"Maximum number of flights to return, from 1 to 100."
    • Changedfuture_flights_arrival_departure_schedule4 fields changed
      • changedInput schema / properties / date / description
        Previous value: -"Future date in YYYY-MM-DD format."New value: +"Date to query, in YYYY-MM-DD format. Any date from tomorrow through about 12 months ahead, including the next 7 days."
      • changedInput schema / properties / date / examples
        Previous value: -[
        -  "2026-03-01"
        -]New value: +[
        +  "2027-03-01"
        +]
      • changedInput schema / properties / number_of_flights / description
        Previous value: -"Number of flights to return."New value: +"Maximum number of flights to return, from 1 to 100."
      • changedInput schema / properties / schedule_type / description
        Previous value: -"Schedule type: arrival or departure."New value: +"Whether to return the arrival board or the departure board. One of: arrival, departure."
    • Changedhistorical_flights_by_date2 fields changed
      • changedInput schema / properties / flight_date / description
        Previous value: -"Date in YYYY-MM-DD format."New value: +"Past date to query, in YYYY-MM-DD format."
      • changedInput schema / properties / number_of_flights / description
        Previous value: -"Number of flights to return."New value: +"Maximum number of flights to return, from 1 to 100."
    • Changedlist_airlines3 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of airlines to return."New value: +"Maximum number of airlines to return per page, from 1 to 100."
      • changedInput schema / properties / offset / description
        Previous value: -"Offset for pagination."New value: +"Zero-based offset for pagination. Combine with limit and the total in the response to page through results."
      • changedInput schema / properties / search / description
        Previous value: -"Optional airline search text for autocomplete."New value: +"Optional text matched against airline name and codes. Autocomplete search requires the Basic plan or higher, as does this endpoint."
    • Changedlist_airports3 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of airports to return."New value: +"Maximum number of airports to return per page, from 1 to 100."
      • changedInput schema / properties / offset / description
        Previous value: -"Offset for pagination."New value: +"Zero-based offset for pagination. Combine with limit and the total in the response to page through results."
      • changedInput schema / properties / search / description
        Previous value: -"Optional airport search text for autocomplete."New value: +"Optional text matched against airport name and codes. Autocomplete search requires the Basic plan or higher, as does this endpoint."
    • Changedlist_routes2 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of routes to return."New value: +"Maximum number of routes to return per page, from 1 to 100."
      • changedInput schema / properties / offset / description
        Previous value: -"Offset for pagination."New value: +"Zero-based offset for pagination. Combine with limit and the total in the response to page through results."
    • Changedlist_taxes3 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of tax records to return."New value: +"Maximum number of tax records to return per page, from 1 to 100."
      • changedInput schema / properties / offset / description
        Previous value: -"Offset for pagination."New value: +"Zero-based offset for pagination. Combine with limit and the total in the response to page through results."
      • changedInput schema / properties / search / description
        Previous value: -"Optional tax search text."New value: +"Optional text matched against tax name and IATA code."
    • Changedrandom_aircraft_type1 field changed
      • changedInput schema / properties / number_of_aircraft / description
        Previous value: -"Number of random aircraft types to return."New value: +"Number of random aircraft types to sample, from 1 to 100."
    • Changedrandom_airplanes_detailed_info1 field changed
      • changedInput schema / properties / number_of_airplanes / description
        Previous value: -"Number of random airplanes to return."New value: +"Number of random airplanes to sample, from 1 to 100."
    • Changedrandom_cities_detailed_info1 field changed
      • changedInput schema / properties / number_of_cities / description
        Previous value: -"Number of random cities to return."New value: +"Number of random cities to sample, from 1 to 100."
    • Changedrandom_countries_detailed_info1 field changed
      • changedInput schema / properties / number_of_countries / description
        Previous value: -"Number of random countries to return."New value: +"Number of random countries to sample, from 1 to 100."
  2. 13 tool updatesv1.7.0
    • Changedflight_arrival_departure_schedule2 fields changed
      • changedInput schema / properties / number_of_flights / description
        Previous value: -"Number of random flights to return."New value: +"Number of flights to return."
      • addedInput schema / properties / number_of_flights / maximum
        Added value: +100
    • Changedflights_with_airline3 fields changed
      • addedInput schema / properties / flight_status
        Added value: +{
        +  "default": "",
        +  "description": "Optional flight status filter. One of: scheduled, active, landed, cancelled, incident, diverted.",
        +  "title": "Flight Status",
        +  "type": "string"
        +}
      • changedInput schema / properties / number_of_flights / description
        Previous value: -"Number of random flights to return."New value: +"Number of flights to return."
      • addedInput schema / properties / number_of_flights / maximum
        Added value: +100
    • Changedfuture_flights_arrival_departure_schedule2 fields changed
      • changedInput schema / properties / number_of_flights / description
        Previous value: -"Number of random flights to return."New value: +"Number of flights to return."
      • addedInput schema / properties / number_of_flights / maximum
        Added value: +100
    • Addedget_flight_status
    • Changedhistorical_flights_by_date2 fields changed
      • changedInput schema / properties / number_of_flights / description
        Previous value: -"Number of random flights to return."New value: +"Number of flights to return."
      • addedInput schema / properties / number_of_flights / maximum
        Added value: +100
    • Changedlist_airlines1 field changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
    • Changedlist_airports1 field changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
    • Changedlist_routes1 field changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
    • Changedlist_taxes1 field changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
    • Changedrandom_aircraft_type1 field changed
      • addedInput schema / properties / number_of_aircraft / maximum
        Added value: +100
    • Changedrandom_airplanes_detailed_info1 field changed
      • addedInput schema / properties / number_of_airplanes / maximum
        Added value: +100
    • Changedrandom_cities_detailed_info1 field changed
      • addedInput schema / properties / number_of_cities / maximum
        Added value: +100
    • Changedrandom_countries_detailed_info1 field changed
      • addedInput schema / properties / number_of_countries / maximum
        Added value: +100
  3. 12 tool updatesv1.6.0
    • Changedflight_arrival_departure_schedule11 fields changed
      • addedInput schema / properties / airline_name / default
        Added value: +""
      • addedInput schema / properties / airline_name / description
        Added value: +"Optional airline name filter."
      • addedInput schema / properties / airport_iata_code / description
        Added value: +"Airport IATA code (for example: SFO)."
      • addedInput schema / properties / airport_iata_code / minLength
        Added value: +1
      • addedInput schema / properties / number_of_flights / default
        Added value: +5
      • addedInput schema / properties / number_of_flights / description
        Added value: +"Number of random flights to return."
      • addedInput schema / properties / number_of_flights / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / schedule_type / description
        Added value: +"Schedule type: arrival or departure."
      • changedInput schema / required
        Previous value: -[
        -  "airport_iata_code",
        -  "schedule_type",
        -  "airline_name",
        -  "number_of_flights"
        -]New value: +[
        +  "airport_iata_code",
        +  "schedule_type"
        +]
      • changedInput schema / title
        Previous value: -"flight_arrival_departure_scheduleArguments"New value: +"flight_arrival_departure_schedule_toolArguments"
      • changedOutput schema / title
        Previous value: -"flight_arrival_departure_scheduleOutput"New value: +"flight_arrival_departure_schedule_toolOutput"
    • Changedflights_with_airline5 fields changed
      • addedInput schema / properties / airline_name / description
        Added value: +"Airline name to filter flights (for example: Delta Air Lines)."
      • addedInput schema / properties / number_of_flights / description
        Added value: +"Number of random flights to return."
      • addedInput schema / properties / number_of_flights / exclusiveMinimum
        Added value: +0
      • changedInput schema / title
        Previous value: -"flights_with_airlineArguments"New value: +"flights_with_airline_toolArguments"
      • changedOutput schema / title
        Previous value: -"flights_with_airlineOutput"New value: +"flights_with_airline_toolOutput"
    • Changedfuture_flights_arrival_departure_schedule14 fields changed
      • addedInput schema / properties / airline_iata / default
        Added value: +""
      • addedInput schema / properties / airline_iata / description
        Added value: +"Optional airline IATA code filter (for example: UA)."
      • addedInput schema / properties / airport_iata_code / description
        Added value: +"Airport IATA code (for example: SFO)."
      • addedInput schema / properties / airport_iata_code / minLength
        Added value: +1
      • addedInput schema / properties / date / default
        Added value: +""
      • addedInput schema / properties / date / description
        Added value: +"Future date in YYYY-MM-DD format."
      • addedInput schema / properties / date / examples
        Added value: +[
        +  "2026-03-01"
        +]
      • addedInput schema / properties / number_of_flights / default
        Added value: +5
      • addedInput schema / properties / number_of_flights / description
        Added value: +"Number of random flights to return."
      • addedInput schema / properties / number_of_flights / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / schedule_type / description
        Added value: +"Schedule type: arrival or departure."
      • changedInput schema / required
        Previous value: -[
        -  "airport_iata_code",
        -  "schedule_type",
        -  "airline_iata",
        -  "date",
        -  "number_of_flights"
        -]New value: +[
        +  "airport_iata_code",
        +  "schedule_type"
        +]
      • changedInput schema / title
        Previous value: -"future_flights_arrival_departure_scheduleArguments"New value: +"future_flights_arrival_departure_schedule_toolArguments"
      • changedOutput schema / title
        Previous value: -"future_flights_arrival_departure_scheduleOutput"New value: +"future_flights_arrival_departure_schedule_toolOutput"
    • Addedhistorical_flights_by_date
    • Addedlist_airlines
    • Addedlist_airports
    • Addedlist_routes
    • Addedlist_taxes
    • Changedrandom_aircraft_type4 fields changed
      • addedInput schema / properties / number_of_aircraft / description
        Added value: +"Number of random aircraft types to return."
      • addedInput schema / properties / number_of_aircraft / exclusiveMinimum
        Added value: +0
      • changedInput schema / title
        Previous value: -"random_aircraft_typeArguments"New value: +"random_aircraft_type_toolArguments"
      • changedOutput schema / title
        Previous value: -"random_aircraft_typeOutput"New value: +"random_aircraft_type_toolOutput"
    • Changedrandom_airplanes_detailed_info4 fields changed
      • addedInput schema / properties / number_of_airplanes / description
        Added value: +"Number of random airplanes to return."
      • addedInput schema / properties / number_of_airplanes / exclusiveMinimum
        Added value: +0
      • changedInput schema / title
        Previous value: -"random_airplanes_detailed_infoArguments"New value: +"random_airplanes_detailed_info_toolArguments"
      • changedOutput schema / title
        Previous value: -"random_airplanes_detailed_infoOutput"New value: +"random_airplanes_detailed_info_toolOutput"
    • Changedrandom_cities_detailed_info4 fields changed
      • addedInput schema / properties / number_of_cities / description
        Added value: +"Number of random cities to return."
      • addedInput schema / properties / number_of_cities / exclusiveMinimum
        Added value: +0
      • changedInput schema / title
        Previous value: -"random_cities_detailed_infoArguments"New value: +"random_cities_detailed_info_toolArguments"
      • changedOutput schema / title
        Previous value: -"random_cities_detailed_infoOutput"New value: +"random_cities_detailed_info_toolOutput"
    • Changedrandom_countries_detailed_info4 fields changed
      • addedInput schema / properties / number_of_countries / description
        Added value: +"Number of random countries to return."
      • addedInput schema / properties / number_of_countries / exclusiveMinimum
        Added value: +0
      • changedInput schema / title
        Previous value: -"random_countries_detailed_infoArguments"New value: +"random_countries_detailed_info_toolArguments"
      • changedOutput schema / title
        Previous value: -"random_countries_detailed_infoOutput"New value: +"random_countries_detailed_info_toolOutput"
  4. 7 tool updates
    • First observedflight_arrival_departure_schedule
    • First observedflights_with_airline
    • First observedfuture_flights_arrival_departure_schedule
    • First observedrandom_aircraft_type
    • First observedrandom_airplanes_detailed_info
    • First observedrandom_cities_detailed_info
    • First observedrandom_countries_detailed_info

TDQS

A4.3/5.0

Scored across 13 tools

Disambiguation4/5

Most tools have clearly distinct purposes, especially the time-scoped flight tools (today, future, past) and the reference list tools. The two random aircraft tools could be confused at a glance, but their descriptions clearly separate aircraft types from individual airplanes.

Naming Consistency4/5

The tool names mostly follow consistent snake_case patterns: get_ for single lookups, list_ for catalog pages, and random_ for sampling tools. A few names like flights_with_airline and flight_arrival_departure_schedule deviate from the verb_noun pattern, but the overall convention remains readable and predictable.

Tool Count5/5

Thirteen tools is a well-scoped size for a flight data API covering flight status, schedules, and reference data. Each tool has a defined role, and the count is neither bloated nor too thin.

Completeness4/5

The server covers the core flight workflows well: specific flight status, airline flight lists, today's/future/historical schedules, and route/reference lookups. Minor gaps exist, such as no specific lookup for random catalog entities beyond sampling, but agents can complete most flight-status tasks without dead ends.

Maintenance

ActivityMaintained
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers