AgentSkillsCN

flight-radar

利用官方 FlightRadar24 API 实时追踪航班。 适用于当用户询问飞机位置、想根据尾号或呼号追踪航班、查询飞机状态、获取特定飞机的近期飞行历史,或询问“我的航班在哪里?”、“追踪尾号”、“这架飞机还在天上吗?”时使用。

SKILL.md
--- frontmatter
name: flight-radar
description: |
  Real-time aircraft tracking using the official FlightRadar24 API.
  Use when the user asks where a plane is, wants to track a flight by tail number or callsign,
  check aircraft status, get recent flight history for a specific aircraft,
  or asks "where is my flight", "track tail number", "is the plane in the air".

Flight Radar

Track aircraft in real-time using the official FlightRadar24 API via MCP tools.

Setup

Use ToolSearch to load the FR24 MCP tools:

code
ToolSearch query: "+fr24api"

This loads all available FR24 tools. Key tools:

ToolPurposeKey Parameters
get_live_flights_positions_fullReal-time position by registration or callsignregistrations, callsigns, flights (arrays)
get_flight_summary_fullRecent flight history with departure/arrival detailsflights (array of flight numbers/callsigns)
get_flight_tracksDetailed positional track for a specific flightflight_id
get_airline_infoAirline details by ICAO/IATA codecode
get_airport_info_fullAirport details and statscode

Workflow

Track by tail number (registration)

  1. Load tools: ToolSearch with +fr24api
  2. Call get_live_flights_positions_full with registrations: ["N12345"]
  3. If found, present position, altitude, speed, heading, route
  4. For flight history, call get_flight_summary_full with the callsign from step 2

Track by callsign or flight number

  1. Load tools: ToolSearch with +fr24api
  2. Call get_live_flights_positions_full with callsigns: ["UAL456"] or flights: ["UAL456"]
  3. Present the results

Get flight history

  1. Load tools: ToolSearch with +fr24api
  2. Call get_flight_summary_full with the flight number or callsign

Response Format

Present results clearly with:

  • Registration, callsign, aircraft type
  • Route (origin → destination) with airport names
  • Position (lat/lon), altitude, ground speed, heading
  • Status (in flight, landed, on ground)
  • Departure/arrival times or ETA

Visual Map

To show the user a map, pipe FR24 data through flight-map.py:

bash
echo '<JSON>' | python3 "${CLAUDE_PLUGIN_ROOT}/skills/flight-radar/scripts/flight-map.py" --stdin

The JSON should contain these fields (matching the map template):

json
{
  "registration": "N12345",
  "callsign": "UAL456",
  "aircraft_model": "Boeing 737-800",
  "aircraft_type": "B738",
  "airline": "United Airlines",
  "latitude": 37.1234,
  "longitude": -122.5678,
  "altitude_ft": 35000,
  "ground_speed_kts": 420,
  "heading": 270,
  "on_ground": false,
  "origin": "TEB",
  "origin_city": "Teterboro",
  "destination": "SFO",
  "destination_city": "San Francisco",
  "flight_status": "En Route",
  "actual_departure": "2025-01-15 14:30 UTC",
  "eta": "2025-01-15 20:15 UTC",
  "recent_flights": [
    {
      "origin": "TEB",
      "origin_city": "Teterboro",
      "destination": "SFO",
      "destination_city": "San Francisco",
      "departure": "2025-01-14 08:00 UTC"
    }
  ]
}

Map to these fields from the FR24 MCP tool responses. If a field isn't available, omit it — the map handles missing values gracefully.

bash
# Save to a specific file
echo '<JSON>' | python3 "${CLAUDE_PLUGIN_ROOT}/skills/flight-radar/scripts/flight-map.py" --stdin --output map.html

# Generate without opening browser
echo '<JSON>' | python3 "${CLAUDE_PLUGIN_ROOT}/skills/flight-radar/scripts/flight-map.py" --stdin --no-open

The map shows:

  • Dark basemap (CARTO dark tiles) with aircraft icon rotated to heading
  • Info panel with route, altitude, speed, heading, departure/ETA
  • Recent flights table (if available)
  • Auto-adjusting zoom (z6 for cruise, z10 for low altitude, z13 on ground)

If the aircraft data has status: "not_found" or is empty, it renders a styled "not tracked" card.

Limitations

  • Live only: FlightRadar24 tracks aircraft with active ADS-B transponders. Parked/powered-down aircraft won't appear in live positions.
  • No future flights: Scheduled/upcoming flights are not available. Charter and private flights don't publish schedules publicly.
  • API quota: The official API has rate limits based on the subscription tier. Avoid unnecessary repeated calls.