FlightRadar MCP Server
The FlightRadar MCP Server provides real-time flight tracking and status information through the AviationStack API. With this server, you can:
Get detailed information about a specific flight using its IATA or ICAO code
Search for flights based on criteria such as departure/arrival airports, airline, and flight status, with customizable result limits
Obtain a human-readable summary of a flight's current status
Provides flight tracking and status information for British Airways flights, including detailed information about specific flights, departure/arrival times, and terminal information.
Enables querying flight data using IATA flight codes to retrieve detailed flight information and status updates.
Provides real-time flight tracking functionality through the AviationStack API, allowing search for flights by various criteria and retrieving detailed flight status information.
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., "@FlightRadar MCP Serverwhat's the status of flight UA245 from 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.
FlightRadar MCP Server
A Model Context Protocol (MCP) server that provides real-time flight tracking and status information using the AviationStack API.
Features
This MCP server provides three main tools:
get_flight_data: Get detailed information about a specific flight by its IATA or ICAO code
search_flights: Search for flights by various criteria like airline, departure/arrival airports, and status
get_flight_status: Get a human-readable status summary for a specific flight
Related MCP server: Aviationstack MCP Server
Installation
Installing via Smithery
To install flightradar-mcp-server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @Cyreslab-AI/flightradar-mcp-server --client claudePrerequisites
Node.js (v14 or higher)
npm (v6 or higher)
An AviationStack API key (get one at aviationstack.com)
Setup
Clone this repository:
git clone https://github.com/Cyreslab-AI/flightradar-mcp-server.git cd flightradar-mcp-serverInstall dependencies:
npm installBuild the server:
npm run buildConfigure the server in your MCP settings file:
For Claude VSCode extension, add to
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json:{ "mcpServers": { "flightradar": { "command": "node", "args": ["/path/to/flightradar-mcp-server/build/index.js"], "env": { "AVIATIONSTACK_API_KEY": "YOUR_API_KEY_HERE" }, "disabled": false, "autoApprove": [] } } }For Claude desktop app, add to
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) or similar path on other platforms.
Usage Examples
Once the server is configured, you can use it with Claude to get flight information:
Get Flight Status
User: What's the status of flight BA855?
Claude: Flight BA855 (British Airways) is currently landed.
Departure: Prague Vaclav Havel Airport (PRG), Terminal 1, Gate B5
Scheduled: 3/25/2025, 11:50:00 AM
Estimated: 3/25/2025, 11:50:00 AM
Arrival: Heathrow (LHR), Terminal 3
Scheduled: 3/25/2025, 1:10:00 PMSearch Flights
User: Find British Airways flights
Claude: I found 3212 British Airways flights. Here are the first 3:
1. BA5719: Tucson (TUS) to Dallas/Fort Worth (DFW)
Status: scheduled
Departure: 3/25/2025, 5:00:00 AM
2. BA6096: Prague (PRG) to Helsinki (HEL)
Status: scheduled
Departure: 3/25/2025, 11:40:00 AM
3. BA855: Prague (PRG) to London Heathrow (LHR)
Status: landed
Departure: 3/25/2025, 10:50:00 AMGet Flight Details
User: Get detailed information about flight BA855
Claude: Here are the details for flight BA855:
Flight: BA855 (BAW855)
Airline: British Airways
Aircraft: Airbus A320 (Registration: G-EUUH)
Departure:
- Airport: Prague Vaclav Havel Airport (PRG/LKPR)
- Terminal: 1, Gate: B5
- Scheduled: 3/25/2025, 10:50:00 AM
Arrival:
- Airport: London Heathrow (LHR/EGLL)
- Terminal: 3
- Scheduled: 3/25/2025, 12:10:00 PM
Status: landedAPI Key Configuration
This server requires an AviationStack API key to function. You can get a free API key (100 requests/month) at aviationstack.com.
The API key should be provided as an environment variable named AVIATIONSTACK_API_KEY in your MCP settings configuration.
License
MIT
Available Tools
3 toolsget_flight_dataB
Get real-time data for a specific flight by flight number
| Name | Required | Description | Default |
|---|---|---|---|
| flight_iata | No | IATA flight code (e.g., 'BA123') | |
| flight_icao | No | ICAO flight code (e.g., 'BAW123') |
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 states the tool 'Get[s] real-time data,' implying a read operation, but doesn't specify if it requires authentication, has rate limits, returns structured data, or handles errors. For a tool with no annotation coverage, this leaves significant gaps in understanding its operational behavior.
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 directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse quickly. Every part of the sentence contributes essential information, earning 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?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose but lacks details on usage guidelines, behavioral traits, and how it fits with siblings. Without an output schema, it doesn't explain return values, which is a gap, but the concise purpose statement provides a minimal viable foundation.
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 description adds minimal meaning beyond the input schema, which has 100% coverage. It implies the tool uses a flight number parameter, but doesn't clarify the relationship between 'flight_iata' and 'flight_icao' or why both are options. Since the schema already documents these parameters well, the baseline score of 3 is appropriate, as the description doesn't significantly enhance parameter understanding.
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: 'Get real-time data for a specific flight by flight number.' It specifies the verb ('Get'), resource ('real-time data'), and scope ('specific flight by flight number'), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_flight_status' or 'search_flights', which might offer overlapping functionality.
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 guidance on when to use this tool versus alternatives. It mentions retrieving data 'by flight number,' but doesn't clarify if this is for a single flight lookup, how it differs from 'get_flight_status' (which might focus on status updates) or 'search_flights' (which could handle broader queries). No exclusions, prerequisites, or context for tool selection are included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_flight_statusB
Get the current status of a flight by flight number
| Name | Required | Description | Default |
|---|---|---|---|
| flight_iata | No | IATA flight code (e.g., 'BA123') | |
| flight_icao | No | ICAO flight code (e.g., 'BAW123') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action without disclosing behavioral traits like data freshness (e.g., real-time vs. cached), error handling (e.g., invalid flight codes), or rate limits. It's minimal and lacks critical operational context.
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 with zero waste, clearly front-loading the core purpose. It's appropriately sized for a simple lookup tool.
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 low complexity (simple query with two parameters) and full schema coverage, the description is adequate but incomplete due to missing output details (no output schema) and insufficient behavioral context for a tool with no annotations.
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 fully documents the two parameters (flight_iata, flight_icao) and their oneOf logic. The description adds no additional meaning beyond implying flight number usage, meeting the baseline for high schema coverage.
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 ('Get') and resource ('current status of a flight'), making the purpose specific and actionable. It distinguishes from 'get_flight_data' and 'search_flights' by focusing on status retrieval, though it doesn't explicitly differentiate them in the text.
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 guidance on when to use this tool versus its siblings ('get_flight_data', 'search_flights'), such as for real-time status vs. historical data or search queries. It also lacks prerequisites like flight number availability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_flightsC
Search for flights by various criteria
| Name | Required | Description | Default |
|---|---|---|---|
| airline_iata | No | IATA airline code (e.g., 'BA' for British Airways) | |
| airline_icao | No | ICAO airline code (e.g., 'BAW' for British Airways) | |
| dep_iata | No | IATA code of departure airport (e.g., 'LHR') | |
| arr_iata | No | IATA code of arrival airport (e.g., 'JFK') | |
| flight_status | No | Flight status (e.g., 'scheduled', 'active', 'landed', 'cancelled') | |
| limit | No | Maximum number of results to return (default: 10, max: 100) |
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 only states the action ('search') without any details about permissions, rate limits, pagination, or what the search returns (e.g., flight details, statuses). For a search tool with no annotations, this is insufficient to inform the agent about operational behavior.
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 with no wasted words. It is appropriately sized for a simple search tool and front-loads the core action ('search for flights'), making it easy to parse quickly.
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 (6 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the search returns (e.g., flight objects, statuses), how results are ordered, or any limitations (e.g., real-time vs. historical data). Without annotations or output schema, the description should provide more context to compensate, but it fails to do so.
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 schema itself (e.g., IATA/ICAO codes, flight status with enum, limit with default and max). The description adds no additional parameter semantics beyond 'by various criteria', which is redundant. Baseline is 3 when schema coverage is high, as the schema does the 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 states the purpose as 'Search for flights by various criteria', which is clear but vague. It specifies the verb 'search' and resource 'flights', but lacks specificity about what kind of search or how it differs from sibling tools like 'get_flight_data' or 'get_flight_status'. It doesn't provide enough detail to distinguish it from alternatives.
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 guidance on when to use this tool versus the sibling tools 'get_flight_data' or 'get_flight_status'. It mentions 'by various criteria', which implies flexibility, but offers no explicit when-to-use or when-not-to-use instructions, leaving the agent to guess based on tool names alone.
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.
3 tool updates
- First observed
get_flight_data - First observed
get_flight_status - First observed
search_flights
TDQS
The tools 'get_flight_data' and 'get_flight_status' have significant overlap, as flight data typically includes status information, making them ambiguous and prone to misselection. 'search_flights' is more distinct but the other two tools are not clearly differentiated in purpose.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_flight_data, get_flight_status, search_flights). The naming is predictable and readable throughout the set.
With only 3 tools, the count feels thin for a flight radar domain, as it lacks operations like tracking flights by location, getting airport data, or managing alerts. While the tools cover basic queries, the scope seems limited and could benefit from more comprehensive coverage.
The tool set is severely incomplete for a flight radar server, missing essential operations such as retrieving airport information, tracking flights by geographic area, or accessing historical data. This creates significant gaps that will likely cause agent failures in real-world scenarios.
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
Flight search MCP server providing search, pagination, and itinerary details for AI assistants.
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)
Related MCP Servers
AlicenseBqualityFmaintenanceA Model Context Protocol server implementation that provides tools for querying flight information, weather data, and flight comfort metrics through Variflight services.83,50131ISC- AlicenseBqualityBmaintenanceAn MCP server using the AviationStack API to fetch real-time flight data, including airline flights, airport schedules, future flights and aircraft types.1225MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server built with mcp-framework that provides tools for flight-related operations. This appears to be a template or starter project with example tools that can be extended for flight search and booking functionality.1-
- 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/Cyreslab-AI/flightradar-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server