Travelport Capabilities

Naftiko 0.5 capability definitions for Travelport - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

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