Delta Air Lines Capabilities
Naftiko 0.5 capability definitions for Delta Air Lines - 100 capabilities showing integration workflows and service orchestrations.
Creates an ADA accommodation request for a passenger with disabilities.
naftiko: "0.5"
info:
label: "ADA Accommodation Request"
description: "Creates an ADA accommodation request for a passenger with disabilities."
tags:
- customer-service
- accessibility
- compliance
capability:
exposes:
- type: mcp
namespace: ada
port: 8080
tools:
- name: request-accommodation
description: "Submit ADA accommodation request."
inputParameters:
- name: pnr
in: body
type: string
description: "PNR."
- name: accommodation_type
in: body
type: string
description: "Accommodation type."
- name: station
in: body
type: string
description: "Station."
call: "ground-ops.create-ada"
with:
pnr: "{{pnr}}"
type: "{{accommodation_type}}"
station: "{{station}}"
outputParameters:
- name: request_id
type: string
mapping: "$.requestId"
consumes:
- type: http
namespace: ground-ops
baseUri: "https://groundops.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_ground_ops_token"
resources:
- name: ada
path: "/ada/request"
operations:
- name: create-ada
method: POST
Retrieves maintenance status, open MEL items, and next scheduled check for a Delta aircraft by tail number.
naftiko: "0.5"
info:
label: "Aircraft Maintenance Status Check"
description: "Retrieves maintenance status, open MEL items, and next scheduled check for a Delta aircraft by tail number."
tags:
- maintenance
- flight-operations
- safety
capability:
exposes:
- type: mcp
namespace: mx-status
port: 8080
tools:
- name: get-mx-status
description: "Check aircraft maintenance status by tail number."
inputParameters:
- name: tail_number
in: body
type: string
description: "Aircraft tail number."
call: "mx-api.get-status"
with:
tail: "{{tail_number}}"
outputParameters:
- name: status
type: string
mapping: "$.maintenanceStatus"
- name: open_items
type: array
mapping: "$.openMELItems"
- name: next_check
type: string
mapping: "$.nextScheduledCheck"
consumes:
- type: http
namespace: mx-api
baseUri: "https://maintenance.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_mx_token"
resources:
- name: aircraft
path: "/aircraft/{{tail}}/status"
inputParameters:
- name: tail
in: path
operations:
- name: get-status
method: GET
Executes an aircraft swap by finding replacement, updating flight records, recalculating weight/balance, and notifying dispatch.
naftiko: "0.5"
info:
label: "Aircraft Swap Orchestrator"
description: "Executes an aircraft swap by finding replacement, updating flight records, recalculating weight/balance, and notifying dispatch."
tags:
- flight-operations
- dispatch
- fleet-management
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: aircraft-swap
port: 8080
tools:
- name: execute-swap
description: "Execute an aircraft swap for a flight."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: original_tail
in: body
type: string
description: "Original tail number."
- name: station
in: body
type: string
description: "Station."
steps:
- name: find-replacement
type: call
call: "fleet-api.find-available"
with:
station: "{{station}}"
original: "{{original_tail}}"
- name: update-flight
type: call
call: "pss.update-aircraft"
with:
flight: "{{flight_number}}"
new_tail: "{{find-replacement.tail_number}}"
- name: recalc-wb
type: call
call: "dispatch-api.recalc-wb"
with:
flight: "{{flight_number}}"
tail: "{{find-replacement.tail_number}}"
- name: notify-ops
type: call
call: "msteams.post-channel-message"
with:
channel_id: "{{ops_channel}}"
text: "Aircraft swap: {{flight_number}} — {{original_tail}} -> {{find-replacement.tail_number}} at {{station}}"
consumes:
- type: http
namespace: fleet-api
baseUri: "https://fleet.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_fleet_token"
resources:
- name: available
path: "/aircraft/available"
operations:
- name: find-available
method: POST
- type: http
namespace: pss
baseUri: "https://pss.delta.com/api/v2"
authentication:
type: bearer
token: "$secrets.delta_pss_token"
resources:
- name: aircraft
path: "/flights/{{flight}}/aircraft"
inputParameters:
- name: flight
in: path
operations:
- name: update-aircraft
method: PUT
- type: http
namespace: dispatch-api
baseUri: "https://dispatch.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_dispatch_token"
resources:
- name: wb
path: "/weight-balance/recalculate"
operations:
- name: recalc-wb
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Coordinates the aircraft turnaround process including fueling, ground crew dispatch, catering, and cleaning for an arriving flight at a Delta hub.
naftiko: "0.5"
info:
label: "Aircraft Turnaround Orchestrator"
description: "Coordinates the aircraft turnaround process including fueling, ground crew dispatch, catering, and cleaning for an arriving flight at a Delta hub."
tags:
- ground-ops
- flight-operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: turnaround
port: 8080
tools:
- name: coordinate-turnaround
description: "Initiate turnaround activities for an arriving aircraft."
inputParameters:
- name: flight_number
in: body
type: string
description: "Arriving flight number."
- name: gate
in: body
type: string
description: "Gate number."
- name: station
in: body
type: string
description: "Airport station code."
steps:
- name: request-fueling
type: call
call: "ground-ops.create-fuel-request"
with:
flight: "{{flight_number}}"
gate: "{{gate}}"
station: "{{station}}"
- name: dispatch-ground-crew
type: call
call: "ground-ops.dispatch-crew"
with:
gate: "{{gate}}"
station: "{{station}}"
- name: order-catering
type: call
call: "catering-api.create-order"
with:
flight: "{{flight_number}}"
station: "{{station}}"
- name: notify-ops
type: call
call: "msteams.post-channel-message"
with:
channel_id: "{{ops_channel_id}}"
text: "Turnaround initiated for {{flight_number}} at gate {{gate}} ({{station}}). Fuel: {{request-fueling.status}} | Crew: {{dispatch-ground-crew.status}}"
consumes:
- type: http
namespace: ground-ops
baseUri: "https://groundops.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_ground_ops_token"
resources:
- name: fueling
path: "/fueling/request"
operations:
- name: create-fuel-request
method: POST
- name: crew-dispatch
path: "/crew/dispatch"
operations:
- name: dispatch-crew
method: POST
- type: http
namespace: catering-api
baseUri: "https://catering.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_catering_token"
resources:
- name: orders
path: "/orders"
operations:
- name: create-order
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Retrieves current shift staffing levels at a Delta station comparing against required minimums.
naftiko: "0.5"
info:
label: "Airport Staffing Report"
description: "Retrieves current shift staffing levels at a Delta station comparing against required minimums."
tags:
- ground-ops
- workforce-management
- workday
capability:
exposes:
- type: mcp
namespace: staffing
port: 8080
tools:
- name: get-staffing
description: "Get staffing levels for an airport station."
inputParameters:
- name: station
in: body
type: string
description: "Airport station."
- name: shift
in: body
type: string
description: "Shift period."
call: "workforce-api.get-staffing"
with:
station: "{{station}}"
shift: "{{shift}}"
outputParameters:
- name: current_staff
type: number
mapping: "$.currentStaff"
- name: required_minimum
type: number
mapping: "$.requiredMinimum"
consumes:
- type: http
namespace: workforce-api
baseUri: "https://workforce.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_workforce_token"
resources:
- name: staffing
path: "/stations/{{station}}/staffing"
inputParameters:
- name: station
in: path
operations:
- name: get-staffing
method: GET
Retrieves ancillary revenue details for a booking including upgrades, bag fees, and purchases.
naftiko: "0.5"
info:
label: "Ancillary Revenue Lookup"
description: "Retrieves ancillary revenue details for a booking including upgrades, bag fees, and purchases."
tags:
- revenue-management
- customer-service
capability:
exposes:
- type: mcp
namespace: ancillary
port: 8080
tools:
- name: get-ancillary
description: "Get ancillary revenue for a booking."
inputParameters:
- name: pnr
in: body
type: string
description: "PNR."
call: "analytics-api.get-ancillaries"
with:
pnr: "{{pnr}}"
outputParameters:
- name: total
type: number
mapping: "$.totalAncillaryRevenue"
- name: items
type: array
mapping: "$.items"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://analytics.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_analytics_token"
resources:
- name: ancillaries
path: "/bookings/{{pnr}}/ancillaries"
inputParameters:
- name: pnr
in: path
operations:
- name: get-ancillaries
method: GET
When an aircraft is grounded, searches TechOps parts inventory, arranges expedited shipping, creates a SAP PO, and notifies maintenance control.
naftiko: "0.5"
info:
label: "AOG Parts Expedite Orchestrator"
description: "When an aircraft is grounded, searches TechOps parts inventory, arranges expedited shipping, creates a SAP PO, and notifies maintenance control."
tags:
- maintenance
- logistics
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: aog-parts
port: 8080
tools:
- name: expedite-aog-part
description: "Find and expedite delivery of a critical AOG part."
inputParameters:
- name: part_number
in: body
type: string
description: "Part number."
- name: tail_number
in: body
type: string
description: "AOG aircraft."
- name: station
in: body
type: string
description: "Station."
steps:
- name: search-inventory
type: call
call: "parts-api.search-network"
with:
part: "{{part_number}}"
- name: arrange-shipping
type: call
call: "logistics-api.expedite"
with:
part: "{{part_number}}"
from: "{{search-inventory.closest_station}}"
to: "{{station}}"
- name: create-po
type: call
call: "sap.create-po"
with:
material: "{{part_number}}"
plant: "{{station}}"
priority: "AOG"
- name: notify-mx
type: call
call: "msteams.post-channel-message"
with:
channel_id: "{{mx_channel}}"
text: "AOG: {{part_number}} for {{tail_number}} at {{station}} | From: {{search-inventory.closest_station}} | ETA: {{arrange-shipping.eta}}"
consumes:
- type: http
namespace: parts-api
baseUri: "https://techops.delta.com/api/v1/parts"
authentication:
type: bearer
token: "$secrets.delta_mx_token"
resources:
- name: search
path: "/search/network"
operations:
- name: search-network
method: POST
- type: http
namespace: logistics-api
baseUri: "https://logistics.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_logistics_token"
resources:
- name: expedite
path: "/shipments/expedite"
operations:
- name: expedite
method: POST
- type: http
namespace: sap
baseUri: "https://delta-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: po
path: "/A_PurchaseOrder"
operations:
- name: create-po
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Retrieves baggage claim carousel assignment and delivery status for a flight arrival.
naftiko: "0.5"
info:
label: "Baggage Claim Status Lookup"
description: "Retrieves baggage claim carousel assignment and delivery status for a flight arrival."
tags:
- customer-service
- baggage
- ground-ops
capability:
exposes:
- type: mcp
namespace: baggage
port: 8080
tools:
- name: get-baggage-claim
description: "Look up baggage claim carousel for a flight arrival."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: station
in: body
type: string
description: "Arrival airport code."
call: "baggage-api.get-claim"
with:
flight: "{{flight_number}}"
station: "{{station}}"
outputParameters:
- name: carousel
type: string
mapping: "$.carouselNumber"
- name: status
type: string
mapping: "$.deliveryStatus"
consumes:
- type: http
namespace: baggage-api
baseUri: "https://baggage.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_baggage_token"
resources:
- name: claims
path: "/claim/{{flight}}"
inputParameters:
- name: flight
in: path
operations:
- name: get-claim
method: GET
Tracks boarding progress for a flight showing scanned vs expected passengers and boarding group status.
naftiko: "0.5"
info:
label: "Boarding Process Tracker"
description: "Tracks boarding progress for a flight showing scanned vs expected passengers and boarding group status."
tags:
- ground-ops
- flight-operations
- tracking
capability:
exposes:
- type: mcp
namespace: boarding
port: 8080
tools:
- name: get-boarding-status
description: "Get real-time boarding progress."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: gate
in: body
type: string
description: "Gate."
call: "gate-api.get-boarding"
with:
flight: "{{flight_number}}"
gate: "{{gate}}"
outputParameters:
- name: boarded
type: number
mapping: "$.passengersBoarded"
- name: expected
type: number
mapping: "$.totalExpected"
- name: current_zone
type: string
mapping: "$.currentZone"
consumes:
- type: http
namespace: gate-api
baseUri: "https://groundops.delta.com/api/v1/gates"
authentication:
type: bearer
token: "$secrets.delta_ground_ops_token"
resources:
- name: boarding
path: "/{{gate}}/boarding-status"
inputParameters:
- name: gate
in: path
operations:
- name: get-boarding
method: GET
Finds crew with required language skills for international route assignments.
naftiko: "0.5"
info:
label: "Cabin Crew Language Search"
description: "Finds crew with required language skills for international route assignments."
tags:
- crew-scheduling
- compliance
- international
capability:
exposes:
- type: mcp
namespace: crew-lang
port: 8080
tools:
- name: search-language-crew
description: "Find language-qualified crew."
inputParameters:
- name: language
in: body
type: string
description: "Required language."
- name: base
in: body
type: string
description: "Crew base."
call: "crew-api.search-language"
with:
language: "{{language}}"
base: "{{base}}"
outputParameters:
- name: qualified
type: array
mapping: "$.qualifiedCrew"
- name: count
type: number
mapping: "$.totalAvailable"
consumes:
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: language
path: "/crew/language-search"
operations:
- name: search-language
method: POST
Retrieves cabin pressurization telemetry from the aircraft health monitoring system.
naftiko: "0.5"
info:
label: "Cabin Pressure System Monitoring"
description: "Retrieves cabin pressurization telemetry from the aircraft health monitoring system."
tags:
- maintenance
- safety
- monitoring
capability:
exposes:
- type: mcp
namespace: ahm
port: 8080
tools:
- name: get-pressure-data
description: "Pull cabin pressure telemetry."
inputParameters:
- name: tail_number
in: body
type: string
description: "Tail number."
call: "ahm-api.get-pressure"
with:
tail: "{{tail_number}}"
outputParameters:
- name: cabin_altitude
type: number
mapping: "$.cabinAltitude"
- name: status
type: string
mapping: "$.systemStatus"
consumes:
- type: http
namespace: ahm-api
baseUri: "https://ahm.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_ahm_token"
resources:
- name: pressure
path: "/aircraft/{{tail}}/pressure"
inputParameters:
- name: tail
in: path
operations:
- name: get-pressure
method: GET
Creates a new Delta Cargo booking with shipper, routing, commodity, and weight details.
naftiko: "0.5"
info:
label: "Cargo Booking Creation"
description: "Creates a new Delta Cargo booking with shipper, routing, commodity, and weight details."
tags:
- cargo
- logistics
capability:
exposes:
- type: mcp
namespace: cargo-booking
port: 8080
tools:
- name: create-cargo-booking
description: "Create a new cargo booking."
inputParameters:
- name: shipper
in: body
type: string
description: "Shipper name."
- name: origin
in: body
type: string
description: "Origin airport."
- name: destination
in: body
type: string
description: "Destination airport."
- name: weight_kg
in: body
type: number
description: "Weight in kg."
call: "cargo-api.create-booking"
with:
shipper: "{{shipper}}"
origin: "{{origin}}"
destination: "{{destination}}"
weight: "{{weight_kg}}"
outputParameters:
- name: booking_id
type: string
mapping: "$.bookingId"
- name: awb_number
type: string
mapping: "$.awbNumber"
consumes:
- type: http
namespace: cargo-api
baseUri: "https://cargo.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_cargo_token"
resources:
- name: bookings
path: "/bookings"
operations:
- name: create-booking
method: POST
Generates daily Delta Cargo revenue summary including shipments, revenue by commodity, and capacity utilization.
naftiko: "0.5"
info:
label: "Cargo Revenue Daily Summary"
description: "Generates daily Delta Cargo revenue summary including shipments, revenue by commodity, and capacity utilization."
tags:
- cargo
- revenue-management
- analytics
capability:
exposes:
- type: mcp
namespace: cargo-analytics
port: 8080
tools:
- name: get-cargo-summary
description: "Generate daily cargo revenue summary."
inputParameters:
- name: date
in: body
type: string
description: "Report date."
call: "cargo-api.get-daily"
with:
date: "{{date}}"
outputParameters:
- name: total_revenue
type: number
mapping: "$.totalRevenue"
- name: shipments
type: number
mapping: "$.totalShipments"
consumes:
- type: http
namespace: cargo-api
baseUri: "https://cargo.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_cargo_token"
resources:
- name: daily
path: "/analytics/daily-summary"
operations:
- name: get-daily
method: POST
Retrieves tracking status for a Delta Cargo shipment by air waybill number.
naftiko: "0.5"
info:
label: "Cargo Shipment Tracking"
description: "Retrieves tracking status for a Delta Cargo shipment by air waybill number."
tags:
- cargo
- logistics
- tracking
capability:
exposes:
- type: mcp
namespace: cargo-tracking
port: 8080
tools:
- name: track-cargo
description: "Track a Delta Cargo shipment by AWB number."
inputParameters:
- name: awb_number
in: body
type: string
description: "Air waybill number."
call: "cargo-api.get-tracking"
with:
awb: "{{awb_number}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: current_location
type: string
mapping: "$.currentLocation"
- name: eta
type: string
mapping: "$.estimatedArrival"
consumes:
- type: http
namespace: cargo-api
baseUri: "https://cargo.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_cargo_token"
resources:
- name: tracking
path: "/tracking/{{awb}}"
inputParameters:
- name: awb
in: path
operations:
- name: get-tracking
method: GET
Creates or updates a catering order for a flight departure.
naftiko: "0.5"
info:
label: "Catering Order Management"
description: "Creates or updates a catering order for a flight departure."
tags:
- catering
- flight-operations
capability:
exposes:
- type: mcp
namespace: catering
port: 8080
tools:
- name: manage-catering
description: "Manage catering order for a flight."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: station
in: body
type: string
description: "Station."
- name: meal_counts
in: body
type: string
description: "Meal counts by cabin."
call: "catering-api.upsert-order"
with:
flight: "{{flight_number}}"
station: "{{station}}"
meals: "{{meal_counts}}"
outputParameters:
- name: order_id
type: string
mapping: "$.orderId"
consumes:
- type: http
namespace: catering-api
baseUri: "https://catering.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_catering_token"
resources:
- name: orders
path: "/orders"
operations:
- name: upsert-order
method: PUT
Synchronizes seat inventory with codeshare partners including Air France-KLM, Virgin Atlantic, and other SkyTeam airlines.
naftiko: "0.5"
info:
label: "Codeshare Inventory Sync"
description: "Synchronizes seat inventory with codeshare partners including Air France-KLM, Virgin Atlantic, and other SkyTeam airlines."
tags:
- flight-operations
- partnerships
- revenue-management
capability:
exposes:
- type: mcp
namespace: codeshare
port: 8080
tools:
- name: sync-inventory
description: "Sync seat inventory with a codeshare partner."
inputParameters:
- name: partner_code
in: body
type: string
description: "Partner airline code."
- name: flight_number
in: body
type: string
description: "Marketing flight number."
- name: flight_date
in: body
type: string
description: "Flight date."
call: "inventory-api.sync-partner"
with:
partner: "{{partner_code}}"
flight: "{{flight_number}}"
date: "{{flight_date}}"
outputParameters:
- name: sync_status
type: string
mapping: "$.syncStatus"
- name: seats_synced
type: number
mapping: "$.seatsSynced"
consumes:
- type: http
namespace: inventory-api
baseUri: "https://inventory.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_inventory_token"
resources:
- name: codeshare
path: "/codeshare/sync"
operations:
- name: sync-partner
method: POST
Monitors tight passenger connections at Delta hubs and identifies at-risk connecting passengers.
naftiko: "0.5"
info:
label: "Passenger Connection Monitor"
description: "Monitors tight passenger connections at Delta hubs and identifies at-risk connecting passengers."
tags:
- customer-service
- flight-operations
- connections
capability:
exposes:
- type: mcp
namespace: connections
port: 8080
tools:
- name: check-connections
description: "Identify passengers with tight connections."
inputParameters:
- name: hub_station
in: body
type: string
description: "Hub code."
- name: threshold_minutes
in: body
type: number
description: "Threshold in minutes."
call: "pss.get-tight-connections"
with:
station: "{{hub_station}}"
threshold: "{{threshold_minutes}}"
outputParameters:
- name: at_risk_passengers
type: array
mapping: "$.atRiskPassengers"
- name: total_at_risk
type: number
mapping: "$.totalAtRisk"
consumes:
- type: http
namespace: pss
baseUri: "https://pss.delta.com/api/v2"
authentication:
type: bearer
token: "$secrets.delta_pss_token"
resources:
- name: connections
path: "/connections/at-risk"
operations:
- name: get-tight-connections
method: POST
Generates monthly crew bid packages with trip pairings and credit values for bidding.
naftiko: "0.5"
info:
label: "Crew Bid Package Generation"
description: "Generates monthly crew bid packages with trip pairings and credit values for bidding."
tags:
- crew-scheduling
- operations
capability:
exposes:
- type: mcp
namespace: crew-bidding
port: 8080
tools:
- name: generate-bid-package
description: "Generate a crew bid package."
inputParameters:
- name: base
in: body
type: string
description: "Crew base."
- name: position
in: body
type: string
description: "Position type."
- name: bid_month
in: body
type: string
description: "Bid month."
call: "crew-api.generate-bids"
with:
base: "{{base}}"
position: "{{position}}"
month: "{{bid_month}}"
outputParameters:
- name: package_id
type: string
mapping: "$.packageId"
- name: total_pairings
type: number
mapping: "$.totalPairings"
consumes:
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: bids
path: "/bidding/generate"
operations:
- name: generate-bids
method: POST
Verifies crew member FAA duty time compliance, returning remaining legal hours and rest requirements.
naftiko: "0.5"
info:
label: "Crew Duty Time Compliance Check"
description: "Verifies crew member FAA duty time compliance, returning remaining legal hours and rest requirements."
tags:
- crew-scheduling
- compliance
- safety
capability:
exposes:
- type: mcp
namespace: crew-compliance
port: 8080
tools:
- name: check-duty-time
description: "Check crew duty time against FAA Part 117 limits."
inputParameters:
- name: employee_id
in: body
type: string
description: "Crew member employee ID."
call: "crew-api.get-duty-status"
with:
employee_id: "{{employee_id}}"
outputParameters:
- name: hours_flown
type: number
mapping: "$.hoursFlown"
- name: remaining_hours
type: number
mapping: "$.remainingLegalHours"
- name: compliant
type: boolean
mapping: "$.isCompliant"
consumes:
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: duty-status
path: "/crew/{{employee_id}}/duty-status"
inputParameters:
- name: employee_id
in: path
operations:
- name: get-duty-status
method: GET
Books crew layover hotels by checking contracted hotel availability, booking rooms, arranging transport, and notifying crew.
naftiko: "0.5"
info:
label: "Crew Hotel Booking Orchestrator"
description: "Books crew layover hotels by checking contracted hotel availability, booking rooms, arranging transport, and notifying crew."
tags:
- crew-scheduling
- logistics
- operations
capability:
exposes:
- type: mcp
namespace: crew-hotels
port: 8080
tools:
- name: book-crew-hotel
description: "Book crew layover hotels."
inputParameters:
- name: crew_count
in: body
type: number
description: "Number of crew."
- name: station
in: body
type: string
description: "Layover station."
- name: check_in
in: body
type: string
description: "Check-in time."
- name: trip_id
in: body
type: string
description: "Trip ID."
steps:
- name: check-availability
type: call
call: "hotel-api.check-availability"
with:
station: "{{station}}"
rooms: "{{crew_count}}"
- name: book-rooms
type: call
call: "hotel-api.book-rooms"
with:
hotel_id: "{{check-availability.hotel_id}}"
rooms: "{{crew_count}}"
- name: arrange-van
type: call
call: "transport-api.book-crew-van"
with:
station: "{{station}}"
hotel: "{{check-availability.hotel_id}}"
- name: notify-crew
type: call
call: "crew-comms.send-update"
with:
trip_id: "{{trip_id}}"
message: "Hotel: {{check-availability.hotel_name}} | Confirmation: {{book-rooms.confirmation}}"
consumes:
- type: http
namespace: hotel-api
baseUri: "https://crew-services.delta.com/api/v1/hotels"
authentication:
type: bearer
token: "$secrets.delta_crew_services_token"
resources:
- name: availability
path: "/availability"
operations:
- name: check-availability
method: POST
- name: bookings
path: "/bookings"
operations:
- name: book-rooms
method: POST
- type: http
namespace: transport-api
baseUri: "https://crew-services.delta.com/api/v1/transport"
authentication:
type: bearer
token: "$secrets.delta_crew_services_token"
resources:
- name: vans
path: "/crew-van/book"
operations:
- name: book-crew-van
method: POST
- type: http
namespace: crew-comms
baseUri: "https://crew.delta.com/api/v1/comms"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: updates
path: "/trips/{{trip_id}}/notify"
inputParameters:
- name: trip_id
in: path
operations:
- name: send-update
method: POST
Checks crew passport and visa expiration against upcoming international assignments.
naftiko: "0.5"
info:
label: "Crew Passport and Visa Check"
description: "Checks crew passport and visa expiration against upcoming international assignments."
tags:
- crew-scheduling
- compliance
- international
capability:
exposes:
- type: mcp
namespace: crew-docs
port: 8080
tools:
- name: check-documents
description: "Verify crew travel documents."
inputParameters:
- name: employee_id
in: body
type: string
description: "Employee ID."
- name: destination
in: body
type: string
description: "Destination country."
call: "crew-api.check-docs"
with:
employee_id: "{{employee_id}}"
country: "{{destination}}"
outputParameters:
- name: passport_valid
type: boolean
mapping: "$.passportValid"
- name: visa_valid
type: boolean
mapping: "$.visaValid"
consumes:
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: docs
path: "/crew/{{employee_id}}/documents/check"
inputParameters:
- name: employee_id
in: path
operations:
- name: check-docs
method: POST
Finds and assigns a qualified reserve crew member when a crew member calls in sick, checking duty time compliance and notifying scheduling.
naftiko: "0.5"
info:
label: "Crew Reserve Callout Orchestrator"
description: "Finds and assigns a qualified reserve crew member when a crew member calls in sick, checking duty time compliance and notifying scheduling."
tags:
- crew-scheduling
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: crew-reserve
port: 8080
tools:
- name: callout-reserve
description: "Find and assign a reserve crew member for an open trip."
inputParameters:
- name: trip_id
in: body
type: string
description: "Trip pairing ID."
- name: base
in: body
type: string
description: "Crew base (ATL, MSP, DTW, SLC, SEA)."
- name: position
in: body
type: string
description: "Position needed."
steps:
- name: find-reserves
type: call
call: "crew-api.search-reserves"
with:
base: "{{base}}"
position: "{{position}}"
- name: verify-duty
type: call
call: "crew-api.verify-duty-time"
with:
employee_id: "{{find-reserves.top_candidate}}"
trip_id: "{{trip_id}}"
- name: assign-trip
type: call
call: "crew-api.assign-trip"
with:
employee_id: "{{find-reserves.top_candidate}}"
trip_id: "{{trip_id}}"
- name: notify-scheduling
type: call
call: "msteams.post-channel-message"
with:
channel_id: "{{scheduling_channel}}"
text: "Reserve assigned: {{find-reserves.top_candidate_name}} to trip {{trip_id}} at {{base}}"
consumes:
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: reserves
path: "/reserves/search"
operations:
- name: search-reserves
method: POST
- name: duty-verify
path: "/crew/{{employee_id}}/duty-verify"
inputParameters:
- name: employee_id
in: path
operations:
- name: verify-duty-time
method: POST
- name: assignments
path: "/trips/assign"
operations:
- name: assign-trip
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Processes a customer complaint by creating a Salesforce case, checking SkyMiles tier, determining compensation, and sending a resolution email.
naftiko: "0.5"
info:
label: "Customer Complaint Resolution Orchestrator"
description: "Processes a customer complaint by creating a Salesforce case, checking SkyMiles tier, determining compensation, and sending a resolution email."
tags:
- customer-service
- salesforce
- loyalty
- notifications
capability:
exposes:
- type: mcp
namespace: complaint-resolution
port: 8080
tools:
- name: resolve-complaint
description: "Process a customer complaint to resolution."
inputParameters:
- name: skymiles_number
in: body
type: string
description: "SkyMiles number."
- name: complaint_type
in: body
type: string
description: "Complaint type."
- name: flight_number
in: body
type: string
description: "Related flight."
- name: description
in: body
type: string
description: "Description."
steps:
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "Complaint: {{complaint_type}} — {{flight_number}}"
description: "{{description}}"
priority: "High"
- name: check-tier
type: call
call: "loyalty-api.get-member"
with:
member_id: "{{skymiles_number}}"
- name: issue-compensation
type: call
call: "loyalty-api.issue-credit"
with:
member_id: "{{skymiles_number}}"
complaint_type: "{{complaint_type}}"
tier: "{{check-tier.medallionTier}}"
- name: send-resolution
type: call
call: "notification-api.send-email"
with:
member_id: "{{skymiles_number}}"
template: "complaint_resolution"
credit: "{{issue-compensation.creditAmount}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://delta.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: loyalty-api
baseUri: "https://loyalty.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_loyalty_token"
resources:
- name: members
path: "/members/{{member_id}}"
inputParameters:
- name: member_id
in: path
operations:
- name: get-member
method: GET
- name: credits
path: "/members/{{member_id}}/credits"
inputParameters:
- name: member_id
in: path
operations:
- name: issue-credit
method: POST
- type: http
namespace: notification-api
baseUri: "https://notifications.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_notification_token"
resources:
- name: email
path: "/email/send"
operations:
- name: send-email
method: POST
Generates and submits customs documentation for international cargo including invoice, declaration, and broker submission.
naftiko: "0.5"
info:
label: "Customs Documentation Orchestrator"
description: "Generates and submits customs documentation for international cargo including invoice, declaration, and broker submission."
tags:
- cargo
- compliance
- logistics
- customs
capability:
exposes:
- type: mcp
namespace: customs
port: 8080
tools:
- name: process-customs
description: "Generate and submit customs documentation for cargo."
inputParameters:
- name: awb_number
in: body
type: string
description: "Air waybill."
- name: destination_country
in: body
type: string
description: "Destination country."
- name: commodity_code
in: body
type: string
description: "HS commodity code."
steps:
- name: generate-invoice
type: call
call: "cargo-api.generate-invoice"
with:
awb: "{{awb_number}}"
country: "{{destination_country}}"
- name: generate-declaration
type: call
call: "cargo-api.generate-declaration"
with:
awb: "{{awb_number}}"
hs_code: "{{commodity_code}}"
- name: submit-to-broker
type: call
call: "customs-api.submit"
with:
awb: "{{awb_number}}"
invoice: "{{generate-invoice.invoice_id}}"
declaration: "{{generate-declaration.declaration_id}}"
consumes:
- type: http
namespace: cargo-api
baseUri: "https://cargo.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_cargo_token"
resources:
- name: invoices
path: "/documentation/invoice"
operations:
- name: generate-invoice
method: POST
- name: declarations
path: "/documentation/declaration"
operations:
- name: generate-declaration
method: POST
- type: http
namespace: customs-api
baseUri: "https://customs.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_customs_token"
resources:
- name: submissions
path: "/submit"
operations:
- name: submit
method: POST
Retrieves the current status of all critical flight operations system monitors from Datadog and returns a structured health summary for the operations control center.
naftiko: "0.5"
info:
label: "Datadog Flight Systems Health Monitor"
description: "Retrieves the current status of all critical flight operations system monitors from Datadog and returns a structured health summary for the operations control center."
tags:
- observability
- monitoring
- datadog
- operations
capability:
exposes:
- type: mcp
namespace: systems-health
port: 8080
tools:
- name: get-flight-systems-health
description: "Given a Datadog environment and service tag, retrieve monitor statuses for the matching flight operations systems and return a structured health report. Use at the start of any operational incident investigation."
inputParameters:
- name: service_tag
in: body
type: string
description: "Datadog service tag to filter monitors (e.g. service:reservations or env:production)."
call: datadog.get-monitors
with:
monitor_tags: "{{service_tag}}"
outputParameters:
- name: monitors
type: array
mapping: "$.monitors"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apikey
key: DD-API-KEY
value: "$secrets.datadog_api_key"
placement: header
resources:
- name: monitors
path: "/monitor"
inputParameters:
- name: monitor_tags
in: query
operations:
- name: get-monitors
method: GET
When Datadog detects elevated latency on the reservation API, creates a PagerDuty incident and notifies the technology operations Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Datadog Reservation System Latency Alert"
description: "When Datadog detects elevated latency on the reservation API, creates a PagerDuty incident and notifies the technology operations Microsoft Teams channel."
tags:
- observability
- monitoring
- datadog
- pagerduty
- reservations
capability:
exposes:
- type: mcp
namespace: reservation-monitoring
port: 8080
tools:
- name: handle-reservation-latency-alert
description: "Given a Datadog latency alert for the reservation API exceeding p99 thresholds, create a PagerDuty incident and notify the technology operations Microsoft Teams channel for immediate investigation."
inputParameters:
- name: p99_latency_ms
in: body
type: number
description: "Measured p99 latency in milliseconds."
- name: threshold_ms
in: body
type: number
description: "Configured latency threshold in milliseconds."
- name: monitor_id
in: body
type: string
description: "Datadog monitor ID that triggered the alert."
steps:
- name: create-incident
type: call
call: pagerduty.create-incident
with:
title: "Reservation API latency breach: p99={{p99_latency_ms}}ms vs threshold {{threshold_ms}}ms"
urgency: high
service_id: "$secrets.pagerduty_reservation_service_id"
- name: notify-tech-ops
type: call
call: msteams.send-channel-message
with:
team_id: "$secrets.teams_tech_ops_team_id"
channel_id: "$secrets.teams_tech_ops_channel_id"
text: "Reservation API latency breach: p99={{p99_latency_ms}}ms (threshold: {{threshold_ms}}ms) | Monitor: {{monitor_id}} | PD: {{create-incident.html_url}}"
consumes:
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: apikey
key: Authorization
value: "$secrets.pagerduty_api_key"
placement: header
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Coordinates winter deicing by checking conditions, queuing aircraft, dispatching trucks, and notifying flight crew of holdover times.
naftiko: "0.5"
info:
label: "Deicing Coordination Orchestrator"
description: "Coordinates winter deicing by checking conditions, queuing aircraft, dispatching trucks, and notifying flight crew of holdover times."
tags:
- ground-ops
- flight-operations
- weather
- safety
capability:
exposes:
- type: mcp
namespace: deicing
port: 8080
tools:
- name: coordinate-deicing
description: "Coordinate deicing for a departing aircraft."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: tail_number
in: body
type: string
description: "Tail number."
- name: gate
in: body
type: string
description: "Gate."
- name: station
in: body
type: string
description: "Station."
steps:
- name: check-conditions
type: call
call: "weather-api.get-deice-conditions"
with:
station: "{{station}}"
- name: queue-aircraft
type: call
call: "ground-ops.queue-deicing"
with:
tail: "{{tail_number}}"
gate: "{{gate}}"
fluid: "{{check-conditions.recommended_fluid}}"
- name: dispatch-truck
type: call
call: "ground-ops.dispatch-deice-truck"
with:
gate: "{{gate}}"
station: "{{station}}"
- name: notify-crew
type: call
call: "crew-comms.send-message"
with:
flight: "{{flight_number}}"
message: "Deicing queued. Fluid: {{check-conditions.recommended_fluid}} | Wait: {{queue-aircraft.estimated_wait}} min | Holdover: {{check-conditions.holdover_time}} min"
consumes:
- type: http
namespace: weather-api
baseUri: "https://dispatch.delta.com/api/v1/weather"
authentication:
type: bearer
token: "$secrets.delta_dispatch_token"
resources:
- name: deice
path: "/deicing/{{station}}"
inputParameters:
- name: station
in: path
operations:
- name: get-deice-conditions
method: GET
- type: http
namespace: ground-ops
baseUri: "https://groundops.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_ground_ops_token"
resources:
- name: deice-queue
path: "/deicing/queue"
operations:
- name: queue-deicing
method: POST
- name: deice-trucks
path: "/deicing/dispatch"
operations:
- name: dispatch-deice-truck
method: POST
- type: http
namespace: crew-comms
baseUri: "https://crew.delta.com/api/v1/comms"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: messages
path: "/flights/{{flight}}/message"
inputParameters:
- name: flight
in: path
operations:
- name: send-message
method: POST
Checks current occupancy and capacity of a Delta Sky Club lounge at a specific airport.
naftiko: "0.5"
info:
label: "Delta Sky Club Capacity Check"
description: "Checks current occupancy and capacity of a Delta Sky Club lounge at a specific airport."
tags:
- customer-service
- lounge
- ground-ops
capability:
exposes:
- type: mcp
namespace: lounge
port: 8080
tools:
- name: check-sky-club
description: "Check Delta Sky Club capacity."
inputParameters:
- name: station
in: body
type: string
description: "Airport code."
- name: terminal
in: body
type: string
description: "Terminal."
call: "lounge-api.get-capacity"
with:
station: "{{station}}"
terminal: "{{terminal}}"
outputParameters:
- name: occupancy
type: number
mapping: "$.currentOccupancy"
- name: capacity
type: number
mapping: "$.maxCapacity"
consumes:
- type: http
namespace: lounge-api
baseUri: "https://lounges.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_lounge_token"
resources:
- name: capacity
path: "/sky-clubs/{{station}}/{{terminal}}"
inputParameters:
- name: station
in: path
- name: terminal
in: path
operations:
- name: get-capacity
method: GET
Coordinates recovery after a flight diversion including ground handling, passenger accommodations, crew rest, and rebooking.
naftiko: "0.5"
info:
label: "Diversion Recovery Orchestrator"
description: "Coordinates recovery after a flight diversion including ground handling, passenger accommodations, crew rest, and rebooking."
tags:
- flight-operations
- customer-service
- ground-ops
- servicenow
capability:
exposes:
- type: mcp
namespace: diversion
port: 8080
tools:
- name: handle-diversion
description: "Coordinate diversion recovery operations."
inputParameters:
- name: flight_number
in: body
type: string
description: "Diverted flight."
- name: diversion_airport
in: body
type: string
description: "Diversion airport."
- name: reason
in: body
type: string
description: "Diversion reason."
steps:
- name: arrange-handling
type: call
call: "ground-ops.request-handling"
with:
station: "{{diversion_airport}}"
flight: "{{flight_number}}"
- name: book-hotels
type: call
call: "hotel-api.book-accommodations"
with:
flight: "{{flight_number}}"
station: "{{diversion_airport}}"
- name: check-crew-rest
type: call
call: "crew-api.check-rest"
with:
flight: "{{flight_number}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Diversion: {{flight_number}} to {{diversion_airport}} — {{reason}}"
priority: "1"
consumes:
- type: http
namespace: ground-ops
baseUri: "https://groundops.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_ground_ops_token"
resources:
- name: handling
path: "/handling/request"
operations:
- name: request-handling
method: POST
- type: http
namespace: hotel-api
baseUri: "https://crew-services.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_services_token"
resources:
- name: accommodations
path: "/accommodations/book"
operations:
- name: book-accommodations
method: POST
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: rest
path: "/crew/rest-check"
operations:
- name: check-rest
method: POST
- type: http
namespace: servicenow
baseUri: "https://delta.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
When a new hire is created in Workday, provisions Microsoft 365 access, creates a ServiceNow onboarding ticket, and sends a Microsoft Teams welcome message to the team channel.
naftiko: "0.5"
info:
label: "Employee New Hire Onboarding"
description: "When a new hire is created in Workday, provisions Microsoft 365 access, creates a ServiceNow onboarding ticket, and sends a Microsoft Teams welcome message to the team channel."
tags:
- hr
- onboarding
- workday
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-employee-onboarding
description: "Given a Workday employee ID, provision Microsoft 365 access, open a ServiceNow onboarding ticket, and send a Microsoft Teams welcome message to the new hire's team channel."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "Workday worker ID for the new hire."
- name: start_date
in: body
type: string
description: "Employee start date in ISO 8601 format."
- name: department_team_id
in: body
type: string
description: "Microsoft Teams team ID for the new hire's department."
steps:
- name: get-employee
type: call
call: workday.get-worker
with:
worker_id: "{{workday_employee_id}}"
- name: provision-m365
type: call
call: msgraph.create-user
with:
displayName: "{{get-employee.full_name}}"
userPrincipalName: "{{get-employee.work_email}}"
department: "{{get-employee.department}}"
- name: create-snow-ticket
type: call
call: servicenow.create-incident
with:
category: hr_onboarding
short_description: "New hire onboarding: {{get-employee.full_name}}"
assigned_group: IT_Onboarding
- name: welcome-message
type: call
call: msteams.send-channel-message
with:
team_id: "{{department_team_id}}"
channel_id: "$secrets.teams_general_channel_id"
text: "Please welcome {{get-employee.full_name}} who joins us on {{start_date}}! IT onboarding ticket: {{create-snow-ticket.number}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: msgraph
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: users
path: "/users"
operations:
- name: create-user
method: POST
- type: http
namespace: servicenow
baseUri: "https://delta.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Monitors critical ETL data pipeline health in the Delta analytics platform.
naftiko: "0.5"
info:
label: "ETL Pipeline Health Check"
description: "Monitors critical ETL data pipeline health in the Delta analytics platform."
tags:
- data-engineering
- monitoring
- analytics
capability:
exposes:
- type: mcp
namespace: pipeline
port: 8080
tools:
- name: check-pipeline
description: "Check ETL pipeline status."
inputParameters:
- name: pipeline_name
in: body
type: string
description: "Pipeline name."
call: "data-api.get-pipeline-status"
with:
pipeline: "{{pipeline_name}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: last_run
type: string
mapping: "$.lastRunTime"
consumes:
- type: http
namespace: data-api
baseUri: "https://data-platform.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_data_token"
resources:
- name: pipelines
path: "/pipelines/{{pipeline}}/status"
inputParameters:
- name: pipeline
in: path
operations:
- name: get-pipeline-status
method: GET
Generates fleet utilization summary showing block hours, cycles, and aircraft availability for a fleet type.
naftiko: "0.5"
info:
label: "Fleet Utilization Report"
description: "Generates fleet utilization summary showing block hours, cycles, and aircraft availability for a fleet type."
tags:
- fleet-management
- analytics
capability:
exposes:
- type: mcp
namespace: fleet-analytics
port: 8080
tools:
- name: get-fleet-utilization
description: "Retrieve fleet utilization metrics."
inputParameters:
- name: fleet_type
in: body
type: string
description: "Fleet type."
- name: start_date
in: body
type: string
description: "Start date."
- name: end_date
in: body
type: string
description: "End date."
call: "fleet-api.get-utilization"
with:
fleet: "{{fleet_type}}"
start: "{{start_date}}"
end: "{{end_date}}"
outputParameters:
- name: total_block_hours
type: number
mapping: "$.totalBlockHours"
- name: avg_daily_utilization
type: number
mapping: "$.avgDailyUtilization"
consumes:
- type: http
namespace: fleet-api
baseUri: "https://fleet.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_fleet_token"
resources:
- name: utilization
path: "/utilization/report"
operations:
- name: get-utilization
method: POST
Assigns cabin crew positions for a flight based on seniority and qualifications.
naftiko: "0.5"
info:
label: "Flight Attendant Position Assignment"
description: "Assigns cabin crew positions for a flight based on seniority and qualifications."
tags:
- crew-scheduling
- flight-operations
capability:
exposes:
- type: mcp
namespace: fa-positions
port: 8080
tools:
- name: assign-positions
description: "Generate FA position assignments."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight."
- name: flight_date
in: body
type: string
description: "Date."
call: "crew-api.assign-fa"
with:
flight: "{{flight_number}}"
date: "{{flight_date}}"
outputParameters:
- name: assignments
type: array
mapping: "$.positionAssignments"
- name: lead
type: string
mapping: "$.leadFA"
consumes:
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: fa
path: "/flights/{{flight}}/fa-positions"
inputParameters:
- name: flight
in: path
operations:
- name: assign-fa
method: POST
Retrieves the assigned crew roster for a specific Delta flight.
naftiko: "0.5"
info:
label: "Flight Crew Assignment Lookup"
description: "Retrieves the assigned crew roster for a specific Delta flight."
tags:
- crew-scheduling
- flight-operations
capability:
exposes:
- type: mcp
namespace: crew-roster
port: 8080
tools:
- name: get-crew-assignment
description: "Look up assigned crew for a flight."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: flight_date
in: body
type: string
description: "Flight date."
call: "crew-api.get-assignment"
with:
flight: "{{flight_number}}"
date: "{{flight_date}}"
outputParameters:
- name: captain
type: string
mapping: "$.captain.name"
- name: first_officer
type: string
mapping: "$.firstOfficer.name"
- name: cabin_crew
type: array
mapping: "$.cabinCrew"
consumes:
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: assignments
path: "/flights/{{flight}}/crew"
inputParameters:
- name: flight
in: path
operations:
- name: get-assignment
method: GET
Determines and issues compensation for passengers on significantly delayed flights based on regulations.
naftiko: "0.5"
info:
label: "Flight Delay Compensation Orchestrator"
description: "Determines and issues compensation for passengers on significantly delayed flights based on regulations."
tags:
- customer-service
- compliance
- loyalty
- notifications
capability:
exposes:
- type: mcp
namespace: delay-comp
port: 8080
tools:
- name: process-delay-compensation
description: "Process delay compensation for a flight."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: delay_minutes
in: body
type: number
description: "Delay in minutes."
- name: route_type
in: body
type: string
description: "Route type."
steps:
- name: get-passengers
type: call
call: "pss.get-passengers"
with:
flight: "{{flight_number}}"
- name: calc-compensation
type: call
call: "compensation-api.calculate"
with:
delay: "{{delay_minutes}}"
route: "{{route_type}}"
- name: issue-vouchers
type: call
call: "compensation-api.issue-vouchers"
with:
passengers: "{{get-passengers.passengers}}"
amount: "{{calc-compensation.amount}}"
- name: notify
type: call
call: "notification-api.batch-notify"
with:
passengers: "{{get-passengers.passengers}}"
template: "delay_compensation"
consumes:
- type: http
namespace: pss
baseUri: "https://pss.delta.com/api/v2"
authentication:
type: bearer
token: "$secrets.delta_pss_token"
resources:
- name: passengers
path: "/flights/{{flight}}/passengers"
inputParameters:
- name: flight
in: path
operations:
- name: get-passengers
method: GET
- type: http
namespace: compensation-api
baseUri: "https://compensation.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_compensation_token"
resources:
- name: calculate
path: "/calculate"
operations:
- name: calculate
method: POST
- name: vouchers
path: "/vouchers/batch"
operations:
- name: issue-vouchers
method: POST
- type: http
namespace: notification-api
baseUri: "https://notifications.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_notification_token"
resources:
- name: batch
path: "/batch/notify"
operations:
- name: batch-notify
method: POST
Orchestrates pre-departure checks including weather, crew legality, aircraft status, and weight/balance before generating a dispatch release.
naftiko: "0.5"
info:
label: "Flight Dispatch Release Orchestrator"
description: "Orchestrates pre-departure checks including weather, crew legality, aircraft status, and weight/balance before generating a dispatch release."
tags:
- dispatch
- flight-operations
- safety
- compliance
capability:
exposes:
- type: mcp
namespace: dispatch
port: 8080
tools:
- name: process-dispatch-release
description: "Run all pre-departure checks and generate dispatch release."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: tail_number
in: body
type: string
description: "Aircraft tail number."
- name: captain_id
in: body
type: string
description: "Captain employee ID."
steps:
- name: check-weather
type: call
call: "dispatch-api.get-route-weather"
with:
flight: "{{flight_number}}"
- name: verify-crew
type: call
call: "crew-api.get-duty-status"
with:
employee_id: "{{captain_id}}"
- name: check-mx
type: call
call: "mx-api.get-status"
with:
tail: "{{tail_number}}"
- name: generate-release
type: call
call: "dispatch-api.create-release"
with:
flight: "{{flight_number}}"
weather_ok: "{{check-weather.safe}}"
crew_legal: "{{verify-crew.isCompliant}}"
aircraft_ok: "{{check-mx.maintenanceStatus}}"
consumes:
- type: http
namespace: dispatch-api
baseUri: "https://dispatch.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_dispatch_token"
resources:
- name: weather
path: "/weather/route/{{flight}}"
inputParameters:
- name: flight
in: path
operations:
- name: get-route-weather
method: GET
- name: releases
path: "/releases"
operations:
- name: create-release
method: POST
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: duty
path: "/crew/{{employee_id}}/duty-status"
inputParameters:
- name: employee_id
in: path
operations:
- name: get-duty-status
method: GET
- type: http
namespace: mx-api
baseUri: "https://maintenance.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_mx_token"
resources:
- name: aircraft
path: "/aircraft/{{tail}}/status"
inputParameters:
- name: tail
in: path
operations:
- name: get-status
method: GET
When a flight is cancelled or significantly delayed, retrieves affected passenger records from Salesforce, sends SMS notifications via Twilio, and creates a ServiceNow operations task for rebooking.
naftiko: "0.5"
info:
label: "Flight Disruption Customer Notification"
description: "When a flight is cancelled or significantly delayed, retrieves affected passenger records from Salesforce, sends SMS notifications via Twilio, and creates a ServiceNow operations task for rebooking."
tags:
- operations
- customer-experience
- salesforce
- twilio
- servicenow
capability:
exposes:
- type: mcp
namespace: flight-ops
port: 8080
tools:
- name: handle-flight-disruption
description: "Given a flight number and disruption type (cancellation or delay), retrieve affected passengers from Salesforce, send SMS alerts via Twilio, and create a ServiceNow task for rebooking operations."
inputParameters:
- name: flight_number
in: body
type: string
description: "Delta flight number affected by the disruption (e.g. DL1234)."
- name: disruption_type
in: body
type: string
description: "Type of disruption: cancellation or delay."
- name: new_departure_time
in: body
type: string
description: "Updated departure time in ISO 8601 format, or null for cancellations."
- name: origin_airport
in: body
type: string
description: "IATA code of the origin airport (e.g. ATL)."
- name: destination_airport
in: body
type: string
description: "IATA code of the destination airport (e.g. JFK)."
steps:
- name: get-passengers
type: call
call: salesforce.search-contacts
with:
flight_number: "{{flight_number}}"
status: booked
- name: send-sms-alerts
type: call
call: twilio.send-message
with:
from: "$secrets.twilio_from_number"
body: "Delta Alert: Flight {{flight_number}} from {{origin_airport}} to {{destination_airport}} has been {{disruption_type}}. New departure: {{new_departure_time}}. Visit delta.com or call 1-800-221-1212 to rebook."
- name: create-ops-task
type: call
call: servicenow.create-task
with:
category: flight_disruption
short_description: "Rebooking required: {{flight_number}} {{disruption_type}}"
description: "{{disruption_type}} for {{flight_number}} {{origin_airport}}-{{destination_airport}}. Affected passengers notified via SMS."
assigned_group: Airport_Operations
consumes:
- type: http
namespace: salesforce
baseUri: "https://delta.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/query"
inputParameters:
- name: q
in: query
operations:
- name: search-contacts
method: GET
- type: http
namespace: twilio
baseUri: "https://api.twilio.com/2010-04-01"
authentication:
type: basic
username: "$secrets.twilio_account_sid"
password: "$secrets.twilio_auth_token"
resources:
- name: messages
path: "/Accounts/{{account_sid}}/Messages"
inputParameters:
- name: account_sid
in: path
operations:
- name: send-message
method: POST
- type: http
namespace: servicenow
baseUri: "https://delta.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/sc_task"
operations:
- name: create-task
method: POST
Retrieves load factor and booking data for a specific flight across cabin classes.
naftiko: "0.5"
info:
label: "Flight Load Factor Report"
description: "Retrieves load factor and booking data for a specific flight across cabin classes."
tags:
- revenue-management
- analytics
capability:
exposes:
- type: mcp
namespace: load-factor
port: 8080
tools:
- name: get-load-factor
description: "Get load factor data for a flight."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: flight_date
in: body
type: string
description: "Flight date."
call: "analytics-api.get-load-factor"
with:
flight: "{{flight_number}}"
date: "{{flight_date}}"
outputParameters:
- name: overall_load_factor
type: number
mapping: "$.overallLoadFactor"
- name: delta_one_load
type: number
mapping: "$.deltaOneLoad"
- name: main_cabin_load
type: number
mapping: "$.mainCabinLoad"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://analytics.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_analytics_token"
resources:
- name: load-factor
path: "/flights/{{flight}}/load-factor"
inputParameters:
- name: flight
in: path
operations:
- name: get-load-factor
method: GET
Checks filing status of a flight plan with ATC.
naftiko: "0.5"
info:
label: "Flight Plan Filing Status"
description: "Checks filing status of a flight plan with ATC."
tags:
- dispatch
- flight-operations
capability:
exposes:
- type: mcp
namespace: flight-plan
port: 8080
tools:
- name: get-plan-status
description: "Check flight plan filing status."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: flight_date
in: body
type: string
description: "Flight date."
call: "dispatch-api.get-plan-status"
with:
flight: "{{flight_number}}"
date: "{{flight_date}}"
outputParameters:
- name: status
type: string
mapping: "$.filingStatus"
- name: route
type: string
mapping: "$.filedRoute"
consumes:
- type: http
namespace: dispatch-api
baseUri: "https://dispatch.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_dispatch_token"
resources:
- name: plans
path: "/flight-plans/{{flight}}/status"
inputParameters:
- name: flight
in: path
operations:
- name: get-plan-status
method: GET
Retrieves real-time flight status for a Delta flight including departure, arrival, gate, and delay information.
naftiko: "0.5"
info:
label: "Flight Status Real-Time Lookup"
description: "Retrieves real-time flight status for a Delta flight including departure, arrival, gate, and delay information."
tags:
- flight-operations
- customer-service
capability:
exposes:
- type: mcp
namespace: flight-ops
port: 8080
tools:
- name: get-flight-status
description: "Look up current Delta flight status by flight number and date."
inputParameters:
- name: flight_number
in: body
type: string
description: "Delta flight number (e.g., DL1234)."
- name: flight_date
in: body
type: string
description: "Date of flight in YYYY-MM-DD format."
call: "delta-api.get-status"
with:
flight_number: "{{flight_number}}"
date: "{{flight_date}}"
outputParameters:
- name: status
type: string
mapping: "$.flightStatus"
- name: departure_time
type: string
mapping: "$.departureTime"
- name: arrival_time
type: string
mapping: "$.arrivalTime"
- name: gate
type: string
mapping: "$.gate"
consumes:
- type: http
namespace: delta-api
baseUri: "https://api.delta.com/v1/flights"
authentication:
type: bearer
token: "$secrets.delta_api_token"
resources:
- name: status
path: "/status/{{flight_number}}/{{date}}"
inputParameters:
- name: flight_number
in: path
- name: date
in: path
operations:
- name: get-status
method: GET
Retrieves actual fuel burn data for a completed flight with planned vs actual comparison.
naftiko: "0.5"
info:
label: "Flight Fuel Burn Lookup"
description: "Retrieves actual fuel burn data for a completed flight with planned vs actual comparison."
tags:
- fuel-management
- analytics
- flight-operations
capability:
exposes:
- type: mcp
namespace: fuel-burn
port: 8080
tools:
- name: get-fuel-burn
description: "Get actual fuel burn for a flight."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: flight_date
in: body
type: string
description: "Flight date."
call: "fuel-api.get-burn"
with:
flight: "{{flight_number}}"
date: "{{flight_date}}"
outputParameters:
- name: planned
type: number
mapping: "$.plannedBurn"
- name: actual
type: number
mapping: "$.actualBurn"
- name: variance
type: number
mapping: "$.variancePercent"
consumes:
- type: http
namespace: fuel-api
baseUri: "https://analytics.delta.com/api/v1/fuel"
authentication:
type: bearer
token: "$secrets.delta_analytics_token"
resources:
- name: burn
path: "/flights/{{flight}}/burn"
inputParameters:
- name: flight
in: path
operations:
- name: get-burn
method: GET
Generates fuel cost analysis for a fleet segment showing tankering opportunities, hedging positions, and cost-per-gallon trends.
naftiko: "0.5"
info:
label: "Fuel Cost Optimization Report"
description: "Generates fuel cost analysis for a fleet segment showing tankering opportunities, hedging positions, and cost-per-gallon trends."
tags:
- fuel-management
- analytics
- cost-optimization
capability:
exposes:
- type: mcp
namespace: fuel-analytics
port: 8080
tools:
- name: get-fuel-report
description: "Generate a fuel cost optimization report."
inputParameters:
- name: fleet_type
in: body
type: string
description: "Fleet type."
- name: start_date
in: body
type: string
description: "Start date."
- name: end_date
in: body
type: string
description: "End date."
call: "fuel-api.query-costs"
with:
fleet: "{{fleet_type}}"
start: "{{start_date}}"
end: "{{end_date}}"
outputParameters:
- name: total_cost
type: number
mapping: "$.totalCost"
- name: avg_price_per_gallon
type: number
mapping: "$.avgPricePerGallon"
- name: tankering_savings
type: number
mapping: "$.tankeringSavings"
consumes:
- type: http
namespace: fuel-api
baseUri: "https://analytics.delta.com/api/v1/fuel"
authentication:
type: bearer
token: "$secrets.delta_analytics_token"
resources:
- name: cost-analysis
path: "/cost-analysis"
operations:
- name: query-costs
method: POST
Recommends optimal gate assignments for arriving flights minimizing passenger connection times and ground equipment repositioning.
naftiko: "0.5"
info:
label: "Gate Assignment Optimizer"
description: "Recommends optimal gate assignments for arriving flights minimizing passenger connection times and ground equipment repositioning."
tags:
- ground-ops
- flight-operations
- optimization
capability:
exposes:
- type: mcp
namespace: gate-mgmt
port: 8080
tools:
- name: optimize-gate
description: "Get optimized gate recommendation for an arriving flight."
inputParameters:
- name: flight_number
in: body
type: string
description: "Arriving flight number."
- name: station
in: body
type: string
description: "Airport station."
- name: arrival_time
in: body
type: string
description: "Expected arrival time."
call: "gate-api.get-recommendation"
with:
flight: "{{flight_number}}"
station: "{{station}}"
time: "{{arrival_time}}"
outputParameters:
- name: recommended_gate
type: string
mapping: "$.recommendedGate"
- name: connection_score
type: number
mapping: "$.connectionScore"
consumes:
- type: http
namespace: gate-api
baseUri: "https://groundops.delta.com/api/v1/gates"
authentication:
type: bearer
token: "$secrets.delta_ground_ops_token"
resources:
- name: optimize
path: "/optimize"
operations:
- name: get-recommendation
method: POST
When a GitHub Actions pipeline fails on a production service repository, creates a Datadog event and opens a Jira bug for the engineering team to remediate.
naftiko: "0.5"
info:
label: "GitHub DevOps Pipeline Failure Alert"
description: "When a GitHub Actions pipeline fails on a production service repository, creates a Datadog event and opens a Jira bug for the engineering team to remediate."
tags:
- devops
- cicd
- github
- datadog
- jira
capability:
exposes:
- type: mcp
namespace: devops
port: 8080
tools:
- name: handle-pipeline-failure
description: "Given a GitHub Actions workflow failure on a production service, create a Datadog deployment event and open a Jira bug with full failure context for the engineering team."
inputParameters:
- name: repo_name
in: body
type: string
description: "GitHub repository name where the pipeline failure occurred."
- name: workflow_name
in: body
type: string
description: "Name of the failed GitHub Actions workflow."
- name: run_id
in: body
type: string
description: "GitHub Actions workflow run ID."
- name: commit_sha
in: body
type: string
description: "Git commit SHA that triggered the failing run."
- name: branch
in: body
type: string
description: "Git branch name where the failure occurred."
steps:
- name: create-dd-event
type: call
call: datadog.create-event
with:
title: "CI failure: {{workflow_name}} on {{branch}}"
text: "Run {{run_id}} failed at commit {{commit_sha}} in {{repo_name}}"
alert_type: error
tags: "env:ci,repo:{{repo_name}}"
- name: create-jira-bug
type: call
call: jira.create-issue
with:
project_key: ENG
issuetype: Bug
summary: "[CI Failure] {{repo_name}} / {{workflow_name}} on {{branch}}"
description: "Run: {{run_id}}\nBranch: {{branch}}\nCommit: {{commit_sha}}\nDatadog: {{create-dd-event.url}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apikey
key: DD-API-KEY
value: "$secrets.datadog_api_key"
placement: header
resources:
- name: events
path: "/events"
operations:
- name: create-event
method: POST
- type: http
namespace: jira
baseUri: "https://delta.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Retrieves operational status of ground support equipment at a Delta station.
naftiko: "0.5"
info:
label: "Ground Equipment Status"
description: "Retrieves operational status of ground support equipment at a Delta station."
tags:
- ground-ops
- equipment
- tracking
capability:
exposes:
- type: mcp
namespace: gse
port: 8080
tools:
- name: get-gse-status
description: "Check ground equipment status at a station."
inputParameters:
- name: station
in: body
type: string
description: "Station."
- name: equipment_type
in: body
type: string
description: "Equipment type."
call: "ground-ops.get-equipment"
with:
station: "{{station}}"
type: "{{equipment_type}}"
outputParameters:
- name: available
type: number
mapping: "$.available"
- name: in_use
type: number
mapping: "$.inUse"
consumes:
- type: http
namespace: ground-ops
baseUri: "https://groundops.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_ground_ops_token"
resources:
- name: equipment
path: "/equipment/status"
operations:
- name: get-equipment
method: POST
Retrieves ground transportation options at a Delta served airport.
naftiko: "0.5"
info:
label: "Ground Transportation Lookup"
description: "Retrieves ground transportation options at a Delta served airport."
tags:
- customer-service
- ground-ops
- partnerships
capability:
exposes:
- type: mcp
namespace: ground-transport
port: 8080
tools:
- name: get-transport
description: "Get ground transportation options."
inputParameters:
- name: station
in: body
type: string
description: "Airport."
call: "transport-api.get-options"
with:
station: "{{station}}"
outputParameters:
- name: rental_cars
type: array
mapping: "$.rentalCars"
- name: rideshare
type: array
mapping: "$.rideshare"
consumes:
- type: http
namespace: transport-api
baseUri: "https://partnerships.delta.com/api/v1/transport"
authentication:
type: bearer
token: "$secrets.delta_partnerships_token"
resources:
- name: options
path: "/airports/{{station}}/options"
inputParameters:
- name: station
in: path
operations:
- name: get-options
method: GET
Validates hazardous materials cargo against IATA dangerous goods regulations.
naftiko: "0.5"
info:
label: "Hazmat Cargo Compliance Check"
description: "Validates hazardous materials cargo against IATA dangerous goods regulations."
tags:
- cargo
- compliance
- safety
capability:
exposes:
- type: mcp
namespace: hazmat
port: 8080
tools:
- name: check-hazmat
description: "Verify hazmat cargo compliance."
inputParameters:
- name: awb_number
in: body
type: string
description: "Air waybill."
- name: un_number
in: body
type: string
description: "UN classification."
call: "cargo-api.validate-hazmat"
with:
awb: "{{awb_number}}"
un_number: "{{un_number}}"
outputParameters:
- name: compliant
type: boolean
mapping: "$.isCompliant"
- name: violations
type: array
mapping: "$.violations"
consumes:
- type: http
namespace: cargo-api
baseUri: "https://cargo.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_cargo_token"
resources:
- name: hazmat
path: "/hazmat/validate"
operations:
- name: validate-hazmat
method: POST
Retrieves inflight WiFi performance metrics for an aircraft including uptime, bandwidth, and passenger connections.
naftiko: "0.5"
info:
label: "Inflight WiFi Performance Report"
description: "Retrieves inflight WiFi performance metrics for an aircraft including uptime, bandwidth, and passenger connections."
tags:
- inflight-services
- technology
- analytics
capability:
exposes:
- type: mcp
namespace: wifi
port: 8080
tools:
- name: get-wifi-report
description: "Pull WiFi metrics for an aircraft."
inputParameters:
- name: tail_number
in: body
type: string
description: "Tail number."
call: "connectivity-api.get-metrics"
with:
tail: "{{tail_number}}"
outputParameters:
- name: uptime_pct
type: number
mapping: "$.uptimePercent"
- name: avg_bandwidth
type: number
mapping: "$.avgBandwidthMbps"
consumes:
- type: http
namespace: connectivity-api
baseUri: "https://connectivity.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_connectivity_token"
resources:
- name: metrics
path: "/aircraft/{{tail}}/wifi"
inputParameters:
- name: tail
in: path
operations:
- name: get-metrics
method: GET
Looks up interline baggage agreements between Delta and partner airlines.
naftiko: "0.5"
info:
label: "Interline Baggage Agreement Lookup"
description: "Looks up interline baggage agreements between Delta and partner airlines."
tags:
- customer-service
- baggage
- partnerships
capability:
exposes:
- type: mcp
namespace: interline
port: 8080
tools:
- name: get-baggage-rules
description: "Look up interline baggage agreement."
inputParameters:
- name: partner
in: body
type: string
description: "Partner airline code."
call: "partnership-api.get-baggage"
with:
partner: "{{partner}}"
outputParameters:
- name: through_check
type: boolean
mapping: "$.throughCheckEligible"
- name: free_bags
type: number
mapping: "$.freeBags"
consumes:
- type: http
namespace: partnership-api
baseUri: "https://partnerships.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_partnerships_token"
resources:
- name: baggage
path: "/interline/baggage/{{partner}}"
inputParameters:
- name: partner
in: path
operations:
- name: get-baggage
method: GET
When a flight is cancelled, identifies affected passengers, finds rebooking alternatives, processes rebookings, and sends customer notifications with new itineraries.
naftiko: "0.5"
info:
label: "Irregular Ops Rebooking Orchestrator"
description: "When a flight is cancelled, identifies affected passengers, finds rebooking alternatives, processes rebookings, and sends customer notifications with new itineraries."
tags:
- flight-operations
- customer-service
- rebooking
- notifications
capability:
exposes:
- type: mcp
namespace: irrops
port: 8080
tools:
- name: handle-irrops-rebooking
description: "Rebook passengers affected by a flight cancellation or major delay."
inputParameters:
- name: cancelled_flight
in: body
type: string
description: "Cancelled flight number."
- name: flight_date
in: body
type: string
description: "Flight date."
- name: reason
in: body
type: string
description: "Cancellation reason."
steps:
- name: get-affected-passengers
type: call
call: "pss.get-passengers"
with:
flight_number: "{{cancelled_flight}}"
date: "{{flight_date}}"
- name: find-alternatives
type: call
call: "pss.search-alternatives"
with:
origin: "{{get-affected-passengers.origin}}"
destination: "{{get-affected-passengers.destination}}"
date: "{{flight_date}}"
- name: execute-rebookings
type: call
call: "pss.batch-rebook"
with:
passengers: "{{get-affected-passengers.pnrs}}"
alternatives: "{{find-alternatives.options}}"
- name: send-notifications
type: call
call: "notification-api.batch-notify"
with:
passengers: "{{get-affected-passengers.passengers}}"
template: "irrops_rebooking"
reason: "{{reason}}"
consumes:
- type: http
namespace: pss
baseUri: "https://pss.delta.com/api/v2"
authentication:
type: bearer
token: "$secrets.delta_pss_token"
resources:
- name: passengers
path: "/flights/{{flight_number}}/passengers"
inputParameters:
- name: flight_number
in: path
operations:
- name: get-passengers
method: GET
- name: alternatives
path: "/availability/search"
operations:
- name: search-alternatives
method: POST
- name: rebooking
path: "/rebooking/batch"
operations:
- name: batch-rebook
method: POST
- type: http
namespace: notification-api
baseUri: "https://notifications.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_notification_token"
resources:
- name: batch
path: "/batch/notify"
operations:
- name: batch-notify
method: POST
Retrieves IT asset details from ServiceNow CMDB.
naftiko: "0.5"
info:
label: "ServiceNow IT Asset Lookup"
description: "Retrieves IT asset details from ServiceNow CMDB."
tags:
- it-operations
- servicenow
- asset-management
capability:
exposes:
- type: mcp
namespace: it-assets
port: 8080
tools:
- name: get-asset
description: "Look up an IT asset."
inputParameters:
- name: asset_tag
in: body
type: string
description: "Asset tag."
call: "servicenow.get-asset"
with:
asset_tag: "{{asset_tag}}"
outputParameters:
- name: name
type: string
mapping: "$.result.name"
- name: assigned_to
type: string
mapping: "$.result.assigned_to.display_value"
consumes:
- type: http
namespace: servicenow
baseUri: "https://delta.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: cmdb
path: "/table/alm_hardware"
operations:
- name: get-asset
method: GET
When Datadog detects a P1 infrastructure failure, creates a ServiceNow critical incident, pages the on-call SRE via PagerDuty, and notifies the IT operations Microsoft Teams channel.
naftiko: "0.5"
info:
label: "IT Infrastructure Incident P1 Response"
description: "When Datadog detects a P1 infrastructure failure, creates a ServiceNow critical incident, pages the on-call SRE via PagerDuty, and notifies the IT operations Microsoft Teams channel."
tags:
- itsm
- incident-response
- datadog
- servicenow
- pagerduty
capability:
exposes:
- type: mcp
namespace: it-ops
port: 8080
tools:
- name: handle-p1-incident
description: "Given a Datadog P1 infrastructure alert, create a ServiceNow critical incident, page the SRE on-call team via PagerDuty, and post to the IT operations Microsoft Teams channel."
inputParameters:
- name: monitor_id
in: body
type: string
description: "Datadog monitor ID that triggered the P1 alert."
- name: service_affected
in: body
type: string
description: "Name of the affected infrastructure service."
- name: alert_message
in: body
type: string
description: "Full alert message text from Datadog."
steps:
- name: create-snow-incident
type: call
call: servicenow.create-incident
with:
category: infrastructure
impact: 1
urgency: 1
short_description: "P1: {{service_affected}} — {{alert_message}}"
assigned_group: SRE_OnCall
- name: page-oncall
type: call
call: pagerduty.create-incident
with:
title: "P1 Infrastructure: {{service_affected}}"
urgency: high
service_id: "$secrets.pagerduty_infra_service_id"
- name: notify-ops
type: call
call: msteams.send-channel-message
with:
team_id: "$secrets.teams_it_ops_team_id"
channel_id: "$secrets.teams_it_ops_channel_id"
text: "P1 INCIDENT: {{service_affected}} | SNOW: {{create-snow-incident.number}} | PD: {{page-oncall.html_url}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://delta.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: apikey
key: Authorization
value: "$secrets.pagerduty_api_key"
placement: header
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Retrieves the current sprint status for a technology project from Jira and posts the sprint health digest to the engineering Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Jira Technology Project Sprint Status"
description: "Retrieves the current sprint status for a technology project from Jira and posts the sprint health digest to the engineering Microsoft Teams channel."
tags:
- devops
- engineering
- jira
- microsoft-teams
- reporting
capability:
exposes:
- type: mcp
namespace: project-reporting
port: 8080
tools:
- name: digest-sprint-status
description: "Given a Jira board ID and sprint ID, retrieve sprint progress metrics and post a status update to the engineering Microsoft Teams channel for sprint review ceremonies."
inputParameters:
- name: board_id
in: body
type: string
description: "Jira board ID for the technology project."
- name: sprint_id
in: body
type: string
description: "Jira sprint ID to report on."
- name: teams_channel_id
in: body
type: string
description: "Microsoft Teams channel ID to post the sprint status digest."
steps:
- name: get-sprint
type: call
call: jira.get-sprint-issues
with:
board_id: "{{board_id}}"
sprint_id: "{{sprint_id}}"
- name: post-digest
type: call
call: msteams.send-channel-message
with:
team_id: "$secrets.teams_engineering_team_id"
channel_id: "{{teams_channel_id}}"
text: "Sprint status for board {{board_id}} sprint {{sprint_id}}: {{get-sprint.total}} total issues | {{get-sprint.done}} done | {{get-sprint.in_progress}} in progress"
consumes:
- type: http
namespace: jira
baseUri: "https://delta.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: sprint-issues
path: "/board/{{board_id}}/sprint/{{sprint_id}}/issue"
inputParameters:
- name: board_id
in: path
- name: sprint_id
in: path
operations:
- name: get-sprint-issues
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Creates a lavatory service request for aircraft turnaround servicing.
naftiko: "0.5"
info:
label: "Lavatory Service Request"
description: "Creates a lavatory service request for aircraft turnaround servicing."
tags:
- ground-ops
- maintenance
capability:
exposes:
- type: mcp
namespace: lav
port: 8080
tools:
- name: request-lav-service
description: "Submit lavatory service request."
inputParameters:
- name: tail_number
in: body
type: string
description: "Tail number."
- name: gate
in: body
type: string
description: "Gate."
- name: station
in: body
type: string
description: "Station."
call: "ground-ops.create-lav-request"
with:
tail: "{{tail_number}}"
gate: "{{gate}}"
station: "{{station}}"
outputParameters:
- name: request_id
type: string
mapping: "$.requestId"
consumes:
- type: http
namespace: ground-ops
baseUri: "https://groundops.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_ground_ops_token"
resources:
- name: lav
path: "/services/lavatory"
operations:
- name: create-lav-request
method: POST
Retrieves LinkedIn campaign performance metrics for Delta's employer brand campaigns and posts a monthly digest to the HR marketing Microsoft Teams channel.
naftiko: "0.5"
info:
label: "LinkedIn Employer Brand Campaign Digest"
description: "Retrieves LinkedIn campaign performance metrics for Delta's employer brand campaigns and posts a monthly digest to the HR marketing Microsoft Teams channel."
tags:
- marketing
- hr
- linkedin
- microsoft-teams
- reporting
capability:
exposes:
- type: mcp
namespace: employer-brand
port: 8080
tools:
- name: digest-linkedin-employer-brand
description: "Given a LinkedIn organization URN and date range, retrieve employer brand campaign impressions and engagement metrics, then post the digest to the HR marketing Microsoft Teams channel."
inputParameters:
- name: organization_urn
in: body
type: string
description: "LinkedIn organization URN for Delta Air Lines."
- name: start_date
in: body
type: string
description: "ISO 8601 start date for the campaign performance period."
- name: end_date
in: body
type: string
description: "ISO 8601 end date for the campaign performance period."
steps:
- name: get-org-stats
type: call
call: linkedin.get-organization-statistics
with:
organization_urn: "{{organization_urn}}"
start: "{{start_date}}"
end: "{{end_date}}"
- name: post-digest
type: call
call: msteams.send-channel-message
with:
team_id: "$secrets.teams_hr_team_id"
channel_id: "$secrets.teams_hr_marketing_channel_id"
text: "LinkedIn Employer Brand digest ({{start_date}} to {{end_date}}): Impressions: {{get-org-stats.totalPageStatistics.views.allPageViews.pageViews}} | Followers: {{get-org-stats.followersCount}}"
consumes:
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: organization-statistics
path: "/organizationalEntityShareStatistics"
inputParameters:
- name: organization_urn
in: query
- name: start
in: query
- name: end
in: query
operations:
- name: get-organization-statistics
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Files a lost baggage claim by creating a WorldTracer record, logging a Salesforce case, and sending the passenger a tracking SMS.
naftiko: "0.5"
info:
label: "Lost Baggage Claim Orchestrator"
description: "Files a lost baggage claim by creating a WorldTracer record, logging a Salesforce case, and sending the passenger a tracking SMS."
tags:
- customer-service
- baggage
- salesforce
- notifications
capability:
exposes:
- type: mcp
namespace: lost-baggage
port: 8080
tools:
- name: file-lost-baggage
description: "Process a lost baggage claim through all systems."
inputParameters:
- name: pnr
in: body
type: string
description: "Passenger name record."
- name: bag_tag
in: body
type: string
description: "Bag tag number."
- name: flight_number
in: body
type: string
description: "Flight number."
steps:
- name: create-tracer
type: call
call: "baggage-api.create-tracer"
with:
pnr: "{{pnr}}"
bag_tag: "{{bag_tag}}"
flight: "{{flight_number}}"
- name: create-sf-case
type: call
call: "salesforce.create-case"
with:
subject: "Lost bag — {{bag_tag}} on {{flight_number}}"
description: "PNR: {{pnr}} | Tracer: {{create-tracer.tracer_id}}"
priority: "High"
- name: send-tracking-link
type: call
call: "notification-api.send-sms"
with:
pnr: "{{pnr}}"
message: "Your lost baggage claim is filed. Track: https://delta.com/baggage/track/{{create-tracer.tracer_id}}"
consumes:
- type: http
namespace: baggage-api
baseUri: "https://baggage.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_baggage_token"
resources:
- name: tracers
path: "/worldtracer/create"
operations:
- name: create-tracer
method: POST
- type: http
namespace: salesforce
baseUri: "https://delta.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: notification-api
baseUri: "https://notifications.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_notification_token"
resources:
- name: sms
path: "/sms/send"
operations:
- name: send-sms
method: POST
Processes miles transfer between SkyMiles and SkyTeam partner loyalty programs.
naftiko: "0.5"
info:
label: "Loyalty Partner Miles Transfer"
description: "Processes miles transfer between SkyMiles and SkyTeam partner loyalty programs."
tags:
- loyalty
- skymiles
- partnerships
capability:
exposes:
- type: mcp
namespace: miles-transfer
port: 8080
tools:
- name: transfer-miles
description: "Transfer miles to a partner program."
inputParameters:
- name: skymiles_number
in: body
type: string
description: "SkyMiles number."
- name: partner_program
in: body
type: string
description: "Partner program code."
- name: amount
in: body
type: number
description: "Miles to transfer."
call: "loyalty-api.transfer-miles"
with:
member_id: "{{skymiles_number}}"
partner: "{{partner_program}}"
amount: "{{amount}}"
outputParameters:
- name: transfer_id
type: string
mapping: "$.transferId"
- name: new_balance
type: number
mapping: "$.newBalance"
consumes:
- type: http
namespace: loyalty-api
baseUri: "https://loyalty.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_loyalty_token"
resources:
- name: transfers
path: "/miles/transfer"
operations:
- name: transfer-miles
method: POST
Queries spare parts availability at a Delta TechOps maintenance station.
naftiko: "0.5"
info:
label: "Maintenance Parts Inventory Check"
description: "Queries spare parts availability at a Delta TechOps maintenance station."
tags:
- maintenance
- sap
- inventory
capability:
exposes:
- type: mcp
namespace: parts
port: 8080
tools:
- name: check-parts
description: "Check spare parts availability."
inputParameters:
- name: part_number
in: body
type: string
description: "Part number."
- name: station
in: body
type: string
description: "Station."
call: "sap.get-stock"
with:
material: "{{part_number}}"
plant: "{{station}}"
outputParameters:
- name: quantity
type: number
mapping: "$.d.UnrestrictedStock"
- name: lead_time
type: number
mapping: "$.d.PlannedDeliveryDays"
consumes:
- type: http
namespace: sap
baseUri: "https://delta-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: stock
path: "/A_MatlStkInAcctMod"
operations:
- name: get-stock
method: GET
Creates a maintenance work order in the Delta TechOps system for a specific aircraft and discrepancy.
naftiko: "0.5"
info:
label: "Maintenance Work Order Creation"
description: "Creates a maintenance work order in the Delta TechOps system for a specific aircraft and discrepancy."
tags:
- maintenance
- flight-operations
- servicenow
capability:
exposes:
- type: mcp
namespace: mx-orders
port: 8080
tools:
- name: create-work-order
description: "Create a maintenance work order."
inputParameters:
- name: tail_number
in: body
type: string
description: "Tail number."
- name: discrepancy
in: body
type: string
description: "Discrepancy description."
- name: priority
in: body
type: string
description: "Priority (routine, urgent, AOG)."
call: "mx-api.create-work-order"
with:
tail: "{{tail_number}}"
description: "{{discrepancy}}"
priority: "{{priority}}"
outputParameters:
- name: work_order_id
type: string
mapping: "$.workOrderId"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: mx-api
baseUri: "https://maintenance.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_mx_token"
resources:
- name: work-orders
path: "/work-orders"
operations:
- name: create-work-order
method: POST
Coordinates inflight medical emergency response by contacting MedLink, identifying diversion airports, notifying stations, and creating incident reports.
naftiko: "0.5"
info:
label: "Medical Emergency Response Orchestrator"
description: "Coordinates inflight medical emergency response by contacting MedLink, identifying diversion airports, notifying stations, and creating incident reports."
tags:
- safety
- flight-operations
- emergency
- servicenow
capability:
exposes:
- type: mcp
namespace: medical-emergency
port: 8080
tools:
- name: handle-medical-emergency
description: "Coordinate inflight medical emergency response."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: emergency_type
in: body
type: string
description: "Medical emergency type."
- name: position
in: body
type: string
description: "Current aircraft position."
steps:
- name: contact-medlink
type: call
call: "medlink-api.initiate-consult"
with:
flight: "{{flight_number}}"
emergency: "{{emergency_type}}"
- name: find-diversions
type: call
call: "dispatch-api.find-diversions"
with:
position: "{{position}}"
- name: alert-station
type: call
call: "ground-ops.alert-station"
with:
station: "{{find-diversions.nearest_airport}}"
flight: "{{flight_number}}"
reason: "Medical: {{emergency_type}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Medical emergency on {{flight_number}}: {{emergency_type}}"
category: "safety"
priority: "1"
consumes:
- type: http
namespace: medlink-api
baseUri: "https://medlink.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_medlink_token"
resources:
- name: consults
path: "/consults/initiate"
operations:
- name: initiate-consult
method: POST
- type: http
namespace: dispatch-api
baseUri: "https://dispatch.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_dispatch_token"
resources:
- name: diversions
path: "/diversions/search"
operations:
- name: find-diversions
method: POST
- type: http
namespace: ground-ops
baseUri: "https://groundops.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_ground_ops_token"
resources:
- name: alerts
path: "/stations/alert"
operations:
- name: alert-station
method: POST
- type: http
namespace: servicenow
baseUri: "https://delta.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
Analyzes impact of a schedule change on connections, crew pairings, and gates, then notifies planning.
naftiko: "0.5"
info:
label: "Network Schedule Change Orchestrator"
description: "Analyzes impact of a schedule change on connections, crew pairings, and gates, then notifies planning."
tags:
- scheduling
- flight-operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: schedule-change
port: 8080
tools:
- name: assess-change
description: "Analyze schedule change impact."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight being changed."
- name: new_time
in: body
type: string
description: "Proposed new departure."
steps:
- name: analyze-connections
type: call
call: "scheduling-api.analyze-connections"
with:
flight: "{{flight_number}}"
new_time: "{{new_time}}"
- name: analyze-crew
type: call
call: "crew-api.assess-impact"
with:
flight: "{{flight_number}}"
new_time: "{{new_time}}"
- name: notify-planning
type: call
call: "msteams.post-channel-message"
with:
channel_id: "{{planning_channel}}"
text: "Schedule change {{flight_number}} to {{new_time}}: {{analyze-connections.affected}} connections, {{analyze-crew.pairings}} crew pairings affected"
consumes:
- type: http
namespace: scheduling-api
baseUri: "https://scheduling.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_scheduling_token"
resources:
- name: connections
path: "/analysis/connections"
operations:
- name: analyze-connections
method: POST
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: impact
path: "/pairings/impact"
operations:
- name: assess-impact
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Verifies flight operations comply with airport noise curfew restrictions.
naftiko: "0.5"
info:
label: "Noise Curfew Compliance Check"
description: "Verifies flight operations comply with airport noise curfew restrictions."
tags:
- compliance
- flight-operations
- scheduling
capability:
exposes:
- type: mcp
namespace: noise
port: 8080
tools:
- name: check-curfew
description: "Check noise curfew compliance."
inputParameters:
- name: airport
in: body
type: string
description: "Airport."
- name: time
in: body
type: string
description: "Operation time."
- name: aircraft_type
in: body
type: string
description: "Aircraft type."
call: "compliance-api.check-curfew"
with:
airport: "{{airport}}"
time: "{{time}}"
aircraft: "{{aircraft_type}}"
outputParameters:
- name: compliant
type: boolean
mapping: "$.isCompliant"
consumes:
- type: http
namespace: compliance-api
baseUri: "https://compliance.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_compliance_token"
resources:
- name: curfew
path: "/noise/curfew-check"
operations:
- name: check-curfew
method: POST
Compiles the daily OCC briefing from weather, maintenance, crew coverage, and posts to Teams.
naftiko: "0.5"
info:
label: "Operations Daily Briefing Orchestrator"
description: "Compiles the daily OCC briefing from weather, maintenance, crew coverage, and posts to Teams."
tags:
- operations
- flight-operations
- microsoft-teams
- analytics
capability:
exposes:
- type: mcp
namespace: ops-briefing
port: 8080
tools:
- name: generate-briefing
description: "Generate daily ops briefing."
inputParameters:
- name: date
in: body
type: string
description: "Briefing date."
steps:
- name: get-weather
type: call
call: "weather-api.get-network-outlook"
with:
date: "{{date}}"
- name: get-mx
type: call
call: "mx-api.get-fleet-summary"
with:
date: "{{date}}"
- name: get-crew
type: call
call: "crew-api.get-coverage"
with:
date: "{{date}}"
- name: post-briefing
type: call
call: "msteams.post-channel-message"
with:
channel_id: "{{occ_channel}}"
text: "DAILY OPS BRIEFING {{date}} | Weather: {{get-weather.summary}} | Fleet: {{get-mx.available}}/{{get-mx.total}} | Crew: {{get-crew.coverage_pct}}%"
consumes:
- type: http
namespace: weather-api
baseUri: "https://dispatch.delta.com/api/v1/weather"
authentication:
type: bearer
token: "$secrets.delta_dispatch_token"
resources:
- name: outlook
path: "/network/outlook"
operations:
- name: get-network-outlook
method: POST
- type: http
namespace: mx-api
baseUri: "https://maintenance.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_mx_token"
resources:
- name: fleet
path: "/fleet/summary"
operations:
- name: get-fleet-summary
method: POST
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: coverage
path: "/coverage/summary"
operations:
- name: get-coverage
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Manages overbooked flights by identifying volunteer candidates, calculating compensation, finding alternatives, and sending offers.
naftiko: "0.5"
info:
label: "Overbooking Management Orchestrator"
description: "Manages overbooked flights by identifying volunteer candidates, calculating compensation, finding alternatives, and sending offers."
tags:
- revenue-management
- customer-service
- flight-operations
capability:
exposes:
- type: mcp
namespace: overbooking
port: 8080
tools:
- name: manage-overbooking
description: "Handle an overbooking situation."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: flight_date
in: body
type: string
description: "Flight date."
- name: overbook_count
in: body
type: number
description: "Overbooked seats."
steps:
- name: find-volunteers
type: call
call: "pss.find-volunteers"
with:
flight: "{{flight_number}}"
date: "{{flight_date}}"
count: "{{overbook_count}}"
- name: calc-compensation
type: call
call: "compensation-api.get-vdb-rates"
with:
flight: "{{flight_number}}"
- name: find-alternatives
type: call
call: "pss.search-alternatives"
with:
origin: "{{find-volunteers.origin}}"
destination: "{{find-volunteers.destination}}"
- name: send-offers
type: call
call: "notification-api.batch-notify"
with:
passengers: "{{find-volunteers.candidates}}"
template: "volunteer_offer"
amount: "{{calc-compensation.offer_amount}}"
consumes:
- type: http
namespace: pss
baseUri: "https://pss.delta.com/api/v2"
authentication:
type: bearer
token: "$secrets.delta_pss_token"
resources:
- name: volunteers
path: "/flights/{{flight}}/volunteer-candidates"
inputParameters:
- name: flight
in: path
operations:
- name: find-volunteers
method: POST
- name: alternatives
path: "/availability/search"
operations:
- name: search-alternatives
method: POST
- type: http
namespace: compensation-api
baseUri: "https://compensation.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_compensation_token"
resources:
- name: rates
path: "/rates/vdb"
operations:
- name: get-vdb-rates
method: POST
- type: http
namespace: notification-api
baseUri: "https://notifications.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_notification_token"
resources:
- name: batch
path: "/batch/notify"
operations:
- name: batch-notify
method: POST
Retrieves the current on-call engineer for a Delta IT service from PagerDuty for use at the start of incident response workflows.
naftiko: "0.5"
info:
label: "PagerDuty On-Call Roster Lookup"
description: "Retrieves the current on-call engineer for a Delta IT service from PagerDuty for use at the start of incident response workflows."
tags:
- incident-response
- operations
- pagerduty
- on-call
capability:
exposes:
- type: mcp
namespace: oncall
port: 8080
tools:
- name: get-current-oncall
description: "Given a PagerDuty schedule ID, return the name and email of the current on-call engineer. Use at the beginning of any incident response to identify who to engage."
inputParameters:
- name: schedule_id
in: body
type: string
description: "PagerDuty schedule ID for the service's on-call rotation."
call: pagerduty.get-oncall
with:
schedule_id: "{{schedule_id}}"
outputParameters:
- name: user_name
type: string
mapping: "$.oncalls[0].user.name"
- name: user_email
type: string
mapping: "$.oncalls[0].user.email"
consumes:
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: apikey
key: Authorization
value: "$secrets.pagerduty_api_key"
placement: header
resources:
- name: oncalls
path: "/oncalls"
inputParameters:
- name: schedule_id
in: query
operations:
- name: get-oncall
method: GET
Checks real-time parking availability at Delta hub airports.
naftiko: "0.5"
info:
label: "Airport Parking Availability"
description: "Checks real-time parking availability at Delta hub airports."
tags:
- customer-service
- airport
capability:
exposes:
- type: mcp
namespace: parking
port: 8080
tools:
- name: check-parking
description: "Check parking availability."
inputParameters:
- name: station
in: body
type: string
description: "Airport."
call: "airport-api.get-parking"
with:
station: "{{station}}"
outputParameters:
- name: economy
type: number
mapping: "$.economyAvailable"
- name: premium
type: number
mapping: "$.premiumAvailable"
consumes:
- type: http
namespace: airport-api
baseUri: "https://api.delta.com/v1/airports"
authentication:
type: bearer
token: "$secrets.delta_api_token"
resources:
- name: parking
path: "/{{station}}/parking"
inputParameters:
- name: station
in: path
operations:
- name: get-parking
method: GET
Processes no-show passengers after gate closure, releasing seats for standby passengers.
naftiko: "0.5"
info:
label: "Passenger No-Show Processing"
description: "Processes no-show passengers after gate closure, releasing seats for standby passengers."
tags:
- flight-operations
- revenue-management
capability:
exposes:
- type: mcp
namespace: no-show
port: 8080
tools:
- name: process-no-shows
description: "Process no-shows for a flight."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: flight_date
in: body
type: string
description: "Flight date."
call: "pss.process-no-shows"
with:
flight: "{{flight_number}}"
date: "{{flight_date}}"
outputParameters:
- name: no_show_count
type: number
mapping: "$.noShowCount"
- name: seats_released
type: number
mapping: "$.seatsReleased"
consumes:
- type: http
namespace: pss
baseUri: "https://pss.delta.com/api/v2"
authentication:
type: bearer
token: "$secrets.delta_pss_token"
resources:
- name: no-shows
path: "/flights/{{flight}}/no-shows"
inputParameters:
- name: flight
in: path
operations:
- name: process-no-shows
method: POST
Processes a passenger upgrade by checking cabin availability, verifying SkyMiles eligibility, executing the upgrade, and sending a confirmation.
naftiko: "0.5"
info:
label: "Passenger Upgrade Orchestrator"
description: "Processes a passenger upgrade by checking cabin availability, verifying SkyMiles eligibility, executing the upgrade, and sending a confirmation."
tags:
- customer-service
- loyalty
- skymiles
capability:
exposes:
- type: mcp
namespace: upgrades
port: 8080
tools:
- name: process-upgrade
description: "Process a passenger upgrade request."
inputParameters:
- name: pnr
in: body
type: string
description: "Passenger name record."
- name: flight_number
in: body
type: string
description: "Flight number."
- name: skymiles_number
in: body
type: string
description: "SkyMiles member number."
- name: target_cabin
in: body
type: string
description: "Target cabin (Delta One, First, Comfort+)."
steps:
- name: check-availability
type: call
call: "pss.check-cabin"
with:
flight: "{{flight_number}}"
cabin: "{{target_cabin}}"
- name: verify-eligibility
type: call
call: "loyalty-api.check-upgrade-eligible"
with:
member_id: "{{skymiles_number}}"
cabin: "{{target_cabin}}"
- name: execute-upgrade
type: call
call: "pss.process-upgrade"
with:
pnr: "{{pnr}}"
flight: "{{flight_number}}"
cabin: "{{target_cabin}}"
- name: send-confirmation
type: call
call: "notification-api.send-email"
with:
member_id: "{{skymiles_number}}"
template: "upgrade_confirmation"
flight: "{{flight_number}}"
consumes:
- type: http
namespace: pss
baseUri: "https://pss.delta.com/api/v2"
authentication:
type: bearer
token: "$secrets.delta_pss_token"
resources:
- name: cabin
path: "/availability/cabin"
operations:
- name: check-cabin
method: POST
- name: upgrades
path: "/upgrades/process"
operations:
- name: process-upgrade
method: POST
- type: http
namespace: loyalty-api
baseUri: "https://loyalty.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_loyalty_token"
resources:
- name: eligibility
path: "/members/{{member_id}}/upgrade-eligibility"
inputParameters:
- name: member_id
in: path
operations:
- name: check-upgrade-eligible
method: GET
- type: http
namespace: notification-api
baseUri: "https://notifications.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_notification_token"
resources:
- name: email
path: "/email/send"
operations:
- name: send-email
method: POST
Validates a pet-in-cabin booking against aircraft and route restrictions.
naftiko: "0.5"
info:
label: "Pet Booking Validation"
description: "Validates a pet-in-cabin booking against aircraft and route restrictions."
tags:
- customer-service
- compliance
- booking
capability:
exposes:
- type: mcp
namespace: pet
port: 8080
tools:
- name: validate-pet
description: "Validate pet-in-cabin booking."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight."
- name: pet_type
in: body
type: string
description: "Pet type."
call: "pss.validate-pet"
with:
flight: "{{flight_number}}"
pet: "{{pet_type}}"
outputParameters:
- name: allowed
type: boolean
mapping: "$.isAllowed"
- name: remaining_slots
type: number
mapping: "$.remainingSlots"
consumes:
- type: http
namespace: pss
baseUri: "https://pss.delta.com/api/v2"
authentication:
type: bearer
token: "$secrets.delta_pss_token"
resources:
- name: pet
path: "/bookings/pet-validation"
operations:
- name: validate-pet
method: POST
Calculates fatigue risk score for a pilot based on duty periods and time zone crossings.
naftiko: "0.5"
info:
label: "Pilot Fatigue Risk Assessment"
description: "Calculates fatigue risk score for a pilot based on duty periods and time zone crossings."
tags:
- crew-scheduling
- safety
- compliance
capability:
exposes:
- type: mcp
namespace: fatigue
port: 8080
tools:
- name: assess-fatigue
description: "Calculate fatigue risk for a pilot."
inputParameters:
- name: employee_id
in: body
type: string
description: "Pilot employee ID."
- name: trip_id
in: body
type: string
description: "Proposed trip ID."
call: "frms-api.calculate-risk"
with:
employee_id: "{{employee_id}}"
trip_id: "{{trip_id}}"
outputParameters:
- name: risk_score
type: number
mapping: "$.riskScore"
- name: risk_level
type: string
mapping: "$.riskLevel"
consumes:
- type: http
namespace: frms-api
baseUri: "https://safety.delta.com/api/v1/frms"
authentication:
type: bearer
token: "$secrets.delta_safety_token"
resources:
- name: risk
path: "/assess"
operations:
- name: calculate-risk
method: POST
Retrieves pilot training records including type ratings, recency checks, and upcoming recurrent training dates.
naftiko: "0.5"
info:
label: "Pilot Training Record Lookup"
description: "Retrieves pilot training records including type ratings, recency checks, and upcoming recurrent training dates."
tags:
- crew-scheduling
- training
- compliance
capability:
exposes:
- type: mcp
namespace: crew-training
port: 8080
tools:
- name: get-pilot-training
description: "Look up pilot training records and certification status."
inputParameters:
- name: employee_id
in: body
type: string
description: "Pilot employee ID."
call: "crew-api.get-training"
with:
employee_id: "{{employee_id}}"
outputParameters:
- name: type_ratings
type: array
mapping: "$.typeRatings"
- name: last_check
type: string
mapping: "$.lastCheckDate"
- name: next_recurrent
type: string
mapping: "$.nextRecurrent"
consumes:
- type: http
namespace: crew-api
baseUri: "https://crew.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_crew_token"
resources:
- name: training
path: "/pilots/{{employee_id}}/training"
inputParameters:
- name: employee_id
in: path
operations:
- name: get-training
method: GET
Triggers a Power BI dataset refresh for the flight operations dashboard after Snowflake data loads complete, ensuring current on-time performance and load factor data is available.
naftiko: "0.5"
info:
label: "Power BI Flight Operations Dashboard Refresh"
description: "Triggers a Power BI dataset refresh for the flight operations dashboard after Snowflake data loads complete, ensuring current on-time performance and load factor data is available."
tags:
- analytics
- operations
- power-bi
- snowflake
- reporting
capability:
exposes:
- type: mcp
namespace: ops-bi
port: 8080
tools:
- name: refresh-flight-ops-dashboard
description: "Given a Power BI dataset ID and the completed Snowflake pipeline name, trigger a dataset refresh so the flight operations dashboard reflects the latest on-time and load factor data."
inputParameters:
- name: dataset_id
in: body
type: string
description: "Power BI dataset ID for the flight operations report."
- name: pipeline_name
in: body
type: string
description: "Name of the Snowflake pipeline that completed loading."
steps:
- name: verify-load
type: call
call: snowflake.execute-query
with:
statement: "SELECT MAX(loaded_at) as last_load FROM pipeline_audit WHERE pipeline = '{{pipeline_name}}' AND status = 'success'"
- name: refresh-dataset
type: call
call: powerbi.refresh-dataset
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://delta.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Submits a Delta One or First Class meal preorder for a passenger.
naftiko: "0.5"
info:
label: "Premium Meal Preorder"
description: "Submits a Delta One or First Class meal preorder for a passenger."
tags:
- inflight-services
- catering
- customer-service
capability:
exposes:
- type: mcp
namespace: meal-preorder
port: 8080
tools:
- name: submit-preorder
description: "Submit a premium meal preorder."
inputParameters:
- name: pnr
in: body
type: string
description: "PNR."
- name: flight_number
in: body
type: string
description: "Flight."
- name: meal_selection
in: body
type: string
description: "Meal choice."
call: "catering-api.submit-preorder"
with:
pnr: "{{pnr}}"
flight: "{{flight_number}}"
meal: "{{meal_selection}}"
outputParameters:
- name: confirmation
type: string
mapping: "$.confirmation"
consumes:
- type: http
namespace: catering-api
baseUri: "https://catering.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_catering_token"
resources:
- name: preorders
path: "/preorders"
operations:
- name: submit-preorder
method: POST
Reports a ramp safety incident by creating a ServiceNow safety report, notifying the station safety manager, and logging in Workday.
naftiko: "0.5"
info:
label: "Ramp Safety Incident Orchestrator"
description: "Reports a ramp safety incident by creating a ServiceNow safety report, notifying the station safety manager, and logging in Workday."
tags:
- safety
- ground-ops
- servicenow
- workday
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: ramp-safety
port: 8080
tools:
- name: report-ramp-incident
description: "Report a ramp safety incident across all systems."
inputParameters:
- name: station
in: body
type: string
description: "Airport station."
- name: incident_type
in: body
type: string
description: "Incident type."
- name: employee_id
in: body
type: string
description: "Employee ID."
- name: description
in: body
type: string
description: "Description."
steps:
- name: create-report
type: call
call: "servicenow.create-incident"
with:
short_description: "Ramp safety: {{incident_type}} at {{station}}"
category: "safety"
priority: "1"
- name: notify-safety
type: call
call: "msteams.post-channel-message"
with:
channel_id: "{{safety_channel}}"
text: "SAFETY ALERT at {{station}}: {{incident_type}} — {{description}}"
- name: log-employee
type: call
call: "workday.create-safety-event"
with:
employee_id: "{{employee_id}}"
event_type: "{{incident_type}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://delta.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
- type: http
namespace: workday
baseUri: "https://wd5-services.delta.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: safety
path: "/safety/events"
operations:
- name: create-safety-event
method: POST
Runs revenue integrity checks on a flight, identifies discrepancies, and creates cases in Salesforce and Jira.
naftiko: "0.5"
info:
label: "Revenue Integrity Orchestrator"
description: "Runs revenue integrity checks on a flight, identifies discrepancies, and creates cases in Salesforce and Jira."
tags:
- revenue-management
- salesforce
- jira
- compliance
capability:
exposes:
- type: mcp
namespace: rev-integrity
port: 8080
tools:
- name: audit-revenue
description: "Run revenue integrity audit."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight."
- name: flight_date
in: body
type: string
description: "Date."
steps:
- name: pull-data
type: call
call: "analytics-api.get-flight-revenue"
with:
flight: "{{flight_number}}"
date: "{{flight_date}}"
- name: check-integrity
type: call
call: "analytics-api.check-integrity"
with:
flight: "{{flight_number}}"
bookings: "{{pull-data.bookings}}"
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "Revenue discrepancy — {{flight_number}} {{flight_date}}"
priority: "Medium"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "REVMGMT"
summary: "Revenue integrity: {{flight_number}} {{flight_date}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://analytics.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_analytics_token"
resources:
- name: revenue
path: "/flights/{{flight}}/revenue"
inputParameters:
- name: flight
in: path
operations:
- name: get-flight-revenue
method: GET
- name: integrity
path: "/integrity/check"
operations:
- name: check-integrity
method: POST
- type: http
namespace: salesforce
baseUri: "https://delta.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: jira
baseUri: "https://delta.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Triggers a Snowflake pipeline refresh for revenue-per-available-seat-mile (RASM) analytics and notifies the revenue management team in Microsoft Teams when the data is ready.
naftiko: "0.5"
info:
label: "Revenue Management Analytics Refresh"
description: "Triggers a Snowflake pipeline refresh for revenue-per-available-seat-mile (RASM) analytics and notifies the revenue management team in Microsoft Teams when the data is ready."
tags:
- analytics
- finance
- snowflake
- reporting
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: revenue-analytics
port: 8080
tools:
- name: refresh-rasm-analytics
description: "Given a reporting date, execute the Snowflake RASM aggregation procedure and notify the revenue management Microsoft Teams channel when the refresh completes."
inputParameters:
- name: report_date
in: body
type: string
description: "ISO 8601 date for the RASM analytics refresh."
steps:
- name: run-rasm-aggregation
type: call
call: snowflake.execute-query
with:
statement: "CALL refresh_rasm_aggregates('{{report_date}}')"
- name: notify-revenue-mgmt
type: call
call: msteams.send-channel-message
with:
team_id: "$secrets.teams_revenue_mgmt_team_id"
channel_id: "$secrets.teams_revenue_mgmt_channel_id"
text: "RASM analytics refreshed for {{report_date}}. Status: {{run-rasm-aggregation.status}}. Review in Power BI."
consumes:
- type: http
namespace: snowflake
baseUri: "https://delta.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Generates RPM report for a period broken down by domestic and international operations.
naftiko: "0.5"
info:
label: "Revenue Passenger Miles Report"
description: "Generates RPM report for a period broken down by domestic and international operations."
tags:
- revenue-management
- analytics
capability:
exposes:
- type: mcp
namespace: rpm
port: 8080
tools:
- name: get-rpm
description: "Generate RPM report."
inputParameters:
- name: start_date
in: body
type: string
description: "Start date."
- name: end_date
in: body
type: string
description: "End date."
call: "analytics-api.get-rpm"
with:
start: "{{start_date}}"
end: "{{end_date}}"
outputParameters:
- name: total_rpm
type: number
mapping: "$.totalRPM"
- name: domestic
type: number
mapping: "$.domesticRPM"
- name: international
type: number
mapping: "$.internationalRPM"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://analytics.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_analytics_token"
resources:
- name: rpm
path: "/metrics/rpm"
operations:
- name: get-rpm
method: POST
Generates route-level profitability metrics including load factor, RASM, CASM, and operating margin for a given origin-destination pair.
naftiko: "0.5"
info:
label: "Route Profitability Analysis"
description: "Generates route-level profitability metrics including load factor, RASM, CASM, and operating margin for a given origin-destination pair."
tags:
- revenue-management
- analytics
capability:
exposes:
- type: mcp
namespace: route-analytics
port: 8080
tools:
- name: get-route-profitability
description: "Retrieve profitability metrics for a specific route."
inputParameters:
- name: origin
in: body
type: string
description: "Origin airport."
- name: destination
in: body
type: string
description: "Destination airport."
- name: period
in: body
type: string
description: "Reporting period."
call: "analytics-api.get-route-metrics"
with:
origin: "{{origin}}"
destination: "{{destination}}"
period: "{{period}}"
outputParameters:
- name: load_factor
type: number
mapping: "$.loadFactor"
- name: rasm
type: number
mapping: "$.rasm"
- name: operating_margin
type: number
mapping: "$.operatingMargin"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://analytics.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_analytics_token"
resources:
- name: route-metrics
path: "/routes/profitability"
operations:
- name: get-route-metrics
method: POST
Submits a runway slot request at slot-controlled airports.
naftiko: "0.5"
info:
label: "Runway Slot Request"
description: "Submits a runway slot request at slot-controlled airports."
tags:
- flight-operations
- dispatch
- scheduling
capability:
exposes:
- type: mcp
namespace: slots
port: 8080
tools:
- name: request-slot
description: "Request a runway slot."
inputParameters:
- name: airport
in: body
type: string
description: "Airport."
- name: flight_number
in: body
type: string
description: "Flight number."
- name: time
in: body
type: string
description: "Requested time UTC."
call: "slot-api.request-slot"
with:
airport: "{{airport}}"
flight: "{{flight_number}}"
time: "{{time}}"
outputParameters:
- name: slot_id
type: string
mapping: "$.slotId"
- name: granted_time
type: string
mapping: "$.grantedTime"
consumes:
- type: http
namespace: slot-api
baseUri: "https://scheduling.delta.com/api/v1/slots"
authentication:
type: bearer
token: "$secrets.delta_scheduling_token"
resources:
- name: slots
path: "/request"
operations:
- name: request-slot
method: POST
Looks up all open Salesforce support cases associated with a given flight number for use by operations and customer service teams during disruption response.
naftiko: "0.5"
info:
label: "Salesforce Case Lookup by Flight Number"
description: "Looks up all open Salesforce support cases associated with a given flight number for use by operations and customer service teams during disruption response."
tags:
- customer-support
- operations
- salesforce
- lookup
capability:
exposes:
- type: mcp
namespace: case-lookup
port: 8080
tools:
- name: get-cases-by-flight
description: "Given a Delta flight number, return all open Salesforce support cases associated with that flight. Use during flight disruption response to understand the scope of customer impact."
inputParameters:
- name: flight_number
in: body
type: string
description: "Delta flight number to search for open cases (e.g. DL1234)."
call: salesforce.query-cases
with:
q: "SELECT Id, CaseNumber, Status, Priority, Subject, CreatedDate FROM Case WHERE Flight_Number__c = '{{flight_number}}' AND Status != 'Closed' ORDER BY CreatedDate DESC"
outputParameters:
- name: cases
type: array
mapping: "$.records"
consumes:
- type: http
namespace: salesforce
baseUri: "https://delta.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: query
path: "/query"
inputParameters:
- name: q
in: query
operations:
- name: query-cases
method: GET
When a Salesforce customer support case breaches its SLA, escalates the case priority, reassigns it to a senior agent, and notifies the customer experience manager in Microsoft Teams.
naftiko: "0.5"
info:
label: "Salesforce Customer Case SLA Escalation"
description: "When a Salesforce customer support case breaches its SLA, escalates the case priority, reassigns it to a senior agent, and notifies the customer experience manager in Microsoft Teams."
tags:
- customer-support
- sla
- salesforce
- microsoft-teams
- escalation
capability:
exposes:
- type: mcp
namespace: cx-support
port: 8080
tools:
- name: escalate-case-sla-breach
description: "Given a Salesforce case ID that has breached its SLA and the breach duration, update the case priority to Critical, reassign to senior support, and notify the CX manager in Teams."
inputParameters:
- name: case_id
in: body
type: string
description: "Salesforce case ID that has breached its SLA."
- name: breach_minutes
in: body
type: integer
description: "Number of minutes the SLA has been exceeded."
- name: cx_manager_upn
in: body
type: string
description: "Microsoft 365 UPN of the customer experience manager to notify."
steps:
- name: escalate-case
type: call
call: salesforce.update-case
with:
case_id: "{{case_id}}"
priority: Critical
status: Escalated
- name: notify-cx-manager
type: call
call: msteams.send-message
with:
recipient_upn: "{{cx_manager_upn}}"
text: "SLA breach: Case {{case_id}} is {{breach_minutes}}min overdue and has been escalated to Critical priority."
consumes:
- type: http
namespace: salesforce
baseUri: "https://delta.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case/{{case_id}}"
inputParameters:
- name: case_id
in: path
operations:
- name: update-case
method: PATCH
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
When a Salesforce partnership opportunity reaches Closed Won, creates a partner record in the SkyMiles partner system and notifies the partner development team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Salesforce Lead to SkyMiles Partner Sync"
description: "When a Salesforce partnership opportunity reaches Closed Won, creates a partner record in the SkyMiles partner system and notifies the partner development team in Microsoft Teams."
tags:
- sales
- loyalty
- salesforce
- microsoft-teams
- partners
capability:
exposes:
- type: mcp
namespace: partner-development
port: 8080
tools:
- name: activate-skymiles-partner
description: "Given a Salesforce opportunity ID that has reached Closed Won for a SkyMiles partnership, register the partner in Snowflake and notify the partner development team in Microsoft Teams."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "Salesforce opportunity ID for the new SkyMiles partner."
- name: partner_program_code
in: body
type: string
description: "SkyMiles partner program code (e.g. RETAIL, HOTEL, CARD)."
steps:
- name: get-opportunity
type: call
call: salesforce.get-opportunity
with:
opportunity_id: "{{opportunity_id}}"
- name: register-partner
type: call
call: snowflake.execute-query
with:
statement: "INSERT INTO skymiles_partners (partner_name, program_code, salesforce_opportunity_id, activated_at) VALUES ('{{get-opportunity.account_name}}', '{{partner_program_code}}', '{{opportunity_id}}', CURRENT_TIMESTAMP)"
- name: notify-partner-dev
type: call
call: msteams.send-channel-message
with:
team_id: "$secrets.teams_partner_dev_team_id"
channel_id: "$secrets.teams_partner_dev_channel_id"
text: "New SkyMiles partner activated: {{get-opportunity.account_name}} ({{partner_program_code}}) | SF Opportunity: {{opportunity_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://delta.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: get-opportunity
method: GET
- type: http
namespace: snowflake
baseUri: "https://delta.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Processes a vendor invoice against a SAP purchase order, matches the line items, and notifies the accounts payable team in Microsoft Teams when the invoice is posted.
naftiko: "0.5"
info:
label: "SAP Vendor Invoice Processing"
description: "Processes a vendor invoice against a SAP purchase order, matches the line items, and notifies the accounts payable team in Microsoft Teams when the invoice is posted."
tags:
- finance
- accounts-payable
- sap
- erp
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: accounts-payable
port: 8080
tools:
- name: process-vendor-invoice
description: "Given a vendor invoice number, related SAP PO, and total amount, post the invoice in SAP S/4HANA and notify the accounts payable Microsoft Teams channel for payment scheduling."
inputParameters:
- name: invoice_number
in: body
type: string
description: "Vendor invoice reference number."
- name: po_number
in: body
type: string
description: "SAP purchase order number the invoice is matched to."
- name: amount_usd
in: body
type: number
description: "Invoice total in USD."
- name: vendor_id
in: body
type: string
description: "SAP vendor master ID."
steps:
- name: post-invoice
type: call
call: sap.create-invoice
with:
vendor_id: "{{vendor_id}}"
invoice_number: "{{invoice_number}}"
po_number: "{{po_number}}"
amount: "{{amount_usd}}"
currency: USD
- name: notify-ap
type: call
call: msteams.send-channel-message
with:
team_id: "$secrets.teams_finance_team_id"
channel_id: "$secrets.teams_ap_channel_id"
text: "Invoice posted: {{invoice_number}} for ${{amount_usd}} matched to PO {{po_number}} | SAP doc: {{post-invoice.document_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://delta-s4.sap.com/sap/opu/odata/sap/API_SUPPLIERINVOICE_PROCESS_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: supplier-invoices
path: "/A_SupplierInvoice"
operations:
- name: create-invoice
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Retrieves seat map and availability for a Delta flight showing available, occupied, and blocked seats by cabin.
naftiko: "0.5"
info:
label: "Seat Map Availability Lookup"
description: "Retrieves seat map and availability for a Delta flight showing available, occupied, and blocked seats by cabin."
tags:
- customer-service
- flight-operations
capability:
exposes:
- type: mcp
namespace: seat-map
port: 8080
tools:
- name: get-seat-map
description: "Get seat availability for a flight."
inputParameters:
- name: flight_number
in: body
type: string
description: "Flight number."
- name: flight_date
in: body
type: string
description: "Flight date."
call: "pss.get-seat-map"
with:
flight: "{{flight_number}}"
date: "{{flight_date}}"
outputParameters:
- name: available_seats
type: number
mapping: "$.availableSeats"
- name: cabin_breakdown
type: object
mapping: "$.cabinBreakdown"
consumes:
- type: http
namespace: pss
baseUri: "https://pss.delta.com/api/v2"
authentication:
type: bearer
token: "$secrets.delta_pss_token"
resources:
- name: seat-maps
path: "/flights/{{flight}}/seat-map"
inputParameters:
- name: flight
in: path
operations:
- name: get-seat-map
method: GET
Retrieves estimated security checkpoint wait times at a Delta hub terminal.
naftiko: "0.5"
info:
label: "Security Checkpoint Wait Times"
description: "Retrieves estimated security checkpoint wait times at a Delta hub terminal."
tags:
- customer-service
- ground-ops
- airport
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: get-wait-times
description: "Get security wait time estimates."
inputParameters:
- name: station
in: body
type: string
description: "Airport."
- name: terminal
in: body
type: string
description: "Terminal."
call: "airport-api.get-waits"
with:
station: "{{station}}"
terminal: "{{terminal}}"
outputParameters:
- name: standard_wait
type: number
mapping: "$.standardWait"
- name: precheck_wait
type: number
mapping: "$.precheckWait"
consumes:
- type: http
namespace: airport-api
baseUri: "https://api.delta.com/v1/airports"
authentication:
type: bearer
token: "$secrets.delta_api_token"
resources:
- name: waits
path: "/{{station}}/security/wait-times"
inputParameters:
- name: station
in: path
operations:
- name: get-waits
method: GET
Creates a ServiceNow change request for planned system maintenance windows, assigns it to the CAB, and notifies the technology operations Microsoft Teams channel.
naftiko: "0.5"
info:
label: "ServiceNow IT Change Request for Maintenance"
description: "Creates a ServiceNow change request for planned system maintenance windows, assigns it to the CAB, and notifies the technology operations Microsoft Teams channel."
tags:
- itsm
- change-management
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: change-management
port: 8080
tools:
- name: create-maintenance-change-request
description: "Given a maintenance description, risk level, and planned window, create a ServiceNow change request for CAB review and notify the technology operations Microsoft Teams channel."
inputParameters:
- name: short_description
in: body
type: string
description: "Brief description of the planned maintenance."
- name: risk_level
in: body
type: string
description: "Risk level: low, medium, or high."
- name: planned_start
in: body
type: string
description: "Planned maintenance start time in ISO 8601 format."
- name: planned_end
in: body
type: string
description: "Planned maintenance end time in ISO 8601 format."
- name: systems_affected
in: body
type: string
description: "Comma-separated list of systems affected by the maintenance."
steps:
- name: create-cr
type: call
call: servicenow.create-change-request
with:
type: normal
risk: "{{risk_level}}"
short_description: "{{short_description}}"
start_date: "{{planned_start}}"
end_date: "{{planned_end}}"
- name: notify-tech-ops
type: call
call: msteams.send-channel-message
with:
team_id: "$secrets.teams_tech_ops_team_id"
channel_id: "$secrets.teams_tech_ops_channel_id"
text: "Maintenance window submitted: {{short_description}} | Systems: {{systems_affected}} | Window: {{planned_start}} – {{planned_end}} | SNOW: {{create-cr.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://delta.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: change-requests
path: "/table/change_request"
operations:
- name: create-change-request
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Enriches a Salesforce customer contact with SkyMiles loyalty tier and lifetime miles data from Snowflake to support personalized customer service interactions.
naftiko: "0.5"
info:
label: "SkyMiles Member Loyalty Enrichment"
description: "Enriches a Salesforce customer contact with SkyMiles loyalty tier and lifetime miles data from Snowflake to support personalized customer service interactions."
tags:
- loyalty
- crm
- salesforce
- snowflake
- customer-experience
capability:
exposes:
- type: mcp
namespace: loyalty
port: 8080
tools:
- name: enrich-skymiles-member
description: "Given a Salesforce contact ID and SkyMiles member number, retrieve loyalty tier and lifetime mileage from Snowflake and update the Salesforce contact with the enriched profile for customer service use."
inputParameters:
- name: salesforce_contact_id
in: body
type: string
description: "Salesforce contact ID for the customer."
- name: skymiles_number
in: body
type: string
description: "Delta SkyMiles member number."
steps:
- name: get-loyalty-data
type: call
call: snowflake.execute-query
with:
statement: "SELECT tier_status, lifetime_miles, ytd_miles, expiration_date FROM skymiles_members WHERE member_number = '{{skymiles_number}}'"
- name: update-contact
type: call
call: salesforce.update-contact
with:
contact_id: "{{salesforce_contact_id}}"
skymiles_tier: "{{get-loyalty-data.tier_status}}"
lifetime_miles: "{{get-loyalty-data.lifetime_miles}}"
ytd_miles: "{{get-loyalty-data.ytd_miles}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://delta.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://delta.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: update-contact
method: PATCH
Retrieves a SkyMiles member's loyalty tier, MQD balance, and Medallion status for customer service interactions.
naftiko: "0.5"
info:
label: "SkyMiles Member Tier Lookup"
description: "Retrieves a SkyMiles member's loyalty tier, MQD balance, and Medallion status for customer service interactions."
tags:
- customer-service
- loyalty
- skymiles
capability:
exposes:
- type: mcp
namespace: loyalty
port: 8080
tools:
- name: get-member-tier
description: "Look up a SkyMiles member's Medallion tier and qualification status."
inputParameters:
- name: skymiles_number
in: body
type: string
description: "SkyMiles member number."
call: "loyalty-api.get-member"
with:
member_id: "{{skymiles_number}}"
outputParameters:
- name: medallion_tier
type: string
mapping: "$.medallionTier"
- name: mqd_balance
type: number
mapping: "$.mqdBalance"
- name: mqm_balance
type: number
mapping: "$.mqmBalance"
consumes:
- type: http
namespace: loyalty-api
baseUri: "https://loyalty.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_loyalty_token"
resources:
- name: members
path: "/members/{{member_id}}"
inputParameters:
- name: member_id
in: path
operations:
- name: get-member
method: GET
Queries Snowflake for jet fuel consumption and cost data by route and fleet type and writes the weekly cost report for the finance operations team.
naftiko: "0.5"
info:
label: "Snowflake Fuel Cost Analytics Report"
description: "Queries Snowflake for jet fuel consumption and cost data by route and fleet type and writes the weekly cost report for the finance operations team."
tags:
- finance
- analytics
- snowflake
- operations
- fuel
capability:
exposes:
- type: mcp
namespace: fuel-analytics
port: 8080
tools:
- name: generate-fuel-cost-report
description: "Given a week ending date, query Snowflake for fuel consumption, cost per gallon, and total fuel expense by route and fleet type, then store the weekly fuel cost report."
inputParameters:
- name: week_ending_date
in: body
type: string
description: "ISO 8601 date of the week ending for the fuel cost report."
call: snowflake.execute-query
with:
statement: "INSERT INTO fuel_cost_reports SELECT '{{week_ending_date}}' as week_ending, route, fleet_type, SUM(gallons_consumed) as total_gallons, AVG(cost_per_gallon) as avg_cost_per_gallon, SUM(total_fuel_cost_usd) as total_cost FROM fuel_transactions WHERE DATEPART(week, transaction_date) = DATEPART(week, '{{week_ending_date}}') GROUP BY route, fleet_type"
outputParameters:
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: snowflake
baseUri: "https://delta.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Runs a Snowflake query to compute daily on-time departure and arrival performance by hub airport and writes the results to a reporting table for operations leadership.
naftiko: "0.5"
info:
label: "Snowflake On-Time Performance Daily Summary"
description: "Runs a Snowflake query to compute daily on-time departure and arrival performance by hub airport and writes the results to a reporting table for operations leadership."
tags:
- analytics
- operations
- snowflake
- reporting
- on-time-performance
capability:
exposes:
- type: mcp
namespace: otp-analytics
port: 8080
tools:
- name: compute-daily-otp
description: "Given a flight date, compute on-time departure and arrival rates by hub airport from Snowflake and store the aggregated results in the OTP reporting table."
inputParameters:
- name: flight_date
in: body
type: string
description: "ISO 8601 date to compute on-time performance for."
call: snowflake.execute-query
with:
statement: "INSERT INTO otp_daily_summary SELECT '{{flight_date}}' as flight_date, origin_airport, COUNT(*) as total_departures, SUM(CASE WHEN departure_delay_minutes <= 15 THEN 1 ELSE 0 END) as on_time_departures FROM flights WHERE flight_date = '{{flight_date}}' GROUP BY origin_airport"
outputParameters:
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: snowflake
baseUri: "https://delta.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Verifies passenger TSA PreCheck eligibility and Known Traveler Number.
naftiko: "0.5"
info:
label: "TSA PreCheck Eligibility Check"
description: "Verifies passenger TSA PreCheck eligibility and Known Traveler Number."
tags:
- customer-service
- security
- compliance
capability:
exposes:
- type: mcp
namespace: tsa
port: 8080
tools:
- name: check-precheck
description: "Verify PreCheck eligibility."
inputParameters:
- name: pnr
in: body
type: string
description: "PNR."
- name: ktn
in: body
type: string
description: "Known Traveler Number."
call: "security-api.verify-precheck"
with:
pnr: "{{pnr}}"
ktn: "{{ktn}}"
outputParameters:
- name: eligible
type: boolean
mapping: "$.eligible"
consumes:
- type: http
namespace: security-api
baseUri: "https://security.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_security_token"
resources:
- name: precheck
path: "/tsa/verify"
operations:
- name: verify-precheck
method: POST
Sends a post-flight SMS follow-up to customers via Twilio after a disruption-affected journey and logs the outreach in their Salesforce contact record.
naftiko: "0.5"
info:
label: "Twilio Customer Service SMS Follow-Up"
description: "Sends a post-flight SMS follow-up to customers via Twilio after a disruption-affected journey and logs the outreach in their Salesforce contact record."
tags:
- customer-experience
- communications
- twilio
- salesforce
capability:
exposes:
- type: mcp
namespace: cx-outreach
port: 8080
tools:
- name: send-post-disruption-followup
description: "Given a Salesforce contact ID, customer phone number, and flight number, send a post-disruption SMS via Twilio and log the outreach activity in the Salesforce contact record."
inputParameters:
- name: salesforce_contact_id
in: body
type: string
description: "Salesforce contact ID of the affected customer."
- name: customer_phone
in: body
type: string
description: "Customer's mobile phone number in E.164 format."
- name: flight_number
in: body
type: string
description: "Flight number affected by the disruption."
- name: compensation_offer
in: body
type: string
description: "Compensation offered (e.g. 5000 SkyMiles, travel voucher)."
steps:
- name: send-sms
type: call
call: twilio.send-message
with:
to: "{{customer_phone}}"
from: "$secrets.twilio_from_number"
body: "We're sorry for the disruption to your flight {{flight_number}}. As a gesture of goodwill, we're crediting your account with {{compensation_offer}}. Thank you for choosing Delta."
- name: log-activity
type: call
call: salesforce.create-activity
with:
contact_id: "{{salesforce_contact_id}}"
subject: "Post-disruption SMS sent: {{flight_number}}"
description: "Compensation offered: {{compensation_offer}}. SMS status: {{send-sms.status}}"
consumes:
- type: http
namespace: twilio
baseUri: "https://api.twilio.com/2010-04-01"
authentication:
type: basic
username: "$secrets.twilio_account_sid"
password: "$secrets.twilio_auth_token"
resources:
- name: messages
path: "/Accounts/{{account_sid}}/Messages"
inputParameters:
- name: account_sid
in: path
operations:
- name: send-message
method: POST
- type: http
namespace: salesforce
baseUri: "https://delta.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: activities
path: "/sobjects/Task"
operations:
- name: create-activity
method: POST
Tracks unaccompanied minor passengers through checkpoint confirmations and handoff status.
naftiko: "0.5"
info:
label: "Unaccompanied Minor Tracking"
description: "Tracks unaccompanied minor passengers through checkpoint confirmations and handoff status."
tags:
- customer-service
- safety
- tracking
capability:
exposes:
- type: mcp
namespace: umnr
port: 8080
tools:
- name: track-umnr
description: "Track unaccompanied minor by PNR."
inputParameters:
- name: pnr
in: body
type: string
description: "PNR."
call: "umnr-api.get-status"
with:
pnr: "{{pnr}}"
outputParameters:
- name: checkpoint
type: string
mapping: "$.currentCheckpoint"
- name: handoff
type: string
mapping: "$.handoffStatus"
consumes:
- type: http
namespace: umnr-api
baseUri: "https://pss.delta.com/api/v2/umnr"
authentication:
type: bearer
token: "$secrets.delta_pss_token"
resources:
- name: tracking
path: "/tracking/{{pnr}}"
inputParameters:
- name: pnr
in: path
operations:
- name: get-status
method: GET
Arranges special handling for VIP passengers including reservation flagging, meet-and-greet, and station notification.
naftiko: "0.5"
info:
label: "VIP Passenger Handling Orchestrator"
description: "Arranges special handling for VIP passengers including reservation flagging, meet-and-greet, and station notification."
tags:
- customer-service
- ground-ops
- loyalty
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: vip
port: 8080
tools:
- name: arrange-vip
description: "Set up VIP handling."
inputParameters:
- name: pnr
in: body
type: string
description: "PNR."
- name: flight_number
in: body
type: string
description: "Flight."
- name: station
in: body
type: string
description: "Station."
steps:
- name: flag-reservation
type: call
call: "pss.add-ssr"
with:
pnr: "{{pnr}}"
ssr_code: "VIP"
- name: arrange-meet-greet
type: call
call: "ground-ops.create-meet-greet"
with:
station: "{{station}}"
flight: "{{flight_number}}"
- name: notify-station
type: call
call: "msteams.post-channel-message"
with:
channel_id: "{{station_channel}}"
text: "VIP handling for {{flight_number}} at {{station}}"
consumes:
- type: http
namespace: pss
baseUri: "https://pss.delta.com/api/v2"
authentication:
type: bearer
token: "$secrets.delta_pss_token"
resources:
- name: ssr
path: "/bookings/{{pnr}}/ssr"
inputParameters:
- name: pnr
in: path
operations:
- name: add-ssr
method: POST
- type: http
namespace: ground-ops
baseUri: "https://groundops.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_ground_ops_token"
resources:
- name: meet-greet
path: "/meet-greet/create"
operations:
- name: create-meet-greet
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Assesses severe weather impact at a Delta hub by querying weather forecasts, identifying affected flights, creating a ServiceNow incident, and alerting the OCC via Teams.
naftiko: "0.5"
info:
label: "Weather Impact Assessment Orchestrator"
description: "Assesses severe weather impact at a Delta hub by querying weather forecasts, identifying affected flights, creating a ServiceNow incident, and alerting the OCC via Teams."
tags:
- flight-operations
- weather
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: weather-ops
port: 8080
tools:
- name: assess-weather-impact
description: "Assess weather impact on operations at a hub station."
inputParameters:
- name: hub_station
in: body
type: string
description: "Hub airport code (ATL, MSP, DTW, SLC, SEA, LAX, JFK, BOS)."
- name: forecast_hours
in: body
type: number
description: "Hours ahead to assess."
steps:
- name: get-forecast
type: call
call: "weather-api.get-forecast"
with:
station: "{{hub_station}}"
hours: "{{forecast_hours}}"
- name: get-affected-flights
type: call
call: "delta-api.search-departures"
with:
station: "{{hub_station}}"
hours: "{{forecast_hours}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Weather impact at {{hub_station}}: {{get-forecast.severity}} — {{get-affected-flights.count}} flights affected"
category: "flight_operations"
priority: "2"
- name: notify-occ
type: call
call: "msteams.post-channel-message"
with:
channel_id: "{{occ_channel_id}}"
text: "Weather alert at {{hub_station}}: {{get-forecast.summary}} | {{get-affected-flights.count}} departures impacted"
consumes:
- type: http
namespace: weather-api
baseUri: "https://api.weather.gov"
authentication:
type: none
resources:
- name: forecasts
path: "/zones/forecast/{{station}}"
inputParameters:
- name: station
in: path
operations:
- name: get-forecast
method: GET
- type: http
namespace: delta-api
baseUri: "https://api.delta.com/v1/flights"
authentication:
type: bearer
token: "$secrets.delta_api_token"
resources:
- name: departures
path: "/departures/search"
operations:
- name: search-departures
method: POST
- type: http
namespace: servicenow
baseUri: "https://delta.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Calculates aircraft weight and balance for a flight given passenger count, cargo, and fuel load.
naftiko: "0.5"
info:
label: "Weight and Balance Calculation"
description: "Calculates aircraft weight and balance for a flight given passenger count, cargo, and fuel load."
tags:
- dispatch
- flight-operations
- safety
capability:
exposes:
- type: mcp
namespace: wb-calc
port: 8080
tools:
- name: calculate-wb
description: "Calculate weight and balance for pre-departure."
inputParameters:
- name: tail_number
in: body
type: string
description: "Tail number."
- name: passenger_count
in: body
type: number
description: "Total passengers."
- name: cargo_weight
in: body
type: number
description: "Cargo weight in kg."
- name: fuel_load
in: body
type: number
description: "Fuel load in kg."
call: "dispatch-api.calc-wb"
with:
tail: "{{tail_number}}"
pax: "{{passenger_count}}"
cargo: "{{cargo_weight}}"
fuel: "{{fuel_load}}"
outputParameters:
- name: takeoff_weight
type: number
mapping: "$.takeoffWeight"
- name: center_of_gravity
type: number
mapping: "$.centerOfGravity"
- name: within_limits
type: boolean
mapping: "$.withinLimits"
consumes:
- type: http
namespace: dispatch-api
baseUri: "https://dispatch.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_dispatch_token"
resources:
- name: wb
path: "/weight-balance/calculate"
operations:
- name: calc-wb
method: POST
Creates a wheelchair assistance request for a passenger at an airport.
naftiko: "0.5"
info:
label: "Wheelchair Service Request"
description: "Creates a wheelchair assistance request for a passenger at an airport."
tags:
- customer-service
- ground-ops
- accessibility
capability:
exposes:
- type: mcp
namespace: wheelchair
port: 8080
tools:
- name: request-wheelchair
description: "Submit a wheelchair service request."
inputParameters:
- name: pnr
in: body
type: string
description: "PNR."
- name: station
in: body
type: string
description: "Station."
- name: service_type
in: body
type: string
description: "Type (WCHR, WCHS, WCHC)."
call: "ground-ops.create-wheelchair-request"
with:
pnr: "{{pnr}}"
station: "{{station}}"
type: "{{service_type}}"
outputParameters:
- name: request_id
type: string
mapping: "$.requestId"
consumes:
- type: http
namespace: ground-ops
baseUri: "https://groundops.delta.com/api/v1"
authentication:
type: bearer
token: "$secrets.delta_ground_ops_token"
resources:
- name: wheelchair
path: "/wheelchair/request"
operations:
- name: create-wheelchair-request
method: POST
When an employee is terminated in Workday, disables their Microsoft 365 account and creates a ServiceNow IT offboarding task for credential and system access clean-up.
naftiko: "0.5"
info:
label: "Workday Employee Offboarding Access Revocation"
description: "When an employee is terminated in Workday, disables their Microsoft 365 account and creates a ServiceNow IT offboarding task for credential and system access clean-up."
tags:
- hr
- offboarding
- workday
- microsoft-365
- servicenow
capability:
exposes:
- type: mcp
namespace: hr-offboarding
port: 8080
tools:
- name: revoke-employee-access
description: "Given a Workday employee ID and Microsoft 365 UPN, disable the M365 account and create a ServiceNow IT offboarding task to complete access revocation across all systems."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "Workday worker ID of the terminated employee."
- name: upn
in: body
type: string
description: "Microsoft 365 user principal name of the terminated employee."
steps:
- name: disable-m365
type: call
call: msgraph.disable-user
with:
user_id: "{{upn}}"
accountEnabled: false
- name: create-offboarding-task
type: call
call: servicenow.create-task
with:
category: hr_offboarding
short_description: "IT offboarding: {{upn}}"
assigned_group: IT_Security
description: "Workday termination {{workday_employee_id}}. M365 account disabled. Complete access revocation for all airline systems."
consumes:
- type: http
namespace: msgraph
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: users
path: "/users/{{user_id}}"
inputParameters:
- name: user_id
in: path
operations:
- name: disable-user
method: PATCH
- type: http
namespace: servicenow
baseUri: "https://delta.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/sc_task"
operations:
- name: create-task
method: POST
Pulls active headcount from Workday by department and writes the weekly payroll snapshot to Snowflake for finance planning and compliance reporting.
naftiko: "0.5"
info:
label: "Workday Headcount and Payroll Snapshot"
description: "Pulls active headcount from Workday by department and writes the weekly payroll snapshot to Snowflake for finance planning and compliance reporting."
tags:
- hr
- finance
- workday
- snowflake
- reporting
capability:
exposes:
- type: mcp
namespace: workforce-finance
port: 8080
tools:
- name: snapshot-headcount-payroll
description: "Retrieve active employee headcount and cost center allocations from Workday, then write the weekly snapshot to Snowflake for workforce planning and payroll reconciliation."
inputParameters:
- name: snapshot_date
in: body
type: string
description: "ISO 8601 date for the headcount and payroll snapshot."
steps:
- name: get-workers
type: call
call: workday.list-workers
with:
effective_date: "{{snapshot_date}}"
employment_status: active
- name: store-snapshot
type: call
call: snowflake.execute-query
with:
statement: "INSERT INTO headcount_snapshots (snapshot_date, total_headcount, source) VALUES ('{{snapshot_date}}', {{get-workers.total_results}}, 'workday')"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers"
inputParameters:
- name: effective_date
in: query
- name: employment_status
in: query
operations:
- name: list-workers
method: GET
- type: http
namespace: snowflake
baseUri: "https://delta.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Submits a new headcount position request from Workday, creates a Jira approval task for the hiring committee, and notifies talent acquisition in Microsoft Teams.
naftiko: "0.5"
info:
label: "Workday New Position Headcount Request"
description: "Submits a new headcount position request from Workday, creates a Jira approval task for the hiring committee, and notifies talent acquisition in Microsoft Teams."
tags:
- hr
- recruiting
- workday
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: talent-acquisition
port: 8080
tools:
- name: submit-headcount-request
description: "Given a Workday requisition ID, job title, and department, create a Jira headcount approval task and notify the talent acquisition Microsoft Teams channel to begin the hiring workflow."
inputParameters:
- name: requisition_id
in: body
type: string
description: "Workday position requisition ID for the open headcount."
- name: job_title
in: body
type: string
description: "Job title for the open position."
- name: department
in: body
type: string
description: "Department requesting the new headcount."
steps:
- name: create-approval-task
type: call
call: jira.create-issue
with:
project_key: HR
issuetype: Task
summary: "Headcount approval: {{job_title}} in {{department}}"
description: "Workday requisition {{requisition_id}} for {{job_title}} in {{department}} pending committee approval."
- name: notify-ta
type: call
call: msteams.send-channel-message
with:
team_id: "$secrets.teams_hr_team_id"
channel_id: "$secrets.teams_ta_channel_id"
text: "New headcount request: {{job_title}} in {{department}} | Jira approval: {{create-approval-task.key}} | Workday req: {{requisition_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://delta.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST