get_flight_status
Retrieve real-time flight status using flight codes (IATA or ICAO) to track current location, delays, and other essential details via the FlightRadar MCP Server.
Instructions
Get the current status of a flight by flight number
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| flight_iata | No | IATA flight code (e.g., 'BA123') | |
| flight_icao | No | ICAO flight code (e.g., 'BAW123') |
Implementation Reference
- src/index.ts:344-455 (handler)The handler function for the get_flight_status tool. It validates input (flight_iata or flight_icao), queries the AviationStack /flights API, and generates a detailed human-readable status summary with departure/arrival info, delays, gates, and live tracking data./** * Handle the get_flight_status tool */ private async handleGetFlightStatus(args: any) { const params: Record<string, any> = {}; if (args.flight_iata) { params.flight_iata = args.flight_iata; } else if (args.flight_icao) { params.flight_icao = args.flight_icao; } else { throw new McpError( ErrorCode.InvalidParams, "Either flight_iata or flight_icao must be provided" ); } const response = await this.axiosInstance.get("/flights", { params }); if (!response.data.data || response.data.data.length === 0) { return { content: [ { type: "text", text: "No flight status found for the specified flight number.", }, ], }; } const flight = response.data.data[0]; // Create a human-readable status summary let statusSummary = `Flight ${flight.flight.iata} (${flight.airline.name}) is currently ${flight.flight_status}.`; // Add departure information if (flight.departure) { statusSummary += `\n\nDeparture: ${flight.departure.airport} (${flight.departure.iata})`; if (flight.departure.terminal) { statusSummary += `, Terminal ${flight.departure.terminal}`; } if (flight.departure.gate) { statusSummary += `, Gate ${flight.departure.gate}`; } if (flight.departure.scheduled) { statusSummary += `\nScheduled: ${new Date(flight.departure.scheduled).toLocaleString()}`; } if (flight.departure.estimated) { statusSummary += `\nEstimated: ${new Date(flight.departure.estimated).toLocaleString()}`; } if (flight.departure.actual) { statusSummary += `\nActual: ${new Date(flight.departure.actual).toLocaleString()}`; } if (flight.departure.delay) { statusSummary += `\nDelay: ${flight.departure.delay} minutes`; } } // Add arrival information if (flight.arrival) { statusSummary += `\n\nArrival: ${flight.arrival.airport} (${flight.arrival.iata})`; if (flight.arrival.terminal) { statusSummary += `, Terminal ${flight.arrival.terminal}`; } if (flight.arrival.gate) { statusSummary += `, Gate ${flight.arrival.gate}`; } if (flight.arrival.scheduled) { statusSummary += `\nScheduled: ${new Date(flight.arrival.scheduled).toLocaleString()}`; } if (flight.arrival.estimated) { statusSummary += `\nEstimated: ${new Date(flight.arrival.estimated).toLocaleString()}`; } if (flight.arrival.actual) { statusSummary += `\nActual: ${new Date(flight.arrival.actual).toLocaleString()}`; } if (flight.arrival.delay) { statusSummary += `\nDelay: ${flight.arrival.delay} minutes`; } } // Add live tracking data if available if (flight.live) { statusSummary += `\n\nLive Tracking:`; statusSummary += `\nAltitude: ${flight.live.altitude} feet`; statusSummary += `\nSpeed: ${flight.live.speed_horizontal} knots`; statusSummary += `\nHeading: ${flight.live.heading} degrees`; statusSummary += `\nLatitude: ${flight.live.latitude}`; statusSummary += `\nLongitude: ${flight.live.longitude}`; } return { content: [ { type: "text", text: statusSummary, }, ], }; }
- src/index.ts:136-156 (registration)Registration of the get_flight_status tool in the ListTools response, including name, description, and input schema requiring either flight_iata or flight_icao.{ name: "get_flight_status", description: "Get the current status of a flight by flight number", inputSchema: { type: "object", properties: { flight_iata: { type: "string", description: "IATA flight code (e.g., 'BA123')", }, flight_icao: { type: "string", description: "ICAO flight code (e.g., 'BAW123')", }, }, oneOf: [ { required: ["flight_iata"] }, { required: ["flight_icao"] }, ], }, },
- src/index.ts:181-182 (schema)Dispatch case in the CallToolRequestSchema handler that routes get_flight_status calls to the specific handler method.case "get_flight_status": return await this.handleGetFlightStatus(request.params.arguments);