faa-traffic-delays-mcp-server

v0.2.0 pre-1.0

Track FAA ground stops, delay programs, airport delays, the operations plan, and ATCSCC advisories via MCP. STDIO or Streamable HTTP.

faa-traffic-delays.caseyjhand.com/mcp
claude mcp add --transport http faa-traffic-delays-mcp-server https://faa-traffic-delays.caseyjhand.com/mcp
codex mcp add faa-traffic-delays-mcp-server --url https://faa-traffic-delays.caseyjhand.com/mcp
{
  "mcpServers": {
    "faa-traffic-delays-mcp-server": {
      "url": "https://faa-traffic-delays.caseyjhand.com/mcp"
    }
  }
}
gemini mcp add --transport http faa-traffic-delays-mcp-server https://faa-traffic-delays.caseyjhand.com/mcp
{
  "mcpServers": {
    "faa-traffic-delays-mcp-server": {
      "command": "bunx",
      "args": [
        "mcp-remote",
        "https://faa-traffic-delays.caseyjhand.com/mcp"
      ]
    }
  }
}
{
  "mcpServers": {
    "faa-traffic-delays-mcp-server": {
      "type": "http",
      "url": "https://faa-traffic-delays.caseyjhand.com/mcp"
    }
  }
}
curl -X POST https://faa-traffic-delays.caseyjhand.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1.0.0"}}}'

Tools

6

faa_delays_get_airport_status

open-world

Get the current FAA traffic management status for one or more US airports: a headline status, every active event (ground stop, Ground Delay Program with its delay profile, arrival or departure delay, closure, deicing) with reason and times, and the runway configuration and airport arrival rate. Every row carries the airport's ARTCC, and its coordinates come from the feed when the airport is listed (absent when the feed omits them) and from the NASR directory otherwise; both place a departure airport against a program's includedFacilities and departureScopeNm. Airports are FAA 3-character identifiers (SEA, ORD, JFK) or their ICAO codes (KSEA, PHNL); a code that names no US airport is rejected. The FAA feed lists only airports with an active event, so a known airport absent from it returns status no_active_events, and runway configuration is available only for listed airports.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "faa_delays_get_airport_status",
    "arguments": {
      "airports": "<airports>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "airports": {
      "description": "1–25 US airports, each a 3-character FAA location identifier (SEA, ORD, 0S9) or its ICAO code (KSEA, PHNL, TJSJ), case-insensitive; a comma-separated string is also accepted. City and airport names are not accepted.",
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "description": "US airport: 3-character FAA identifier (SEA) or its ICAO code (KSEA); trimmed and uppercased before validation.",
        "type": "string",
        "pattern": "^[A-Z0-9]{3,4}$"
      }
    }
  },
  "required": [
    "airports"
  ],
  "additionalProperties": false
}
view source ↗

faa_delays_list_active_events

open-world

List every active FAA traffic management event across the National Airspace System in one call: ground stops, Ground Delay Programs, Airspace Flow Programs, arrival and departure delays, airport closures, closure NOTAMs, and deicing. Rows are sorted by severity (closures, ground stops, then GDPs and then AFPs each by average delay, arrival/departure delays by band maximum, closure NOTAMs, deicing) and carry the reason, delay figures, times, and an advisory reference for faa_delays_get_advisory. Use faa_delays_get_airport_status for the full detail of one airport, including its GDP delay profile and runway configuration.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "faa_delays_list_active_events",
    "arguments": {}
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "event_types": {
      "description": "Only these event types: ground_stop, ground_delay_program, airspace_flow_program, arrival_delay, departure_delay, airport_closure, closure_notam, deicing. Also accepts gs, gdp, afp, spelled-out names such as \"departure delay\", and a comma-separated string; case-insensitive. Omit for every type. countsByType always covers the whole feed.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "airport_closure",
          "ground_stop",
          "ground_delay_program",
          "airspace_flow_program",
          "arrival_delay",
          "departure_delay",
          "closure_notam",
          "deicing"
        ],
        "description": "FAA traffic management event type."
      }
    }
  },
  "additionalProperties": false
}
view source ↗

faa_delays_get_operations_plan

open-world

Get the FAA Command Center's current operations plan: terminal programs (possible ground stops and delay programs by airport) and en-route initiatives (route closures, severe-weather avoidance plans) expected later in the day, each with its planned UTC time and stated likelihood, plus current ATCSCC announcements. The advisory reference opens the full plan text with faa_delays_get_advisory, including active constraints and runway closures this summary omits.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "faa_delays_get_operations_plan",
    "arguments": {}
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
view source ↗

faa_delays_get_advisory

open-world

Get the full text of one ATCSCC advisory by its number and UTC date. faa_delays_list_advisories lists the advisories issued on a date with their numbers, and the advisory reference that faa_delays_list_active_events and faa_delays_get_airport_status return on program rows and faa_delays_get_operations_plan returns for the plan names one directly. Advisory text carries what the status feed omits: program rate by hour, delay assignment mode, scope, comments, and the operations plan's active constraints and runway closures. Advisory numbers restart at 1 each UTC day, and older advisories remain available.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "faa_delays_get_advisory",
    "arguments": {
      "advisory_number": "<advisory_number>",
      "date": "<date>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "advisory_number": {
      "description": "ATCSCC advisory number, 1–999: number from a faa_delays_list_advisories row, or advisory.number from an advisory reference on faa_delays_list_active_events, faa_delays_get_airport_status, or faa_delays_get_operations_plan. The printed forms \"ADVZY 082\" and \"082\" are also accepted.",
      "type": "integer",
      "minimum": 1,
      "maximum": 999
    },
    "date": {
      "description": "UTC date the advisory was issued, YYYY-MM-DD: date from the same faa_delays_list_advisories row or advisory reference. MM/DD/YYYY, as advisory titles print it, and M/D/YYYY are also accepted.",
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    }
  },
  "required": [
    "advisory_number",
    "date"
  ],
  "additionalProperties": false
}
view source ↗

faa_delays_list_advisories

open-world

List the ATCSCC advisories issued on one UTC date, newest first, from the FAA advisories database's per-date index: ground stops and delay programs as issued, proposed, revised, and canceled, required reroutes, flow constrained areas, operations plans, and CDM compression advisories, including those no longer active and those on past dates, which the NAS Status feed does not carry. Each row gives the advisory number, control element, subject, any further title lines (a reroute's name, constrained area, and valid period), and send time; its number and date open the full text with faa_delays_get_advisory. Narrow by categories or by control_element (an airport, its ICAO code, an ARTCC, or DCC for national advisories), and page with limit and offset.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "faa_delays_list_advisories",
    "arguments": {}
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "date": {
      "description": "UTC date to list, YYYY-MM-DD; MM/DD/YYYY and M/D/YYYY are also accepted. Omit for today (UTC). No later than tomorrow (UTC); past dates remain available.",
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "categories": {
      "description": "Only advisories the FAA files under these categories: ground_stop, ground_delay_program, airspace_flow_program, ctop, route, other (flow constrained areas and operations plans file under other). Also accepts gs, gdp, afp, spelled-out names such as \"ground stop\", and a comma-separated string; case-insensitive. Omit for every advisory, including CDM compression advisories, which the FAA files under no category.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "ground_stop",
          "ground_delay_program",
          "airspace_flow_program",
          "ctop",
          "route",
          "other"
        ],
        "description": "ATCSCC advisory index category."
      }
    },
    "control_element": {
      "description": "Only advisories whose control element is this facility or lists it as a part: an airport by FAA identifier (ORD) or ICAO code (KORD), an ARTCC (ZAU), a pair (ORD/ZAU or KORD/ZAU), or DCC for national advisories such as reroutes and the operations plan. Case-insensitive. Airports named only in a subject or details do not match.",
      "type": "string",
      "maxLength": 64
    },
    "limit": {
      "default": 50,
      "description": "Advisories per page, 1–200.",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "offset": {
      "default": 0,
      "description": "Matching advisories to skip, for paging: nextOffset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "limit",
    "offset"
  ],
  "additionalProperties": false
}
view source ↗

faa_delays_list_reference

open-world

Decode the vocabulary the other faa_delays tools return: event types and their fields, traffic-management terms (AAR, EDCT, FCA, GDP, SWAP), ARTCC center codes, the FAA pacing airports with time zones, and accepted identifier formats.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "faa_delays_list_reference",
    "arguments": {
      "topic": "<topic>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "topic": {
      "description": "What to decode: event_types (event types and their key fields), terms (traffic-management abbreviations), artccs (ARTCC center codes and names), pacing_airports (the FAA pacing airports with time zones, read live), or identifiers (accepted airport-code, advisory, and time formats). Case-insensitive; spaces and hyphens read as underscores.",
      "type": "string",
      "enum": [
        "event_types",
        "terms",
        "artccs",
        "pacing_airports",
        "identifiers"
      ]
    }
  },
  "required": [
    "topic"
  ],
  "additionalProperties": false
}
view source ↗