Airline Starlink Tracker

Starlink WiFi status for United, Alaska and Hawaiian flights, with per-airline route odds.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
86%
Naming quality
91%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,991Tokens (tool definitions)
~1.7 KBTypical response size
Moderate attention impact (1.56% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "starlink-tracker": {
      "url": "https://airlinestarlinktracker.com/mcp"
    }
  }
}

Remote endpoints

https://airlinestarlinktracker.com/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_flight(flight_number, date, origin, destination)

Use when the user asks "does my flight have Starlink/WiFi?" with a specific tracked-airline flight number and date. Returns FIRM YES if assigned to a verified-Starlink plane, FIRM NO if assigned to a verified non-Starlink plane, or a probability estimate if no assignment exists yet (assignments publish ~2 days out). For dates further out, call predict_flight_starlink directly — check_flight just falls through to the same estimate with extra latency.

Input Schema

{
  "type": "object",
  "properties": {
    "flight_number": {
      "type": "string",
      "description": "Flight number, e.g. 'UA544' or just the digits. Also accepts ICAO airline codes like UAL544; use the marketing flight number (UA5212, not SKW5212).",
      "examples": [
        "UA544",
        "544"
      ]
    },
    "date": {
      "type": "string",
      "description": "Flight date in YYYY-MM-DD format, matched to the departure airport's local calendar date (UTC fallback for unmapped airports).",
      "examples": [
        "2026-05-15"
      ]
    },
    "origin": {
      "type": "string",
      "description": "Optional 3-letter IATA departure airport of the traveller's leg (e.g. 'DEN'); scopes the answer to that leg of a multi-leg flight number."
    },
    "destination": {
      "type": "string",
      "description": "Optional 3-letter IATA arrival airport of the traveller's leg (e.g. 'SAN'); with origin, picks one leg of a multi-leg flight number."
    }
  },
  "required": [
    "flight_number",
    "date"
  ],
  "examples": [
    {
      "flight_number": "UA544",
      "date": "2026-05-15"
    }
  ]
}
🟢get_fleet_stats

Use when the user asks "how far along is the Starlink rollout?" or wants overall fleet numbers. Returns tracked airlines Starlink installation counts and percentages across mainline and express fleets, plus a per-aircraft-type breakdown (installed/total per family). Not for per-flight checks — use check_flight for that.

Input Schema

{
  "type": "object",
  "properties": {},
  "examples": [
    {}
  ]
}
🟢list_starlink_aircraft(fleet, limit)

Use when the user asks about the planes themselves — "which tail numbers have Starlink?", "which aircraft types are equipped?". Returns tracked airlines tail numbers, aircraft types, operators, and install dates (default 50 most recent; pass limit up to 500). Not for finding flights — use search_starlink_flights for that.

Input Schema

{
  "type": "object",
  "properties": {
    "fleet": {
      "type": "string",
      "enum": [
        "express",
        "mainline"
      ],
      "description": "Filter to only express (regional) or mainline aircraft.",
      "examples": [
        "express"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Maximum number of aircraft to return (default 50).",
      "examples": [
        100
      ]
    }
  },
  "examples": [
    {
      "fleet": "express",
      "limit": 100
    },
    {}
  ]
}
🟢predict_flight_starlink(flight_number, date)

Use when the user asks "will my flight have Starlink?" for a date too far out for a confirmed assignment, or with no date at all. Returns the probability that a tracked-airline flight number gets a Starlink plane, from historical observations. Reliability varies: high-confidence (5+ obs) is the most reliable tier but is not a guarantee; low-confidence (0-1 obs) is just the fleet prior. UA1-2999 (mainline) has materially lower coverage than UA3000-6999 (express) — call get_fleet_stats for the current split rather than assuming a rate.

Input Schema

{
  "type": "object",
  "properties": {
    "flight_number": {
      "type": "string",
      "description": "Flight number, e.g. 'UA544' or just the digits. Also accepts ICAO airline codes like UAL544; use the marketing flight number (UA5212, not SKW5212).",
      "examples": [
        "UA544"
      ]
    },
    "date": {
      "type": "string",
      "description": "Optional YYYY-MM-DD. ALWAYS PASS if known — the probability is date-agnostic, but when the result is low (<20%) the tool uses this date to look up the actual route and returns a ready-to-run plan_starlink_itinerary call with origin/dest pre-filled, so alternatives can be presented in one turn.",
      "examples": [
        "2026-06-01"
      ]
    }
  },
  "required": [
    "flight_number"
  ],
  "examples": [
    {
      "flight_number": "UA544",
      "date": "2026-06-01"
    },
    {
      "flight_number": "UA544"
    }
  ]
}
🟢plan_starlink_itinerary(origin, destination, max_stops, max_results, date)

Use when the user asks "what's the best way to fly X to Y with Starlink?". Compares Starlink odds on the route across every tracked airline (nonstop, per-carrier). For multi-stop UA routings, connect to unitedstarlinktracker.com/mcp.

Input Schema

{
  "type": "object",
  "properties": {
    "origin": {
      "type": "string",
      "description": "Origin airport IATA code (e.g. 'SFO').",
      "examples": [
        "SFO"
      ]
    },
    "destination": {
      "type": "string",
      "description": "Destination airport IATA code (e.g. 'JAX').",
      "examples": [
        "JAX"
      ]
    },
    "max_stops": {
      "type": "integer",
      "minimum": 0,
      "maximum": 3,
      "description": "Maximum number of connection stops (default 2, max 3). 0=direct only, 1=one connection, etc.",
      "examples": [
        1
      ]
    },
    "max_results": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Maximum number of full-coverage itineraries (default 8). Up to 3 partial baselines may be appended.",
      "examples": [
        8
      ]
    },
    "date": {
      "type": "string",
      "description": "Optional YYYY-MM-DD travel date. When within ~2 days (the aircraft-assignment window), uses confirmed tail assignments for higher accuracy. Beyond that, uses historical prediction only — confirmed assignments don't apply to future dates.",
      "examples": [
        "2026-05-20"
      ]
    }
  },
  "required": [
    "origin",
    "destination"
  ],
  "examples": [
    {
      "origin": "SFO",
      "destination": "EWR"
    },
    {
      "origin": "ORD",
      "destination": "JAX",
      "date": "2026-05-20",
      "max_stops": 1
    }
  ]
}
🟢predict_route_starlink(origin, destination, limit)

Use when the user asks "which flights between X and Y have Starlink?" or "what Starlink flights serve airport X?". Single-route lookup: returns tracked airlines flight numbers on a route (or touching an airport) ranked by Starlink probability. Both origin and destination are required (per-airline route comparison). For trip planning with connections, use plan_starlink_itinerary instead — this tool has no connection logic or coverage-ratio ranking. Empty result = route not served by Starlink planes.

Input Schema

{
  "type": "object",
  "properties": {
    "origin": {
      "type": "string",
      "description": "Origin airport IATA code (e.g. 'SFO', 'ORD'). Case-insensitive.",
      "examples": [
        "SFO"
      ]
    },
    "destination": {
      "type": "string",
      "description": "Destination airport IATA code (e.g. 'EWR', 'DEN'). Case-insensitive.",
      "examples": [
        "EWR"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Maximum number of flight numbers to return (default 10).",
      "examples": [
        10
      ]
    }
  },
  "examples": [
    {
      "origin": "SFO",
      "destination": "EWR"
    },
    {
      "origin": "ORD"
    }
  ]
}
🟢search_starlink_flights(origin, destination, limit)

Use when the user asks "what Starlink flights leave from X tomorrow?" or wants confirmed near-term departures. Returns CONFIRMED Starlink flights in the next ~2 days — firm schedule, not prediction. Pass at least one of origin or destination (both narrows to a single route). Aircraft assignments aren't published further out, so for later dates use predict_route_starlink or plan_starlink_itinerary instead.

Input Schema

{
  "type": "object",
  "properties": {
    "origin": {
      "type": "string",
      "description": "Origin airport IATA code (e.g. 'SFO', 'ORD'). Case-insensitive.",
      "examples": [
        "ORD"
      ]
    },
    "destination": {
      "type": "string",
      "description": "Destination airport IATA code (e.g. 'LAX', 'DEN'). Case-insensitive.",
      "examples": [
        "LAX"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Maximum number of flights to return (default 20).",
      "examples": [
        20
      ]
    }
  },
  "examples": [
    {
      "origin": "ORD"
    },
    {
      "origin": "SFO",
      "destination": "EWR"
    }
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools