Skip to main content
Glama
Cyreslab-AI

FlightRadar MCP Server

FlightRadar MCP 服务器

铁匠徽章

使用 AviationStack API 提供实时航班跟踪和状态信息的模型上下文协议 (MCP) 服务器。

特征

该 MCP 服务器提供了三个主要工具:

  1. get_flight_data :通过 IATA 或 ICAO 代码获取特定航班的详细信息

  2. search_flights :按航空公司、出发/到达机场和状态等各种条件搜索航班

  3. get_flight_status :获取特定航班的可读状态摘要

Related MCP server: Aviationstack MCP Server

安装

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 flightradar-mcp-server:

npx -y @smithery/cli install @Cyreslab-AI/flightradar-mcp-server --client claude

先决条件

  • Node.js(v14 或更高版本)

  • npm(v6 或更高版本)

  • AviationStack API 密钥(在aviationstack.com获取)

设置

  1. 克隆此存储库:

    git clone https://github.com/Cyreslab-AI/flightradar-mcp-server.git
    cd flightradar-mcp-server
  2. 安装依赖项:

    npm install
  3. 构建服务器:

    npm run build
  4. 在您的 MCP 设置文件中配置服务器:

    对于 Claude VSCode 扩展,添加到~/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": []
        }
      }
    }

    对于 Claude 桌面应用程序,添加到~/Library/Application Support/Claude/claude_desktop_config.json (macOS) 或其他平台上的类似路径。

使用示例

服务器配置完成后,您可以使用 Claude 获取航班信息:

获取航班状态

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 PM

搜索航班

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 AM

获取航班详情

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: landed

API 密钥配置

此服务器需要 AviationStack API 密钥才能运行。您可以在AviationStack.com获取免费 API 密钥(每月 100 次请求)。

API 密钥应作为 MCP 设置配置中名为AVIATIONSTACK_API_KEY的环境变量提供。

执照

麻省理工学院

Available Tools

3 tools
get_flight_dataB

Get real-time data for a specific flight by flight number

ParametersJSON Schema
NameRequiredDescriptionDefault
flight_iataNoIATA flight code (e.g., 'BA123')
flight_icaoNoICAO flight code (e.g., 'BAW123')

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
flight_iataNoIATA flight code (e.g., 'BA123')
flight_icaoNoICAO flight code (e.g., 'BAW123')

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
airline_iataNoIATA airline code (e.g., 'BA' for British Airways)
airline_icaoNoICAO airline code (e.g., 'BAW' for British Airways)
dep_iataNoIATA code of departure airport (e.g., 'LHR')
arr_iataNoIATA code of arrival airport (e.g., 'JFK')
flight_statusNoFlight status (e.g., 'scheduled', 'active', 'landed', 'cancelled')
limitNoMaximum number of results to return (default: 10, max: 100)

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

  1. 3 tool updates
    • First observedget_flight_data
    • First observedget_flight_status
    • First observedsearch_flights

TDQS

C2.9/5.0

Scored across 3 tools

Disambiguation2/5

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.

Naming Consistency5/5

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.

Tool Count3/5

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.

Completeness2/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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
    -