Aviationstack MCP Server
This MCP server provides access to aviation data through the AviationStack API, enabling retrieval of flight information, schedules, aircraft details, and reference data.
Flights for a specific airline – Retrieve a sample of flights operating under a given airline name
Historical flights – Get flights for a specific historical date
Arrival/departure schedules – Fetch arrival or departure schedules for a specific airport and airline using IATA codes
Future flight schedules – Retrieve upcoming scheduled arrivals or departures for a given airport, airline, and date
Aircraft types – Fetch information on random aircraft type classifications
Detailed airplane info – Retrieve detailed information on individual airplanes
Country & city info – Fetch detailed information on countries and cities
Reference data – List available airports, airlines, flight routes, and aviation taxes with search and pagination support
Most tools support filtering by airline, airport IATA codes, dates, and other parameters, and all endpoints are implemented as MCP tools ready for integration into MCP-compatible environments.
Enables querying flight information for Delta Air Lines, including retrieving flight schedules, arrival and departure information
Allows retrieving flight data using IATA airport and airline codes, supporting operations like checking arrivals/departures for specific airports and scheduling future flights
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Aviationstack MCP Servershow me 5 upcoming arrivals at JFK for Delta"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Get flights for a specific airline
Fetch historical flights by date
Retrieve arrival and departure schedules for airports
Fetch future flight schedules
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.
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 a random sample of flights for a specific airline. | - |
| Get historical flights for a date (Basic plan+). | - |
| Get arrival or departure schedules for a given airport and airline. | - |
| Get future scheduled flights for a given airport, airline, and date. | - |
| Get random aircraft types. | - |
| Get detailed info on random airplanes. | - |
| Get detailed info on random countries. | - |
| Get detailed info on random cities. | - |
| List airports. | - |
| List airlines. | - |
| List routes. | - |
| List aviation taxes. | - |
Development
The main server logic is in
server.py.All MCP tools are defined as Python functions decorated with
@mcp.tool().The server uses the
FastMCPclass frommcp.server.fastmcp.
MCP Server configuration
To add this server to your favorite MCP client, you can add the following to your MCP client configuration file.
Using
uvxwithout cloning the repository (recommended)
{
"mcpServers": {
"Aviationstack MCP": {
"command": "uvx",
"args": [
"aviationstack-mcp"
],
"env": {
"AVIATION_STACK_API_KEY": "<your-api-key>"
}
}
}
}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
12 toolsflight_arrival_departure_scheduleA
Return current-day arrival or departure schedule samples for an airport, optionally filtered by airline name.
| Name | Required | Description | Default |
|---|---|---|---|
| airport_iata_code | Yes | Airport IATA code (for example: SFO). | |
| schedule_type | Yes | Schedule type: arrival or departure. | |
| airline_name | No | Optional airline name filter. | |
| number_of_flights | No | Number of random flights to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It states 'current-day' and implies sampling, but does not explicitly mention that results are random (only clarified in the parameter description). It also does not disclose any limitations, permissions, or rate limits. Partial disclosure, but gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no wasted words. It conveys the core purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters and an output schema, the description is minimal. It does not mention the random sampling nature (though schema does) or provide any context about the output. Adequate but not enriched.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter descriptions are clear. The description adds 'current-day' and 'schedule samples' context, but does not significantly enhance meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies 'Return current-day arrival or departure schedule samples for an airport, optionally filtered by airline name.' It clearly identifies the verb (Return), resource (schedule samples), and scope (current-day, airport). This distinguishes it from sibling tools like 'future_flights_arrival_departure_schedule' and 'historical_flights_by_date'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or compare it to sibling tools. The context signals show sibling names, but the description itself lacks usage direction.
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 a random sample of live flights filtered by airline name.
| Name | Required | Description | Default |
|---|---|---|---|
| airline_name | Yes | Airline name to filter flights (for example: Delta Air Lines). | |
| number_of_flights | Yes | Number of random flights to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions the random and live nature of the results, which is helpful. However, with no annotations, it does not disclose other behavioral aspects such as response limits, determinism, or caching. The output schema may cover return format, but behavior beyond randomness is not addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-front-loaded sentence that efficiently communicates the tool's purpose without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and an output schema, the description covers the core functionality: random sample, live flights, and filtering by airline. It does not elaborate on sampling method or rate limits, but given the low complexity, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds no additional meaning beyond what the schema already provides for 'airline_name' and 'number_of_flights'. No extra context on formatting, defaults, or allowed values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a random sample of live flights filtered by airline name. The verb 'return' and resource 'live flights' are specific, and the sibling tools (e.g., flight_arrival_departure_schedule, historical_flights_by_date) have distinct purposes, making this tool's function unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like flight_arrival_departure_schedule or historical_flights_by_date. The description does not mention exclusions or prerequisites, leaving the agent to infer context.
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_scheduleB
Return future arrival or departure schedule samples for an airport and date.
| Name | Required | Description | Default |
|---|---|---|---|
| airport_iata_code | Yes | Airport IATA code (for example: SFO). | |
| schedule_type | Yes | Schedule type: arrival or departure. | |
| airline_iata | No | Optional airline IATA code filter (for example: UA). | |
| date | No | Future date in YYYY-MM-DD format. | |
| number_of_flights | No | Number of random flights to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not disclose that the tool returns random samples (though the schema does). No mention of API behavior, rate limits, or side effects. The word 'samples' hints at randomness but is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 12-word sentence, concise but too terse. It lacks important context like date format or the random nature of results. Could be expanded slightly without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and an output schema, the description is insufficient. It does not mention that it returns random samples, the date format, or how to use the airline filter. The output schema might clarify return values, but the description itself is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The tool description adds no new information beyond the schema, such as how parameters interact or formatting details. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns future arrival or departure schedule samples for an airport and date. 'Future' distinguishes it from the sibling 'flight_arrival_departure_schedule' which likely covers current/historical data. The verb 'Return' and resource 'schedule samples' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings like 'flight_arrival_departure_schedule' or 'historical_flights_by_date'. The description implies future use but does not explain when not to use it, nor does it mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
historical_flights_by_dateB
Return a random sample of historical flights for a date with optional airline and route filters.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_date | Yes | Date in YYYY-MM-DD format. | |
| number_of_flights | Yes | Number of random flights to return. | |
| airline_iata | No | Optional airline IATA code filter (for example: DL). | |
| dep_iata | No | Optional departure airport IATA code filter (for example: JFK). | |
| arr_iata | No | Optional arrival airport IATA code filter (for example: LAX). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It adds 'random sample' and 'optional filters' beyond the schema, but does not mention side effects, mutability, or that it's a read-only operation. The random sampling is a key disclosure, but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the core action ('Return a random sample') and includes key constraints. No unnecessary words, but could be slightly more structured with additional context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values need not be explained. However, with 5 parameters and random sampling, the description lacks details on sampling methodology or edge cases. It is adequate but not complete given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 ('with optional airline and route filters') adds minimal new meaning beyond what the schema already provides for parameters like airline_iata and dep_iata.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a random sample of historical flights for a date with optional filters, using a specific verb ('Return') and resource ('historical flights'). It distinguishes from sibling tools like flight_arrival_departure_schedule (scheduled flights) by specifying 'historical' and 'random sample'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description only states the basic functionality, leaving the agent to infer context from the tool name and sibling list.
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 with pagination and optional search.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of airlines to return. | |
| offset | No | Offset for pagination. | |
| search | No | Optional airline search text for autocomplete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. The word 'list' implies read-only, but it does not explicitly state that the operation is safe or mention any behavioral traits like rate limits or authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys purpose and key constraints with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the availability of an output schema and the low complexity of the tool, the description is adequate. However, it could hint at the structure of returned data (e.g., 'returns a list of airline objects').
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for all three parameters. The description adds no extra meaning beyond summarizing pagination and search, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List airlines') and key features (pagination and optional search). It distinguishes from sibling tools like list_airports and flights_with_airline by targeting a specific resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use (listing airlines with pagination/search) but does not explicitly mention when not to use or suggest alternatives like flights_with_airline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_airportsB
List airports with pagination and optional search.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of airports to return. | |
| offset | No | Offset for pagination. | |
| search | No | Optional airport search text for autocomplete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It does not mention ordering, rate limits, or how pagination works, offering minimal insight beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the main action. It is not verbose, but lacks additional structure; however, it earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is simple with 3 optional parameters and an output schema exists, the description is mostly adequate. However, it does not explain default ordering or search behavior (e.g., exact match vs. substring), leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all parameters (limit, offset, search), so the description adds little extra meaning. The baseline is 3 and the description is redundant with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'airports', and mentions pagination and optional search, which differentiates it from sibling tools that focus on flights, airlines, routes, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. While sibling tools are all different, the description does not clarify conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_routesB
List routes with pagination and optional airline/departure/arrival filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of routes to return. | |
| offset | No | Offset for pagination. | |
| airline_iata | No | Optional airline IATA code filter. | |
| dep_iata | No | Optional departure airport IATA code filter. | |
| arr_iata | No | Optional arrival airport IATA code filter. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It mentions pagination and filters but omits details like default sorting, rate limits, or pagination behavior (e.g., how limit/offset interact). This is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence conveys the core purpose, pagination, and optional filters. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description is mostly adequate. It could mention default ordering or the fact that results are paginated, but it covers the essential functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 not add any parameter information beyond what the schema already provides, merely restating the filter options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists routes with pagination and optional filters, making the purpose specific. However, it does not explicitly differentiate from sibling tools like flight_arrival_departure_schedule, missing an opportunity to clarify when to use this tool over others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any conditions or prerequisites. The description only states the action and parameters, leaving the agent without context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_taxesB
List aviation taxes with pagination and optional search.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of tax records to return. | |
| offset | No | Offset for pagination. | |
| search | No | Optional tax search text. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description gives minimal behavioral disclosure. It does not mention read-only nature, error conditions, data freshness, rate limits, or any side effects beyond listing. Agents lack context on expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It is concise and directly conveys the tool's core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema reduces the need to explain return values. However, the description could mention sorting, default behavior, or data scope. Given the output schema, it is mostly complete but lacks minor context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for limit, offset, and search. The description adds little beyond summarizing pagination and optional search, which is already inferable from the schema. No additional semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List aviation taxes', specifying the verb and resource, and adds context about pagination and optional search, which distinguishes it from sibling list tools like 'list_airlines' and 'list_airports'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any mention of prerequisites, conditions for pagination, or when search is appropriate. The description is purely functional without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_aircraft_typeC
Return random aircraft type records.
| Name | Required | Description | Default |
|---|---|---|---|
| number_of_aircraft | Yes | Number of random aircraft types to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states 'Return random aircraft type records' without detailing any behavioral traits like source of randomness, sampling method, or potential side effects. This is severely lacking for a random data tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is appropriately sized for a simple tool, though it could benefit from minor expansions on usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity and presence of an output schema, the description should at least hint at randomness behavior or expected output format. It lacks completeness for a random generator tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the tool description adds no additional meaning beyond what the schema already provides ('Number of random aircraft types to return'). The description merely restates the parameter's purpose without enrichment.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Return random aircraft type records' clearly states the verb (Return) and resource (random aircraft type records). It distinctly differentiates from sibling tools like flight_arrival_departure_schedule or list_airlines, which do not return random aircraft types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no context about when to use this tool versus alternatives. No mention of when not to use it or any prerequisites. It leaves the agent without guidance on appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_airplanes_detailed_infoC
Return detailed metadata for random airplanes.
| Name | Required | Description | Default |
|---|---|---|---|
| number_of_airplanes | Yes | Number of random airplanes to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates a read operation but does not disclose randomness behavior, limits on number_of_airplanes, or determinism. Minimal behavioral context is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (6 words) and front-loaded with the verb. However, it could include a bit more contextual detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one simple parameter and the existence of an output schema, the description is minimally adequate. It lacks differentiation from siblings like random_aircraft_type, which reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the only parameter. The tool description adds no additional meaning beyond what the parameter description already states, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Return) and resource (detailed metadata for random airplanes), distinguishing it from siblings like random_aircraft_type which likely returns only type. However, 'detailed metadata' is vague without further specification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives such as random_aircraft_type or random_cities_detailed_info. Context of use is entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_cities_detailed_infoC
Return detailed metadata for random cities.
| Name | Required | Description | Default |
|---|---|---|---|
| number_of_cities | Yes | Number of random cities to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'random' but does not explain the randomness nature (e.g., selection algorithm, independence of calls). No side effects or required permissions are noted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with action and resource, no unnecessary words. Very concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is too minimal. It does not explain what metadata is included, nor how randomness behaves. For a tool with multiple siblings, more context is needed to differentiate use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the parameter has a clear description). The tool description adds no additional meaning beyond that, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns detailed metadata for random cities, distinguishing it from sibling tools like random_countries_detailed_info. However, 'detailed metadata' is vague and could specify what fields are included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like flight-related tools. No conditions or exclusions are provided, leaving the agent without context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_countries_detailed_infoC
Return detailed metadata for random countries.
| Name | Required | Description | Default |
|---|---|---|---|
| number_of_countries | Yes | Number of random countries to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description only says 'Return', implying a read operation but does not explicitly state read-only nature or any other behavioral traits like side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise single sentence, but under-specified for completeness. Front-loaded with purpose, but lacks necessary details about behavior and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite simple input schema and existing output schema, description fails to clarify what 'detailed metadata' includes. Incomplete for an agent to fully understand the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter description. Description adds no extra meaning beyond the schema, but parameter is self-explanatory, meeting baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns detailed metadata for random countries, which is specific. However, it does not differentiate from sibling tools like random_cities_detailed_info, though the resource type is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as for specific country lookups or other random data tools. Lacks context for selection.
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. Dates show when Glama detected each change.
12 tool updates
v1.6.0- Changed
flight_arrival_departure_schedule11 fields changed- added
Input schema / properties / airline_name / defaultAdded value: +"" - added
Input schema / properties / airline_name / descriptionAdded value: +"Optional airline name filter." - added
Input schema / properties / airport_iata_code / descriptionAdded value: +"Airport IATA code (for example: SFO)." - added
Input schema / properties / airport_iata_code / minLengthAdded value: +1 - added
Input schema / properties / number_of_flights / defaultAdded value: +5 - added
Input schema / properties / number_of_flights / descriptionAdded value: +"Number of random flights to return." - added
Input schema / properties / number_of_flights / exclusiveMinimumAdded value: +0 - added
Input schema / properties / schedule_type / descriptionAdded value: +"Schedule type: arrival or departure." - changed
Input schema / requiredPrevious value: -[ - "airport_iata_code", - "schedule_type", - "airline_name", - "number_of_flights" -]New value: +[ + "airport_iata_code", + "schedule_type" +] - changed
Input schema / titlePrevious value: -"flight_arrival_departure_scheduleArguments"New value: +"flight_arrival_departure_schedule_toolArguments" - changed
Output schema / titlePrevious value: -"flight_arrival_departure_scheduleOutput"New value: +"flight_arrival_departure_schedule_toolOutput"
- Changed
flights_with_airline5 fields changed- added
Input schema / properties / airline_name / descriptionAdded value: +"Airline name to filter flights (for example: Delta Air Lines)." - added
Input schema / properties / number_of_flights / descriptionAdded value: +"Number of random flights to return." - added
Input schema / properties / number_of_flights / exclusiveMinimumAdded value: +0 - changed
Input schema / titlePrevious value: -"flights_with_airlineArguments"New value: +"flights_with_airline_toolArguments" - changed
Output schema / titlePrevious value: -"flights_with_airlineOutput"New value: +"flights_with_airline_toolOutput"
- Changed
future_flights_arrival_departure_schedule14 fields changed- added
Input schema / properties / airline_iata / defaultAdded value: +"" - added
Input schema / properties / airline_iata / descriptionAdded value: +"Optional airline IATA code filter (for example: UA)." - added
Input schema / properties / airport_iata_code / descriptionAdded value: +"Airport IATA code (for example: SFO)." - added
Input schema / properties / airport_iata_code / minLengthAdded value: +1 - added
Input schema / properties / date / defaultAdded value: +"" - added
Input schema / properties / date / descriptionAdded value: +"Future date in YYYY-MM-DD format." - added
Input schema / properties / date / examplesAdded value: +[ + "2026-03-01" +] - added
Input schema / properties / number_of_flights / defaultAdded value: +5 - added
Input schema / properties / number_of_flights / descriptionAdded value: +"Number of random flights to return." - added
Input schema / properties / number_of_flights / exclusiveMinimumAdded value: +0 - added
Input schema / properties / schedule_type / descriptionAdded value: +"Schedule type: arrival or departure." - changed
Input schema / requiredPrevious value: -[ - "airport_iata_code", - "schedule_type", - "airline_iata", - "date", - "number_of_flights" -]New value: +[ + "airport_iata_code", + "schedule_type" +] - changed
Input schema / titlePrevious value: -"future_flights_arrival_departure_scheduleArguments"New value: +"future_flights_arrival_departure_schedule_toolArguments" - changed
Output schema / titlePrevious value: -"future_flights_arrival_departure_scheduleOutput"New value: +"future_flights_arrival_departure_schedule_toolOutput"
- Added
historical_flights_by_date - Added
list_airlines - Added
list_airports - Added
list_routes - Added
list_taxes - Changed
random_aircraft_type4 fields changed- added
Input schema / properties / number_of_aircraft / descriptionAdded value: +"Number of random aircraft types to return." - added
Input schema / properties / number_of_aircraft / exclusiveMinimumAdded value: +0 - changed
Input schema / titlePrevious value: -"random_aircraft_typeArguments"New value: +"random_aircraft_type_toolArguments" - changed
Output schema / titlePrevious value: -"random_aircraft_typeOutput"New value: +"random_aircraft_type_toolOutput"
- Changed
random_airplanes_detailed_info4 fields changed- added
Input schema / properties / number_of_airplanes / descriptionAdded value: +"Number of random airplanes to return." - added
Input schema / properties / number_of_airplanes / exclusiveMinimumAdded value: +0 - changed
Input schema / titlePrevious value: -"random_airplanes_detailed_infoArguments"New value: +"random_airplanes_detailed_info_toolArguments" - changed
Output schema / titlePrevious value: -"random_airplanes_detailed_infoOutput"New value: +"random_airplanes_detailed_info_toolOutput"
- Changed
random_cities_detailed_info4 fields changed- added
Input schema / properties / number_of_cities / descriptionAdded value: +"Number of random cities to return." - added
Input schema / properties / number_of_cities / exclusiveMinimumAdded value: +0 - changed
Input schema / titlePrevious value: -"random_cities_detailed_infoArguments"New value: +"random_cities_detailed_info_toolArguments" - changed
Output schema / titlePrevious value: -"random_cities_detailed_infoOutput"New value: +"random_cities_detailed_info_toolOutput"
- Changed
random_countries_detailed_info4 fields changed- added
Input schema / properties / number_of_countries / descriptionAdded value: +"Number of random countries to return." - added
Input schema / properties / number_of_countries / exclusiveMinimumAdded value: +0 - changed
Input schema / titlePrevious value: -"random_countries_detailed_infoArguments"New value: +"random_countries_detailed_info_toolArguments" - changed
Output schema / titlePrevious value: -"random_countries_detailed_infoOutput"New value: +"random_countries_detailed_info_toolOutput"
7 tool updates
- First observed
flight_arrival_departure_schedule - First observed
flights_with_airline - First observed
future_flights_arrival_departure_schedule - First observed
random_aircraft_type - First observed
random_airplanes_detailed_info - First observed
random_cities_detailed_info - First observed
random_countries_detailed_info
TDQS
Tools are mostly distinct, covering different aspects like flights, airlines, airports, routes, and random metadata. However, 'random_aircraft_type' and 'random_airplanes_detailed_info' could be confused, as both involve aircraft metadata.
Naming is inconsistent: some tools use 'list_' prefix, others 'random_', 'flight_' or 'flights_'. There is no uniform verb_noun pattern, mixing terms like 'flight_arrival_departure_schedule' and 'future_flights_arrival_departure_schedule'.
With 12 tools, the count is well-scoped for an aviation data server, covering flights, airports, airlines, routes, taxes, and random metadata without being overwhelming.
The tool set covers many aspects of aviation data, but lacks specific lookup tools (e.g., get flight by ID) and focuses on random samples. This leaves notable gaps for precise queries, though the domain is informational and read-only.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Aviationstack MCP — global flight + airport + airline data
Geo-based flight search MCP server. Find more flights between any two places on earth
Flights MCP — wraps OpenSky Network API (free, no auth required)
Flight search MCP server providing search, pagination, and itinerary details for AI assistants.
Related MCP Servers
- AlicenseCqualityDmaintenanceA Model Context Protocol (MCP) server that provides real-time flight tracking and status information using the AviationStack API.34,8607MIT
- AlicenseAqualityDmaintenanceAn MCP server that provides flight search capabilities using the Aviasales API, allowing users to search, filter, and get details on flights and generate booking links.4GPL 3.0
- AlicenseAqualityCmaintenanceMCP server giving AI agents access to real-time aviation data — live flight tracking, airport weather, airline and airport information.103MIT
- AlicenseAqualityAmaintenanceMCP server for FlightAware AeroAPI that enables live flight tracking, airport boards, operator and aircraft lookup, schedule retrieval, and flight alert management via natural language.342531MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pradumnasaraf/aviationstack-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server