Skip to main content
Glama

faa-traffic-delays-mcp-server

Server Details

Track FAA ground stops, delay programs, airport delays, the operations plan, and ATCSCC advisories.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.8% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
cyanheads/faa-traffic-delays-mcp-server
GitHub Stars
1
Server Listing
faa-traffic-delays-mcp-server

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct resource and granularity: single advisory text (get_advisory) vs date-indexed advisory list (list_advisories), national event list (list_active_events) vs one-airport detail (get_airport_status), plus the operations plan and a vocabulary decoder. Descriptions explicitly cross-reference each other to clarify boundaries (e.g. 'Use faa_delays_get_airport_status for the full detail of one airport'), leaving no real misselection risk.

Naming Consistency5/5

All six tools follow an identical faa_delays_<verb>_<noun> pattern with clean snake_case (get_advisory, get_airport_status, get_operations_plan, list_active_events, list_advisories, list_reference). Verbatim consistency across the entire set.

Tool Count5/5

Six tools is well-scoped for a read-only FAA data domain, with three getters and three listers each earning a distinct place. Nothing feels padded or thin.

Completeness4/5

The surface covers the full lifecycle of the read-only domain: national events, per-airport status, advisories, operations plans, plus a reference decoder. Minor possible gaps (e.g. historical/archived event queries beyond per-date advisories) are workable around, and create/update operations are appropriately absent for this data source.

Available Tools

6 tools
faa_delays_get_advisoryGet ATCSCC AdvisoryA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesUTC 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.
advisory_numberYesATCSCC 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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe character ceiling applied; present only when the text was cut.
urlNoServer-built advisory URL this tool read; it also opens in a browser.
dateNoThe advisory UTC date read, YYYY-MM-DD.
textNoFull advisory text (FAA-authored), cut at 50,000 characters when longer; truncated then reports the cut.
errorNoPresent when the call failed. Absent on success.
foundNoWhether the FAA advisories database holds this advisory number on this UTC date.
shownNoCharacters of advisory text returned; present only when the text was cut.
titleNoAdvisory title line as the FAA prints it (FAA-authored), e.g. ATCSCC ADVZY 082 DCC 09/29/2026 OPERATIONS PLAN.
noticeNoGuidance on a cut advisory text; present only when the text was cut.
sentAtNoWhen the advisory was signed, as the FAA prints it: YY/MM/DD HH:MM in UTC.
subjectNoAdvisory subject parsed from the title (CDM GROUND DELAY PROGRAM, OPERATIONS PLAN); absent when the title has another form.
guidanceNoPresent when found is false: where to get a valid advisory number and date.
truncatedNoTrue when the advisory text was cut at the 50,000-character ceiling; absent otherwise.
totalCharsNoFull length of the advisory text in characters; present only when the text was cut.
effectiveTimeNoEffective period as the FAA prints it, DDHHMM-DDHHMM in UTC.
advisoryNumberNoThe advisory number read.
controlElementNoAirport/ARTCC pair or facility the advisory concerns, parsed from the title (SEA/ZSE, DCC); absent when the title has another form.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, openWorld), so the description's job is to add beyond them — and it does: advisory numbers restart at 1 each UTC day (a real keying pitfall), older advisories remain available, and the payload contains program rate by hour, delay assignment mode, scope, comments, and plan constraints/runway closures.

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?

Three sentences, front-loaded with the core action, then sourcing, then what the returned text adds. No filler; every clause carries routing or content information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value detail is unnecessary, and for a 2-param read tool the description fully covers invocation: input provenance, numbering/date semantics, data retention, and value over the status endpoints.

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% and the schema already documents accepted alternate formats (MM/DD/YYYY, 'ADVZY 082', '082'). The description adds only the pairing 'by its number and UTC date', so the schema does the heavy lifting and the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with its identifying keys: 'Get the full text of one ATCSCC advisory by its number and UTC date.' It is immediately distinguishable from the list/status siblings it names, so an agent can route correctly without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says where the required inputs come from (rows from faa_delays_list_advisories; advisory references returned by list_active_events, get_airport_status, and get_operations_plan) and when this tool is needed over the status feeds ('what the status feed omits'). That is when-to-use plus alternatives, with no inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faa_delays_get_airport_statusGet FAA Airport StatusA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
airportsYes1–100 submitted US airport codes, 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. Validates every code, deduplicates FAA/ICAO equivalents, and processes the first 25 distinct airports with the canonical remainder returned as omittedAirports. City and airport names are not accepted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoMaximum distinct airports processed: 25.
errorNoPresent when the call failed. Absent on success.
noticeNoGuidance on quiet results, stale delay entries, or partial data.
airportsNoOne row per processed airport, in first-seen request order, up to 25 distinct FAA identifiers.
fetchedAtNoWhen this server fetched the snapshot from the FAA (UTC ISO); with the 60 s cache it can trail the call by up to a minute.
processedCountNoDistinct airports processed in this response.
omittedAirportsNoCanonical FAA identifiers left after the first 25 distinct airports, in first-seen order; empty when all were processed.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/openWorld/idempotent, and the description adds substantial behavior beyond them: coordinate provenance (feed vs. NASR directory fallback), ARTCC on every row, inclusion of includedFacilities/departureScopeNm semantics, rejection of unknown codes, and the fact that runway configuration exists only for feed-listed airports. This is rich, non-redundant disclosure.

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?

It is front-loaded: purpose first, then per-airport specifics, then identifier rules, then feed limitations. Every sentence carries operational weight for an agent deciding whether and how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering the safety profile and an output schema present, the description still supplies the missing context an agent needs - code validation/rejection, the no_active_events outcome, and the coordinate-source fallback. Nothing required to call it correctly is absent.

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 coverage is 100% and the schema already documents accepted formats, trimming/uppercasing, dedup of FAA/ICAO equivalents, and the 25-airport processing cap. The description restates the code formats and rejection rule without adding new parameter-level meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Get the current FAA traffic management status for one or more US airports') and enumerates exactly what the response contains (headline status, active events, runway config, arrival rate). An agent can immediately distinguish this from the sibling list/advisory tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly frames when this tool applies (per-airport status including events and runway config) and gives decisive edge-case behavior: unknown non-US codes are rejected and known airports absent from the feed return no_active_events. It does not, however, explicitly contrast with siblings like faa_delays_list_active_events, so the routing guidance stops short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faa_delays_get_operations_planGet FAA Operations PlanA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
noticeNoGuidance on an empty plan, a missing advisory link, or partial data.
advisoryNoReference to the ATCSCC advisory behind this item, absent when the FAA feed links none. For the full text, call faa_delays_get_advisory with number as advisory_number and date as date.
fetchedAtNoWhen this server fetched the operations plan from the FAA (UTC ISO); with the 60 s cache it can trail the call by up to a minute.
announcementsNoCurrent ATCSCC announcements; [] when there are none, absent when that FAA list could not be read.
enRoutePlannedNoEn-route initiatives the FAA expects later today: route closures, severe-weather avoidance plans (SWAP), and coded departure routes (CDRs), in plan order.
terminalPlannedNoTerminal programs the FAA expects later today: possible ground stops and delay programs by airport, in plan order.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: this is a forward-looking summary ('expected later in the day') and it explicitly discloses that it omits active constraints and runway closures available elsewhere.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with what is returned and followed by the escalation path to the advisory. The first sentence is a dense run-on list, but each item earns its place by telling the agent what fields to expect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not strictly required, yet the description still scopes the response (summary vs. full advisory text). Combined with the annotations, an agent has enough to call this correctly; the only shortfall is absent guidance against the other four siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The tool takes zero parameters, so the baseline of 4 applies. The description correctly implies a no-argument call by describing a global snapshot rather than anything filterable, and adds no misleading parameter expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the FAA Command Center's current operations plan') and enumerates the contents: terminal programs, en-route initiatives, UTC times, likelihood, and ATCSCC announcements. It explicitly distinguishes itself from faa_delays_get_advisory by describing itself as a summary that the advisory expands upon.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative sibling (faa_delays_get_advisory) and the condition that selects it: when the full plan text, active constraints, or runway closures are needed rather than this summary. It gives no guidance versus the other siblings (get_airport_status, list_advisories), so routing is clear but incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faa_delays_list_active_eventsList Active FAA Delay EventsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_typesNoOnly 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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
shownNoEvents returned after the event_types filter.
eventsNoActive events matching event_types, sorted by severity.
noticeNoGuidance on empty or partial results, stale delay entries, and how to get the missing data.
fetchedAtNoWhen this server fetched the airport events from the FAA (UTC ISO); with the 60 s cache it can trail the call by up to a minute.
enRouteFeedNoWhether Airspace Flow Programs were read: ok, unavailable (the en-route feed failed), or format_changed (it returned a format this server does not read).
totalActiveNoEvery active event read, before the event_types filter; excludes AFPs when the en-route feed could not be read.
countsByTypeNoActive events per type across the whole feed, counted before the event_types filter so types the filter excluded stay visible. airspace_flow_program is absent when the en-route feed could not be read.
appliedEventTypesNoThe event_types filter as the server normalized it, or every type when omitted.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description goes beyond that by disclosing the exact sort order (closures, ground stops, GDPs and AFPs by average delay, delays by band maximum, NOTAMs, deicing) and the payload each row carries (reason, delay figures, times, advisory reference), which materially shapes how an agent reads the result. It says nothing about rate limits or freshness/caching of the feed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, with the scope-and-content statement front-loaded ahead of the sibling routing. The long parenthetical sort-order enumeration is dense but does real work for result interpretation; there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it still covers scope, ordering and onward navigation. Schema coverage, annotations and output schema together leave no gap an agent needs to call this correctly.

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% and the single optional event_types parameter is fully documented there, including aliases, comma-separated strings, case-insensitivity, and the note that countsByType always covers the whole feed. The prose adds no additional meaning about the filter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with explicit scope ("every active FAA traffic management event across the National Airspace System") and enumerates the eight event classes it returns. It is unmistakably distinct from siblings that fetch a single airport, an advisory, or the operations plan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative for a concrete case: "Use faa_delays_get_airport_status for the full detail of one airport, including its GDP delay profile and runway configuration." It also routes the agent onward to faa_delays_get_advisory via the advisory reference carried in each row, so the when-to-use-this-vs-that decision is spelled out rather than inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faa_delays_list_advisoriesList ATCSCC AdvisoriesA
Read-onlyIdempotent
Inspect

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, control_element (an airport, its ICAO code, an ARTCC, or DCC for national advisories), or query (literal case-insensitive subject/details text, such as an FCA name); filters combine before limit and offset paging.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoUTC 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.
limitNoAdvisories per page, 1–200.
queryNoLiteral case-insensitive substring of subject or any details line, such as FCA005; combined with categories and control_element before paging. Omit to match every title.
offsetNoMatching advisories to skip, for paging: nextOffset from the previous page.
categoriesNoOnly 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.
control_elementNoOnly 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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe limit applied; present only when more advisories remain.
dateNoThe UTC date read, YYYY-MM-DD; today (UTC) when date was omitted.
errorNoPresent when the call failed. Absent on success.
shownNoAdvisories on this page; present only when more remain.
noticeNoGuidance on an empty date, a filter that matched nothing, an offset past the end, more pages, and index rows that could not be read.
truncatedNoTrue when matching advisories remain past this page; absent otherwise.
advisoriesNoAdvisories issued on date that match categories, control_element, and query, newest first: up to limit of them, starting at offset.
nextOffsetNooffset of the next page; present while matching advisories remain past this one.
totalCountNoAdvisories on date that match categories, control_element, and query, before paging.
appliedQueryNoTrimmed text query matched against subjects and details; absent when unset.
appliedCategoriesNoThe categories filter as the server normalized it; absent when omitted, which reads every advisory, uncategorized ones included.
appliedControlElementNoThe control_element filter as the server matched it: uppercased, each ICAO airport code in it mapped to its FAA identifier (KORD → ORD, KORD/ZAU → ORD/ZAU); absent when omitted.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so safety profile is covered. The description adds genuine behavioral context: newest-first ordering, inclusion of inactive/past advisories, and the exact row contents (advisory number, control element, subject, title lines, send time). It omits rate limits or pagination edge behavior, but the added context is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and scope in the first clause, and every sentence carries information. However, it is a very dense, comma-heavy run-on that could be split for easier scanning, slightly reducing readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a filtered, paginated list tool with a 100%-covered schema, output schema, and full annotations, nothing essential is missing. The description even explains row fields and the cross-reference to the full-text tool, exceeding what the structured fields require.

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 already documents every parameter in depth, including enum synonyms and the DCC/ICAO forms. The description largely restates these; its only real addition is that filters combine before limit/offset paging. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (ATCSCC advisories) with explicit scope: advisories issued on one UTC date, newest first, from the per-date index. The enumeration of advisory kinds (ground stops, reroutes, flow constrained areas, operations plans, CDM compression) and the 'NAS Status feed does not carry' clause let an agent distinguish it from siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for use — it covers historic/inactive advisories and per-date index entries the NAS Status feed lacks — and routes the agent to the sibling faa_delays_get_advisory to open full text. It does not explicitly state when not to use it versus list_active_events or get_operations_plan, so it stops short of full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faa_delays_list_referenceList FAA Delay Reference DataA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesWhat 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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
termsNoPresent for topic terms, alphabetical.
topicNoThe topic this result decodes.
artccsNoPresent for topic artccs, by code: the 25 US ARTCCs, including the New York and Oakland oceanic centers, plus Anchorage Oceanic, Guam, Auckland Oceanic, Toronto, and Vancouver, the other facilities NASR names as an airport's ARTCC. Every artcc faa_delays_get_airport_status returns is listed.
noticeNoUnreadable pacing-airport rows omitted from this snapshot.
fetchedAtNoPresent for topic pacing_airports: when this server fetched the list from the FAA (UTC ISO).
eventTypesNoPresent for topic event_types, in severity order.
identifiersNoPresent for topic identifiers.
pacingAirportsNoPresent for topic pacing_airports: the FAA pacing airports, read live and cached 6 h.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safe/idempotent profile is covered. The description adds that pacing_airports data is 'read live', hinting at freshness behavior, but that detail is largely duplicated in the schema and no other behavioral traits (caching, response size, rate limits) are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that leads with the high-value framing ('decode the vocabulary the other faa_delays tools return'). It is tightly written, though the enumerated topic list partially duplicates the schema's enum, making it slightly longer than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the enum fully specifies the input. For a single-enum reference-lookup tool the description is nearly complete; only minor behavioral detail (freshness/scope of the 'read live' data) is left implicit.

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% and the single `topic` enum is documented in full detail with per-value meanings. The description's topic list mirrors the enum without adding syntax or format guidance beyond it, so the schema does the heavy lifting and baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Decode the vocabulary') and names the exact resource: reference data for event types, terms, ARTCC codes, pacing airports, and identifier formats. It explicitly distinguishes itself from the sibling tools by describing itself as the decoder for what 'the other faa_delays tools return'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The framing 'decode the vocabulary the other faa_delays tools return' clearly signals when an agent should reach for this tool: when it needs to interpret opaque codes from the sibling tools. It stops short of stating exclusions or naming a specific alternative, so it is clear context rather than explicit routing.

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
    • Changedfaa_delays_get_airport_status9 fields changed
      • changedInput schema / properties / airports / description
        Previous value: -"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."New value: +"1–100 submitted US airport codes, 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. Validates every code, deduplicates FAA/ICAO equivalents, and processes the first 25 distinct airports with the canonical remainder returned as omittedAirports. City and airport names are not accepted."
      • changedInput schema / properties / airports / maxItems
        Previous value: -25New value: +100
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "not": {
        -      "required": [
        -        "error"
        -      ]
        -    },
        -    "required": [
        -      "fetchedAt",
        -      "airports"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "fetchedAt",
        +      "airports",
        +      "cap",
        +      "processedCount",
        +      "omittedAirports"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • changedOutput schema / properties / airports / description
        Previous value: -"One row per requested airport, in request order, duplicates dropped."New value: +"One row per processed airport, in first-seen request order, up to 25 distinct FAA identifiers."
      • addedOutput schema / properties / airports / items / properties / reportedTimezone
        Added value: +{
        +  "description": "Original FAA time zone when a verified correction was applied.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / airports / items / properties / timezone / description
        Previous value: -"IANA-style time zone the FAA assigns to a pacing airport (US/Pacific)."New value: +"Effective IANA time zone; PHX reported as US/Mountain is corrected to America/Phoenix."
      • addedOutput schema / properties / cap
        Added value: +{
        +  "description": "Maximum distinct airports processed: 25.",
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / omittedAirports
        Added value: +{
        +  "description": "Canonical FAA identifiers left after the first 25 distinct airports, in first-seen order; empty when all were processed.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / processedCount
        Added value: +{
        +  "description": "Distinct airports processed in this response.",
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
    • Changedfaa_delays_list_advisories4 fields changed
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "Literal case-insensitive substring of subject or any details line, such as FCA005; combined with categories and control_element before paging. Omit to match every title.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / advisories / description
        Previous value: -"Advisories issued on date that match categories and control_element, newest first: up to limit of them, starting at offset."New value: +"Advisories issued on date that match categories, control_element, and query, newest first: up to limit of them, starting at offset."
      • addedOutput schema / properties / appliedQuery
        Added value: +{
        +  "description": "Trimmed text query matched against subjects and details; absent when unset.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / totalCount / description
        Previous value: -"Advisories on date that match categories and control_element, before paging."New value: +"Advisories on date that match categories, control_element, and query, before paging."
    • Changedfaa_delays_list_reference3 fields changed
      • addedOutput schema / properties / notice
        Added value: +{
        +  "description": "Unreadable pacing-airport rows omitted from this snapshot.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / pacingAirports / items / properties / reportedTimezone
        Added value: +{
        +  "description": "Original FAA time zone when a verified correction was applied.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / pacingAirports / items / properties / timezone / description
        Previous value: -"IANA-style time zone the FAA assigns (US/Pacific); FAA-supplied text."New value: +"Effective IANA time zone; PHX reported as US/Mountain is corrected to America/Phoenix."
  2. 6 tool updates
    • First observedfaa_delays_get_advisory
    • First observedfaa_delays_get_airport_status
    • First observedfaa_delays_get_operations_plan
    • First observedfaa_delays_list_active_events
    • First observedfaa_delays_list_advisories
    • First observedfaa_delays_list_reference

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.