Travelport Capabilities
Naftiko 0.5 capability definitions for Travelport - 100 capabilities showing integration workflows and service orchestrations.
Pulls travel agency commission data from the GDS billing system, reconciles against Salesforce agency accounts, and logs discrepancies in ServiceNow for review.
naftiko: "0.5"
info:
label: "Agency Commission Reconciliation Pipeline"
description: "Pulls travel agency commission data from the GDS billing system, reconciles against Salesforce agency accounts, and logs discrepancies in ServiceNow for review."
tags:
- travel-agency
- commissions
- billing
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: commission-reconciliation
port: 8080
tools:
- name: reconcile-commissions
description: "Reconcile agency commissions between GDS billing and Salesforce, logging discrepancies."
inputParameters:
- name: agency_id
in: body
type: string
description: "The travel agency identifier."
- name: billing_period
in: body
type: string
description: "Billing period in YYYY-MM format."
steps:
- name: get-gds-commissions
type: call
call: "gds-billing.get-commissions"
with:
agency: "{{agency_id}}"
period: "{{billing_period}}"
- name: get-sf-account
type: call
call: "salesforce.get-agency-account"
with:
agency_id: "{{agency_id}}"
- name: log-discrepancies
type: call
call: "servicenow.create-record"
with:
table: "u_commission_reconciliation"
agency: "{{agency_id}}"
period: "{{billing_period}}"
gds_total: "{{get-gds-commissions.total}}"
sf_total: "{{get-sf-account.commission_total}}"
consumes:
- type: http
namespace: gds-billing
baseUri: "https://billing.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: commissions
path: "/agencies/{{agency}}/commissions?period={{period}}"
inputParameters:
- name: agency
in: path
- name: period
in: path
operations:
- name: get-commissions
method: GET
- type: http
namespace: salesforce
baseUri: "https://travelport.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: agency-accounts
path: "/sobjects/Agency_Account__c?q=Agency_ID__c='{{agency_id}}'"
inputParameters:
- name: agency_id
in: path
operations:
- name: get-agency-account
method: GET
- type: http
namespace: servicenow
baseUri: "https://travelport.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
When a new agency signs a contract, provisions their GDS access, creates a Salesforce account, sets up a SharePoint collaboration site, and sends welcome materials via Microsoft Teams.
naftiko: "0.5"
info:
label: "Agency Onboarding Pipeline"
description: "When a new agency signs a contract, provisions their GDS access, creates a Salesforce account, sets up a SharePoint collaboration site, and sends welcome materials via Microsoft Teams."
tags:
- travel-agency
- onboarding
- gds
- salesforce
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: agency-onboarding
port: 8080
tools:
- name: onboard-new-agency
description: "Provision GDS access, create Salesforce account, setup SharePoint, and welcome new agency."
inputParameters:
- name: agency_name
in: body
type: string
description: "The agency name."
- name: iata_number
in: body
type: string
description: "The IATA agency number."
- name: contact_email
in: body
type: string
description: "Primary contact email."
- name: contract_tier
in: body
type: string
description: "The contract tier level."
steps:
- name: provision-gds
type: call
call: "gds-admin.create-agency-profile"
with:
agency_name: "{{agency_name}}"
iata: "{{iata_number}}"
tier: "{{contract_tier}}"
- name: create-sf-account
type: call
call: "salesforce.create-account"
with:
name: "{{agency_name}}"
iata: "{{iata_number}}"
tier: "{{contract_tier}}"
pcc: "{{provision-gds.pcc}}"
- name: create-collab-site
type: call
call: "sharepoint.create-site"
with:
site_name: "Agency-{{iata_number}}"
description: "{{agency_name}} collaboration site"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{contact_email}}"
text: "Welcome to Travelport, {{agency_name}}! Your PCC is {{provision-gds.pcc}}. Collaboration site: {{create-collab-site.url}}"
consumes:
- type: http
namespace: gds-admin
baseUri: "https://admin.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.gds_admin_token"
resources:
- name: agency-profiles
path: "/agencies"
operations:
- name: create-agency-profile
method: POST
- type: http
namespace: salesforce
baseUri: "https://travelport.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account"
operations:
- name: create-account
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: sites
path: "/root/sites"
operations:
- name: create-site
method: POST
- 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
Pulls agency booking data from GDS billing, generates a Power BI report, and emails the agency manager.
naftiko: "0.5"
info:
label: "Agency Performance Dashboard Generator"
description: "Pulls agency booking data from GDS billing, generates a Power BI report, and emails the agency manager."
tags:
- travel-agency
- reporting
- power-bi
- billing
capability:
exposes:
- type: mcp
namespace: agency-reporting
port: 8080
tools:
- name: generate-agency-dashboard
description: "Generate agency performance dashboard from billing data."
inputParameters:
- name: agency_id
in: body
type: string
description: "The agency identifier."
- name: period
in: body
type: string
description: "Reporting period in YYYY-MM."
steps:
- name: get-booking-data
type: call
call: "gds-billing.get-agency-bookings"
with:
agency: "{{agency_id}}"
period: "{{period}}"
- name: refresh-dashboard
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "agency_performance_ds"
consumes:
- type: http
namespace: gds-billing
baseUri: "https://billing.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: agency-bookings
path: "/agencies/{{agency}}/bookings?period={{period}}"
inputParameters:
- name: agency
in: path
- name: period
in: path
operations:
- name: get-agency-bookings
method: GET
- 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
Retrieves a travel agency's storefront configuration from Salesforce including preferred carriers, fare rules, and branding settings.
naftiko: "0.5"
info:
label: "Agency Storefront Configuration Lookup"
description: "Retrieves a travel agency's storefront configuration from Salesforce including preferred carriers, fare rules, and branding settings."
tags:
- travel-agency
- salesforce
- configuration
capability:
exposes:
- type: mcp
namespace: agency-config
port: 8080
tools:
- name: get-agency-config
description: "Fetch agency storefront configuration from Salesforce."
inputParameters:
- name: agency_id
in: body
type: string
description: "The travel agency identifier."
call: "salesforce.get-agency-config"
with:
agency_id: "{{agency_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://travelport.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: agency-config
path: "/sobjects/Agency_Configuration__c?q=Agency_ID__c='{{agency_id}}'"
inputParameters:
- name: agency_id
in: path
operations:
- name: get-agency-config
method: GET
Enrolls a travel agency user in a Travelport training course via the learning platform and notifies them via Microsoft Teams.
naftiko: "0.5"
info:
label: "Agency Training Enrollment"
description: "Enrolls a travel agency user in a Travelport training course via the learning platform and notifies them via Microsoft Teams."
tags:
- travel-agency
- training
- learning
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: agency-training
port: 8080
tools:
- name: enroll-agent-training
description: "Enroll an agency user in training and notify via Teams."
inputParameters:
- name: agent_email
in: body
type: string
description: "The agent's email address."
- name: course_id
in: body
type: string
description: "The training course identifier."
steps:
- name: enroll
type: call
call: "learning-platform.enroll-user"
with:
email: "{{agent_email}}"
course: "{{course_id}}"
- name: notify-agent
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{agent_email}}"
text: "You have been enrolled in Travelport course {{course_id}}. Access: {{enroll.course_url}}"
consumes:
- type: http
namespace: learning-platform
baseUri: "https://learn.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.learning_token"
resources:
- name: enrollments
path: "/enrollments"
operations:
- name: enroll-user
method: POST
- 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
Retrieves airline content catalog details from the Travelport content platform by carrier code, returning available fare families, ancillaries, and NDC capabilities.
naftiko: "0.5"
info:
label: "Airline Content Catalog Lookup"
description: "Retrieves airline content catalog details from the Travelport content platform by carrier code, returning available fare families, ancillaries, and NDC capabilities."
tags:
- content
- airline
- gds
- fare-families
capability:
exposes:
- type: mcp
namespace: airline-content
port: 8080
tools:
- name: get-airline-content
description: "Fetch airline content catalog by carrier code."
inputParameters:
- name: carrier_code
in: body
type: string
description: "The two-letter IATA carrier code."
call: "content-platform.get-airline-catalog"
with:
carrier: "{{carrier_code}}"
consumes:
- type: http
namespace: content-platform
baseUri: "https://content.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.content_api_token"
resources:
- name: airline-catalog
path: "/airlines/{{carrier}}/catalog"
inputParameters:
- name: carrier
in: path
operations:
- name: get-airline-catalog
method: GET
When an airline publishes schedule changes, identifies affected PNRs in the GDS, creates a Jira task for the operations team, and notifies affected agencies via Microsoft Teams.
naftiko: "0.5"
info:
label: "Airline Schedule Change Processor"
description: "When an airline publishes schedule changes, identifies affected PNRs in the GDS, creates a Jira task for the operations team, and notifies affected agencies via Microsoft Teams."
tags:
- gds
- schedule-changes
- booking
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: schedule-changes
port: 8080
tools:
- name: process-schedule-change
description: "Process airline schedule changes: find affected PNRs, create Jira task, and notify agencies."
inputParameters:
- name: carrier_code
in: body
type: string
description: "The airline carrier code."
- name: flight_number
in: body
type: string
description: "The affected flight number."
- name: effective_date
in: body
type: string
description: "The effective date of the change."
steps:
- name: find-affected-pnrs
type: call
call: "gds.get-affected-bookings"
with:
carrier: "{{carrier_code}}"
flight: "{{flight_number}}"
date: "{{effective_date}}"
- name: create-ops-task
type: call
call: "jira.create-issue"
with:
project: "OPS"
summary: "Schedule change: {{carrier_code}}{{flight_number}} effective {{effective_date}}"
description: "{{find-affected-pnrs.pnr_count}} PNRs affected. Action required."
issue_type: "Task"
- name: notify-agencies
type: call
call: "msteams.post-channel-message"
with:
channel_id: "agency_notifications"
text: "Schedule change: {{carrier_code}}{{flight_number}} from {{effective_date}}. {{find-affected-pnrs.pnr_count}} bookings affected. Jira: {{create-ops-task.key}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: affected-bookings
path: "/bookings/affected?carrier={{carrier}}&flight={{flight}}&date={{date}}"
inputParameters:
- name: carrier
in: path
- name: flight
in: path
- name: date
in: path
operations:
- name: get-affected-bookings
method: GET
- type: http
namespace: jira
baseUri: "https://travelport.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_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/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Checks current delay status at an airport.
naftiko: "0.5"
info:
label: "Airport Delay Status"
description: "Checks current delay status at an airport."
tags:
- travel
- operations
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: get-airport
description: "Checks current delay status at an airport."
inputParameters:
- name: entity_id
in: body
type: string
description: "The airport delay status identifier."
call: "travel-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: travel-api
baseUri: "https://api.travelport.com/travel/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: airport
path: "/airport/delay/status/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-airport
method: GET
Retrieves available ancillary services (seat upgrades, baggage, meals) for a carrier from the content platform.
naftiko: "0.5"
info:
label: "Ancillary Services Catalog Lookup"
description: "Retrieves available ancillary services (seat upgrades, baggage, meals) for a carrier from the content platform."
tags:
- content
- ancillaries
- airline
- gds
capability:
exposes:
- type: mcp
namespace: ancillary-services
port: 8080
tools:
- name: get-ancillaries
description: "Fetch available ancillary services for a carrier."
inputParameters:
- name: carrier_code
in: body
type: string
description: "The IATA carrier code."
- name: cabin_class
in: body
type: string
description: "The cabin class (economy, business, first)."
call: "content-platform.get-ancillaries"
with:
carrier: "{{carrier_code}}"
cabin: "{{cabin_class}}"
consumes:
- type: http
namespace: content-platform
baseUri: "https://content.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.content_api_token"
resources:
- name: ancillaries
path: "/airlines/{{carrier}}/ancillaries?cabin={{cabin}}"
inputParameters:
- name: carrier
in: path
- name: cabin
in: path
operations:
- name: get-ancillaries
method: GET
Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.
naftiko: "0.5"
info:
label: "Annual Compliance Certification Orchestrator"
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
tags:
- compliance
- hr
- legal
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-annual-compliance-certification-orchestrator
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries Datadog for API gateway performance metrics including request count, error rate, and latency percentiles for Travelport API endpoints.
naftiko: "0.5"
info:
label: "API Gateway Performance Monitor"
description: "Queries Datadog for API gateway performance metrics including request count, error rate, and latency percentiles for Travelport API endpoints."
tags:
- monitoring
- datadog
- api-gateway
- performance
capability:
exposes:
- type: mcp
namespace: api-monitoring
port: 8080
tools:
- name: get-api-performance
description: "Fetch API gateway performance metrics from Datadog."
inputParameters:
- name: endpoint
in: body
type: string
description: "The API endpoint path to monitor."
call: "datadog.get-api-metrics"
with:
endpoint: "{{endpoint}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
headerName: "DD-API-KEY"
resources:
- name: api-metrics
path: "/query?query=avg:http.request.duration{endpoint:{{endpoint}}}"
inputParameters:
- name: endpoint
in: path
operations:
- name: get-api-metrics
method: GET
Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.
naftiko: "0.5"
info:
label: "API Lifecycle Management Orchestrator"
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
tags:
- engineering
- api
- operations
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: run-api-lifecycle-management-orchestrator
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves the latest build status for an Azure DevOps pipeline.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status"
description: "Retrieves the latest build status for an Azure DevOps pipeline."
tags:
- development
- azure-devops
- ci-cd
capability:
exposes:
- type: mcp
namespace: devops-builds
port: 8080
tools:
- name: get-build-status
description: "Fetch latest build status for an Azure DevOps pipeline."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "The Azure DevOps pipeline ID."
call: "azdo.get-latest-build"
with:
pipeline_id: "{{pipeline_id}}"
consumes:
- type: http
namespace: azdo
baseUri: "https://dev.azure.com/travelport"
authentication:
type: basic
username: ""
password: "$secrets.azure_devops_pat"
resources:
- name: builds
path: "/_apis/build/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
inputParameters:
- name: pipeline_id
in: path
operations:
- name: get-latest-build
method: GET
Cancels a PNR in the GDS, processes the refund, updates the Salesforce case, and notifies the agent via Microsoft Teams.
naftiko: "0.5"
info:
label: "Booking Cancellation Processor"
description: "Cancels a PNR in the GDS, processes the refund, updates the Salesforce case, and notifies the agent via Microsoft Teams."
tags:
- booking
- cancellation
- gds
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: booking-cancellation
port: 8080
tools:
- name: cancel-booking
description: "Cancel a GDS booking, process refund, update Salesforce, and notify agent."
inputParameters:
- name: record_locator
in: body
type: string
description: "The PNR record locator."
- name: reason
in: body
type: string
description: "Cancellation reason."
- name: agent_upn
in: body
type: string
description: "The agent email for notification."
steps:
- name: cancel-pnr
type: call
call: "gds.cancel-booking"
with:
record_locator: "{{record_locator}}"
reason: "{{reason}}"
- name: process-refund
type: call
call: "gds.process-refund"
with:
record_locator: "{{record_locator}}"
ticket_number: "{{cancel-pnr.ticket_number}}"
- name: update-salesforce
type: call
call: "salesforce.create-case"
with:
subject: "Cancellation: {{record_locator}}"
description: "PNR {{record_locator}} cancelled. Reason: {{reason}}. Refund: {{process-refund.refund_amount}} {{process-refund.currency}}."
- name: notify-agent
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{agent_upn}}"
text: "Booking {{record_locator}} cancelled. Refund: {{process-refund.refund_amount}} {{process-refund.currency}}. Case: {{update-salesforce.case_number}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: cancel
path: "/bookings/{{record_locator}}/cancel"
inputParameters:
- name: record_locator
in: path
operations:
- name: cancel-booking
method: POST
- name: refunds
path: "/bookings/{{record_locator}}/refund"
inputParameters:
- name: record_locator
in: path
operations:
- name: process-refund
method: POST
- type: http
namespace: salesforce
baseUri: "https://travelport.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: 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
Searches the GDS for car rental availability at a pickup location for specified dates.
naftiko: "0.5"
info:
label: "Car Rental Availability Search"
description: "Searches the GDS for car rental availability at a pickup location for specified dates."
tags:
- content
- car-rental
- booking
- travel
capability:
exposes:
- type: mcp
namespace: car-rentals
port: 8080
tools:
- name: search-car-rentals
description: "Search car rental availability by location and dates."
inputParameters:
- name: pickup_location
in: body
type: string
description: "IATA airport code or city code for pickup."
- name: pickup_date
in: body
type: string
description: "Pickup date in YYYY-MM-DD format."
- name: return_date
in: body
type: string
description: "Return date in YYYY-MM-DD format."
call: "gds.search-cars"
with:
location: "{{pickup_location}}"
pickup: "{{pickup_date}}"
return: "{{return_date}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: car-availability
path: "/car/availability?location={{location}}&pickup={{pickup}}&return={{return}}"
inputParameters:
- name: location
in: path
- name: pickup
in: path
- name: return
in: path
operations:
- name: search-cars
method: GET
Checks car rental fleet availability at a location.
naftiko: "0.5"
info:
label: "Car Rental Fleet Status"
description: "Checks car rental fleet availability at a location."
tags:
- travel
- fleet-management
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: get-car
description: "Checks car rental fleet availability at a location."
inputParameters:
- name: entity_id
in: body
type: string
description: "The car rental fleet status identifier."
call: "travel-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: travel-api
baseUri: "https://api.travelport.com/travel/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: car
path: "/car/rental/fleet/status/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-car
method: GET
Searches Confluence for articles matching a query string.
naftiko: "0.5"
info:
label: "Confluence Knowledge Base Search"
description: "Searches Confluence for articles matching a query string."
tags:
- knowledge-management
- confluence
- search
capability:
exposes:
- type: mcp
namespace: knowledge-base
port: 8080
tools:
- name: search-confluence
description: "Search Confluence knowledge base for matching articles."
inputParameters:
- name: query
in: body
type: string
description: "The search query."
call: "confluence.search"
with:
query: "{{query}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://travelport.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: search
path: "/search?cql=text~\"{{query}}\""
inputParameters:
- name: query
in: path
operations:
- name: search
method: GET
Retrieves a Confluence wiki page.
naftiko: "0.5"
info:
label: "Confluence Page Viewer"
description: "Retrieves a Confluence wiki page."
tags:
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-confluence
description: "Retrieves a Confluence wiki page."
inputParameters:
- name: entity_id
in: body
type: string
description: "The confluence page viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.travelport.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: confluence
path: "/confluence/page/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-confluence
method: GET
Triggers content synchronization from multiple airline sources to the Travelport content platform, validates the sync, and notifies the content team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Content Aggregation Sync Pipeline"
description: "Triggers content synchronization from multiple airline sources to the Travelport content platform, validates the sync, and notifies the content team via Microsoft Teams."
tags:
- content
- aggregation
- sync
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: content-sync
port: 8080
tools:
- name: sync-airline-content
description: "Trigger and validate airline content sync, then notify content team."
inputParameters:
- name: carrier_code
in: body
type: string
description: "The IATA carrier code to sync."
- name: content_type
in: body
type: string
description: "Content type (fares, schedules, ancillaries)."
steps:
- name: trigger-sync
type: call
call: "content-platform.trigger-sync"
with:
carrier: "{{carrier_code}}"
type: "{{content_type}}"
- name: validate-sync
type: call
call: "content-platform.validate-sync"
with:
sync_id: "{{trigger-sync.sync_id}}"
- name: notify-team
type: call
call: "msteams.post-channel-message"
with:
channel_id: "content_operations"
text: "Content sync for {{carrier_code}} ({{content_type}}): Status: {{validate-sync.status}}. Records: {{validate-sync.record_count}}. Errors: {{validate-sync.error_count}}."
consumes:
- type: http
namespace: content-platform
baseUri: "https://content.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.content_api_token"
resources:
- name: sync
path: "/airlines/{{carrier}}/sync"
inputParameters:
- name: carrier
in: path
operations:
- name: trigger-sync
method: POST
- name: sync-validation
path: "/sync/{{sync_id}}/validate"
inputParameters:
- name: sync_id
in: path
operations:
- name: validate-sync
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/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Generates a corporate travel booking report from GDS data for a corporate account and distributes via SharePoint.
naftiko: "0.5"
info:
label: "Corporate Travel Booking Report"
description: "Generates a corporate travel booking report from GDS data for a corporate account and distributes via SharePoint."
tags:
- travel-agency
- reporting
- corporate
- sharepoint
capability:
exposes:
- type: mcp
namespace: corporate-reporting
port: 8080
tools:
- name: generate-corporate-report
description: "Generate and upload corporate travel booking report."
inputParameters:
- name: corporate_id
in: body
type: string
description: "The corporate account ID."
- name: period
in: body
type: string
description: "Reporting period in YYYY-MM."
steps:
- name: get-bookings
type: call
call: "gds-billing.get-corporate-bookings"
with:
corporate: "{{corporate_id}}"
period: "{{period}}"
- name: upload-report
type: call
call: "sharepoint.upload-file"
with:
site_id: "corporate_reports"
file_path: "Reports/{{corporate_id}}/{{period}}_travel.xlsx"
content: "{{get-bookings.report_content}}"
consumes:
- type: http
namespace: gds-billing
baseUri: "https://billing.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: corporate-bookings
path: "/corporate/{{corporate}}/bookings?period={{period}}"
inputParameters:
- name: corporate
in: path
- name: period
in: path
operations:
- name: get-corporate-bookings
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: upload-file
method: PUT
Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.
naftiko: "0.5"
info:
label: "Cross-Functional Project Kickoff Orchestrator"
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
tags:
- project-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: project-management
port: 8080
tools:
- name: run-cross-functional-project-kickoff-orchestrator
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.
naftiko: "0.5"
info:
label: "Customer Data Privacy Request Handler"
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
tags:
- compliance
- privacy
- customer-service
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-customer-data-privacy-request-handler
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.
naftiko: "0.5"
info:
label: "Customer Journey Mapping Orchestrator"
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
tags:
- customer-experience
- analytics
- product-management
capability:
exposes:
- type: mcp
namespace: customer-experience
port: 8080
tools:
- name: run-customer-journey-mapping-orchestrator
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.
naftiko: "0.5"
info:
label: "Data Governance Review Orchestrator"
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
tags:
- data-governance
- compliance
- analytics
capability:
exposes:
- type: mcp
namespace: data-governance
port: 8080
tools:
- name: run-data-governance-review-orchestrator
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.
naftiko: "0.5"
info:
label: "Digital Transformation Progress Orchestrator"
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
tags:
- strategy
- analytics
- project-management
capability:
exposes:
- type: mcp
namespace: strategy
port: 8080
tools:
- name: run-digital-transformation-progress-orchestrator
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.
naftiko: "0.5"
info:
label: "Disaster Recovery Test Orchestrator"
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
tags:
- infrastructure
- operations
- compliance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-disaster-recovery-test-orchestrator
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Sends an agency agreement for e-signature via DocuSign and updates the Salesforce account.
naftiko: "0.5"
info:
label: "DocuSign Agency Agreement Executor"
description: "Sends an agency agreement for e-signature via DocuSign and updates the Salesforce account."
tags:
- legal
- docusign
- salesforce
- contracts
capability:
exposes:
- type: mcp
namespace: contract-management
port: 8080
tools:
- name: send-agency-agreement
description: "Send an agency agreement via DocuSign and update Salesforce."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce account ID."
- name: signer_email
in: body
type: string
description: "The signer's email."
- name: signer_name
in: body
type: string
description: "The signer's name."
steps:
- name: get-account
type: call
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
- name: send-envelope
type: call
call: "docusign.create-envelope"
with:
document_url: "{{get-account.agreement_url}}"
signer_email: "{{signer_email}}"
signer_name: "{{signer_name}}"
- name: update-account
type: call
call: "salesforce.update-account"
with:
account_id: "{{account_id}}"
agreement_status: "Sent for Signature"
consumes:
- type: http
namespace: salesforce
baseUri: "https://travelport.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
- name: update-account
method: PATCH
- type: http
namespace: docusign
baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/$secrets.docusign_account_id"
authentication:
type: bearer
token: "$secrets.docusign_token"
resources:
- name: envelopes
path: "/envelopes"
operations:
- name: create-envelope
method: POST
Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.
naftiko: "0.5"
info:
label: "Employee Offboarding Orchestrator"
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
tags:
- hr
- identity
- operations
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: run-employee-offboarding-orchestrator
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Orchestrate new hire onboarding across ServiceNow, SharePoint, and Microsoft Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "The department."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding_site"
folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to Travelport, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. Documents are at {{provision-folder.url}}."
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: servicenow
baseUri: "https://travelport.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: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- 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
Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.
naftiko: "0.5"
info:
label: "Executive Dashboard Refresh Orchestrator"
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
tags:
- analytics
- power-bi
- business
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-executive-dashboard-refresh-orchestrator
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Validates an airline fare filing against GDS content rules and returns compliance status with any rule violations.
naftiko: "0.5"
info:
label: "Fare Filing Validator"
description: "Validates an airline fare filing against GDS content rules and returns compliance status with any rule violations."
tags:
- content
- fares
- validation
- airline
capability:
exposes:
- type: mcp
namespace: fare-validation
port: 8080
tools:
- name: validate-fare-filing
description: "Validate an airline fare filing against GDS content rules."
inputParameters:
- name: carrier_code
in: body
type: string
description: "The IATA carrier code."
- name: fare_basis
in: body
type: string
description: "The fare basis code to validate."
- name: market
in: body
type: string
description: "The origin-destination market (e.g., JFKLHR)."
call: "content-platform.validate-fare"
with:
carrier: "{{carrier_code}}"
fare_basis: "{{fare_basis}}"
market: "{{market}}"
consumes:
- type: http
namespace: content-platform
baseUri: "https://content.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.content_api_token"
resources:
- name: fare-validation
path: "/fares/validate"
operations:
- name: validate-fare
method: POST
Retrieves flight schedule information by route.
naftiko: "0.5"
info:
label: "Flight Schedule Lookup"
description: "Retrieves flight schedule information by route."
tags:
- travel
- operations
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: get-flight
description: "Retrieves flight schedule information by route."
inputParameters:
- name: entity_id
in: body
type: string
description: "The flight schedule lookup identifier."
call: "travel-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: travel-api
baseUri: "https://api.travelport.com/travel/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: flight
path: "/flight/schedule/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-flight
method: GET
Retrieves a traveler's frequent flyer information from the GDS for a specified airline program.
naftiko: "0.5"
info:
label: "Frequent Flyer Lookup"
description: "Retrieves a traveler's frequent flyer information from the GDS for a specified airline program."
tags:
- gds
- loyalty
- travel
- booking
capability:
exposes:
- type: mcp
namespace: loyalty-programs
port: 8080
tools:
- name: get-ff-info
description: "Look up frequent flyer information for a traveler."
inputParameters:
- name: carrier_code
in: body
type: string
description: "The airline carrier code."
- name: ff_number
in: body
type: string
description: "The frequent flyer number."
call: "gds.get-ff-details"
with:
carrier: "{{carrier_code}}"
number: "{{ff_number}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: loyalty
path: "/loyalty/{{carrier}}/{{number}}"
inputParameters:
- name: carrier
in: path
- name: number
in: path
operations:
- name: get-ff-details
method: GET
Pulls booking revenue data from the GDS billing system, generates a Power BI report, and distributes to sales leadership via Microsoft Teams.
naftiko: "0.5"
info:
label: "GDS Booking Revenue Report Generator"
description: "Pulls booking revenue data from the GDS billing system, generates a Power BI report, and distributes to sales leadership via Microsoft Teams."
tags:
- reporting
- billing
- power-bi
- microsoft-teams
- revenue
capability:
exposes:
- type: mcp
namespace: revenue-reporting
port: 8080
tools:
- name: generate-revenue-report
description: "Generate and distribute a booking revenue report."
inputParameters:
- name: period
in: body
type: string
description: "The reporting period in YYYY-MM format."
- name: segment
in: body
type: string
description: "The business segment (air, hotel, car, all)."
steps:
- name: get-revenue-data
type: call
call: "gds-billing.get-revenue"
with:
period: "{{period}}"
segment: "{{segment}}"
- name: refresh-report
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "booking_revenue_ds"
- name: distribute
type: call
call: "msteams.post-channel-message"
with:
channel_id: "sales_leadership"
text: "Booking revenue report for {{period}} ({{segment}}): Total revenue: ${{get-revenue-data.total_revenue}}. Transactions: {{get-revenue-data.transaction_count}}. Report: {{refresh-report.report_url}}"
consumes:
- type: http
namespace: gds-billing
baseUri: "https://billing.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: revenue
path: "/revenue?period={{period}}&segment={{segment}}"
inputParameters:
- name: period
in: path
- name: segment
in: path
operations:
- name: get-revenue
method: GET
- 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
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Retrieves a fare quote from the GDS for a specified route, date, and cabin class.
naftiko: "0.5"
info:
label: "GDS Fare Quote Lookup"
description: "Retrieves a fare quote from the GDS for a specified route, date, and cabin class."
tags:
- gds
- fares
- pricing
- travel
capability:
exposes:
- type: mcp
namespace: fare-quotes
port: 8080
tools:
- name: get-fare-quote
description: "Fetch a fare quote from the GDS."
inputParameters:
- name: origin
in: body
type: string
description: "IATA origin code."
- name: destination
in: body
type: string
description: "IATA destination code."
- name: date
in: body
type: string
description: "Travel date in YYYY-MM-DD."
- name: cabin
in: body
type: string
description: "Cabin class."
call: "gds.get-fare-quote"
with:
origin: "{{origin}}"
destination: "{{destination}}"
date: "{{date}}"
cabin: "{{cabin}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: fares
path: "/air/fares?origin={{origin}}&destination={{destination}}&date={{date}}&cabin={{cabin}}"
inputParameters:
- name: origin
in: path
- name: destination
in: path
- name: date
in: path
- name: cabin
in: path
operations:
- name: get-fare-quote
method: GET
Queries the Travelport GDS for flight availability between origin and destination on a given date, returning carrier, flight number, class, and fare basis.
naftiko: "0.5"
info:
label: "GDS Flight Availability Search"
description: "Queries the Travelport GDS for flight availability between origin and destination on a given date, returning carrier, flight number, class, and fare basis."
tags:
- gds
- flight-search
- booking
- travel
capability:
exposes:
- type: mcp
namespace: gds-flights
port: 8080
tools:
- name: search-flight-availability
description: "Search the GDS for available flights by origin, destination, and date."
inputParameters:
- name: origin
in: body
type: string
description: "IATA airport code for origin."
- name: destination
in: body
type: string
description: "IATA airport code for destination."
- name: departure_date
in: body
type: string
description: "Departure date in YYYY-MM-DD format."
call: "gds.search-availability"
with:
origin: "{{origin}}"
destination: "{{destination}}"
date: "{{departure_date}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: availability
path: "/air/availability?origin={{origin}}&destination={{destination}}&date={{date}}"
inputParameters:
- name: origin
in: path
- name: destination
in: path
- name: date
in: path
operations:
- name: search-availability
method: GET
Retrieves GDS communication message logs for a PNR to troubleshoot booking issues.
naftiko: "0.5"
info:
label: "GDS Message Log Viewer"
description: "Retrieves GDS communication message logs for a PNR to troubleshoot booking issues."
tags:
- gds
- troubleshooting
- booking
- logging
capability:
exposes:
- type: mcp
namespace: gds-logging
port: 8080
tools:
- name: get-message-log
description: "Retrieve GDS message logs for a PNR."
inputParameters:
- name: record_locator
in: body
type: string
description: "The PNR record locator."
call: "gds.get-message-log"
with:
pnr: "{{record_locator}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: message-logs
path: "/bookings/{{pnr}}/messages"
inputParameters:
- name: pnr
in: path
operations:
- name: get-message-log
method: GET
Aggregates GDS system health metrics from Datadog and New Relic, generating a unified health status for platform operations.
naftiko: "0.5"
info:
label: "GDS System Health Dashboard"
description: "Aggregates GDS system health metrics from Datadog and New Relic, generating a unified health status for platform operations."
tags:
- monitoring
- datadog
- new-relic
- gds
capability:
exposes:
- type: mcp
namespace: system-health
port: 8080
tools:
- name: get-system-health
description: "Aggregate system health from Datadog and New Relic."
inputParameters:
- name: environment
in: body
type: string
description: "The environment (production, staging)."
steps:
- name: get-datadog-health
type: call
call: "datadog.get-system-status"
with:
env: "{{environment}}"
- name: get-newrelic-health
type: call
call: "newrelic.get-apm-summary"
with:
env: "{{environment}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
headerName: "DD-API-KEY"
resources:
- name: system-status
path: "/query?query=avg:system.cpu.user{env:{{env}}}"
inputParameters:
- name: env
in: path
operations:
- name: get-system-status
method: GET
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
key: "$secrets.newrelic_api_key"
headerName: "Api-Key"
resources:
- name: apm-summary
path: "/applications.json?filter[name]={{env}}"
inputParameters:
- name: env
in: path
operations:
- name: get-apm-summary
method: GET
Retrieves GDS transaction volume metrics from Datadog for a specified agency or airline segment, used to monitor system throughput and capacity.
naftiko: "0.5"
info:
label: "GDS Transaction Volume Monitor"
description: "Retrieves GDS transaction volume metrics from Datadog for a specified agency or airline segment, used to monitor system throughput and capacity."
tags:
- monitoring
- datadog
- gds
- performance
capability:
exposes:
- type: mcp
namespace: gds-monitoring
port: 8080
tools:
- name: get-transaction-volume
description: "Fetch GDS transaction volume metrics from Datadog."
inputParameters:
- name: segment
in: body
type: string
description: "The segment to monitor (e.g., air, hotel, car, agency-id)."
call: "datadog.get-gds-metrics"
with:
segment: "{{segment}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
headerName: "DD-API-KEY"
resources:
- name: gds-metrics
path: "/query?query=sum:gds.transactions.count{segment:{{segment}}}.as_count()"
inputParameters:
- name: segment
in: path
operations:
- name: get-gds-metrics
method: GET
Retrieves a file from Google Drive.
naftiko: "0.5"
info:
label: "Google Drive File Viewer"
description: "Retrieves a file from Google Drive."
tags:
- collaboration
- google-drive
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-google
description: "Retrieves a file from Google Drive."
inputParameters:
- name: entity_id
in: body
type: string
description: "The google drive file viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.travelport.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: google
path: "/google/drive/file/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-google
method: GET
Creates a group booking request in the GDS for multiple passengers, applies group fare rules, and logs in Salesforce.
naftiko: "0.5"
info:
label: "Group Booking Manager"
description: "Creates a group booking request in the GDS for multiple passengers, applies group fare rules, and logs in Salesforce."
tags:
- gds
- booking
- groups
- salesforce
capability:
exposes:
- type: mcp
namespace: group-bookings
port: 8080
tools:
- name: create-group-booking
description: "Create a group booking in GDS and log in Salesforce."
inputParameters:
- name: carrier_code
in: body
type: string
description: "Airline carrier code."
- name: origin
in: body
type: string
description: "Origin airport code."
- name: destination
in: body
type: string
description: "Destination airport code."
- name: date
in: body
type: string
description: "Travel date in YYYY-MM-DD."
- name: passenger_count
in: body
type: string
description: "Number of passengers in the group."
- name: group_name
in: body
type: string
description: "The group booking name."
steps:
- name: create-group
type: call
call: "gds.create-group-pnr"
with:
carrier: "{{carrier_code}}"
origin: "{{origin}}"
destination: "{{destination}}"
date: "{{date}}"
pax_count: "{{passenger_count}}"
name: "{{group_name}}"
- name: log-in-salesforce
type: call
call: "salesforce.create-opportunity"
with:
name: "Group: {{group_name}} ({{passenger_count}} pax)"
amount: "{{create-group.estimated_value}}"
stage: "Proposal"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: group-bookings
path: "/bookings/groups"
operations:
- name: create-group-pnr
method: POST
- type: http
namespace: salesforce
baseUri: "https://travelport.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity"
operations:
- name: create-opportunity
method: POST
Searches the Travelport content aggregation platform for hotel availability by city, check-in date, and guest count.
naftiko: "0.5"
info:
label: "Hotel Content Search"
description: "Searches the Travelport content aggregation platform for hotel availability by city, check-in date, and guest count."
tags:
- content
- hotel
- booking
- travel
capability:
exposes:
- type: mcp
namespace: hotel-content
port: 8080
tools:
- name: search-hotels
description: "Search hotel availability by city, dates, and guest count."
inputParameters:
- name: city_code
in: body
type: string
description: "IATA city code."
- name: check_in
in: body
type: string
description: "Check-in date in YYYY-MM-DD format."
- name: check_out
in: body
type: string
description: "Check-out date in YYYY-MM-DD format."
- name: guests
in: body
type: string
description: "Number of guests."
call: "gds.search-hotels"
with:
city: "{{city_code}}"
check_in: "{{check_in}}"
check_out: "{{check_out}}"
guests: "{{guests}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: hotels
path: "/hotel/availability?city={{city}}&checkIn={{check_in}}&checkOut={{check_out}}&guests={{guests}}"
inputParameters:
- name: city
in: path
- name: check_in
in: path
- name: check_out
in: path
- name: guests
in: path
operations:
- name: search-hotels
method: GET
Checks hotel rate availability for given dates.
naftiko: "0.5"
info:
label: "Hotel Rate Availability"
description: "Checks hotel rate availability for given dates."
tags:
- travel
- booking
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: get-hotel
description: "Checks hotel rate availability for given dates."
inputParameters:
- name: entity_id
in: body
type: string
description: "The hotel rate availability identifier."
call: "travel-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: travel-api
baseUri: "https://api.travelport.com/travel/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: hotel
path: "/hotel/rate/availability/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-hotel
method: GET
Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.
naftiko: "0.5"
info:
label: "Infrastructure Capacity Planning Orchestrator"
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
tags:
- infrastructure
- planning
- finance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-infrastructure-capacity-planning-orchestrator
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.
naftiko: "0.5"
info:
label: "IT Change Management Orchestrator"
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
tags:
- it
- servicenow
- operations
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: run-it-change-management-orchestrator
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed IT Change Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves the current sprint and its issues for a Jira project board.
naftiko: "0.5"
info:
label: "Jira Sprint Board Viewer"
description: "Retrieves the current sprint and its issues for a Jira project board."
tags:
- development
- jira
- agile
capability:
exposes:
- type: mcp
namespace: dev-ops
port: 8080
tools:
- name: get-current-sprint
description: "Fetch current sprint details for a Jira board."
inputParameters:
- name: board_id
in: body
type: string
description: "The Jira board ID."
call: "jira.get-sprint"
with:
board_id: "{{board_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://travelport.atlassian.net/rest/agile/1.0"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: sprints
path: "/board/{{board_id}}/sprint?state=active"
inputParameters:
- name: board_id
in: path
operations:
- name: get-sprint
method: GET
Retrieves a Jira ticket by issue key.
naftiko: "0.5"
info:
label: "Jira Ticket Viewer"
description: "Retrieves a Jira ticket by issue key."
tags:
- engineering
- jira
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-jira
description: "Retrieves a Jira ticket by issue key."
inputParameters:
- name: entity_id
in: body
type: string
description: "The jira ticket viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.travelport.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: jira
path: "/jira/ticket/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-jira
method: GET
Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.
naftiko: "0.5"
info:
label: "Knowledge Base Refresh Orchestrator"
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
tags:
- knowledge-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: knowledge-management
port: 8080
tools:
- name: run-knowledge-base-refresh-orchestrator
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Fetches a job requisition from Workday and publishes it to LinkedIn.
naftiko: "0.5"
info:
label: "LinkedIn Job Posting Publisher"
description: "Fetches a job requisition from Workday and publishes it to LinkedIn."
tags:
- hr
- recruiting
- workday
- linkedin
capability:
exposes:
- type: mcp
namespace: talent-acquisition
port: 8080
tools:
- name: publish-job-to-linkedin
description: "Fetch a Workday job requisition and publish to LinkedIn."
inputParameters:
- name: requisition_id
in: body
type: string
description: "The Workday job requisition ID."
steps:
- name: get-requisition
type: call
call: "workday.get-requisition"
with:
requisition_id: "{{requisition_id}}"
- name: publish-posting
type: call
call: "linkedin.create-job-posting"
with:
title: "{{get-requisition.title}}"
description: "{{get-requisition.description}}"
location: "{{get-requisition.location}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: requisitions
path: "/jobRequisitions/{{requisition_id}}"
inputParameters:
- name: requisition_id
in: path
operations:
- name: get-requisition
method: GET
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: job-postings
path: "/simpleJobPostings"
operations:
- name: create-job-posting
method: POST
Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Orchestrator"
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
tags:
- marketing
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: run-marketing-campaign-performance-orchestrator
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Sends a formatted email via Microsoft Outlook Graph API.
naftiko: "0.5"
info:
label: "Microsoft Outlook Email Sender"
description: "Sends a formatted email via Microsoft Outlook Graph API."
tags:
- communications
- microsoft-outlook
- email
capability:
exposes:
- type: mcp
namespace: email-comms
port: 8080
tools:
- name: send-outlook-email
description: "Send an email via Microsoft Outlook."
inputParameters:
- name: to_address
in: body
type: string
description: "Recipient email."
- name: subject
in: body
type: string
description: "Email subject."
- name: body_text
in: body
type: string
description: "Email body."
call: "outlook.send-email"
with:
to: "{{to_address}}"
subject: "{{subject}}"
body: "{{body_text}}"
consumes:
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Sends a formatted message to a specified Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notifier"
description: "Sends a formatted message to a specified Microsoft Teams channel."
tags:
- communications
- microsoft-teams
- notifications
capability:
exposes:
- type: mcp
namespace: team-notifications
port: 8080
tools:
- name: send-teams-notification
description: "Post a notification message to a Microsoft Teams channel."
inputParameters:
- name: channel_id
in: body
type: string
description: "The Teams channel ID."
- name: message
in: body
type: string
description: "The message text."
call: "msteams.post-channel-message"
with:
channel_id: "{{channel_id}}"
text: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Sends a message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Message Sender"
description: "Sends a message to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-microsoft
description: "Sends a message to a Microsoft Teams channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The microsoft teams message sender identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.travelport.com/communications/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: microsoft
path: "/microsoft/teams/message/sender/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-microsoft
method: GET
Builds a multi-city itinerary by searching multiple GDS segments, combining them into a single PNR, pricing the complete journey, and returning the consolidated itinerary.
naftiko: "0.5"
info:
label: "Multi-City Itinerary Builder"
description: "Builds a multi-city itinerary by searching multiple GDS segments, combining them into a single PNR, pricing the complete journey, and returning the consolidated itinerary."
tags:
- gds
- booking
- itinerary
- travel-agency
capability:
exposes:
- type: mcp
namespace: itinerary-builder
port: 8080
tools:
- name: build-multi-city-itinerary
description: "Search, combine, and price multiple flight segments into one itinerary."
inputParameters:
- name: segments
in: body
type: string
description: "JSON array of {origin, destination, date} segment objects."
- name: passenger_name
in: body
type: string
description: "Passenger full name."
steps:
- name: search-segments
type: call
call: "gds.multi-search"
with:
segments: "{{segments}}"
- name: create-pnr
type: call
call: "gds.create-multi-pnr"
with:
flights: "{{search-segments.best_options}}"
passenger: "{{passenger_name}}"
- name: price-itinerary
type: call
call: "gds.price-pnr"
with:
record_locator: "{{create-pnr.record_locator}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: multi-search
path: "/air/multi-availability"
operations:
- name: multi-search
method: POST
- name: bookings
path: "/bookings"
operations:
- name: create-multi-pnr
method: POST
- name: pricing
path: "/bookings/{{record_locator}}/price"
inputParameters:
- name: record_locator
in: path
operations:
- name: price-pnr
method: POST
Fetches NDC offers from an airline, applies agency markup rules from Salesforce, and returns enriched offers to the agency storefront.
naftiko: "0.5"
info:
label: "NDC Offer Management Pipeline"
description: "Fetches NDC offers from an airline, applies agency markup rules from Salesforce, and returns enriched offers to the agency storefront."
tags:
- gds
- ndc
- content
- salesforce
- travel-agency
capability:
exposes:
- type: mcp
namespace: ndc-offers
port: 8080
tools:
- name: get-enriched-ndc-offers
description: "Fetch NDC airline offers and apply agency markup rules from Salesforce."
inputParameters:
- name: carrier_code
in: body
type: string
description: "The IATA carrier code."
- name: origin
in: body
type: string
description: "Origin airport code."
- name: destination
in: body
type: string
description: "Destination airport code."
- name: date
in: body
type: string
description: "Travel date in YYYY-MM-DD format."
- name: agency_id
in: body
type: string
description: "The agency identifier for markup rules."
steps:
- name: get-ndc-offers
type: call
call: "gds.get-ndc-offers"
with:
carrier: "{{carrier_code}}"
origin: "{{origin}}"
destination: "{{destination}}"
date: "{{date}}"
- name: get-markup-rules
type: call
call: "salesforce.get-agency-rules"
with:
agency_id: "{{agency_id}}"
carrier: "{{carrier_code}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: ndc-offers
path: "/ndc/offers?carrier={{carrier}}&origin={{origin}}&destination={{destination}}&date={{date}}"
inputParameters:
- name: carrier
in: path
- name: origin
in: path
- name: destination
in: path
- name: date
in: path
operations:
- name: get-ndc-offers
method: GET
- type: http
namespace: salesforce
baseUri: "https://travelport.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: agency-rules
path: "/sobjects/Agency_Markup_Rule__c?q=Agency_ID__c='{{agency_id}}' AND Carrier__c='{{carrier}}'"
inputParameters:
- name: agency_id
in: path
- name: carrier
in: path
operations:
- name: get-agency-rules
method: GET
Retrieves application performance metrics from New Relic including response time, throughput, and error rates.
naftiko: "0.5"
info:
label: "New Relic Application Performance"
description: "Retrieves application performance metrics from New Relic including response time, throughput, and error rates."
tags:
- monitoring
- new-relic
- application-health
capability:
exposes:
- type: mcp
namespace: apm-monitoring
port: 8080
tools:
- name: get-app-performance
description: "Fetch application performance from New Relic."
inputParameters:
- name: app_name
in: body
type: string
description: "The New Relic application name."
call: "newrelic.get-app-metrics"
with:
app: "{{app_name}}"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
key: "$secrets.newrelic_api_key"
headerName: "Api-Key"
resources:
- name: apps
path: "/applications.json?filter[name]={{app}}"
inputParameters:
- name: app
in: path
operations:
- name: get-app-metrics
method: GET
Retrieves a passenger name record (PNR) from the GDS by record locator and returns itinerary segments, passenger details, and ticketing status.
naftiko: "0.5"
info:
label: "PNR Booking Retrieval"
description: "Retrieves a passenger name record (PNR) from the GDS by record locator and returns itinerary segments, passenger details, and ticketing status."
tags:
- gds
- booking
- pnr
- travel-agency
capability:
exposes:
- type: mcp
namespace: gds-bookings
port: 8080
tools:
- name: get-pnr
description: "Retrieve a PNR by record locator from the GDS."
inputParameters:
- name: record_locator
in: body
type: string
description: "The six-character PNR record locator."
call: "gds.get-pnr"
with:
record_locator: "{{record_locator}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: pnr
path: "/bookings/{{record_locator}}"
inputParameters:
- name: record_locator
in: path
operations:
- name: get-pnr
method: GET
Triggers a Power BI dataset refresh for booking analytics dashboards.
naftiko: "0.5"
info:
label: "Power BI Booking Analytics Refresh"
description: "Triggers a Power BI dataset refresh for booking analytics dashboards."
tags:
- analytics
- power-bi
- reporting
capability:
exposes:
- type: mcp
namespace: bi-refresh
port: 8080
tools:
- name: refresh-booking-analytics
description: "Trigger a Power BI dataset refresh."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: refreshes
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Triggers a Power BI dataset refresh.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresher"
description: "Triggers a Power BI dataset refresh."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-power
description: "Triggers a Power BI dataset refresh."
inputParameters:
- name: entity_id
in: body
type: string
description: "The power bi dashboard refresher identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.travelport.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: power
path: "/power/bi/dashboard/refresher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-power
method: GET
Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.
naftiko: "0.5"
info:
label: "Procurement Spend Analysis Orchestrator"
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
tags:
- procurement
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-procurement-spend-analysis-orchestrator
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.
naftiko: "0.5"
info:
label: "Quarterly Business Review Orchestrator"
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
tags:
- analytics
- business
- sharepoint
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-quarterly-business-review-orchestrator
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves GDS queue counts and types for a travel agency PCC to monitor pending booking actions.
naftiko: "0.5"
info:
label: "Queue Management Monitor"
description: "Retrieves GDS queue counts and types for a travel agency PCC to monitor pending booking actions."
tags:
- gds
- travel-agency
- queue-management
capability:
exposes:
- type: mcp
namespace: queue-mgmt
port: 8080
tools:
- name: get-queue-counts
description: "Fetch GDS queue counts for a PCC."
inputParameters:
- name: pcc
in: body
type: string
description: "The pseudo city code."
call: "gds.get-queues"
with:
pcc: "{{pcc}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: queues
path: "/queues?pcc={{pcc}}"
inputParameters:
- name: pcc
in: path
operations:
- name: get-queues
method: GET
Retrieves a Salesforce account by account ID.
naftiko: "0.5"
info:
label: "Salesforce Account Viewer"
description: "Retrieves a Salesforce account by account ID."
tags:
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: get-salesforce
description: "Retrieves a Salesforce account by account ID."
inputParameters:
- name: entity_id
in: body
type: string
description: "The salesforce account viewer identifier."
call: "sales-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: sales-api
baseUri: "https://api.travelport.com/sales/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: salesforce
path: "/salesforce/account/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-salesforce
method: GET
Retrieves a travel agency account from Salesforce including contract details, transaction tier, and support level.
naftiko: "0.5"
info:
label: "Salesforce Agency Account Lookup"
description: "Retrieves a travel agency account from Salesforce including contract details, transaction tier, and support level."
tags:
- travel-agency
- salesforce
- accounts
capability:
exposes:
- type: mcp
namespace: agency-accounts
port: 8080
tools:
- name: get-agency-account
description: "Look up a travel agency account in Salesforce."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce account ID."
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://travelport.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
Fetches the seat map for a specific flight from the GDS including available, occupied, and premium seats.
naftiko: "0.5"
info:
label: "Seat Map Retrieval"
description: "Fetches the seat map for a specific flight from the GDS including available, occupied, and premium seats."
tags:
- gds
- booking
- seat-selection
- content
capability:
exposes:
- type: mcp
namespace: seat-maps
port: 8080
tools:
- name: get-seat-map
description: "Retrieve seat map for a flight from the GDS."
inputParameters:
- name: carrier_code
in: body
type: string
description: "IATA carrier code."
- name: flight_number
in: body
type: string
description: "Flight number."
- name: departure_date
in: body
type: string
description: "Departure date in YYYY-MM-DD."
call: "gds.get-seat-map"
with:
carrier: "{{carrier_code}}"
flight: "{{flight_number}}"
date: "{{departure_date}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: seat-maps
path: "/air/seatmap?carrier={{carrier}}&flight={{flight}}&date={{date}}"
inputParameters:
- name: carrier
in: path
- name: flight
in: path
- name: date
in: path
operations:
- name: get-seat-map
method: GET
Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.
naftiko: "0.5"
info:
label: "Security Audit Orchestrator"
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
tags:
- security
- servicenow
- compliance
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: run-security-audit-orchestrator
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Security Audit Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Creates a new incident in ServiceNow.
naftiko: "0.5"
info:
label: "ServiceNow Incident Creator"
description: "Creates a new incident in ServiceNow."
tags:
- it
- servicenow
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: get-servicenow
description: "Creates a new incident in ServiceNow."
inputParameters:
- name: entity_id
in: body
type: string
description: "The servicenow incident creator identifier."
call: "it-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: it-api
baseUri: "https://api.travelport.com/it/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: servicenow
path: "/servicenow/incident/creator/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-servicenow
method: GET
Retrieves a ServiceNow incident by number and returns current state, priority, and resolution notes.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves a ServiceNow incident by number and returns current state, priority, and resolution notes."
tags:
- it-support
- servicenow
- incident-management
capability:
exposes:
- type: mcp
namespace: it-service
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://travelport.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: path
operations:
- name: get-incident
method: GET
Fetches a document from SharePoint by site and path.
naftiko: "0.5"
info:
label: "SharePoint Document Retrieval"
description: "Fetches a document from SharePoint by site and path."
tags:
- document-management
- sharepoint
capability:
exposes:
- type: mcp
namespace: doc-management
port: 8080
tools:
- name: get-sharepoint-doc
description: "Retrieve a document from SharePoint."
inputParameters:
- name: site_id
in: body
type: string
description: "The SharePoint site identifier."
- name: file_path
in: body
type: string
description: "The file path."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
file_path: "{{file_path}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file
method: GET
Sends a notification to a Slack channel.
naftiko: "0.5"
info:
label: "Slack Notification Publisher"
description: "Sends a notification to a Slack channel."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-slack
description: "Sends a notification to a Slack channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The slack notification publisher identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.travelport.com/communications/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: slack
path: "/slack/notification/publisher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-slack
method: GET
Runs an analytics query against the Snowflake data warehouse.
naftiko: "0.5"
info:
label: "Snowflake Analytics Query"
description: "Runs an analytics query against the Snowflake data warehouse."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-snowflake
description: "Runs an analytics query against the Snowflake data warehouse."
inputParameters:
- name: entity_id
in: body
type: string
description: "The snowflake analytics query identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.travelport.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: snowflake
path: "/snowflake/analytics/query/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-snowflake
method: GET
Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.
naftiko: "0.5"
info:
label: "Sustainability Metrics Collection Orchestrator"
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
tags:
- sustainability
- analytics
- compliance
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: run-sustainability-metrics-collection-orchestrator
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.
naftiko: "0.5"
info:
label: "Third Party Risk Assessment Orchestrator"
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
tags:
- risk
- procurement
- compliance
capability:
exposes:
- type: mcp
namespace: risk
port: 8080
tools:
- name: run-third-party-risk-assessment-orchestrator
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Processes a ticket exchange by voiding the old ticket in the GDS, issuing a new ticket with fare difference collection, and logging in Salesforce.
naftiko: "0.5"
info:
label: "Ticket Reissue Workflow"
description: "Processes a ticket exchange by voiding the old ticket in the GDS, issuing a new ticket with fare difference collection, and logging in Salesforce."
tags:
- booking
- ticketing
- gds
- salesforce
capability:
exposes:
- type: mcp
namespace: ticketing
port: 8080
tools:
- name: reissue-ticket
description: "Void old ticket, issue new ticket, collect fare difference, and log in Salesforce."
inputParameters:
- name: record_locator
in: body
type: string
description: "The PNR record locator."
- name: old_ticket
in: body
type: string
description: "The old ticket number to void."
- name: new_fare_basis
in: body
type: string
description: "The new fare basis code."
steps:
- name: void-ticket
type: call
call: "gds.void-ticket"
with:
ticket_number: "{{old_ticket}}"
- name: reprice
type: call
call: "gds.reprice-pnr"
with:
record_locator: "{{record_locator}}"
fare_basis: "{{new_fare_basis}}"
- name: issue-new-ticket
type: call
call: "gds.issue-ticket"
with:
record_locator: "{{record_locator}}"
- name: log-exchange
type: call
call: "salesforce.create-record"
with:
object: "Ticket_Exchange__c"
pnr: "{{record_locator}}"
old_ticket: "{{old_ticket}}"
new_ticket: "{{issue-new-ticket.ticket_number}}"
fare_difference: "{{reprice.fare_difference}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: tickets
path: "/tickets/{{ticket_number}}/void"
inputParameters:
- name: ticket_number
in: path
operations:
- name: void-ticket
method: POST
- name: repricing
path: "/bookings/{{record_locator}}/reprice"
inputParameters:
- name: record_locator
in: path
operations:
- name: reprice-pnr
method: POST
- name: ticketing
path: "/bookings/{{record_locator}}/ticket"
inputParameters:
- name: record_locator
in: path
operations:
- name: issue-ticket
method: POST
- type: http
namespace: salesforce
baseUri: "https://travelport.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: records
path: "/sobjects/{{object}}"
inputParameters:
- name: object
in: path
operations:
- name: create-record
method: POST
Retrieves travel advisories for a destination.
naftiko: "0.5"
info:
label: "Travel Advisory Lookup"
description: "Retrieves travel advisories for a destination."
tags:
- travel
- compliance
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: get-travel
description: "Retrieves travel advisories for a destination."
inputParameters:
- name: entity_id
in: body
type: string
description: "The travel advisory lookup identifier."
call: "travel-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: travel-api
baseUri: "https://api.travelport.com/travel/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: travel
path: "/travel/advisory/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-travel
method: GET
When a travel agency creates a booking request, searches GDS for availability, creates the PNR, prices the itinerary, and sends confirmation to the agent via Microsoft Teams.
naftiko: "0.5"
info:
label: "Travel Agency Booking Pipeline"
description: "When a travel agency creates a booking request, searches GDS for availability, creates the PNR, prices the itinerary, and sends confirmation to the agent via Microsoft Teams."
tags:
- travel-agency
- gds
- booking
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: agency-booking
port: 8080
tools:
- name: create-agency-booking
description: "Search, book, price, and confirm a travel itinerary for an agency request."
inputParameters:
- name: origin
in: body
type: string
description: "IATA origin airport code."
- name: destination
in: body
type: string
description: "IATA destination airport code."
- name: departure_date
in: body
type: string
description: "Departure date in YYYY-MM-DD format."
- name: passenger_name
in: body
type: string
description: "Passenger full name."
- name: agent_upn
in: body
type: string
description: "The travel agent's email."
steps:
- name: search-flights
type: call
call: "gds.search-availability"
with:
origin: "{{origin}}"
destination: "{{destination}}"
date: "{{departure_date}}"
- name: create-booking
type: call
call: "gds.create-pnr"
with:
flight: "{{search-flights.best_match}}"
passenger: "{{passenger_name}}"
- name: price-itinerary
type: call
call: "gds.price-pnr"
with:
record_locator: "{{create-booking.record_locator}}"
- name: confirm-agent
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{agent_upn}}"
text: "Booking confirmed: {{create-booking.record_locator}} for {{passenger_name}}. {{origin}}-{{destination}} on {{departure_date}}. Total: {{price-itinerary.total_fare}} {{price-itinerary.currency}}."
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: availability
path: "/air/availability?origin={{origin}}&destination={{destination}}&date={{date}}"
inputParameters:
- name: origin
in: path
- name: destination
in: path
- name: date
in: path
operations:
- name: search-availability
method: GET
- name: bookings
path: "/bookings"
operations:
- name: create-pnr
method: POST
- name: pricing
path: "/bookings/{{record_locator}}/price"
inputParameters:
- name: record_locator
in: path
operations:
- name: price-pnr
method: POST
- 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
Retrieves travel insurance quotes from the content platform for a trip itinerary.
naftiko: "0.5"
info:
label: "Travel Insurance Quote"
description: "Retrieves travel insurance quotes from the content platform for a trip itinerary."
tags:
- content
- insurance
- travel
- booking
capability:
exposes:
- type: mcp
namespace: travel-insurance
port: 8080
tools:
- name: get-insurance-quote
description: "Fetch travel insurance quotes for a trip."
inputParameters:
- name: origin_country
in: body
type: string
description: "ISO country code of origin."
- name: destination_country
in: body
type: string
description: "ISO country code of destination."
- name: travel_dates
in: body
type: string
description: "Travel dates as start/end YYYY-MM-DD."
- name: traveler_age
in: body
type: string
description: "Traveler age."
call: "content-platform.get-insurance-quotes"
with:
origin: "{{origin_country}}"
destination: "{{destination_country}}"
dates: "{{travel_dates}}"
age: "{{traveler_age}}"
consumes:
- type: http
namespace: content-platform
baseUri: "https://content.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.content_api_token"
resources:
- name: insurance
path: "/insurance/quotes"
operations:
- name: get-insurance-quotes
method: POST
Validates a booking against a corporate travel policy stored in Salesforce, returning compliance status and any policy violations.
naftiko: "0.5"
info:
label: "Travel Policy Compliance Checker"
description: "Validates a booking against a corporate travel policy stored in Salesforce, returning compliance status and any policy violations."
tags:
- booking
- travel-agency
- compliance
- salesforce
capability:
exposes:
- type: mcp
namespace: policy-compliance
port: 8080
tools:
- name: check-travel-policy
description: "Validate a booking against corporate travel policy."
inputParameters:
- name: record_locator
in: body
type: string
description: "The PNR record locator."
- name: corporate_id
in: body
type: string
description: "The corporate account ID."
steps:
- name: get-booking
type: call
call: "gds.get-pnr"
with:
record_locator: "{{record_locator}}"
- name: get-policy
type: call
call: "salesforce.get-travel-policy"
with:
corporate_id: "{{corporate_id}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: bookings
path: "/bookings/{{record_locator}}"
inputParameters:
- name: record_locator
in: path
operations:
- name: get-pnr
method: GET
- type: http
namespace: salesforce
baseUri: "https://travelport.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: travel-policies
path: "/sobjects/Travel_Policy__c?q=Corporate_ID__c='{{corporate_id}}'"
inputParameters:
- name: corporate_id
in: path
operations:
- name: get-travel-policy
method: GET
Orchestrates travel workflow 1 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Travel Workflow 1"
description: "Orchestrates travel workflow 1 by coordinating across systems, validating data, and sending notifications."
tags:
- travel
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: run-travel-workflow-001
description: "Orchestrates travel workflow 1 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Travel Workflow 1 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates travel workflow 2 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Travel Workflow 2"
description: "Orchestrates travel workflow 2 by coordinating across systems, validating data, and sending notifications."
tags:
- travel
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: run-travel-workflow-002
description: "Orchestrates travel workflow 2 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Travel Workflow 2 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves travel operational data for workflow 3.
naftiko: "0.5"
info:
label: "Travel Data Query 3"
description: "Retrieves travel operational data for workflow 3."
tags:
- travel
- operations
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: get-data-3
description: "Query travel data for workflow 3."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "travel-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: travel-api
baseUri: "https://api.travelport.com/travel/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-3
method: GET
Orchestrates travel workflow 4 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Travel Workflow 4"
description: "Orchestrates travel workflow 4 by coordinating across systems, validating data, and sending notifications."
tags:
- travel
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: run-travel-workflow-004
description: "Orchestrates travel workflow 4 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Travel Workflow 4 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates travel workflow 5 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Travel Workflow 5"
description: "Orchestrates travel workflow 5 by coordinating across systems, validating data, and sending notifications."
tags:
- travel
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: run-travel-workflow-005
description: "Orchestrates travel workflow 5 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Travel Workflow 5 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves travel operational data for workflow 6.
naftiko: "0.5"
info:
label: "Travel Data Query 6"
description: "Retrieves travel operational data for workflow 6."
tags:
- travel
- operations
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: get-data-6
description: "Query travel data for workflow 6."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "travel-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: travel-api
baseUri: "https://api.travelport.com/travel/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-6
method: GET
Orchestrates travel workflow 7 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Travel Workflow 7"
description: "Orchestrates travel workflow 7 by coordinating across systems, validating data, and sending notifications."
tags:
- travel
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: run-travel-workflow-007
description: "Orchestrates travel workflow 7 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Travel Workflow 7 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates travel workflow 8 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Travel Workflow 8"
description: "Orchestrates travel workflow 8 by coordinating across systems, validating data, and sending notifications."
tags:
- travel
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: run-travel-workflow-008
description: "Orchestrates travel workflow 8 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Travel Workflow 8 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves travel operational data for workflow 9.
naftiko: "0.5"
info:
label: "Travel Data Query 9"
description: "Retrieves travel operational data for workflow 9."
tags:
- travel
- operations
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: get-data-9
description: "Query travel data for workflow 9."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "travel-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: travel-api
baseUri: "https://api.travelport.com/travel/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-9
method: GET
Orchestrates travel workflow 10 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Travel Workflow 10"
description: "Orchestrates travel workflow 10 by coordinating across systems, validating data, and sending notifications."
tags:
- travel
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: run-travel-workflow-010
description: "Orchestrates travel workflow 10 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Travel Workflow 10 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates travel workflow 11 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Travel Workflow 11"
description: "Orchestrates travel workflow 11 by coordinating across systems, validating data, and sending notifications."
tags:
- travel
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: run-travel-workflow-011
description: "Orchestrates travel workflow 11 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Travel Workflow 11 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves travel operational data for workflow 12.
naftiko: "0.5"
info:
label: "Travel Data Query 12"
description: "Retrieves travel operational data for workflow 12."
tags:
- travel
- operations
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: get-data-12
description: "Query travel data for workflow 12."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "travel-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: travel-api
baseUri: "https://api.travelport.com/travel/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-12
method: GET
Orchestrates travel workflow 13 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Travel Workflow 13"
description: "Orchestrates travel workflow 13 by coordinating across systems, validating data, and sending notifications."
tags:
- travel
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: run-travel-workflow-013
description: "Orchestrates travel workflow 13 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Travel Workflow 13 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates travel workflow 14 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Travel Workflow 14"
description: "Orchestrates travel workflow 14 by coordinating across systems, validating data, and sending notifications."
tags:
- travel
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: run-travel-workflow-014
description: "Orchestrates travel workflow 14 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Travel Workflow 14 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves travel operational data for workflow 15.
naftiko: "0.5"
info:
label: "Travel Data Query 15"
description: "Retrieves travel operational data for workflow 15."
tags:
- travel
- operations
capability:
exposes:
- type: mcp
namespace: travel
port: 8080
tools:
- name: get-data-15
description: "Query travel data for workflow 15."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "travel-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: travel-api
baseUri: "https://api.travelport.com/travel/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-15
method: GET
Retrieves a list of unused and expiring tickets from the GDS for a travel agency to manage refunds and exchanges.
naftiko: "0.5"
info:
label: "Unused Ticket Report"
description: "Retrieves a list of unused and expiring tickets from the GDS for a travel agency to manage refunds and exchanges."
tags:
- gds
- ticketing
- travel-agency
- reporting
capability:
exposes:
- type: mcp
namespace: unused-tickets
port: 8080
tools:
- name: get-unused-tickets
description: "Fetch unused and expiring tickets for an agency."
inputParameters:
- name: agency_id
in: body
type: string
description: "The agency identifier."
- name: days_to_expiry
in: body
type: string
description: "Days until ticket expiry threshold."
call: "gds.get-unused-tickets"
with:
agency: "{{agency_id}}"
days: "{{days_to_expiry}}"
consumes:
- type: http
namespace: gds
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.gds_api_token"
resources:
- name: unused-tickets
path: "/tickets/unused?agency={{agency}}&expiringWithin={{days}}"
inputParameters:
- name: agency
in: path
- name: days
in: path
operations:
- name: get-unused-tickets
method: GET
Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.
naftiko: "0.5"
info:
label: "Vendor Contract Renewal Pipeline"
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
tags:
- procurement
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-vendor-contract-renewal-pipeline
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.travelport.com/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.travelport.com/v2"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries the travel content platform for visa and entry requirements for a traveler nationality and destination country.
naftiko: "0.5"
info:
label: "Visa Requirements Checker"
description: "Queries the travel content platform for visa and entry requirements for a traveler nationality and destination country."
tags:
- content
- travel
- visa
- compliance
capability:
exposes:
- type: mcp
namespace: visa-requirements
port: 8080
tools:
- name: check-visa-requirements
description: "Look up visa requirements by nationality and destination."
inputParameters:
- name: nationality
in: body
type: string
description: "ISO country code of traveler nationality."
- name: destination
in: body
type: string
description: "ISO country code of destination."
call: "content-platform.get-visa-info"
with:
nationality: "{{nationality}}"
destination: "{{destination}}"
consumes:
- type: http
namespace: content-platform
baseUri: "https://content.travelport.com/api/v1"
authentication:
type: bearer
token: "$secrets.content_api_token"
resources:
- name: visa-info
path: "/travel-docs/visa?nationality={{nationality}}&destination={{destination}}"
inputParameters:
- name: nationality
in: path
- name: destination
in: path
operations:
- name: get-visa-info
method: GET
Retrieves employee profile from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Profile"
description: "Retrieves employee profile from Workday."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-workday
description: "Retrieves employee profile from Workday."
inputParameters:
- name: entity_id
in: body
type: string
description: "The workday employee profile identifier."
call: "hr-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: hr-api
baseUri: "https://api.travelport.com/hr/v1"
authentication:
type: bearer
token: "$secrets.travelport_api_token"
resources:
- name: workday
path: "/workday/employee/profile/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-workday
method: GET
Retrieves payroll summary data from Workday for a pay period.
naftiko: "0.5"
info:
label: "Workday Payroll Summary"
description: "Retrieves payroll summary data from Workday for a pay period."
tags:
- hr
- payroll
- workday
- finance
capability:
exposes:
- type: mcp
namespace: payroll
port: 8080
tools:
- name: get-payroll-summary
description: "Fetch Workday payroll summary for a pay period."
inputParameters:
- name: pay_period
in: body
type: string
description: "The pay period identifier."
call: "workday.get-payroll"
with:
pay_period: "{{pay_period}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: payroll
path: "/payroll/summaries?payPeriod={{pay_period}}"
inputParameters:
- name: pay_period
in: path
operations:
- name: get-payroll
method: GET
Retrieves an employee's current time-off balances from Workday.
naftiko: "0.5"
info:
label: "Workday Time-Off Balance"
description: "Retrieves an employee's current time-off balances from Workday."
tags:
- hr
- workday
- time-off
capability:
exposes:
- type: mcp
namespace: hr-time-off
port: 8080
tools:
- name: get-time-off-balance
description: "Look up an employee's time-off balances in Workday."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-time-off"
with:
worker_id: "{{worker_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: time-off
path: "/workers/{{worker_id}}/timeOffBalance"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-time-off
method: GET
Retrieves a Zendesk support ticket by ticket ID and returns status, assignee, and conversation history.
naftiko: "0.5"
info:
label: "Zendesk Support Ticket Lookup"
description: "Retrieves a Zendesk support ticket by ticket ID and returns status, assignee, and conversation history."
tags:
- customer-support
- zendesk
- ticketing
capability:
exposes:
- type: mcp
namespace: support-tickets
port: 8080
tools:
- name: get-support-ticket
description: "Look up a Zendesk support ticket by ID."
inputParameters:
- name: ticket_id
in: body
type: string
description: "The Zendesk ticket ID."
call: "zendesk.get-ticket"
with:
ticket_id: "{{ticket_id}}"
consumes:
- type: http
namespace: zendesk
baseUri: "https://travelport.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: tickets
path: "/tickets/{{ticket_id}}"
inputParameters:
- name: ticket_id
in: path
operations:
- name: get-ticket
method: GET