faa-traffic-delays-mcp-server
Server Details
Track FAA ground stops, delay programs, airport delays, the operations plan, and ATCSCC advisories.
- Status
- Healthy
- 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
Scored across 6 tools
Each tool targets a distinct resource and action: listing vs. getting advisories, NAS-wide active events vs. single-airport status, operations plan summary vs. full advisory text, and reference decoding. The descriptions explicitly clarify boundaries and cross-references, leaving no ambiguity that would cause misselection.
All tools follow the same faa_delays_ prefix with snake_case and consistent get_/list_ verb patterns. The naming is highly predictable across the entire set.
Six tools are well-scoped for an FAA traffic delay monitoring server, with each tool earning its place. There is no bloat or thinness; the count matches the focused domain.
The surface covers active events, airport status, operations plans, advisory listing and full text, plus a reference decoder. Cross-references between tools fill gaps, and the read-only domain has no obvious missing operations.
Available Tools
6 toolsfaa_delays_get_advisoryGet ATCSCC AdvisoryARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | 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. | |
| advisory_number | Yes | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The character ceiling applied; present only when the text was cut. |
| url | No | Server-built advisory URL this tool read; it also opens in a browser. |
| date | No | The advisory UTC date read, YYYY-MM-DD. |
| text | No | Full advisory text (FAA-authored), cut at 50,000 characters when longer; truncated then reports the cut. |
| error | No | Present when the call failed. Absent on success. |
| found | No | Whether the FAA advisories database holds this advisory number on this UTC date. |
| shown | No | Characters of advisory text returned; present only when the text was cut. |
| title | No | Advisory title line as the FAA prints it (FAA-authored), e.g. ATCSCC ADVZY 082 DCC 09/29/2026 OPERATIONS PLAN. |
| notice | No | Guidance on a cut advisory text; present only when the text was cut. |
| sentAt | No | When the advisory was signed, as the FAA prints it: YY/MM/DD HH:MM in UTC. |
| subject | No | Advisory subject parsed from the title (CDM GROUND DELAY PROGRAM, OPERATIONS PLAN); absent when the title has another form. |
| guidance | No | Present when found is false: where to get a valid advisory number and date. |
| truncated | No | True when the advisory text was cut at the 50,000-character ceiling; absent otherwise. |
| totalChars | No | Full length of the advisory text in characters; present only when the text was cut. |
| effectiveTime | No | Effective period as the FAA prints it, DDHHMM-DDHHMM in UTC. |
| advisoryNumber | No | The advisory number read. |
| controlElement | No | Airport/ARTCC pair or facility the advisory concerns, parsed from the title (SEA/ZSE, DCC); absent when the title has another form. |
TDQS
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.
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.
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.
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.
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.
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 StatusARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| airports | Yes | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| notice | No | Guidance on quiet results, stale delay entries, or partial data. |
| airports | No | One row per requested airport, in request order, duplicates dropped. |
| fetchedAt | No | When 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld, yet the description adds substantial context beyond them: the feed's active-event-only coverage, the no_active_events sentinel, runway configuration availability being limited to listed airports, and the dual coordinate sourcing (feed vs NASR). These are exactly the behavioral traits an agent needs and cannot get from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and output contents, then layers caveats. It is a dense single paragraph and some return-value detail (event types, ARTCC, AAR) is arguably redundant given an output schema exists, but nothing is wasted or contradictory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, output-schema-backed read tool, the description covers the remaining ambiguity an agent faces: valid code formats, rejection behavior, feed coverage limits, and the no_active_events case. No material gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: it explains that FAA 3-character or ICAO codes are accepted, that a code naming no US airport is rejected, and how the code interacts with includedFacilities/departureScopeNm matching. That is useful validation and semantics beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('current FAA traffic management status') and scopes it to one or more US airports. The enumeration of what the status contains (headline status, active events, delay profile, runway configuration, AAR) makes the tool's output identity unambiguous next to siblings like list_active_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains feed behavior (only airports with an active event are listed, so a known airport returns no_active_events) which helps an agent interpret results, but it never states when to choose this tool over faa_delays_list_active_events or faa_delays_get_advisory. Usage is implied rather than contrasted with alternatives.
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 PlanARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| notice | No | Guidance on an empty plan, a missing advisory link, or partial data. |
| advisory | No | Reference 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. |
| fetchedAt | No | When 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. |
| announcements | No | Current ATCSCC announcements; [] when there are none, absent when that FAA list could not be read. |
| enRoutePlanned | No | En-route initiatives the FAA expects later today: route closures, severe-weather avoidance plans (SWAP), and coded departure routes (CDRs), in plan order. |
| terminalPlanned | No | Terminal programs the FAA expects later today: possible ground stops and delay programs by airport, in plan order. |
TDQS
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.
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.
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.
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.
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.
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 EventsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| event_types | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| shown | No | Events returned after the event_types filter. |
| events | No | Active events matching event_types, sorted by severity. |
| notice | No | Guidance on empty or partial results, stale delay entries, and how to get the missing data. |
| fetchedAt | No | When 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. |
| enRouteFeed | No | Whether Airspace Flow Programs were read: ok, unavailable (the en-route feed failed), or format_changed (it returned a format this server does not read). |
| totalActive | No | Every active event read, before the event_types filter; excludes AFPs when the en-route feed could not be read. |
| countsByType | No | Active 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. |
| appliedEventTypes | No | The event_types filter as the server normalized it, or every type when omitted. |
TDQS
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.
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.
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.
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.
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.
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 AdvisoriesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | 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. | |
| limit | No | Advisories per page, 1–200. | |
| offset | No | Matching advisories to skip, for paging: nextOffset from the previous page. | |
| categories | No | 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. | |
| control_element | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The limit applied; present only when more advisories remain. |
| date | No | The UTC date read, YYYY-MM-DD; today (UTC) when date was omitted. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Advisories on this page; present only when more remain. |
| notice | No | Guidance on an empty date, a filter that matched nothing, an offset past the end, more pages, and index rows that could not be read. |
| truncated | No | True when matching advisories remain past this page; absent otherwise. |
| advisories | No | Advisories issued on date that match categories and control_element, newest first: up to limit of them, starting at offset. |
| nextOffset | No | offset of the next page; present while matching advisories remain past this one. |
| totalCount | No | Advisories on date that match categories and control_element, before paging. |
| appliedCategories | No | The categories filter as the server normalized it; absent when omitted, which reads every advisory, uncategorized ones included. |
| appliedControlElement | No | The 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/open-world profile, and the description adds behavior the annotations cannot: newest-first ordering, inclusion of canceled and past-date advisories, default-to-today, and the quirk that CDM compression advisories are filed under no category. That is substantive operational context beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the action and ordering before enumerating categories and paging. Long, but nearly every clause carries distinct information; slight overloading of the first sentence costs it the top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return structure need not be re-explained, yet the description still summarizes row fields (advisory number, control element, subject, title lines, send time), and it covers filtering, paging, and follow-up routing. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds real semantics: categories omission includes uncategorized CDM compression advisories, and control_element only matches the indexed element (airports named solely in subject/details do not match). These parsing nuances beat the raw schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scope ('List the ATCSCC advisories issued on one UTC date, newest first') and enumerates the advisory families covered (ground stops, reroutes, FCAs, ops plans, CDM compression). It explicitly separates itself from the NAS Status feed and from sibling tools, so an agent can distinguish it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to reach for this tool (historical/inactive advisories that the NAS Status feed lacks), how to narrow (categories, control_element, limit/offset paging), and routes to the sibling faa_delays_get_advisory for the full text. The condition that selects the alternative is spelled out rather than implied.
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 DataARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| terms | No | Present for topic terms, alphabetical. |
| topic | No | The topic this result decodes. |
| artccs | No | Present 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. |
| fetchedAt | No | Present for topic pacing_airports: when this server fetched the list from the FAA (UTC ISO). |
| eventTypes | No | Present for topic event_types, in severity order. |
| identifiers | No | Present for topic identifiers. |
| pacingAirports | No | Present for topic pacing_airports: the FAA pacing airports, read live and cached 6 h. |
TDQS
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 a small behavioral detail ('pacing airports... read live'), but otherwise does not disclose caching, freshness, or response characteristics beyond what the annotations and output schema imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, densely packed sentence that leads with the tool's function and then enumerates the five topics. No filler, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explanation is not needed, and the description covers all five topic domains that the single parameter can select. Only marginal gaps around freshness/pagination, minor for a reference lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the enum is fully documented in the schema itself; the description's topic list largely restates that enum. Baseline 3 is appropriate since the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (decode) and a specific resource (the vocabulary/types used by the faa_delays tool family), and enumerates the domains covered. It is clearly distinguishable from the fetching siblings like get_advisory or list_active_events, since this is a lookup/reference tool, not a data-retrieval one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the usage context strongly: use this to interpret the codes and terms returned by the other faa_delays tools, and names those tools. It does not give explicit when-not guidance or spell out prerequisites, but the routing intent is clear.
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.
6 tool updates
- First observed
faa_delays_get_advisory - First observed
faa_delays_get_airport_status - First observed
faa_delays_get_operations_plan - First observed
faa_delays_list_active_events - First observed
faa_delays_list_advisories - First observed
faa_delays_list_reference
Related MCP Connectors
FAA Delays MCP — live US airport operational status (FAA, free, no auth).
Fetch METARs, TAFs, PIREPs, and domestic SIGMETs from the NWS Aviation Weather Center.
Airport security wait times, forecasts, FAA delays, EES border queues and baggage stats.
Read-only airport delay, weather, and 24h forecast tools for AI assistants. Airport-level only.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides live US airport operational status and delay data from the FAA, free and without authentication.4 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides aviation weather data including METAR, TAF, PIREPs, AIRMET/SIGMET, station info, and winds aloft forecasts.140 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables querying aviation weather, FAA TFRs, NWS alerts, flight tracking, and Amtrak train status using public APIs. No API keys or private infrastructure required.-
- AlicenseNot gradedqualityCmaintenanceProvides real-time flight status, airport weather, delays, cheap flight deals, and TSA wait times without requiring an API key.13 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.