Flightradar24 MCP Server
Click on "Deploy 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., "@Flightradar24 MCP Servershow me live flights near San Francisco"
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.
Flightradar24 MCP Server
This Model Context Protocol (MCP) server provides access to the Flightradar24 API for real-time and historical flight data. This server enables AI assistants like Claude to access comprehensive aviation data including live flight positions, aircraft information, airport details, and flight histories.
Original Project: This project is based on the official Flightradar24 MCP server.
Original repository: https://github.com/Flightradar24/fr24api-mcp
Features
Real-time Flight Tracking: Get live positions of aircraft worldwide
Historical Flight Data: Access flight data dating back to May 11, 2016
Comprehensive Flight Information: Detailed aircraft, airline, and airport data
Flexible Filtering: Search by callsigns, registrations, routes, aircraft types, and more
Flight Summaries: Complete takeoff and landing information
Aircraft Tracks: Detailed positional tracking for specific flights
Related MCP server: airplanes-live-mcp
Installation
Via npm
npm install -g @bachstudio/fr24api-mcpPrerequisites
Node.js: Version 18.0.0 or higher
Flightradar24 API Key: Get your API key from https://fr24api.flightradar24.com
Configuration
Claude Desktop Integration
Add this configuration to your claude_desktop_config.json file:
{
"mcpServers": {
"fr24api": {
"command": "npx",
"args": ["@bachstudio/fr24api-mcp@latest"],
"env": {
"FR24_API_KEY": "your_api_key_here"
}
}
}
}
Important Notes:
Replace
your_api_key_herewith your actual Flightradar24 API keyRestart Claude Desktop after adding the configuration
If installed locally, use the full path:
"command": "node", "args": ["/path/to/build/index.js"]
Other MCP Clients
For other MCP clients, run the server directly:
FR24_API_KEY=your_api_key_here npx @bachstudio/fr24api-mcpAvailable Tools
Live Flight Data
get_live_flights_positions_light
Get real-time aircraft positions with basic information.
Parameters (at least one required):
bounds: Geographic area (north,south,west,east coordinates)flights: Flight numbers (comma-separated, max 15)callsigns: Flight callsigns (comma-separated, max 15)registrations: Aircraft registrations (comma-separated, max 15)airports: Airport codes with optional direction (e.g., "inbound:JFK,outbound:LAX")routes: Flight routes (e.g., "JFK-LAX,LHR-CDG")aircraft: Aircraft ICAO types (comma-separated, max 15)altitude_ranges: Altitude ranges in feet (e.g., "0-3000,30000-40000")categories: Flight categories (P,C,M,J,T,H,B,G,D,V,O,N)limit: Maximum results (default: no limit, max: 30000)
get_live_flights_positions_full
Get real-time aircraft positions with comprehensive flight details. Same parameters as above
get_live_flights_count
Get count of live flights matching criteria. Same parameters as above
Historical Flight Data
get_historic_flights_positions_full
Get historical flight positions with full details.
Required Parameters:
timestamp: Unix timestamp for historical snapshot
Optional Parameters: Same as live flight parameters
get_historic_flights_positions_light
Get historical flight positions with basic information. Same parameters as above
get_historic_flights_count
Get count of historical flights. Same parameters as above
Flight Summaries
get_flight_summary_full
Get comprehensive flight takeoff/landing information.
Required Parameters:
flight_datetime_from: Start datetime (YYYY-MM-DDTHH:MM:SSZ)flight_datetime_to: End datetime (YYYY-MM-DDTHH:MM:SSZ)
Optional Parameters:
flights,callsigns,registrations,airports,routes,aircraftsort: Sort order ("asc" or "desc")limit: Maximum results (max: 20000)
get_flight_summary_light
Get essential flight takeoff/landing information. Same parameters as above
get_flight_summary_count
Get count of flights in summary query. Same parameters as above (without sort/limit)
Specific Flight Data
get_flight_tracks
Get detailed positional tracks for a specific flight.
Required Parameters:
flight_id: Flightradar24 flight ID (hexadecimal)
Reference Data
get_airline_info
Get airline information by ICAO code.
Required Parameters:
icao: Airline ICAO code
get_airport_info_light
Get basic airport information.
Required Parameters:
code: Airport IATA or ICAO code
get_airport_info_full
Get comprehensive airport information including location, elevation, timezone.
Required Parameters:
code: Airport IATA or ICAO code
Usage Examples
Find flights around New York
Get live flights in the New York area with bounds: 41.0,-74.5,40.5,-73.5Track specific flight
Get flight tracks for flight ID: 2f4a8b3cHistorical data
Get historical flights at JFK airport on timestamp 1640995200 with airports: inbound:JFKFlight summary
Get flight summary from 2024-01-01T00:00:00Z to 2024-01-02T00:00:00Z for route JFK-LAXDevelopment
Building from Source
git clone https://github.com/BACH-AI-Tools/fr24api-mcp.git
cd fr24api-mcp
npm install
npm run buildContributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
Support
Documentation: https://fr24api.flightradar24.com
Issues: GitHub Issues
API Support: Contact Flightradar24 API support
License
MIT License - see LICENSE file for details.
Changelog
1.0.1
Release to MCP Registry
1.0.0
Initial public release
Comprehensive flight data access
Real-time and historical data support
Enhanced parameter validation
Improved error handling
Available Tools
15 toolsget_airline_infoA
Returns airline name, ICAO and IATA codes. REQUIRED: icao code must be provided and non-empty.
| Name | Required | Description | Default |
|---|---|---|---|
| icao | Yes | Airline ICAO code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says 'Returns' which implies a read operation, but doesn't disclose behavior like error handling, output format, or whether any dependencies exist. For a simple lookup tool this is adequate but not rich.
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 two short sentences, front-loaded with the primary purpose and then the key constraint. Every word earns its place with no redundancy or filler.
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 single-parameter lookup tool, the description adequately states the return fields and the required input. It lacks details about error responses or edge cases, but the tool's simplicity does not demand much more. The absence of an output schema means the description usefully lists the returned fields.
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 already covers the single parameter 'icao' with 100% coverage, including minLength and required. The description's emphasis on 'must be provided and non-empty' adds no new semantic information beyond what the schema declares, so the 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 what the tool does: 'Returns airline name, ICAO and IATA codes.' It uses a specific verb ('Returns') and names the exact resource and output fields. The sibling tools are all flight- or airport-focused, so this airline-specific tool is clearly differentiated.
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 does not explicitly state when to use this tool over alternatives or mention any exclusions. It provides the hard requirement that ICAO code must be non-empty, which guides usage, but there is no comparison to sibling tools or guidance on when choosing airline info is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_airport_info_fullA
Returns detailed airport information: full name, ICAO and IATA codes, localization, elevation, country, city, state, timezone details. REQUIRED: code must be provided and non-empty.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Airport IATA or ICAO code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the requirement for a non-empty code and lists the returned fields, implying a read-only operation. However, it does not explicitly state that no data is modified, nor does it describe error handling or response format. For a simple getter, this is adequate but not rich.
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, information-dense sentence followed by a clear requirement. It is front-loaded with the key purpose and avoids any unnecessary filler.
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 one parameter and no output schema, the description sufficiently covers the purpose, input requirement, and output fields. It does not explicitly contrast with 'get_airport_info_light' but is otherwise complete for invocation.
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 parameter 'code' is already described as 'Airport IATA or ICAO code.' The description repeats the requirement but adds no extra 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 clearly states the tool returns detailed airport information with specific attributes (full name, ICAO/IATA codes, localization, etc.), using a specific verb and resource. The name 'get_airport_info_full' and the word 'detailed' distinguish it from the sibling 'get_airport_info_light'.
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 a required input condition ('REQUIRED: code must be provided and non-empty') but gives no guidance on when to use this tool versus alternatives like 'get_airport_info_light'. It does not mention any exclusions or comparison among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_airport_info_lightB
Returns airport name, ICAO and IATA codes. REQUIRED: code must be provided and non-empty.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Airport IATA or ICAO code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It discloses the output (airport name, ICAO, IATA codes) and the required non-empty code, but mostly repeats schema constraints (required, minLength). It does not mention error behavior for unknown codes, read-only status, or any side effects. For a simple getter, this is adequate but not rich.
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 one concise sentence plus a direct warning, with no filler. It leads with the core output and immediately states the critical requirement. Every word earns its place.
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 one parameter and no output schema, the description covers the essential return fields and the required parameter. However, it lacks guidance on when to prefer this 'light' tool over get_airport_info_full, and does not clarify behavior for invalid or not-found codes. These gaps keep it from being fully 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% (single 'code' parameter clearly described as 'Airport IATA or ICAO code'). The description adds no new meaning beyond the schema; it merely restates that the code must be non-empty, which is already captured by required and minLength. Thus, baseline 3 applies.
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 states the tool returns airport name, ICAO, and IATA codes, using the verb 'returns' with a specific resource and output items, making the purpose clear. However, it does not explicitly differentiate from the sibling get_airport_info_full, so it stops short of full sibling distinction.
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 only usage guidance is 'REQUIRED: code must be provided and non-empty,' which is a precondition for invoking the tool rather than guidance on when to select it over alternatives. No mention of when to use the 'light' version vs get_airport_info_full, and no exclusions or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_flight_summary_countB
Returns the number of flights for a given flight summary query. IMPORTANT: flight_datetime_from and flight_datetime_to are required, and at least one additional search parameter should be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_datetime_from | Yes | Start datetime (YYYY-MM-DDTHH:MM:SSZ). Requires flight_datetime_to. Cannot be used with flight_ids. | |
| flight_datetime_to | Yes | End datetime (YYYY-MM-DDTHH:MM:SSZ). Requires flight_datetime_from. Cannot be used with flight_ids. | |
| flights | No | Flight numbers (comma-separated values, max 15). | |
| callsigns | No | Flight callsigns (comma-separated values, max 15). | |
| registrations | No | Aircraft registration numbers (comma-separated values, max 15). | |
| painted_as | No | Aircraft painted in an airline's livery (ICAO code, comma-separated, max 15). | |
| operating_as | No | Aircraft operating under an airline's call sign (ICAO code, comma-separated, max 15). | |
| airports | No | Airports (IATA/ICAO/ISO 3166-1 alpha-2) or countries. Use format: [direction:]<code>. | |
| routes | No | Flights between airports/countries (e.g., SE-US, ESSA-JFK). Max 15. | |
| aircraft | No | Aircraft ICAO type codes (comma-separated, max 15). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that certain parameters are 'required' and provides a constraint ('at least one additional search parameter'), which adds some behavioral context. However, it doesn't describe other important traits like whether this is a read-only operation (implied by 'returns'), potential rate limits, authentication needs, error handling, or the format of the returned count (e.g., integer, JSON structure). For a tool with no annotations, this is a significant gap in transparency.
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 concise and front-loaded, with the core purpose stated first ('Returns the number of flights for a given flight summary query.') followed by an important usage note. It consists of two sentences that earn their place by clarifying requirements, with no redundant or vague language. However, it could be slightly improved by integrating the purpose and constraints more seamlessly.
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 complexity (10 parameters, no output schema, no annotations), the description is moderately complete. It covers the purpose and basic usage constraints, but lacks details on behavioral aspects (e.g., safety, performance) and output format. Since there's no output schema, the description should ideally hint at what 'number of flights' means (e.g., a simple integer count or structured response), but it doesn't, leaving gaps for an agent to infer.
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 schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself (e.g., formats like 'YYYY-MM-DDTHH:MM:SSZ', constraints like 'max 15'). The description adds minimal value beyond the schema by emphasizing that the datetime parameters are required and that at least one additional parameter is needed, but it doesn't provide new semantic details about the parameters. Given the high schema coverage, the 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's purpose: 'Returns the number of flights for a given flight summary query.' It specifies the verb ('returns'), resource ('number of flights'), and scope ('flight summary query'). However, it doesn't explicitly differentiate from sibling tools like 'get_historic_flights_count' or 'get_live_flights_count', which also return flight counts but for different contexts.
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 some usage guidance by stating that 'flight_datetime_from and flight_datetime_to are required, and at least one additional search parameter should be provided.' This implies when to use it (for flight summary queries with datetime constraints). However, it doesn't explicitly mention when to use this tool versus alternatives like 'get_flight_summary_full' (which likely returns detailed data) or other count tools for historic/live flights, leaving the context somewhat implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_flight_summary_fullA
Returns comprehensive timings and locations of aircraft takeoffs and landings, including detailed flight, aircraft, and operator information. Both real-time and extensive historical data are available. Data is available starting from 2024-04-07 and will be extended further in the near future. IMPORTANT: flight_datetime_from and flight_datetime_to are required, and at least one additional search parameter (other than sort and limit) should be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_datetime_from | Yes | Start datetime (YYYY-MM-DDTHH:MM:SSZ). Requires flight_datetime_to. Cannot be used with flight_ids. | |
| flight_datetime_to | Yes | End datetime (YYYY-MM-DDTHH:MM:SSZ). Requires flight_datetime_from. Cannot be used with flight_ids. | |
| flights | No | Flight numbers (comma-separated values, max 15). | |
| callsigns | No | Flight callsigns (comma-separated values, max 15). | |
| registrations | No | Aircraft registration numbers (comma-separated values, max 15). | |
| painted_as | No | Aircraft painted in an airline's livery (ICAO code, comma-separated, max 15). | |
| operating_as | No | Aircraft operating under an airline's call sign (ICAO code, comma-separated, max 15). | |
| airports | No | Airports (IATA/ICAO/ISO 3166-1 alpha-2) or countries. Use format: [direction:]<code>. | |
| routes | No | Flights between airports/countries (e.g., SE-US, ESSA-JFK). Max 15. | |
| aircraft | No | Aircraft ICAO type codes (comma-separated, max 15). | |
| sort | No | Sorting order by first_seen (default: asc). | |
| limit | No | Limit of results. Recommended, unless needed. Max 20000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It does well by specifying data availability timeframe (starting 2024-04-07), indicating future extensions, and stating important parameter constraints. However, it doesn't mention rate limits, authentication requirements, pagination behavior, or response format details that would be helpful for a complex 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with three sentences that each earn their place: first states core functionality, second adds data availability context, third provides critical parameter guidance. It's front-loaded with the main purpose and avoids unnecessary elaboration. Could be slightly more concise by combining some 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 complex 12-parameter query tool with no annotations and no output schema, the description provides adequate but incomplete context. It covers the core purpose, data availability, and parameter requirements, but lacks information about response format, pagination, rate limits, error conditions, or how results differ from sibling tools. The absence of output schema increases the need for more behavioral detail.
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 schema already documents all 12 parameters thoroughly. The description adds minimal parameter-specific information beyond what's in the schema - it only emphasizes that flight_datetime_from/to are required and at least one additional search parameter should be provided. This meets the baseline 3 when schema does heavy lifting.
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 comprehensive timings and locations of aircraft takeoffs/landings with detailed flight, aircraft, and operator information. It specifies both real-time and historical data availability. However, it doesn't explicitly differentiate from siblings like get_flight_summary_light or get_flight_summary_count, which likely provide less comprehensive data.
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 usage context: it states both real-time and historical data are available, specifies data availability starting from 2024-04-07, and gives important parameter requirements (flight_datetime_from/to required, plus at least one additional search parameter). It doesn't explicitly say when to use this vs. sibling tools like get_flight_summary_light, but the 'comprehensive' vs 'light' naming implies this is the full-featured version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_flight_summary_lightA
Returns key timings and locations of aircraft takeoffs and landings alongside all primary flight, aircraft, and operator information. Both real-time and historical data are available. Data is available starting from 2024-04-07 and will be extended further in the near future. IMPORTANT: flight_datetime_from and flight_datetime_to are required, and at least one additional search parameter (other than sort and limit) should be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_datetime_from | Yes | Start datetime (YYYY-MM-DDTHH:MM:SSZ). Requires flight_datetime_to. Cannot be used with flight_ids. | |
| flight_datetime_to | Yes | End datetime (YYYY-MM-DDTHH:MM:SSZ). Requires flight_datetime_from. Cannot be used with flight_ids. | |
| flights | No | Flight numbers (comma-separated values, max 15). | |
| callsigns | No | Flight callsigns (comma-separated values, max 15). | |
| registrations | No | Aircraft registration numbers (comma-separated values, max 15). | |
| painted_as | No | Aircraft painted in an airline's livery (ICAO code, comma-separated, max 15). | |
| operating_as | No | Aircraft operating under an airline's call sign (ICAO code, comma-separated, max 15). | |
| airports | No | Airports (IATA/ICAO/ISO 3166-1 alpha-2) or countries. Use format: [direction:]<code>. | |
| routes | No | Flights between airports/countries (e.g., SE-US, ESSA-JFK). Max 15. | |
| aircraft | No | Aircraft ICAO type codes (comma-separated, max 15). | |
| sort | No | Sorting order by first_seen (default: asc). | |
| limit | No | Limit of results. Recommended, unless needed. Max 20000. |
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 behavioral disclosure. It mentions data availability starting from 2024-04-07 and future extensions, which adds useful context. However, it lacks details on rate limits, authentication needs, error handling, or pagination behavior, leaving gaps for a tool with 12 parameters.
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 well-structured and front-loaded with the core purpose, followed by data availability details and important usage notes. It's concise with three sentences that each serve a clear purpose, though it could be slightly more streamlined by integrating the date requirement into the initial sentence.
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 complexity (12 parameters, no output schema, no annotations), the description is moderately complete. It covers the purpose, data scope, and key usage rules, but lacks details on output format, error cases, or performance considerations, which would be helpful for a tool with many search options.
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 schema already documents all parameters thoroughly. The description adds value by emphasizing that 'flight_datetime_from and flight_datetime_to are required, and at least one additional search parameter (other than sort and limit) should be provided,' which clarifies usage constraints beyond the schema's required fields.
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 'key timings and locations of aircraft takeoffs and landings alongside all primary flight, aircraft, and operator information,' which is specific about the data returned. However, it doesn't explicitly differentiate this 'light' version from sibling tools like 'get_flight_summary_full' or 'get_flight_summary_count,' leaving some ambiguity about scope differences.
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 usage by stating 'Both real-time and historical data are available' and specifying date range requirements and additional parameter needs. It doesn't explicitly mention when to use this tool versus alternatives like 'get_flight_summary_full' or 'get_flight_summary_count,' but the naming and data scope imply it's a summary-focused tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_flight_tracksA
Returns positional tracks of a specific flight. REQUIRED: flight_id must be provided and non-empty.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_id | Yes | Flightradar24 ID of the flight (hexadecimal). |
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 only states the return type and re-emphasizes the required parameter, both already inferable from the name and schema. No info on error handling, rate limits, or output structure.
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?
Two sentences, front-loaded with the core purpose. The second sentence is slightly redundant but concise and does not harm clarity.
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 is simple with one parameter, but without an output schema or annotations, the description should explain what 'tracks' includes (e.g., lat/lon, timestamps). The current description is minimally viable but leaves a gap in expected return content.
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 flight_id described as a hexadecimal Flightradar24 ID. The description adds no new semantic meaning, only the non-empty reminder which duplicates schema's required and minLength constraints.
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 uses specific verb 'Returns' and resource 'positional tracks of a specific flight', clearly distinguishing it from sibling tools like get_flight_summary_* and get_historic_flight_events_*. The REQUIRED note reinforces the specific-flight scope.
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?
Provides context that flight_id is mandatory, but this is a parameter constraint, not guidance on when to choose this tool over alternatives. No exclusions or alternatives are mentioned, so usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historic_flight_events_fullA
Returns selected historical flight events (gate_departure, takeoff, cruising, airspace_transition, resuming_flightplan, descent, landed, gate_arrival), with detailed information, sorted by event_timestamp and grouped by flight_id. REQUIRED: flight_ids and event_types must be provided and non-empty.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_ids | Yes | Comma-separated fr24_ids (maximum 15 IDs). Cannot be combined with event_datetime. | |
| event_types | Yes | Event types to filter by (comma-separated values). Available values: all, gate_departure, takeoff, cruising, airspace_transition, descent, landed, gate_arrival. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses that events are sorted by event_timestamp and grouped by flight_id, and that inputs must be non-empty. However, it omits return format, pagination, permissions, or potential error cases, which are important behavioral details.
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 two concise sentences: the first states the core functionality and output characteristics, the second conveys a key constraint. It is front-loaded, free of fluff, and well-structured.
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 description covers the essential what-it-does and sorting/grouping behavior, but lacks details on return structure, which is notable since no output schema exists. It also does not clarify the difference from the 'light' sibling tool, making the description average in 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?
The input schema already provides 100% coverage with descriptions for both parameters, including the list of event types and the max ID limit. The description additionally emphasizes that both parameters are required and non-empty, but does not add meaningfully beyond 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 tool returns selected historical flight events with specific event types, detailed information, sorted and grouped. This distinguishes it from sibling tools like position checkers and the 'light' version by emphasizing detail and event categories.
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?
There is no explicit guidance on when to use this tool versus alternatives such as get_historic_flight_events_light or position tools. The only guidance is a required-parameter note, which is more of a validation rule than usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historic_flight_events_lightA
Returns selected historical flight events (gate_departure, takeoff, cruising, airspace_transition, resuming_flightplan, descent, landed, gate_arrival), sorted by event_timestamp and grouped by flight_id. REQUIRED: flight_ids and event_types must be provided and non-empty.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_ids | Yes | Comma-separated fr24_ids (maximum 15 IDs). Cannot be combined with event_datetime. | |
| event_types | Yes | Event types to filter by (comma-separated values). Available values: all, gate_departure, takeoff, cruising, airspace_transition, descent, landed, gate_arrival. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds useful info about sorting by event_timestamp and grouping by flight_id, and emphasizes non-empty required fields. However, it omits details such as response structure, pagination, rate limits, or what 'light' means in terms of returned fields.
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 two sentences, both information-dense. The first sentence lists event types and specifies sorting/grouping; the second provides a clear constraint. There is no fluff or repetition, and key details are front-loaded.
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 description is largely sufficient for a simple 2-parameter tool with full schema coverage. It explains the event types, result ordering, and required inputs. However, it lacks a comparison with the 'full' sibling, which would help an agent understand if this lighter variant is appropriate. The absence of an output schema is mitigated by the clear purpose.
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%: both flight_ids and event_types have descriptive text in the schema. The description only repeats the requirement that they must be provided and non-empty, which is already captured by 'required' and 'minLength'. It adds no new semantic meaning beyond 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 action ('Returns') and the resource ('historical flight events'), and specifies the event types and ordering/grouping behavior. However, it does not explicitly distinguish this 'light' version from the sibling 'get_historic_flight_events_full', so sibling differentiation is missing.
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 implies a use case for retrieving historical events, but does not provide guidance on when to choose this tool over alternatives, such as the 'full' variant or flight positions tools. The 'REQUIRED' note relates to parameter constraints, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historic_flights_countA
Returns number of historical aircraft flight positions. IMPORTANT: Timestamp is required, and at least one additional search parameter (other than limit) must be provided and non-empty.
| Name | Required | Description | Default |
|---|---|---|---|
| bounds | No | Coordinates defining an area. Order: north, south, west, east (comma-separated float values). | |
| flights | No | Flight numbers (comma-separated values, max 15). | |
| callsigns | No | Flight callsigns (comma-separated values, max 15). | |
| registrations | No | Aircraft registration numbers (comma-separated values, max 15). | |
| painted_as | No | Aircraft painted in an airline's livery (ICAO code, comma-separated, max 15). | |
| operating_as | No | Aircraft operating under an airline's call sign (ICAO code, comma-separated, max 15). | |
| airports | No | Airports (IATA/ICAO/ISO 3166-1 alpha-2) or countries. Use format: [direction:]<code>. Directions: inbound, outbound, both. | |
| routes | No | Flights between airports/countries (e.g., SE-US, ESSA-JFK). Max 15. | |
| aircraft | No | Aircraft ICAO type codes (comma-separated, max 15). | |
| altitude_ranges | No | Flight altitude ranges in feet (e.g., 0-3000, 5000-7000). | |
| squawks | No | Squawk codes in hex format (comma-separated). | |
| categories | No | Categories of Flights (comma-separated: P, C, M, J, T, H, B, G, D, V, O, N). | |
| data_sources | No | Source of information (comma-separated: ADSB, MLAT, ESTIMATED). | |
| airspaces | No | Flight information region in lower or upper airspace. | |
| gspeed | No | Flight ground speed in knots (single value or range, e.g., 120-140, 80). | |
| limit | No | Limit of results. Recommended, unless needed. Max 30000. | |
| timestamp | Yes | Unix timestamp for the historical snapshot. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden of behavioral disclosure. It discloses the required parameter combination rule, which is not inferable from the schema alone. However, it does not mention output format, error conditions, or rate limits, leaving gaps in transparency.
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 two sentences, front-loaded with the primary purpose and followed by an important warning. Every word earns its place 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?
The tool has 17 parameters and no output schema, yet the description provides only the count purpose and the mandatory-filter constraint. It does not explain the return structure, the meaning of 'flight positions' as opposed to flights, or the optional combination of filters. Given the tool's complexity, the description is incomplete but the schema covers parameter details.
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 schema already describes all 17 parameters with 100% coverage, so the description's contribution is limited. It adds value by clarifying that 'limit' does not count as the required additional search parameter, which is an important interaction rule. This elevates the semantics beyond 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 identifies the tool as returning a count of historical flight positions, using a specific verb and resource. The term 'historical' differentiates it from live count tools, and 'count' vs 'positions' distinguishes it from sibling position tools. Though 'flight positions' might be ambiguous, the core purpose is 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?
The description provides a crucial usage constraint: timestamp is required and at least one additional search parameter must be non-empty. However, it does not explicitly compare this tool to alternatives or state when to prefer it over position-returning siblings. The guidance is operational rather than comparative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historic_flights_positions_fullA
Returns historical aircraft flight movement information including latitude, longitude, speed, and altitude alongside key flight and aircraft information such as origin, destination, callsign, registration and aircraft type. FR24 API provides access to historical flight data, dating back to May 11, 2016, depending on the user's subscription plan. IMPORTANT: Timestamp is required, and at least one additional search parameter (other than limit) must be provided and non-empty.
| Name | Required | Description | Default |
|---|---|---|---|
| bounds | No | Coordinates defining an area. Order: north, south, west, east (comma-separated float values). | |
| flights | No | Flight numbers (comma-separated values, max 15). | |
| callsigns | No | Flight callsigns (comma-separated values, max 15). | |
| registrations | No | Aircraft registration numbers (comma-separated values, max 15). | |
| painted_as | No | Aircraft painted in an airline's livery (ICAO code, comma-separated, max 15). | |
| operating_as | No | Aircraft operating under an airline's call sign (ICAO code, comma-separated, max 15). | |
| airports | No | Airports (IATA/ICAO/ISO 3166-1 alpha-2) or countries. Use format: [direction:]<code>. Directions: inbound, outbound, both. | |
| routes | No | Flights between airports/countries (e.g., SE-US, ESSA-JFK). Max 15. | |
| aircraft | No | Aircraft ICAO type codes (comma-separated, max 15). | |
| altitude_ranges | No | Flight altitude ranges in feet (e.g., 0-3000, 5000-7000). | |
| squawks | No | Squawk codes in hex format (comma-separated). | |
| categories | No | Categories of Flights (comma-separated: P, C, M, J, T, H, B, G, D, V, O, N). | |
| data_sources | No | Source of information (comma-separated: ADSB, MLAT, ESTIMATED). | |
| airspaces | No | Flight information region in lower or upper airspace. | |
| gspeed | No | Flight ground speed in knots (single value or range, e.g., 120-140, 80). | |
| limit | No | Limit of results. Recommended, unless needed. Max 30000. | |
| timestamp | Yes | Unix timestamp for the historical snapshot. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses important behavioral traits: the mandatory timestamp + additional parameter requirement, and subscription-dependent historical data range. However, it does not explain output structure, pagination, limit behavior, or potential error cases, leaving gaps for a 17-parameter 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 concise: two sentences that front-load the core function, then add historical context and a critical usage constraint. Every sentence delivers useful information without redundancy, making it highly efficient.
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 tool with 17 parameters and no output schema, the description covers key return fields (lat/lon/speed/altitude plus flight details), data availability, and mandatory query constraints. It is reasonably complete for a read-only retrieval tool, though it could better clarify the distinction from the 'light' variant and output formatting.
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%, providing a baseline of 3. The description adds value by explaining that timestamp is required and that at least one additional search parameter must be non-empty, and clarifies that 'limit' alone doesn't count. This goes beyond the schema, which only lists 'timestamp' as required without the extra constraint.
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 historical aircraft flight movement information including latitude, longitude, speed, altitude, and key flight/aircraft details. This specifies the action and resource, but it does not explicitly distinguish from sibling tools like the 'light' version, only implying more detail through the 'full' name and mention of additional fields.
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 explicit usage constraints: timestamp is required and at least one additional search parameter (other than limit) must be provided and non-empty. It also notes data availability from May 11, 2016 depending on subscription. However, it does not guide when to use this tool versus alternatives (e.g., get_historic_flights_positions_light), lacking exclusions or comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historic_flights_positions_lightB
Returns historical aircraft flight movement information including latitude, longitude, speed and altitude. FR24 API provides access to historical flight data, dating back to May 11, 2016, depending on the user's subscription plan. IMPORTANT: Timestamp is required, and at least one additional search parameter (other than limit) must be provided and non-empty.
| Name | Required | Description | Default |
|---|---|---|---|
| bounds | No | Coordinates defining an area. Order: north, south, west, east (comma-separated float values). | |
| flights | No | Flight numbers (comma-separated values, max 15). | |
| callsigns | No | Flight callsigns (comma-separated values, max 15). | |
| registrations | No | Aircraft registration numbers (comma-separated values, max 15). | |
| painted_as | No | Aircraft painted in an airline's livery (ICAO code, comma-separated, max 15). | |
| operating_as | No | Aircraft operating under an airline's call sign (ICAO code, comma-separated, max 15). | |
| airports | No | Airports (IATA/ICAO/ISO 3166-1 alpha-2) or countries. Use format: [direction:]<code>. Directions: inbound, outbound, both. | |
| routes | No | Flights between airports/countries (e.g., SE-US, ESSA-JFK). Max 15. | |
| aircraft | No | Aircraft ICAO type codes (comma-separated, max 15). | |
| altitude_ranges | No | Flight altitude ranges in feet (e.g., 0-3000, 5000-7000). | |
| squawks | No | Squawk codes in hex format (comma-separated). | |
| categories | No | Categories of Flights (comma-separated: P, C, M, J, T, H, B, G, D, V, O, N). | |
| data_sources | No | Source of information (comma-separated: ADSB, MLAT, ESTIMATED). | |
| airspaces | No | Flight information region in lower or upper airspace. | |
| gspeed | No | Flight ground speed in knots (single value or range, e.g., 120-140, 80). | |
| limit | No | Limit of results. Recommended, unless needed. Max 30000. | |
| timestamp | Yes | Unix timestamp for the historical snapshot. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses the historical data availability (since 2016, plan-dependent) and the mandatory parameter requirements, but omits details about output format, pagination, or potential rate limiting. This is partial but useful 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?
The description is three sentences and front-loaded with the primary purpose. The IMPORTANT note is succinct and essential, earning its place. No redundancy or filler, though it could briefly mention what 'light' means relative to the full variant.
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 complex tool with 17 parameters and no output schema or annotations, the description covers the core purpose and critical invocation requirements. Yet it lacks any mention of response shape, error behavior, or how 'light' limits the returned fields. It is adequate but not fully complete for a tool of this 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 schema already documents all 17 parameters. The description adds the important constraint that limit alone is insufficient and at least one other search parameter must be given, which is valuable context beyond the schema. However, it does not explain individual parameter syntax beyond what the schema provides.
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 historical aircraft flight movement data including latitude, longitude, speed, and altitude. It differentiates from live-flight siblings by specifying 'historical' and from 'full' tools by the 'light' suffix, though it doesn't explicitly contrast with the full version.
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?
It provides an explicit usage constraint (timestamp required, plus at least one non-limit parameter) which is useful for correct invocation. However, it does not say when to prefer this tool over alternatives like get_historic_flights_positions_full or get_live_flights_positions_light.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_live_flights_countA
Returns the count of real-time aircraft flights matching the specified criteria. IMPORTANT: At least one search parameter (other than limit) must be provided and non-empty. Choose from: bounds, flights, callsigns, registrations, painted_as, operating_as, airports, routes, aircraft, altitude_ranges, squawks, categories, data_sources, airspaces, gspeed.
| Name | Required | Description | Default |
|---|---|---|---|
| bounds | No | Coordinates defining an area. Order: north, south, west, east (comma-separated float values). | |
| flights | No | Flight numbers (comma-separated values, max 15). | |
| callsigns | No | Flight callsigns (comma-separated values, max 15). | |
| registrations | No | Aircraft registration numbers (comma-separated values, max 15). | |
| painted_as | No | Aircraft painted in an airline's livery (ICAO code, comma-separated, max 15). | |
| operating_as | No | Aircraft operating under an airline's call sign (ICAO code, comma-separated, max 15). | |
| airports | No | Airports (IATA/ICAO/ISO 3166-1 alpha-2) or countries. Use format: [direction:]<code>. Directions: inbound, outbound, both. | |
| routes | No | Flights between airports/countries (e.g., SE-US, ESSA-JFK). Max 15. | |
| aircraft | No | Aircraft ICAO type codes (comma-separated, max 15). | |
| altitude_ranges | No | Flight altitude ranges in feet (e.g., 0-3000, 5000-7000). | |
| squawks | No | Squawk codes in hex format (comma-separated). | |
| categories | No | Categories of Flights (comma-separated: P, C, M, J, T, H, B, G, D, V, O, N). | |
| data_sources | No | Source of information (comma-separated: ADSB, MLAT, ESTIMATED). | |
| airspaces | No | Flight information region in lower or upper airspace. | |
| gspeed | No | Flight ground speed in knots (single value or range, e.g., 120-140, 80). | |
| limit | No | Limit of results. Recommended, unless needed. Max 30000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the mandatory search parameter rule but does not explain how multiple filter parameters combine (AND/OR) or how the limit parameter affects the count. These are important behavioral details for correct usage.
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 two concise sentences, front-loaded with the main purpose and followed by the critical usage constraint. Every word earns its place, with no fluff.
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?
With 16 parameters and no output schema or annotations, the description covers the core purpose and the mandatory filter rule but omits how filters interact and how limit is applied. It is adequate for a simple count tool but leaves meaningful 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?
Schema description coverage is 100%, so the baseline is 3. The tool description adds the note that limit is not a search parameter, which is useful, but it does not provide any additional meaning beyond the schema's property descriptions.
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 count of real-time aircraft flights matching criteria, with a specific verb and resource. It distinguishes from siblings like get_historic_flights_count via 'real-time' and 'count'.
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 gives a clear context for use: when you need a count of live flights, and it provides the important rule that at least one search parameter (other than limit) must be provided. It does not explicitly name alternatives or exclusions, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_live_flights_positions_fullA
Returns real-time aircraft flight movement information including latitude, longitude, speed, and altitude alongside key flight and aircraft information such as origin, destination, callsign, registration and aircraft type. IMPORTANT: At least one search parameter (other than limit) must be provided and non-empty. Choose from: bounds, flights, callsigns, registrations, painted_as, operating_as, airports, routes, aircraft, altitude_ranges, squawks, categories, data_sources, airspaces, gspeed.
| Name | Required | Description | Default |
|---|---|---|---|
| bounds | No | Coordinates defining an area. Order: north, south, west, east (comma-separated float values). | |
| flights | No | Flight numbers (comma-separated values, max 15). | |
| callsigns | No | Flight callsigns (comma-separated values, max 15). | |
| registrations | No | Aircraft registration numbers (comma-separated values, max 15). | |
| painted_as | No | Aircraft painted in an airline's livery (ICAO code, comma-separated, max 15). | |
| operating_as | No | Aircraft operating under an airline's call sign (ICAO code, comma-separated, max 15). | |
| airports | No | Airports (IATA/ICAO/ISO 3166-1 alpha-2) or countries. Use format: [direction:]<code>. Directions: inbound, outbound, both. | |
| routes | No | Flights between airports/countries (e.g., SE-US, ESSA-JFK). Max 15. | |
| aircraft | No | Aircraft ICAO type codes (comma-separated, max 15). | |
| altitude_ranges | No | Flight altitude ranges in feet (e.g., 0-3000, 5000-7000). | |
| squawks | No | Squawk codes in hex format (comma-separated). | |
| categories | No | Categories of Flights (comma-separated: P, C, M, J, T, H, B, G, D, V, O, N). | |
| data_sources | No | Source of information (comma-separated: ADSB, MLAT, ESTIMATED). | |
| airspaces | No | Flight information region in lower or upper airspace. | |
| gspeed | No | Flight ground speed in knots (single value or range, e.g., 120-140, 80). | |
| limit | No | Limit of results. Recommended, unless needed. Max 30000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It clearly states that the tool returns real-time aircraft information and imposes a mandatory filter requirement, which is valuable. However, it does not mention rate limits, response formatting, pagination, error behavior when no filter is given, or authentication requirements. The core behavior is transparent, but significant operational details are absent, leaving it at a 3.
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 two sentences: the first is front-loaded with the tool's primary output and data fields, the second delivers a high-visibility usage requirement. There is no filler, no repetition of schema details, and each sentence earns its place. Excellent conciseness and structure.
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 complexity (16 parameters) and the absence of an output schema and annotations, the description does a solid job: it lists the returned fields (latitude, longitude, speed, altitude, etc.) and the mandatory search-parameter rule. However, it omits any explanation of how this differs from the 'light' variant or what defaults apply when limit is omitted, though those limits are in the schema. Overall, it is sufficiently complete for an experienced agent but not exhaustive.
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?
With 100% schema description coverage, each parameter is already documented individually. The description adds value by categorizing a subset of parameters as 'search parameters' and excluding 'limit' from that group, while also stating the non-empty requirement—a constraint not evident from the schema's optional flags. This goes beyond simply repeating param descriptions, so a 4 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 begins with a specific verb 'Returns' and identifies the resource as 'real-time aircraft flight movement information' with a concrete list of data fields (latitude, longitude, speed, altitude, origin, destination, callsign, registration, aircraft type). This is a clear statement of what the tool does, but it does not explicitly contrast with sibling tools like get_live_flights_positions_light or get_live_flights_count. The 'full' suffix and field enumeration imply a richer variant, but the lack of explicit sibling differentiation keeps it from a 5.
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 a critical usage constraint: 'At least one search parameter (other than limit) must be provided and non-empty,' followed by a list of valid filter parameters. This is explicit guidance on when the tool can be invoked. However, it offers no direction on when to use this tool versus the 'light' or 'count' alternatives, nor does it state exclusions (e.g., for historic data or simple counts).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_live_flights_positions_lightA
Returns real-time aircraft flight movement information including latitude, longitude, speed, and altitude. IMPORTANT: At least one search parameter (other than limit) must be provided and non-empty. Choose from: bounds, flights, callsigns, registrations, painted_as, operating_as, airports, routes, aircraft, altitude_ranges, squawks, categories, data_sources, airspaces, gspeed.
| Name | Required | Description | Default |
|---|---|---|---|
| bounds | No | Coordinates defining an area. Order: north, south, west, east (comma-separated float values). | |
| flights | No | Flight numbers (comma-separated values, max 15). | |
| callsigns | No | Flight callsigns (comma-separated values, max 15). | |
| registrations | No | Aircraft registration numbers (comma-separated values, max 15). | |
| painted_as | No | Aircraft painted in an airline's livery (ICAO code, comma-separated, max 15). | |
| operating_as | No | Aircraft operating under an airline's call sign (ICAO code, comma-separated, max 15). | |
| airports | No | Airports (IATA/ICAO/ISO 3166-1 alpha-2) or countries. Use format: [direction:]<code>. Directions: inbound, outbound, both. | |
| routes | No | Flights between airports/countries (e.g., SE-US, ESSA-JFK). Max 15. | |
| aircraft | No | Aircraft ICAO type codes (comma-separated, max 15). | |
| altitude_ranges | No | Flight altitude ranges in feet (e.g., 0-3000, 5000-7000). | |
| squawks | No | Squawk codes in hex format (comma-separated). | |
| categories | No | Categories of Flights (comma-separated: P, C, M, J, T, H, B, G, D, V, O, N). | |
| data_sources | No | Source of information (comma-separated: ADSB, MLAT, ESTIMATED). | |
| airspaces | No | Flight information region in lower or upper airspace. | |
| gspeed | No | Flight ground speed in knots (single value or range, e.g., 120-140, 80). | |
| limit | No | Limit of results. Recommended, unless needed. Max 30000. |
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 discloses the important constraint that at least one non-limit parameter is required, which is valuable. However, it does not clarify what 'light' means, potential response limitations, or any other behavioral characteristics.
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 compact: one purpose sentence, an important note, and a list of parameter names. The list is long but necessary to convey valid search parameters. It front-loads the main purpose and wastes no 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 16 parameters, no annotations, and no output schema, the description provides the key invocation constraint and hints at return content (latitude, longitude, speed, altitude). However, it does not explain the 'light' vs 'full' distinction or the response structure, leaving some ambiguity.
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 schema description coverage is 100%, so all 16 parameters already have detailed descriptions. The tool description merely lists parameter names and notes 'limit' as an exception, adding no new semantic information beyond what the schema provides. 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 it returns real-time aircraft flight movement data with specific fields (latitude, longitude, speed, altitude), using the specific verb 'Returns'. It identifies the resource precisely, but it does not explicitly distinguish from the sibling 'full' variant beyond the name 'light'.
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 explicit usage guidance: at least one search parameter (other than limit) must be provided and non-empty, and it lists all acceptable filter parameters. It does not mention alternatives or when to prefer the 'full' variant, but the context is clear for correct invocation.
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.
15 tool updates
v1.0.0- First observed
get_airline_info - First observed
get_airport_info_full - First observed
get_airport_info_light - First observed
get_flight_summary_count - First observed
get_flight_summary_full - First observed
get_flight_summary_light - First observed
get_flight_tracks - First observed
get_historic_flight_events_full - First observed
get_historic_flight_events_light - First observed
get_historic_flights_count - First observed
get_historic_flights_positions_full - First observed
get_historic_flights_positions_light - First observed
get_live_flights_count - First observed
get_live_flights_positions_full - First observed
get_live_flights_positions_light
TDQS
Scored across 15 tools
Tools are generally distinct by resource type (airline, airport, flight summaries, tracks, events, positions) and data depth (full/light), but there is significant overlap within categories. For example, get_flight_summary_full and get_flight_summary_light serve similar purposes with varying detail, which could confuse agents about which to select for basic needs. The presence of both full and light versions for multiple endpoints creates redundancy that may lead to misselection.
Tool names follow a consistent verb_noun pattern with get_ prefixes and descriptive suffixes (e.g., _full, _light, _count). However, there are minor deviations: get_airport_info_full and get_airport_info_light use 'info' while others use more specific terms like 'summary' or 'positions', and get_flight_tracks lacks a suffix, breaking the pattern slightly. Overall, the naming is predictable and readable.
With 15 tools, the count is reasonable for a flight data server covering airlines, airports, flights, and historical/live data. It is slightly on the higher side due to duplicate full/light versions, but each tool serves a distinct data depth or resource, making it manageable. The scope justifies the number without feeling overly bloated.
The toolset provides comprehensive coverage for querying flight data, including airlines, airports, flight summaries, tracks, events, and live/historical positions. Minor gaps exist, such as no tools for updating or deleting data (which may be intentional for a read-only API) and no direct tools for flight scheduling or alerts, but core retrieval operations are well-covered for the domain.
Maintenance
Related MCP Connectors
FlightAware MCP — wraps FlightAware AeroAPI v4 (aeroapi.flightaware.com)
Aircraft registry search, flight history, and analytics powered by ADS-B Exchange data.
Read-only airport delay, weather, and 24h forecast tools for AI assistants. Airport-level only.
Live flight radar: real-time position of any aircraft transmitting ADS-B right now. Search by regist
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides comprehensive flight tracking capabilities using the OpenSky Network API, enabling real-time flight data, geographic searches, historical data, and airport operations through MCP tools.MIT
- AlicenseNot gradedqualityDmaintenanceEnables real-time aircraft tracking from Claude Desktop using the airplanes.live API, supporting searches by callsign, registration, hex ID, and position.9MIT
- AlicenseAqualityCmaintenanceProvides real-time and historical flight data via the Flightradar24 API, enabling AI assistants to track aircraft positions, flight summaries, and airport details.15172 npm27MIT

AirLabs MCP Serverofficial
AlicenseAqualityDmaintenanceProvides AI assistants with access to real-time flight data, airport schedules, delays, and aviation reference databases through natural language queries.12131 npmMIT