Pratt & Whitney Capabilities

Naftiko 0.5 capability definitions for Pratt & Whitney - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Orchestrates additive manufacturing qualification pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Additive Manufacturing Qualification Pipeline"
  description: "Orchestrates additive manufacturing qualification pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - additive
    - pratt-and-whitney
    - servicenow
    - sap
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: additive
      port: 8080
      tools:
        - name: additive-manufacturing-qualification-pipeline
          description: "Orchestrates additive manufacturing qualification pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/additive"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/additive"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/additive"
          operations:
            - name: execute-3
              method: POST

Retrieves an engine aftermarket service contract from Salesforce, returning contract type, coverage scope, start/end dates, and remaining flight hour entitlement.

naftiko: "0.5"
info:
  label: "Aftermarket Contract Lookup"
  description: "Retrieves an engine aftermarket service contract from Salesforce, returning contract type, coverage scope, start/end dates, and remaining flight hour entitlement."
  tags:
    - engine-mro
    - contracts
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: contracts
      port: 8080
      tools:
        - name: get-service-contract
          description: "Look up an engine aftermarket service agreement from Salesforce by engine serial."
          inputParameters:
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
          call: "salesforce.query-contract"
          with:
            query: "SELECT Id, ContractType__c, Coverage__c, StartDate, EndDate, Remaining_FH__c FROM ServiceContract WHERE Engine_Serial__c = '{{engine_serial}}' AND Status = 'Active'"
          outputParameters:
            - name: contract
              type: string
              mapping: "$.records[0]"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://prattwhitney.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: soql
          path: "/query"
          inputParameters:
            - name: q
              in: query
          operations:
            - name: query-contract
              method: GET

Orchestrates aftermarket revenue forecasting pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Aftermarket Revenue Forecasting Pipeline"
  description: "Orchestrates aftermarket revenue forecasting pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - aftermarket
    - pratt-and-whitney
    - teams
    - confluence
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: aftermarket
      port: 8080
      tools:
        - name: aftermarket-revenue-forecasting-pipeline
          description: "Orchestrates aftermarket revenue forecasting pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/aftermarket"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://prattwhitney.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/aftermarket"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/aftermarket"
          operations:
            - name: execute-3
              method: POST

When a new FAA Airworthiness Directive is issued, identifies affected engines in Salesforce, creates compliance tracking records in SAP, and notifies all affected airline customers via email through Salesforce.

naftiko: "0.5"
info:
  label: "Airworthiness Directive Compliance Orchestrator"
  description: "When a new FAA Airworthiness Directive is issued, identifies affected engines in Salesforce, creates compliance tracking records in SAP, and notifies all affected airline customers via email through Salesforce."
  tags:
    - compliance
    - engine-mro
    - salesforce
    - sap
capability:
  exposes:
    - type: mcp
      namespace: ad-compliance
      port: 8080
      tools:
        - name: process-airworthiness-directive
          description: "Given an AD number and affected engine models, identify impacted fleet, create tracking records, and notify customers."
          inputParameters:
            - name: ad_number
              in: body
              type: string
              description: "The FAA Airworthiness Directive number."
            - name: affected_models
              in: body
              type: string
              description: "Comma-separated list of affected engine models."
            - name: compliance_deadline
              in: body
              type: string
              description: "Compliance deadline date in YYYY-MM-DD format."
          steps:
            - name: find-affected-engines
              type: call
              call: "salesforce.query-engines"
              with:
                query: "SELECT Id, Engine_Serial__c, Account__r.Name, Account__r.Id FROM Engine__c WHERE Model__c IN ({{affected_models}})"
            - name: create-tracking-records
              type: call
              call: "sap.create-ad-compliance-batch"
              with:
                ad_number: "{{ad_number}}"
                affected_engines: "{{find-affected-engines.records}}"
                deadline: "{{compliance_deadline}}"
            - name: notify-customers
              type: call
              call: "salesforce.send-mass-email"
              with:
                template: "ad_notification"
                recipients: "{{find-affected-engines.records}}"
                ad_number: "{{ad_number}}"
                deadline: "{{compliance_deadline}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://prattwhitney.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: soql
          path: "/query"
          inputParameters:
            - name: q
              in: query
          operations:
            - name: query-engines
              method: GET
        - name: email
          path: "/sobjects/EmailMessage"
          operations:
            - name: send-mass-email
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PM_NOTIFICATION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: notifications
          path: "/A_MaintenanceNotification"
          operations:
            - name: create-ad-compliance-batch
              method: POST

Retrieves the bill of materials for an engine module from SAP, returning all component part numbers, quantities, and assembly sequence.

naftiko: "0.5"
info:
  label: "Bill of Material Lookup"
  description: "Retrieves the bill of materials for an engine module from SAP, returning all component part numbers, quantities, and assembly sequence."
  tags:
    - manufacturing
    - engineering
    - sap
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: get-bom
          description: "Look up the bill of materials for a top-level assembly in SAP."
          inputParameters:
            - name: assembly_number
              in: body
              type: string
              description: "The top-level assembly part number."
            - name: plant
              in: body
              type: string
              description: "The SAP plant code."
          call: "sap.get-bom"
          with:
            material: "{{assembly_number}}"
            plant: "{{plant}}"
          outputParameters:
            - name: components
              type: string
              mapping: "$.d.results"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PP_BOM_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: boms
          path: "/A_BillOfMaterial(Material='{{material}}',Plant='{{plant}}')/to_BOMItem"
          inputParameters:
            - name: material
              in: path
            - name: plant
              in: path
          operations:
            - name: get-bom
              method: GET

Aggregates blade manufacturing scrap data from Solumina MES, cost impact from SAP, and generates a Power BI dashboard dataset push, then alerts the production team in Microsoft Teams if scrap rate exceeds threshold.

naftiko: "0.5"
info:
  label: "Blade Scrap Rate Dashboard Orchestrator"
  description: "Aggregates blade manufacturing scrap data from Solumina MES, cost impact from SAP, and generates a Power BI dashboard dataset push, then alerts the production team in Microsoft Teams if scrap rate exceeds threshold."
  tags:
    - manufacturing
    - quality
    - solumina
    - sap
    - power-bi
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: manufacturing-analytics
      port: 8080
      tools:
        - name: update-scrap-dashboard
          description: "Given a production line and date range, aggregate scrap metrics from MES and SAP, push to Power BI, and alert if threshold exceeded."
          inputParameters:
            - name: production_line
              in: body
              type: string
              description: "The production line identifier."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: end_date
              in: body
              type: string
              description: "End date in YYYY-MM-DD format."
          steps:
            - name: get-scrap-data
              type: call
              call: "solumina.get-scrap-metrics"
              with:
                line: "{{production_line}}"
                start_date: "{{start_date}}"
                end_date: "{{end_date}}"
            - name: get-cost-impact
              type: call
              call: "sap.get-scrap-costs"
              with:
                cost_center: "{{production_line}}"
                period_start: "{{start_date}}"
                period_end: "{{end_date}}"
            - name: push-to-powerbi
              type: call
              call: "powerbi.push-rows"
              with:
                dataset_id: "blade_scrap_dashboard"
                rows_scrap_count: "{{get-scrap-data.total_scrap}}"
                rows_scrap_rate: "{{get-scrap-data.scrap_rate}}"
                rows_cost: "{{get-cost-impact.total_cost}}"
            - name: alert-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "production-alerts"
                text: "Scrap alert for {{production_line}} ({{start_date}} to {{end_date}}): Rate={{get-scrap-data.scrap_rate}}%, Cost=${{get-cost-impact.total_cost}}"
  consumes:
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: scrap
          path: "/scrap-metrics"
          inputParameters:
            - name: line
              in: query
            - name: start_date
              in: query
            - name: end_date
              in: query
          operations:
            - name: get-scrap-metrics
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/CO_COST_CENTER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: costs
          path: "/A_CostCenterActuals"
          inputParameters:
            - name: cost_center
              in: query
            - name: period_start
              in: query
            - name: period_end
              in: query
          operations:
            - name: get-scrap-costs
              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}}/tables/ScrapData/rows"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: push-rows
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Pulls Overall Equipment Effectiveness metrics for a CNC machine from the Solumina MES, returning availability, performance, quality rates, and OEE percentage.

naftiko: "0.5"
info:
  label: "CNC Machine OEE Report"
  description: "Pulls Overall Equipment Effectiveness metrics for a CNC machine from the Solumina MES, returning availability, performance, quality rates, and OEE percentage."
  tags:
    - manufacturing
    - analytics
    - solumina
capability:
  exposes:
    - type: mcp
      namespace: manufacturing-oee
      port: 8080
      tools:
        - name: get-machine-oee
          description: "Retrieve OEE metrics for a CNC machine from Solumina MES."
          inputParameters:
            - name: machine_id
              in: body
              type: string
              description: "The CNC machine identifier."
            - name: date
              in: body
              type: string
              description: "The reporting date in YYYY-MM-DD format."
          call: "solumina.get-oee"
          with:
            resource_id: "{{machine_id}}"
            date: "{{date}}"
          outputParameters:
            - name: availability
              type: string
              mapping: "$.data.availability_rate"
            - name: performance
              type: string
              mapping: "$.data.performance_rate"
            - name: quality
              type: string
              mapping: "$.data.quality_rate"
            - name: oee
              type: string
              mapping: "$.data.oee_percentage"
  consumes:
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: oee
          path: "/resources/{{resource_id}}/oee"
          inputParameters:
            - name: resource_id
              in: path
            - name: date
              in: query
          operations:
            - name: get-oee
              method: GET

Retrieves combustor liner life remaining data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Combustor Liner Life Remaining"
  description: "Retrieves combustor liner life remaining data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - combustor
    - pratt-and-whitney
    - remaining
capability:
  exposes:
    - type: mcp
      namespace: combustor
      port: 8080
      tools:
        - name: combustor-liner-life-remaining
          description: "Retrieves combustor liner life remaining data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.combustor-liner-life-remaining"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/combustor/liner/life/remaining/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: combustor-liner-life-remaining
              method: GET

Retrieves compressor module status data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Compressor Module Status"
  description: "Retrieves compressor module status data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - compressor
    - pratt-and-whitney
    - status
capability:
  exposes:
    - type: mcp
      namespace: compressor
      port: 8080
      tools:
        - name: compressor-module-status
          description: "Retrieves compressor module status data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.compressor-module-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/compressor/module/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: compressor-module-status
              method: GET

When a quality escape is identified, creates a corrective action request in the quality system, notifies the supplier via SAP Ariba, assigns an investigator in ServiceNow, and logs the event in Windchill PLM.

naftiko: "0.5"
info:
  label: "Corrective Action Request Orchestrator"
  description: "When a quality escape is identified, creates a corrective action request in the quality system, notifies the supplier via SAP Ariba, assigns an investigator in ServiceNow, and logs the event in Windchill PLM."
  tags:
    - quality
    - procurement
    - sap-ariba
    - servicenow
    - windchill
capability:
  exposes:
    - type: mcp
      namespace: quality-actions
      port: 8080
      tools:
        - name: initiate-corrective-action
          description: "Given a nonconformance number and supplier, create a CAR, notify the supplier, assign an investigator, and link in PLM."
          inputParameters:
            - name: ncr_number
              in: body
              type: string
              description: "The nonconformance record number."
            - name: supplier_id
              in: body
              type: string
              description: "The supplier identifier in SAP Ariba."
            - name: part_number
              in: body
              type: string
              description: "The affected part number."
            - name: severity
              in: body
              type: string
              description: "Severity level (minor, major, critical)."
          steps:
            - name: create-car
              type: call
              call: "solumina.create-car"
              with:
                ncr_reference: "{{ncr_number}}"
                supplier_id: "{{supplier_id}}"
                part_number: "{{part_number}}"
                severity: "{{severity}}"
            - name: notify-supplier
              type: call
              call: "ariba.send-supplier-notice"
              with:
                supplier_id: "{{supplier_id}}"
                subject: "Corrective Action Required: CAR {{create-car.car_number}}"
                message: "A corrective action has been issued for part {{part_number}} related to NCR {{ncr_number}}."
            - name: assign-investigator
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Investigate CAR {{create-car.car_number}} for part {{part_number}}"
                assignment_group: "Quality_Engineering"
                priority: "{{severity}}"
            - name: link-in-plm
              type: call
              call: "windchill.create-problem-report"
              with:
                part_number: "{{part_number}}"
                car_reference: "{{create-car.car_number}}"
                description: "Quality escape on {{part_number}} from supplier {{supplier_id}}"
  consumes:
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: corrective-actions
          path: "/corrective-actions"
          operations:
            - name: create-car
              method: POST
    - type: http
      namespace: ariba
      baseUri: "https://openapi.ariba.com/api/supplier-management/v1"
      authentication:
        type: bearer
        token: "$secrets.ariba_token"
      resources:
        - name: notices
          path: "/suppliers/{{supplier_id}}/notices"
          inputParameters:
            - name: supplier_id
              in: path
          operations:
            - name: send-supplier-notice
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/sc_task"
          operations:
            - name: create-task
              method: POST
    - type: http
      namespace: windchill
      baseUri: "https://plm.pw.utc.com/Windchill/servlet/odata/v8"
      authentication:
        type: bearer
        token: "$secrets.windchill_token"
      resources:
        - name: problem-reports
          path: "/ProblemReports"
          operations:
            - name: create-problem-report
              method: POST

Orchestrates customer aog response pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Aog Response Pipeline"
  description: "Orchestrates customer aog response pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - pratt-and-whitney
    - datadog
    - pratt-whitney
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-aog-response-pipeline
          description: "Orchestrates customer aog response pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "pratt-whitney.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: pratt-whitney-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer engine fleet review pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Engine Fleet Review Pipeline"
  description: "Orchestrates customer engine fleet review pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - pratt-and-whitney
    - teams
    - confluence
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-engine-fleet-review-pipeline
          description: "Orchestrates customer engine fleet review pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://prattwhitney.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Retrieves a summary of all engines in an airline customer's fleet from Salesforce, returning engine serials, models, total hours, and contract status.

naftiko: "0.5"
info:
  label: "Customer Fleet Summary"
  description: "Retrieves a summary of all engines in an airline customer's fleet from Salesforce, returning engine serials, models, total hours, and contract status."
  tags:
    - engine-mro
    - sales
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: customer-fleet
      port: 8080
      tools:
        - name: get-fleet-summary
          description: "Query the fleet summary for an airline customer from Salesforce."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "The Salesforce account ID for the airline."
          call: "salesforce.query-fleet"
          with:
            query: "SELECT Engine_Serial__c, Model__c, Total_Hours__c, Contract_Status__c FROM Engine__c WHERE Account__c = '{{account_id}}'"
          outputParameters:
            - name: engines
              type: string
              mapping: "$.records"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://prattwhitney.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: soql
          path: "/query"
          inputParameters:
            - name: q
              in: query
          operations:
            - name: query-fleet
              method: GET

Orchestrates customer technical support pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Technical Support Pipeline"
  description: "Orchestrates customer technical support pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - pratt-and-whitney
    - sap
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-technical-support-pipeline
          description: "Orchestrates customer technical support pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates employee skill matrix tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Employee Skill Matrix Tracker"
  description: "Orchestrates employee skill matrix tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - employee
    - pratt-and-whitney
    - datadog
    - pratt-whitney
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: employee
      port: 8080
      tools:
        - name: employee-skill-matrix-tracker
          description: "Orchestrates employee skill matrix tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "pratt-whitney.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/employee"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: pratt-whitney-resource
          path: "/api/employee"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/employee"
          operations:
            - name: execute-3
              method: POST

Queries an employee's training compliance status from the SuccessFactors LMS, returning completed certifications, overdue trainings, and next due dates.

naftiko: "0.5"
info:
  label: "Employee Training Compliance Check"
  description: "Queries an employee's training compliance status from the SuccessFactors LMS, returning completed certifications, overdue trainings, and next due dates."
  tags:
    - hr
    - training
    - successfactors
capability:
  exposes:
    - type: mcp
      namespace: hr-training
      port: 8080
      tools:
        - name: get-training-compliance
          description: "Check an employee's training compliance status from SAP SuccessFactors."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The SuccessFactors user ID."
          call: "successfactors.get-learning-history"
          with:
            user_id: "{{employee_id}}"
          outputParameters:
            - name: completed_certs
              type: string
              mapping: "$.d.results[*].CompletedCertifications"
            - name: overdue_count
              type: string
              mapping: "$.d.OverdueCount"
            - name: next_due_date
              type: string
              mapping: "$.d.NextDueDate"
  consumes:
    - type: http
      namespace: successfactors
      baseUri: "https://api15.sapsf.com/odata/v2"
      authentication:
        type: bearer
        token: "$secrets.successfactors_token"
      resources:
        - name: learning
          path: "/UserLearning(userId='{{user_id}}')"
          inputParameters:
            - name: user_id
              in: path
          operations:
            - name: get-learning-history
              method: GET

Retrieves engine accessory gearbox status data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Engine Accessory Gearbox Status"
  description: "Retrieves engine accessory gearbox status data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - engine
    - pratt-and-whitney
    - status
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-accessory-gearbox-status
          description: "Retrieves engine accessory gearbox status data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.engine-accessory-gearbox-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/engine/accessory/gearbox/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: engine-accessory-gearbox-status
              method: GET

Orchestrates engine assembly sequence optimizer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Assembly Sequence Optimizer"
  description: "Orchestrates engine assembly sequence optimizer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - pratt-and-whitney
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-assembly-sequence-optimizer
          description: "Orchestrates engine assembly sequence optimizer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prattwhitney.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Retrieves a borescope inspection report from Solumina MES, returning inspection findings, blade condition, coating status, and recommended actions.

naftiko: "0.5"
info:
  label: "Engine Borescope Inspection Report"
  description: "Retrieves a borescope inspection report from Solumina MES, returning inspection findings, blade condition, coating status, and recommended actions."
  tags:
    - engine-mro
    - quality
    - solumina
capability:
  exposes:
    - type: mcp
      namespace: inspections
      port: 8080
      tools:
        - name: get-borescope-report
          description: "Look up a borescope inspection report by engine serial and inspection date."
          inputParameters:
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
            - name: inspection_date
              in: body
              type: string
              description: "Inspection date in YYYY-MM-DD format."
          call: "solumina.get-borescope"
          with:
            serial_number: "{{engine_serial}}"
            date: "{{inspection_date}}"
          outputParameters:
            - name: findings
              type: string
              mapping: "$.data.findings"
            - name: blade_condition
              type: string
              mapping: "$.data.bladeCondition"
            - name: recommended_action
              type: string
              mapping: "$.data.recommendedAction"
  consumes:
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: borescope
          path: "/borescope-inspections"
          inputParameters:
            - name: serial_number
              in: query
            - name: date
              in: query
          operations:
            - name: get-borescope
              method: GET

Orchestrates engine configuration change pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Configuration Change Pipeline"
  description: "Orchestrates engine configuration change pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - pratt-and-whitney
    - confluence
    - sharepoint
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-configuration-change-pipeline
          description: "Orchestrates engine configuration change pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sharepoint.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://prattwhitney.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Retrieves engine configuration lookup data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Engine Configuration Lookup"
  description: "Retrieves engine configuration lookup data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - engine
    - pratt-and-whitney
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-configuration-lookup
          description: "Retrieves engine configuration lookup data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.engine-configuration-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/engine/configuration/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: engine-configuration-lookup
              method: GET

When an overhauled engine is ready for delivery, creates a shipment in SAP, generates the export compliance documentation in SAP GTS, updates the customer case in Salesforce, and sends delivery notification to the airline in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Engine Delivery Orchestrator"
  description: "When an overhauled engine is ready for delivery, creates a shipment in SAP, generates the export compliance documentation in SAP GTS, updates the customer case in Salesforce, and sends delivery notification to the airline in Microsoft Teams."
  tags:
    - engine-mro
    - logistics
    - sap
    - salesforce
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: mro-delivery
      port: 8080
      tools:
        - name: process-engine-delivery
          description: "Given an engine serial and customer, create SAP shipment, generate export docs, update Salesforce, and notify customer."
          inputParameters:
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
            - name: customer_account_id
              in: body
              type: string
              description: "The Salesforce account ID for the airline."
            - name: destination_airport
              in: body
              type: string
              description: "IATA code of the destination airport."
          steps:
            - name: create-shipment
              type: call
              call: "sap.create-delivery"
              with:
                equipment: "{{engine_serial}}"
                ship_to: "{{destination_airport}}"
            - name: generate-export-docs
              type: call
              call: "sap-gts.create-customs-declaration"
              with:
                delivery_number: "{{create-shipment.delivery_number}}"
                destination_country: "{{destination_airport}}"
            - name: update-case
              type: call
              call: "salesforce.update-case"
              with:
                account_id: "{{customer_account_id}}"
                status: "Engine Shipped"
                description: "ESN {{engine_serial}} shipped to {{destination_airport}}. Delivery: {{create-shipment.delivery_number}}"
            - name: notify-customer
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "customer-{{customer_account_id}}"
                text: "Engine {{engine_serial}} has shipped to {{destination_airport}}. Tracking: {{create-shipment.tracking_number}}. Export docs: {{generate-export-docs.doc_id}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/SD_DELIVERY_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: deliveries
          path: "/A_OutbDeliveryHeader"
          operations:
            - name: create-delivery
              method: POST
    - type: http
      namespace: sap-gts
      baseUri: "https://pw-gts.sap.com/sap/opu/odata/sap/GTS_CUSTOMS_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_gts_user"
        password: "$secrets.sap_gts_password"
      resources:
        - name: declarations
          path: "/A_CustomsDeclaration"
          operations:
            - name: create-customs-declaration
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prattwhitney.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: cases
          path: "/sobjects/Case"
          operations:
            - name: update-case
              method: PATCH
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates engine digital twin sync pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Digital Twin Sync Pipeline"
  description: "Orchestrates engine digital twin sync pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - pratt-and-whitney
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-digital-twin-sync-pipeline
          description: "Orchestrates engine digital twin sync pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prattwhitney.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Orchestrates engine fleet health analytics pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Fleet Health Analytics Pipeline"
  description: "Orchestrates engine fleet health analytics pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - pratt-and-whitney
    - pratt-whitney
    - servicenow
    - sap
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-fleet-health-analytics-pipeline
          description: "Orchestrates engine fleet health analytics pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "pratt-whitney.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: pratt-whitney-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Generates a monthly engine health trend report by pulling telemetry from EngineWise, maintenance events from SAP, and pushes the compiled trend data to a Power BI dataset for fleet analytics.

naftiko: "0.5"
info:
  label: "Engine Health Trend Report Orchestrator"
  description: "Generates a monthly engine health trend report by pulling telemetry from EngineWise, maintenance events from SAP, and pushes the compiled trend data to a Power BI dataset for fleet analytics."
  tags:
    - engine-mro
    - analytics
    - enginewise
    - sap
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: fleet-analytics
      port: 8080
      tools:
        - name: generate-health-trend-report
          description: "Given an engine serial and month, compile telemetry and maintenance data, then push to Power BI."
          inputParameters:
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
            - name: month
              in: body
              type: string
              description: "Reporting month in YYYY-MM format."
          steps:
            - name: get-telemetry-trend
              type: call
              call: "enginewise.get-monthly-trend"
              with:
                esn: "{{engine_serial}}"
                month: "{{month}}"
            - name: get-maintenance-events
              type: call
              call: "sap.get-maintenance-notifications"
              with:
                equipment: "{{engine_serial}}"
                period: "{{month}}"
            - name: push-to-dashboard
              type: call
              call: "powerbi.push-rows"
              with:
                dataset_id: "engine_health_trends"
                rows_esn: "{{engine_serial}}"
                rows_egt_margin: "{{get-telemetry-trend.avg_egt_margin}}"
                rows_oil_consumption: "{{get-telemetry-trend.avg_oil_consumption}}"
                rows_maintenance_events: "{{get-maintenance-events.count}}"
  consumes:
    - type: http
      namespace: enginewise
      baseUri: "https://enginewise.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.enginewise_token"
      resources:
        - name: trends
          path: "/engines/{{esn}}/trends/monthly"
          inputParameters:
            - name: esn
              in: path
            - name: month
              in: query
          operations:
            - name: get-monthly-trend
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PM_NOTIFICATION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: notifications
          path: "/A_MaintenanceNotification"
          inputParameters:
            - name: equipment
              in: query
            - name: period
              in: query
          operations:
            - name: get-maintenance-notifications
              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}}/tables/HealthTrends/rows"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: push-rows
              method: POST

Orchestrates engine lease return inspection pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Lease Return Inspection Pipeline"
  description: "Orchestrates engine lease return inspection pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - pratt-and-whitney
    - jira
    - teams
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-lease-return-inspection-pipeline
          description: "Orchestrates engine lease return inspection pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://prattwhitney.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://prattwhitney.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Orchestrates engine logistics tracking pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Logistics Tracking Pipeline"
  description: "Orchestrates engine logistics tracking pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - pratt-and-whitney
    - pratt-whitney
    - servicenow
    - sap
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-logistics-tracking-pipeline
          description: "Orchestrates engine logistics tracking pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "pratt-whitney.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: pratt-whitney-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Tracks the assembly progress of an engine module through Solumina MES stations, pulls component serial numbers from SAP, generates a build traceability report, and shares it via SharePoint.

naftiko: "0.5"
info:
  label: "Engine Module Build Tracking Orchestrator"
  description: "Tracks the assembly progress of an engine module through Solumina MES stations, pulls component serial numbers from SAP, generates a build traceability report, and shares it via SharePoint."
  tags:
    - manufacturing
    - traceability
    - solumina
    - sap
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: manufacturing-traceability
      port: 8080
      tools:
        - name: get-module-build-status
          description: "Given a module serial number, pull assembly progress, component traceability, and generate a build report in SharePoint."
          inputParameters:
            - name: module_serial
              in: body
              type: string
              description: "The engine module serial number."
            - name: engine_serial
              in: body
              type: string
              description: "The parent engine serial number."
          steps:
            - name: get-assembly-status
              type: call
              call: "solumina.get-order-status"
              with:
                serial_number: "{{module_serial}}"
            - name: get-component-serials
              type: call
              call: "sap.get-serial-numbers"
              with:
                parent_equipment: "{{module_serial}}"
            - name: upload-report
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "manufacturing_records"
                file_path: "BuildReports/{{engine_serial}}/{{module_serial}}_build_report.json"
                content: "Module: {{module_serial}}, Progress: {{get-assembly-status.percent_complete}}%, Components: {{get-component-serials.count}}, Current Station: {{get-assembly-status.current_station}}"
  consumes:
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: orders
          path: "/manufacturing-orders/{{serial_number}}/status"
          inputParameters:
            - name: serial_number
              in: path
          operations:
            - name: get-order-status
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PM_EQUIPMENT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: serial-numbers
          path: "/A_Equipment('{{parent_equipment}}')/to_SubEquipment"
          inputParameters:
            - name: parent_equipment
              in: path
          operations:
            - name: get-serial-numbers
              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

Retrieves engine noise profile lookup data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Engine Noise Profile Lookup"
  description: "Retrieves engine noise profile lookup data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - engine
    - pratt-and-whitney
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-noise-profile-lookup
          description: "Retrieves engine noise profile lookup data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.engine-noise-profile-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/engine/noise/profile/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: engine-noise-profile-lookup
              method: GET

Retrieves engine oil analysis results data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Engine Oil Analysis Results"
  description: "Retrieves engine oil analysis results data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - engine
    - pratt-and-whitney
    - results
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-oil-analysis-results
          description: "Retrieves engine oil analysis results data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.engine-oil-analysis-results"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/engine/oil/analysis/results/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: engine-oil-analysis-results
              method: GET

Orchestrates engine overhaul planning pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Overhaul Planning Pipeline"
  description: "Orchestrates engine overhaul planning pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - pratt-and-whitney
    - sharepoint
    - datadog
    - pratt-whitney
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-overhaul-planning-pipeline
          description: "Orchestrates engine overhaul planning pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sharepoint.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "pratt-whitney.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: pratt-whitney-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Orchestrates engine performance degradation analyzer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Performance Degradation Analyzer"
  description: "Orchestrates engine performance degradation analyzer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - pratt-and-whitney
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-performance-degradation-analyzer
          description: "Orchestrates engine performance degradation analyzer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prattwhitney.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Tracks costs for an engine development program by pulling actuals from SAP, comparing against the budget baseline in Microsoft Project, and generating a cost variance report in Power BI.

naftiko: "0.5"
info:
  label: "Engine Program Cost Tracking Orchestrator"
  description: "Tracks costs for an engine development program by pulling actuals from SAP, comparing against the budget baseline in Microsoft Project, and generating a cost variance report in Power BI."
  tags:
    - engineering
    - finance
    - sap
    - microsoft-project
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: program-costs
      port: 8080
      tools:
        - name: track-program-costs
          description: "Given a program code and period, pull actuals, compare to budget, and update dashboard."
          inputParameters:
            - name: program_code
              in: body
              type: string
              description: "The engine program code."
            - name: period
              in: body
              type: string
              description: "Reporting period in YYYY-MM format."
          steps:
            - name: get-actuals
              type: call
              call: "sap.get-program-actuals"
              with:
                program: "{{program_code}}"
                period: "{{period}}"
            - name: get-budget
              type: call
              call: "ms-project.get-baseline"
              with:
                project_id: "{{program_code}}"
            - name: push-variance
              type: call
              call: "powerbi.push-rows"
              with:
                dataset_id: "program_cost_tracking"
                rows_program: "{{program_code}}"
                rows_actual: "{{get-actuals.total_cost}}"
                rows_budget: "{{get-budget.baseline_cost}}"
                rows_variance: "{{get-actuals.variance}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/CO_PROJECT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: actuals
          path: "/A_ProjectActuals"
          inputParameters:
            - name: program
              in: query
            - name: period
              in: query
          operations:
            - name: get-program-actuals
              method: GET
    - type: http
      namespace: ms-project
      baseUri: "https://graph.microsoft.com/v1.0/planner"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: baselines
          path: "/plans/{{project_id}}"
          inputParameters:
            - name: project_id
              in: path
          operations:
            - name: get-baseline
              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}}/tables/CostVariance/rows"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: push-rows
              method: POST

Orchestrates engine program cost variance pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Program Cost Variance Pipeline"
  description: "Orchestrates engine program cost variance pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - pratt-and-whitney
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-program-cost-variance-pipeline
          description: "Orchestrates engine program cost variance pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prattwhitney.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Orchestrates engine program milestone tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Program Milestone Tracker"
  description: "Orchestrates engine program milestone tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - pratt-and-whitney
    - servicenow
    - sap
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-program-milestone-tracker
          description: "Orchestrates engine program milestone tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Retrieves engine removal forecast lookup data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Engine Removal Forecast Lookup"
  description: "Retrieves engine removal forecast lookup data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - engine
    - pratt-and-whitney
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-removal-forecast-lookup
          description: "Retrieves engine removal forecast lookup data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.engine-removal-forecast-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/engine/removal/forecast/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: engine-removal-forecast-lookup
              method: GET

Retrieves engine configuration and lifecycle data from SAP S/4HANA by engine serial number, returning engine model, total flight hours, cycles, and current operator.

naftiko: "0.5"
info:
  label: "Engine Serial Number Lookup"
  description: "Retrieves engine configuration and lifecycle data from SAP S/4HANA by engine serial number, returning engine model, total flight hours, cycles, and current operator."
  tags:
    - engine-mro
    - erp
    - sap
capability:
  exposes:
    - type: mcp
      namespace: engine-data
      port: 8080
      tools:
        - name: get-engine-record
          description: "Look up an engine by serial number in SAP. Returns model, flight hours, cycles, and current operator."
          inputParameters:
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
          call: "sap.get-equipment"
          with:
            equipment_number: "{{engine_serial}}"
          outputParameters:
            - name: engine_model
              type: string
              mapping: "$.d.EquipmentName"
            - name: flight_hours
              type: string
              mapping: "$.d.TotalFlightHours"
            - name: cycles
              type: string
              mapping: "$.d.TotalCycles"
            - name: operator
              type: string
              mapping: "$.d.CustomerName"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PM_EQUIPMENT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      inputParameters:
        - name: Accept
          in: header
          value: "application/json"
        - name: sap-client
          in: header
          value: "200"
      resources:
        - name: equipment
          path: "/A_Equipment('{{equipment_number}}')"
          inputParameters:
            - name: equipment_number
              in: path
          operations:
            - name: get-equipment
              method: GET

Orchestrates engine shop capacity planner across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Shop Capacity Planner"
  description: "Orchestrates engine shop capacity planner across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - pratt-and-whitney
    - confluence
    - sharepoint
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-shop-capacity-planner
          description: "Orchestrates engine shop capacity planner across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sharepoint.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://prattwhitney.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

When an engine arrives for overhaul, creates a work order in SAP, opens an inspection record in Solumina MES, assigns the engine to a workscope team in ServiceNow, and notifies the MRO manager in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Engine Shop Visit Intake Orchestrator"
  description: "When an engine arrives for overhaul, creates a work order in SAP, opens an inspection record in Solumina MES, assigns the engine to a workscope team in ServiceNow, and notifies the MRO manager in Microsoft Teams."
  tags:
    - engine-mro
    - sap
    - solumina
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: mro-intake
      port: 8080
      tools:
        - name: initiate-shop-visit
          description: "Given an engine serial number and workscope, create SAP work order, Solumina inspection, ServiceNow assignment, and notify the MRO team."
          inputParameters:
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
            - name: workscope
              in: body
              type: string
              description: "The maintenance workscope (e.g., performance_restoration, hot_section)."
            - name: customer_id
              in: body
              type: string
              description: "The airline customer identifier."
          steps:
            - name: create-work-order
              type: call
              call: "sap.create-maintenance-order"
              with:
                equipment: "{{engine_serial}}"
                order_type: "PM02"
                description: "Shop visit: {{workscope}} for ESN {{engine_serial}}"
            - name: create-inspection
              type: call
              call: "solumina.create-order"
              with:
                serial_number: "{{engine_serial}}"
                workscope: "{{workscope}}"
                sap_order: "{{create-work-order.order_number}}"
            - name: assign-team
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Engine shop visit: {{engine_serial}} ({{workscope}})"
                assignment_group: "MRO_{{workscope}}"
                correlation_id: "{{create-work-order.order_number}}"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "mro-operations"
                text: "Shop visit initiated for ESN {{engine_serial}}. Workscope: {{workscope}}. SAP Order: {{create-work-order.order_number}}. Customer: {{customer_id}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PM_ORDER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: orders
          path: "/A_MaintenanceOrder"
          operations:
            - name: create-maintenance-order
              method: POST
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: orders
          path: "/manufacturing-orders"
          operations:
            - name: create-order
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/sc_task"
          operations:
            - name: create-task
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Pulls engine test cell run data from the eDNA historian, returning thrust output, EGT, fuel flow, and vibration readings for a given test run ID.

naftiko: "0.5"
info:
  label: "Engine Test Cell Data Retrieval"
  description: "Pulls engine test cell run data from the eDNA historian, returning thrust output, EGT, fuel flow, and vibration readings for a given test run ID."
  tags:
    - engine-mro
    - testing
    - edna
capability:
  exposes:
    - type: mcp
      namespace: engine-testing
      port: 8080
      tools:
        - name: get-test-cell-data
          description: "Retrieve engine test cell performance data from eDNA historian by test run ID."
          inputParameters:
            - name: test_run_id
              in: body
              type: string
              description: "The test cell run identifier."
          call: "edna.get-test-run"
          with:
            run_id: "{{test_run_id}}"
          outputParameters:
            - name: thrust
              type: string
              mapping: "$.data.thrust_lbf"
            - name: egt
              type: string
              mapping: "$.data.exhaust_gas_temp_c"
            - name: fuel_flow
              type: string
              mapping: "$.data.fuel_flow_pph"
            - name: vibration
              type: string
              mapping: "$.data.vibration_ips"
  consumes:
    - type: http
      namespace: edna
      baseUri: "https://edna.pw.utc.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.edna_token"
      resources:
        - name: test-runs
          path: "/runs/{{run_id}}"
          inputParameters:
            - name: run_id
              in: path
          operations:
            - name: get-test-run
              method: GET

Retrieves engine trend monitoring data data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Engine Trend Monitoring Data"
  description: "Retrieves engine trend monitoring data data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - engine
    - pratt-and-whitney
    - data
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-trend-monitoring-data
          description: "Retrieves engine trend monitoring data data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.engine-trend-monitoring-data"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/engine/trend/monitoring/data/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: engine-trend-monitoring-data
              method: GET

Retrieves the engine wash schedule for an airline customer's fleet from the EngineWise maintenance planner, returning next wash due date, wash interval, and performance recovery estimate.

naftiko: "0.5"
info:
  label: "Engine Wash Schedule Lookup"
  description: "Retrieves the engine wash schedule for an airline customer's fleet from the EngineWise maintenance planner, returning next wash due date, wash interval, and performance recovery estimate."
  tags:
    - engine-mro
    - maintenance
    - enginewise
capability:
  exposes:
    - type: mcp
      namespace: engine-wash
      port: 8080
      tools:
        - name: get-wash-schedule
          description: "Look up engine wash schedule for a fleet from EngineWise."
          inputParameters:
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
          call: "enginewise.get-wash-schedule"
          with:
            esn: "{{engine_serial}}"
          outputParameters:
            - name: next_wash_date
              type: string
              mapping: "$.data.nextWashDate"
            - name: wash_interval_hours
              type: string
              mapping: "$.data.washIntervalFH"
            - name: egt_recovery_estimate
              type: string
              mapping: "$.data.egtRecoveryC"
  consumes:
    - type: http
      namespace: enginewise
      baseUri: "https://enginewise.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.enginewise_token"
      resources:
        - name: wash
          path: "/engines/{{esn}}/wash-schedule"
          inputParameters:
            - name: esn
              in: path
          operations:
            - name: get-wash-schedule
              method: GET

When an engineering change is approved in Windchill PLM, updates the affected BOMs in SAP, creates work instructions in Solumina, and notifies the manufacturing engineering team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Engineering Change Order Orchestrator"
  description: "When an engineering change is approved in Windchill PLM, updates the affected BOMs in SAP, creates work instructions in Solumina, and notifies the manufacturing engineering team in Microsoft Teams."
  tags:
    - engineering
    - manufacturing
    - windchill
    - sap
    - solumina
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: engineering-changes
      port: 8080
      tools:
        - name: propagate-engineering-change
          description: "Given a Windchill ECO number, propagate the change to SAP BOMs, Solumina work instructions, and notify the team."
          inputParameters:
            - name: eco_number
              in: body
              type: string
              description: "The Windchill engineering change order number."
          steps:
            - name: get-eco-details
              type: call
              call: "windchill.get-change-order"
              with:
                eco_number: "{{eco_number}}"
            - name: update-bom
              type: call
              call: "sap.update-bom"
              with:
                material: "{{get-eco-details.affected_part}}"
                change_number: "{{eco_number}}"
                new_revision: "{{get-eco-details.new_revision}}"
            - name: update-work-instructions
              type: call
              call: "solumina.update-plan"
              with:
                part_number: "{{get-eco-details.affected_part}}"
                revision: "{{get-eco-details.new_revision}}"
                instructions: "{{get-eco-details.work_instruction_delta}}"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "manufacturing-engineering"
                text: "ECO {{eco_number}} propagated. Part: {{get-eco-details.affected_part}}, Rev: {{get-eco-details.new_revision}}. SAP BOM and Solumina plans updated."
  consumes:
    - type: http
      namespace: windchill
      baseUri: "https://plm.pw.utc.com/Windchill/servlet/odata/v8"
      authentication:
        type: bearer
        token: "$secrets.windchill_token"
      resources:
        - name: change-orders
          path: "/ChangeOrders('{{eco_number}}')"
          inputParameters:
            - name: eco_number
              in: path
          operations:
            - name: get-change-order
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PP_BOM_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: boms
          path: "/A_BillOfMaterial"
          operations:
            - name: update-bom
              method: PATCH
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: plans
          path: "/manufacturing-plans"
          operations:
            - name: update-plan
              method: PATCH
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates engineering design review pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engineering Design Review Pipeline"
  description: "Orchestrates engineering design review pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engineering
    - pratt-and-whitney
    - servicenow
    - sap
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: engineering-design-review-pipeline
          description: "Orchestrates engineering design review pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/engineering"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/engineering"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/engineering"
          operations:
            - name: execute-3
              method: POST

Compiles environmental compliance data by pulling emissions readings from the plant monitoring system, waste disposal records from SAP EHS, and submits the consolidated report to the EPA portal, then notifies the EHS team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Environmental Compliance Report Orchestrator"
  description: "Compiles environmental compliance data by pulling emissions readings from the plant monitoring system, waste disposal records from SAP EHS, and submits the consolidated report to the EPA portal, then notifies the EHS team in Microsoft Teams."
  tags:
    - compliance
    - environment
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: environmental-compliance
      port: 8080
      tools:
        - name: generate-compliance-report
          description: "Given a plant code and reporting period, aggregate emissions and waste data, submit to EPA, and notify the EHS team."
          inputParameters:
            - name: plant_code
              in: body
              type: string
              description: "The manufacturing plant identifier."
            - name: reporting_period
              in: body
              type: string
              description: "Reporting period in YYYY-MM format."
          steps:
            - name: get-emissions
              type: call
              call: "plant-monitor.get-emissions"
              with:
                plant: "{{plant_code}}"
                period: "{{reporting_period}}"
            - name: get-waste-records
              type: call
              call: "sap-ehs.get-waste-manifests"
              with:
                plant: "{{plant_code}}"
                period: "{{reporting_period}}"
            - name: submit-report
              type: call
              call: "epa-portal.submit-report"
              with:
                facility_id: "{{plant_code}}"
                emissions: "{{get-emissions.total_voc}}"
                waste_tons: "{{get-waste-records.total_tons}}"
                period: "{{reporting_period}}"
            - name: notify-ehs
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "ehs-compliance"
                text: "Environmental report submitted for plant {{plant_code}} ({{reporting_period}}). VOC: {{get-emissions.total_voc}} lbs, Waste: {{get-waste-records.total_tons}} tons. Submission ID: {{submit-report.confirmation_id}}."
  consumes:
    - type: http
      namespace: plant-monitor
      baseUri: "https://envmon.pw.utc.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.plant_monitor_token"
      resources:
        - name: emissions
          path: "/plants/{{plant}}/emissions"
          inputParameters:
            - name: plant
              in: path
            - name: period
              in: query
          operations:
            - name: get-emissions
              method: GET
    - type: http
      namespace: sap-ehs
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/EHS_WASTE_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: waste
          path: "/A_WasteManifest"
          inputParameters:
            - name: plant
              in: query
            - name: period
              in: query
          operations:
            - name: get-waste-manifests
              method: GET
    - type: http
      namespace: epa-portal
      baseUri: "https://cdx.epa.gov/api/v1"
      authentication:
        type: bearer
        token: "$secrets.epa_portal_token"
      resources:
        - name: reports
          path: "/submissions"
          operations:
            - name: submit-report
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Verifies whether an export license is required for a part shipment to a specific country using SAP Global Trade Services, returning license requirement status and applicable ECCN.

naftiko: "0.5"
info:
  label: "Export License Check"
  description: "Verifies whether an export license is required for a part shipment to a specific country using SAP Global Trade Services, returning license requirement status and applicable ECCN."
  tags:
    - compliance
    - export
    - sap-gts
capability:
  exposes:
    - type: mcp
      namespace: trade-compliance
      port: 8080
      tools:
        - name: check-export-license
          description: "Check if an export license is required for a part to a destination country."
          inputParameters:
            - name: part_number
              in: body
              type: string
              description: "The part number to check."
            - name: destination_country
              in: body
              type: string
              description: "ISO 3166 country code of the destination."
          call: "sap-gts.check-license"
          with:
            material: "{{part_number}}"
            country: "{{destination_country}}"
          outputParameters:
            - name: license_required
              type: string
              mapping: "$.data.license_required"
            - name: eccn
              type: string
              mapping: "$.data.eccn"
            - name: license_type
              type: string
              mapping: "$.data.license_type"
  consumes:
    - type: http
      namespace: sap-gts
      baseUri: "https://pw-gts.sap.com/sap/opu/odata/sap/GTS_LICENSE_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_gts_user"
        password: "$secrets.sap_gts_password"
      resources:
        - name: license-checks
          path: "/LicenseDetermination"
          inputParameters:
            - name: material
              in: query
            - name: country
              in: query
          operations:
            - name: check-license
              method: GET

Retrieves fan blade dimensional check data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Fan Blade Dimensional Check"
  description: "Retrieves fan blade dimensional check data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - fan
    - pratt-and-whitney
    - check
capability:
  exposes:
    - type: mcp
      namespace: fan
      port: 8080
      tools:
        - name: fan-blade-dimensional-check
          description: "Retrieves fan blade dimensional check data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.fan-blade-dimensional-check"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/fan/blade/dimensional/check/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: fan-blade-dimensional-check
              method: GET

Retrieves a first article inspection report from Solumina MES for a newly manufactured part, returning measured dimensions, tolerances, pass/fail status, and inspector details.

naftiko: "0.5"
info:
  label: "First Article Inspection Report"
  description: "Retrieves a first article inspection report from Solumina MES for a newly manufactured part, returning measured dimensions, tolerances, pass/fail status, and inspector details."
  tags:
    - quality
    - manufacturing
    - solumina
capability:
  exposes:
    - type: mcp
      namespace: quality-inspection
      port: 8080
      tools:
        - name: get-fair-report
          description: "Look up a first article inspection report from Solumina by serial number and part number."
          inputParameters:
            - name: serial_number
              in: body
              type: string
              description: "The part serial number."
            - name: part_number
              in: body
              type: string
              description: "The part number."
          call: "solumina.get-fair"
          with:
            serial_number: "{{serial_number}}"
            part_number: "{{part_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.data.overall_status"
            - name: measurements
              type: string
              mapping: "$.data.measurements"
            - name: inspector
              type: string
              mapping: "$.data.inspector_name"
  consumes:
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: inspections
          path: "/first-article-inspections"
          inputParameters:
            - name: serial_number
              in: query
            - name: part_number
              in: query
          operations:
            - name: get-fair
              method: GET

Compiles fleet utilization metrics for an airline customer by pulling flight hour data from EngineWise, maintenance downtime from SAP, and contract utilization from Salesforce, then pushes to the customer Power BI dashboard.

naftiko: "0.5"
info:
  label: "Fleet Utilization Dashboard Orchestrator"
  description: "Compiles fleet utilization metrics for an airline customer by pulling flight hour data from EngineWise, maintenance downtime from SAP, and contract utilization from Salesforce, then pushes to the customer Power BI dashboard."
  tags:
    - engine-mro
    - analytics
    - enginewise
    - sap
    - salesforce
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: fleet-utilization
      port: 8080
      tools:
        - name: update-fleet-utilization
          description: "Given a customer account and period, compile fleet utilization data and push to Power BI."
          inputParameters:
            - name: customer_account_id
              in: body
              type: string
              description: "The Salesforce account ID."
            - name: month
              in: body
              type: string
              description: "Reporting month in YYYY-MM format."
          steps:
            - name: get-flight-hours
              type: call
              call: "enginewise.get-fleet-hours"
              with:
                customer_id: "{{customer_account_id}}"
                month: "{{month}}"
            - name: get-downtime
              type: call
              call: "sap.get-maintenance-downtime"
              with:
                customer: "{{customer_account_id}}"
                period: "{{month}}"
            - name: get-contract-utilization
              type: call
              call: "salesforce.query-utilization"
              with:
                query: "SELECT Engine_Serial__c, FH_Used__c, FH_Entitlement__c FROM Contract_Utilization__c WHERE Account__c = '{{customer_account_id}}'"
            - name: push-dashboard
              type: call
              call: "powerbi.push-rows"
              with:
                dataset_id: "fleet_utilization"
                rows_customer: "{{customer_account_id}}"
                rows_flight_hours: "{{get-flight-hours.total_fh}}"
                rows_downtime_days: "{{get-downtime.total_days}}"
                rows_availability: "{{get-flight-hours.availability_pct}}"
  consumes:
    - type: http
      namespace: enginewise
      baseUri: "https://enginewise.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.enginewise_token"
      resources:
        - name: fleet-hours
          path: "/customers/{{customer_id}}/fleet-hours"
          inputParameters:
            - name: customer_id
              in: path
            - name: month
              in: query
          operations:
            - name: get-fleet-hours
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PM_ORDER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: downtime
          path: "/A_MaintenanceDowntime"
          inputParameters:
            - name: customer
              in: query
            - name: period
              in: query
          operations:
            - name: get-maintenance-downtime
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://prattwhitney.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: soql
          path: "/query"
          inputParameters:
            - name: q
              in: query
          operations:
            - name: query-utilization
              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}}/tables/Utilization/rows"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: push-rows
              method: POST

Retrieves flight cycle count lookup data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Flight Cycle Count Lookup"
  description: "Retrieves flight cycle count lookup data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - flight
    - pratt-and-whitney
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: flight
      port: 8080
      tools:
        - name: flight-cycle-count-lookup
          description: "Retrieves flight cycle count lookup data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.flight-cycle-count-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/flight/cycle/count/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: flight-cycle-count-lookup
              method: GET

Orchestrates flight data anomaly investigation pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Flight Data Anomaly Investigation Pipeline"
  description: "Orchestrates flight data anomaly investigation pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - flight
    - pratt-and-whitney
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: flight
      port: 8080
      tools:
        - name: flight-data-anomaly-investigation-pipeline
          description: "Orchestrates flight data anomaly investigation pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/flight"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prattwhitney.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/flight"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/flight"
          operations:
            - name: execute-3
              method: POST

Retrieves the latest ACARS engine health telemetry for a specific engine serial number from the EngineWise platform, returning EGT margin, oil consumption rate, and vibration trend.

naftiko: "0.5"
info:
  label: "Flight Data Ingestion from ACARS"
  description: "Retrieves the latest ACARS engine health telemetry for a specific engine serial number from the EngineWise platform, returning EGT margin, oil consumption rate, and vibration trend."
  tags:
    - engine-mro
    - analytics
    - enginewise
capability:
  exposes:
    - type: mcp
      namespace: engine-health
      port: 8080
      tools:
        - name: get-engine-health-telemetry
          description: "Retrieve latest ACARS-sourced engine health parameters from EngineWise."
          inputParameters:
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
          call: "enginewise.get-telemetry"
          with:
            esn: "{{engine_serial}}"
          outputParameters:
            - name: egt_margin
              type: string
              mapping: "$.data.egt_margin_c"
            - name: oil_consumption
              type: string
              mapping: "$.data.oil_consumption_rate"
            - name: vibration_trend
              type: string
              mapping: "$.data.vibration_trend"
  consumes:
    - type: http
      namespace: enginewise
      baseUri: "https://enginewise.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.enginewise_token"
      resources:
        - name: telemetry
          path: "/engines/{{esn}}/telemetry/latest"
          inputParameters:
            - name: esn
              in: path
          operations:
            - name: get-telemetry
              method: GET

Orchestrates foreign object damage investigation pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Foreign Object Damage Investigation Pipeline"
  description: "Orchestrates foreign object damage investigation pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - foreign
    - pratt-and-whitney
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: foreign
      port: 8080
      tools:
        - name: foreign-object-damage-investigation-pipeline
          description: "Orchestrates foreign object damage investigation pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/foreign"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/foreign"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prattwhitney.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/foreign"
          operations:
            - name: execute-3
              method: POST

Retrieves fuel nozzle flow test results from the test cell data system, returning flow rate, spray pattern uniformity, and pass/fail status for each nozzle tested.

naftiko: "0.5"
info:
  label: "Fuel Nozzle Flow Test Results"
  description: "Retrieves fuel nozzle flow test results from the test cell data system, returning flow rate, spray pattern uniformity, and pass/fail status for each nozzle tested."
  tags:
    - engine-mro
    - testing
    - quality
capability:
  exposes:
    - type: mcp
      namespace: nozzle-testing
      port: 8080
      tools:
        - name: get-nozzle-test-results
          description: "Look up fuel nozzle flow test results by nozzle serial number."
          inputParameters:
            - name: nozzle_serial
              in: body
              type: string
              description: "The fuel nozzle serial number."
          call: "test-data.get-nozzle-results"
          with:
            serial: "{{nozzle_serial}}"
          outputParameters:
            - name: flow_rate
              type: string
              mapping: "$.data.flowRateGPH"
            - name: spray_uniformity
              type: string
              mapping: "$.data.sprayUniformityPct"
            - name: pass_fail
              type: string
              mapping: "$.data.result"
  consumes:
    - type: http
      namespace: test-data
      baseUri: "https://testdata.pw.utc.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.test_data_token"
      resources:
        - name: nozzle-tests
          path: "/nozzle-flow-tests/{{serial}}"
          inputParameters:
            - name: serial
              in: path
          operations:
            - name: get-nozzle-results
              method: GET

Retrieves gearbox inspection status data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Gearbox Inspection Status"
  description: "Retrieves gearbox inspection status data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - gearbox
    - pratt-and-whitney
    - status
capability:
  exposes:
    - type: mcp
      namespace: gearbox
      port: 8080
      tools:
        - name: gearbox-inspection-status
          description: "Retrieves gearbox inspection status data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.gearbox-inspection-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/gearbox/inspection/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: gearbox-inspection-status
              method: GET

Generates a hazardous material shipping label for engine chemicals and fluids from the SAP EHS system, returning the proper shipping name, UN number, hazard class, and packing group.

naftiko: "0.5"
info:
  label: "Hazardous Material Shipping Label"
  description: "Generates a hazardous material shipping label for engine chemicals and fluids from the SAP EHS system, returning the proper shipping name, UN number, hazard class, and packing group."
  tags:
    - logistics
    - compliance
    - sap
capability:
  exposes:
    - type: mcp
      namespace: hazmat
      port: 8080
      tools:
        - name: get-hazmat-label
          description: "Generate a hazardous material shipping label from SAP EHS."
          inputParameters:
            - name: material_number
              in: body
              type: string
              description: "The SAP material number."
          call: "sap-ehs.get-hazmat-info"
          with:
            material: "{{material_number}}"
          outputParameters:
            - name: proper_shipping_name
              type: string
              mapping: "$.data.properShippingName"
            - name: un_number
              type: string
              mapping: "$.data.unNumber"
            - name: hazard_class
              type: string
              mapping: "$.data.hazardClass"
            - name: packing_group
              type: string
              mapping: "$.data.packingGroup"
  consumes:
    - type: http
      namespace: sap-ehs
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/EHS_SUBSTANCE_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: substances
          path: "/A_Substance('{{material}}')/to_HazmatInfo"
          inputParameters:
            - name: material
              in: path
          operations:
            - name: get-hazmat-info
              method: GET

When parts arrive from a supplier, creates a receiving inspection in Solumina, updates the goods receipt in SAP, and if the inspection fails, triggers a supplier notification through SAP Ariba and creates a quality hold in ServiceNow.

naftiko: "0.5"
info:
  label: "Incoming Goods Inspection Orchestrator"
  description: "When parts arrive from a supplier, creates a receiving inspection in Solumina, updates the goods receipt in SAP, and if the inspection fails, triggers a supplier notification through SAP Ariba and creates a quality hold in ServiceNow."
  tags:
    - quality
    - procurement
    - solumina
    - sap
    - sap-ariba
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: receiving-inspection
      port: 8080
      tools:
        - name: inspect-incoming-goods
          description: "Given a PO number and part details, perform receiving inspection, update SAP, and handle failures."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The purchase order number."
            - name: part_number
              in: body
              type: string
              description: "The part number received."
            - name: quantity
              in: body
              type: string
              description: "Quantity received."
            - name: supplier_id
              in: body
              type: string
              description: "The supplier identifier."
          steps:
            - name: create-inspection
              type: call
              call: "solumina.create-receiving-inspection"
              with:
                po_number: "{{po_number}}"
                part_number: "{{part_number}}"
                quantity: "{{quantity}}"
            - name: update-gr
              type: call
              call: "sap.post-goods-receipt"
              with:
                po_number: "{{po_number}}"
                material: "{{part_number}}"
                quantity: "{{quantity}}"
                inspection_status: "{{create-inspection.result}}"
            - name: notify-supplier
              type: call
              call: "ariba.send-supplier-notice"
              with:
                supplier_id: "{{supplier_id}}"
                subject: "Receiving inspection: PO {{po_number}} - {{part_number}}"
                message: "Inspection result: {{create-inspection.result}}. Qty: {{quantity}}."
            - name: create-hold
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Quality hold: {{part_number}} from PO {{po_number}}"
                description: "Inspection: {{create-inspection.result}}. Defects: {{create-inspection.defect_count}}."
                assignment_group: "Quality_Engineering"
  consumes:
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: inspections
          path: "/receiving-inspections"
          operations:
            - name: create-receiving-inspection
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/MM_GOODS_RECEIPT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: goods-receipts
          path: "/A_GoodsReceipt"
          operations:
            - name: post-goods-receipt
              method: POST
    - type: http
      namespace: ariba
      baseUri: "https://openapi.ariba.com/api/supplier-management/v1"
      authentication:
        type: bearer
        token: "$secrets.ariba_token"
      resources:
        - name: notices
          path: "/suppliers/{{supplier_id}}/notices"
          inputParameters:
            - name: supplier_id
              in: path
          operations:
            - name: send-supplier-notice
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/sc_task"
          operations:
            - name: create-task
              method: POST

Tracks continuous improvement lean events by creating a project in Asana, logging baseline metrics from Solumina, and scheduling the kaizen event with the team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Lean Event Tracking Orchestrator"
  description: "Tracks continuous improvement lean events by creating a project in Asana, logging baseline metrics from Solumina, and scheduling the kaizen event with the team in Microsoft Teams."
  tags:
    - manufacturing
    - lean
    - asana
    - solumina
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: lean-events
      port: 8080
      tools:
        - name: create-lean-event
          description: "Given an improvement area and team, create project, capture baseline, and schedule the event."
          inputParameters:
            - name: event_name
              in: body
              type: string
              description: "Name of the lean event."
            - name: work_center
              in: body
              type: string
              description: "Target work center for improvement."
            - name: target_metric
              in: body
              type: string
              description: "Metric to improve (cycle_time, scrap_rate, oee)."
          steps:
            - name: create-project
              type: call
              call: "asana.create-project"
              with:
                name: "Lean: {{event_name}}"
                template: "kaizen_event_template"
            - name: get-baseline
              type: call
              call: "solumina.get-metrics"
              with:
                work_center: "{{work_center}}"
                metric: "{{target_metric}}"
            - name: schedule-event
              type: call
              call: "msteams.create-meeting"
              with:
                subject: "Kaizen: {{event_name}}"
                body: "Target: {{target_metric}} at {{work_center}}. Current baseline: {{get-baseline.current_value}}."
  consumes:
    - type: http
      namespace: asana
      baseUri: "https://app.asana.com/api/1.0"
      authentication:
        type: bearer
        token: "$secrets.asana_token"
      resources:
        - name: projects
          path: "/projects"
          operations:
            - name: create-project
              method: POST
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: metrics
          path: "/work-centers/{{work_center}}/metrics"
          inputParameters:
            - name: work_center
              in: path
            - name: metric
              in: query
          operations:
            - name: get-metrics
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: meetings
          path: "/me/events"
          operations:
            - name: create-meeting
              method: POST

Retrieves maintenance interval check data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Maintenance Interval Check"
  description: "Retrieves maintenance interval check data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - maintenance
    - pratt-and-whitney
    - check
capability:
  exposes:
    - type: mcp
      namespace: maintenance
      port: 8080
      tools:
        - name: maintenance-interval-check
          description: "Retrieves maintenance interval check data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.maintenance-interval-check"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/maintenance/interval/check/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: maintenance-interval-check
              method: GET

Orchestrates manufacturing cell oee tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Manufacturing Cell Oee Tracker"
  description: "Orchestrates manufacturing cell oee tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - manufacturing
    - pratt-and-whitney
    - teams
    - confluence
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: manufacturing
      port: 8080
      tools:
        - name: manufacturing-cell-oee-tracker
          description: "Orchestrates manufacturing cell oee tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://prattwhitney.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-3
              method: POST

Orchestrates manufacturing yield improvement pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Manufacturing Yield Improvement Pipeline"
  description: "Orchestrates manufacturing yield improvement pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - manufacturing
    - pratt-and-whitney
    - sap
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: manufacturing
      port: 8080
      tools:
        - name: manufacturing-yield-improvement-pipeline
          description: "Orchestrates manufacturing yield improvement pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-3
              method: POST

When a batch of raw material arrives, verifies the material certification against specs in Windchill, records the receiving inspection in Solumina, and updates SAP goods receipt, then notifies quality in Slack.

naftiko: "0.5"
info:
  label: "Material Certification Verification Orchestrator"
  description: "When a batch of raw material arrives, verifies the material certification against specs in Windchill, records the receiving inspection in Solumina, and updates SAP goods receipt, then notifies quality in Slack."
  tags:
    - quality
    - procurement
    - windchill
    - solumina
    - sap
    - slack
capability:
  exposes:
    - type: mcp
      namespace: material-receiving
      port: 8080
      tools:
        - name: verify-material-cert
          description: "Given a PO number and material batch, verify cert against spec, record inspection, post goods receipt, and notify quality."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The purchase order number."
            - name: material_number
              in: body
              type: string
              description: "The material/part number."
            - name: batch_number
              in: body
              type: string
              description: "The supplier batch/lot number."
            - name: cert_values
              in: body
              type: string
              description: "JSON of material certification test values."
          steps:
            - name: get-spec
              type: call
              call: "windchill.get-material-spec"
              with:
                material_number: "{{material_number}}"
            - name: record-inspection
              type: call
              call: "solumina.create-receiving-inspection"
              with:
                material: "{{material_number}}"
                batch: "{{batch_number}}"
                spec_id: "{{get-spec.spec_id}}"
                measured_values: "{{cert_values}}"
            - name: post-goods-receipt
              type: call
              call: "sap.post-goods-receipt"
              with:
                po_number: "{{po_number}}"
                material: "{{material_number}}"
                batch: "{{batch_number}}"
                inspection_result: "{{record-inspection.result}}"
            - name: notify-quality
              type: call
              call: "slack.post-message"
              with:
                channel: "#material-receiving"
                text: "Material {{material_number}} batch {{batch_number}} received. Inspection: {{record-inspection.result}}. GR: {{post-goods-receipt.document_number}}."
  consumes:
    - type: http
      namespace: windchill
      baseUri: "https://plm.pw.utc.com/Windchill/servlet/odata/v8"
      authentication:
        type: bearer
        token: "$secrets.windchill_token"
      resources:
        - name: specs
          path: "/MaterialSpecs"
          inputParameters:
            - name: material_number
              in: query
          operations:
            - name: get-material-spec
              method: GET
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: inspections
          path: "/receiving-inspections"
          operations:
            - name: create-receiving-inspection
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/MM_GOODS_RECEIPT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: goods-receipts
          path: "/A_GoodsReceipt"
          operations:
            - name: post-goods-receipt
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Retrieves material hardness test results data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Material Hardness Test Results"
  description: "Retrieves material hardness test results data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - material
    - pratt-and-whitney
    - results
capability:
  exposes:
    - type: mcp
      namespace: material
      port: 8080
      tools:
        - name: material-hardness-test-results
          description: "Retrieves material hardness test results data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.material-hardness-test-results"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/material/hardness/test/results/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: material-hardness-test-results
              method: GET

Orchestrates metrology calibration schedule pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Metrology Calibration Schedule Pipeline"
  description: "Orchestrates metrology calibration schedule pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - metrology
    - pratt-and-whitney
    - sharepoint
    - datadog
    - pratt-whitney
capability:
  exposes:
    - type: mcp
      namespace: metrology
      port: 8080
      tools:
        - name: metrology-calibration-schedule-pipeline
          description: "Orchestrates metrology calibration schedule pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sharepoint.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "pratt-whitney.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/metrology"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/metrology"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: pratt-whitney-resource
          path: "/api/metrology"
          operations:
            - name: execute-3
              method: POST

Generates a maintenance quote for an airline customer by pulling engine history from SAP, estimating workscope costs from the pricing engine, and creating the quote document in Salesforce CPQ.

naftiko: "0.5"
info:
  label: "MRO Customer Quote Generation Orchestrator"
  description: "Generates a maintenance quote for an airline customer by pulling engine history from SAP, estimating workscope costs from the pricing engine, and creating the quote document in Salesforce CPQ."
  tags:
    - engine-mro
    - sales
    - sap
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: mro-quoting
      port: 8080
      tools:
        - name: generate-mro-quote
          description: "Given an engine serial and customer account, pull engine data, estimate costs, and create a Salesforce CPQ quote."
          inputParameters:
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
            - name: customer_account_id
              in: body
              type: string
              description: "The Salesforce account ID for the airline customer."
            - name: workscope
              in: body
              type: string
              description: "Requested workscope type."
          steps:
            - name: get-engine
              type: call
              call: "sap.get-equipment"
              with:
                equipment_number: "{{engine_serial}}"
            - name: estimate-cost
              type: call
              call: "pricing-engine.estimate-workscope"
              with:
                engine_model: "{{get-engine.EquipmentName}}"
                flight_hours: "{{get-engine.TotalFlightHours}}"
                cycles: "{{get-engine.TotalCycles}}"
                workscope: "{{workscope}}"
            - name: create-quote
              type: call
              call: "salesforce.create-quote"
              with:
                account_id: "{{customer_account_id}}"
                engine_serial: "{{engine_serial}}"
                workscope: "{{workscope}}"
                estimated_cost: "{{estimate-cost.total_cost}}"
                turnaround_days: "{{estimate-cost.estimated_tat}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PM_EQUIPMENT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: equipment
          path: "/A_Equipment('{{equipment_number}}')"
          inputParameters:
            - name: equipment_number
              in: path
          operations:
            - name: get-equipment
              method: GET
    - type: http
      namespace: pricing-engine
      baseUri: "https://api.pw.utc.com/internal/pricing/v1"
      authentication:
        type: bearer
        token: "$secrets.pricing_engine_token"
      resources:
        - name: estimates
          path: "/workscope-estimates"
          operations:
            - name: estimate-workscope
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prattwhitney.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: quotes
          path: "/sobjects/SBQQ__Quote__c"
          operations:
            - name: create-quote
              method: POST

On new hire creation in SuccessFactors, opens a ServiceNow onboarding ticket, provisions a SharePoint folder for documentation, enrolls required safety certifications, and sends a Microsoft Teams welcome message.

naftiko: "0.5"
info:
  label: "New Employee Onboarding Orchestrator"
  description: "On new hire creation in SuccessFactors, opens a ServiceNow onboarding ticket, provisions a SharePoint folder for documentation, enrolls required safety certifications, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - successfactors
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a SuccessFactors user ID and start date, orchestrate the full onboarding sequence."
          inputParameters:
            - name: user_id
              in: body
              type: string
              description: "The SuccessFactors user ID."
            - name: start_date
              in: body
              type: string
              description: "Employee start date in YYYY-MM-DD format."
            - name: department
              in: body
              type: string
              description: "The department or program the new hire is joining."
          steps:
            - name: get-employee
              type: call
              call: "successfactors.get-user"
              with:
                user_id: "{{user_id}}"
            - name: open-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "New hire onboarding: {{get-employee.displayName}}"
                category: "hr_onboarding"
                assigned_group: "IT_Onboarding"
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding_site"
                folder_path: "OnboardingDocs/{{get-employee.displayName}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.email}}"
                text: "Welcome to Pratt & Whitney, {{get-employee.firstName}}! Your onboarding ticket is {{open-ticket.number}}. Docs folder: {{provision-folder.url}}."
  consumes:
    - type: http
      namespace: successfactors
      baseUri: "https://api15.sapsf.com/odata/v2"
      authentication:
        type: bearer
        token: "$secrets.successfactors_token"
      resources:
        - name: users
          path: "/User('{{user_id}}')"
          inputParameters:
            - name: user_id
              in: path
          operations:
            - name: get-user
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.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

Looks up part availability in the SAP Materials Management module, returning on-hand quantity, warehouse location, and next expected replenishment date.

naftiko: "0.5"
info:
  label: "Part Number Availability Check"
  description: "Looks up part availability in the SAP Materials Management module, returning on-hand quantity, warehouse location, and next expected replenishment date."
  tags:
    - manufacturing
    - parts
    - sap
    - inventory
capability:
  exposes:
    - type: mcp
      namespace: parts-inventory
      port: 8080
      tools:
        - name: check-part-availability
          description: "Check inventory levels for a part number across SAP warehouses."
          inputParameters:
            - name: part_number
              in: body
              type: string
              description: "The part number to check."
            - name: plant
              in: body
              type: string
              description: "The SAP plant code."
          call: "sap.get-material-stock"
          with:
            material: "{{part_number}}"
            plant: "{{plant}}"
          outputParameters:
            - name: on_hand_qty
              type: string
              mapping: "$.d.AvailableQuantity"
            - name: storage_location
              type: string
              mapping: "$.d.StorageLocation"
            - name: next_replenishment
              type: string
              mapping: "$.d.NextDeliveryDate"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/MM_MATERIAL_STOCK_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      inputParameters:
        - name: Accept
          in: header
          value: "application/json"
      resources:
        - name: stock
          path: "/A_MaterialStock(Material='{{material}}',Plant='{{plant}}')"
          inputParameters:
            - name: material
              in: path
            - name: plant
              in: path
          operations:
            - name: get-material-stock
              method: GET

Orchestrates parts traceability audit pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Parts Traceability Audit Pipeline"
  description: "Orchestrates parts traceability audit pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - parts
    - pratt-and-whitney
    - sap
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: parts
      port: 8080
      tools:
        - name: parts-traceability-audit-pipeline
          description: "Orchestrates parts traceability audit pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/parts"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/parts"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/parts"
          operations:
            - name: execute-3
              method: POST

When EngineWise detects an anomalous trend, creates an alert in ServiceNow, pulls the engine maintenance history from SAP, and notifies the fleet management team and airline customer via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Predictive Maintenance Alert Orchestrator"
  description: "When EngineWise detects an anomalous trend, creates an alert in ServiceNow, pulls the engine maintenance history from SAP, and notifies the fleet management team and airline customer via Microsoft Teams."
  tags:
    - engine-mro
    - analytics
    - enginewise
    - servicenow
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: predictive-maintenance
      port: 8080
      tools:
        - name: process-predictive-alert
          description: "Given an EngineWise alert ID, create ServiceNow ticket, pull engine history, and notify relevant teams."
          inputParameters:
            - name: alert_id
              in: body
              type: string
              description: "The EngineWise alert identifier."
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
          steps:
            - name: get-alert-details
              type: call
              call: "enginewise.get-alert"
              with:
                alert_id: "{{alert_id}}"
            - name: get-maintenance-history
              type: call
              call: "sap.get-maintenance-history"
              with:
                equipment: "{{engine_serial}}"
            - name: create-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Predictive alert: {{get-alert-details.alert_type}} on ESN {{engine_serial}}"
                description: "Alert: {{get-alert-details.description}}. Last shop visit: {{get-maintenance-history.last_shop_visit}}. Recommended action: {{get-alert-details.recommended_action}}"
                priority: "{{get-alert-details.severity}}"
            - name: notify-teams
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "fleet-management"
                text: "Predictive alert on ESN {{engine_serial}}: {{get-alert-details.alert_type}}. Severity: {{get-alert-details.severity}}. Ticket: {{create-ticket.number}}."
  consumes:
    - type: http
      namespace: enginewise
      baseUri: "https://enginewise.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.enginewise_token"
      resources:
        - name: alerts
          path: "/alerts/{{alert_id}}"
          inputParameters:
            - name: alert_id
              in: path
          operations:
            - name: get-alert
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PM_EQUIPMENT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: maintenance-history
          path: "/A_Equipment('{{equipment}}')/to_MaintenanceHistory"
          inputParameters:
            - name: equipment
              in: path
          operations:
            - name: get-maintenance-history
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates predictive part replacement scheduler across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Predictive Part Replacement Scheduler"
  description: "Orchestrates predictive part replacement scheduler across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - predictive
    - pratt-and-whitney
    - servicenow
    - sap
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: predictive
      port: 8080
      tools:
        - name: predictive-part-replacement-scheduler
          description: "Orchestrates predictive part replacement scheduler across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/predictive"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/predictive"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/predictive"
          operations:
            - name: execute-3
              method: POST

Queries the manufacturing production schedule from SAP PP for a given production line and date range, returning planned orders, quantities, and start/finish times.

naftiko: "0.5"
info:
  label: "Production Schedule Lookup"
  description: "Queries the manufacturing production schedule from SAP PP for a given production line and date range, returning planned orders, quantities, and start/finish times."
  tags:
    - manufacturing
    - scheduling
    - sap
capability:
  exposes:
    - type: mcp
      namespace: production
      port: 8080
      tools:
        - name: get-production-schedule
          description: "Retrieve the production schedule for a manufacturing line from SAP Production Planning."
          inputParameters:
            - name: work_center
              in: body
              type: string
              description: "The SAP work center code."
            - name: start_date
              in: body
              type: string
              description: "Schedule start date in YYYY-MM-DD format."
            - name: end_date
              in: body
              type: string
              description: "Schedule end date in YYYY-MM-DD format."
          call: "sap.get-planned-orders"
          with:
            work_center: "{{work_center}}"
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
          outputParameters:
            - name: planned_orders
              type: string
              mapping: "$.d.results"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PP_PLANNED_ORDER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: planned-orders
          path: "/A_PlannedOrder"
          inputParameters:
            - name: work_center
              in: query
            - name: start_date
              in: query
            - name: end_date
              in: query
          operations:
            - name: get-planned-orders
              method: GET

Creates a purchase order in SAP S/4HANA for procurement of engine parts, specifying vendor, material, quantity, and delivery date.

naftiko: "0.5"
info:
  label: "Purchase Order Creation"
  description: "Creates a purchase order in SAP S/4HANA for procurement of engine parts, specifying vendor, material, quantity, and delivery date."
  tags:
    - procurement
    - sap
    - manufacturing
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: create-purchase-order
          description: "Create a SAP purchase order for engine parts procurement."
          inputParameters:
            - name: vendor_id
              in: body
              type: string
              description: "The SAP vendor account number."
            - name: material
              in: body
              type: string
              description: "The material/part number."
            - name: quantity
              in: body
              type: string
              description: "Order quantity."
            - name: delivery_date
              in: body
              type: string
              description: "Required delivery date in YYYY-MM-DD format."
            - name: plant
              in: body
              type: string
              description: "The receiving plant code."
          call: "sap.create-po"
          with:
            vendor: "{{vendor_id}}"
            material: "{{material}}"
            quantity: "{{quantity}}"
            delivery_date: "{{delivery_date}}"
            plant: "{{plant}}"
          outputParameters:
            - name: po_number
              type: string
              mapping: "$.d.PurchaseOrder"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder"
          operations:
            - name: create-po
              method: POST

Orchestrates quality escape root cause analyzer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Quality Escape Root Cause Analyzer"
  description: "Orchestrates quality escape root cause analyzer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - quality
    - pratt-and-whitney
    - jira
    - teams
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: quality
      port: 8080
      tools:
        - name: quality-escape-root-cause-analyzer
          description: "Orchestrates quality escape root cause analyzer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://prattwhitney.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/quality"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/quality"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://prattwhitney.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/quality"
          operations:
            - name: execute-3
              method: POST

Creates a quality nonconformance record in the Solumina MES system, documenting a defect found during engine inspection including part number, defect type, and disposition.

naftiko: "0.5"
info:
  label: "Quality Nonconformance Report Submission"
  description: "Creates a quality nonconformance record in the Solumina MES system, documenting a defect found during engine inspection including part number, defect type, and disposition."
  tags:
    - quality
    - manufacturing
    - solumina
capability:
  exposes:
    - type: mcp
      namespace: quality
      port: 8080
      tools:
        - name: create-nonconformance
          description: "Submit a quality nonconformance report in Solumina MES."
          inputParameters:
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
            - name: part_number
              in: body
              type: string
              description: "The affected part number."
            - name: defect_type
              in: body
              type: string
              description: "Type of defect (crack, wear, corrosion, erosion, foreign_object_damage)."
            - name: description
              in: body
              type: string
              description: "Detailed description of the nonconformance."
          call: "solumina.create-ncr"
          with:
            serial_number: "{{engine_serial}}"
            part_number: "{{part_number}}"
            defect_type: "{{defect_type}}"
            description: "{{description}}"
          outputParameters:
            - name: ncr_number
              type: string
              mapping: "$.data.ncr_id"
            - name: status
              type: string
              mapping: "$.data.status"
  consumes:
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: nonconformances
          path: "/nonconformances"
          operations:
            - name: create-ncr
              method: POST

Orchestrates regulatory ad compliance tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Regulatory Ad Compliance Tracker"
  description: "Orchestrates regulatory ad compliance tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - regulatory
    - pratt-and-whitney
    - confluence
    - sharepoint
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: regulatory
      port: 8080
      tools:
        - name: regulatory-ad-compliance-tracker
          description: "Orchestrates regulatory ad compliance tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sharepoint.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://prattwhitney.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/regulatory"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/regulatory"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/regulatory"
          operations:
            - name: execute-3
              method: POST

When a safety incident occurs on the manufacturing floor, creates an incident record in ServiceNow, notifies EHS management in Microsoft Teams, opens an OSHA tracking record in the compliance system, and schedules a root cause investigation.

naftiko: "0.5"
info:
  label: "Safety Incident Reporting Orchestrator"
  description: "When a safety incident occurs on the manufacturing floor, creates an incident record in ServiceNow, notifies EHS management in Microsoft Teams, opens an OSHA tracking record in the compliance system, and schedules a root cause investigation."
  tags:
    - safety
    - compliance
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: safety
      port: 8080
      tools:
        - name: report-safety-incident
          description: "Given incident details, create records in ServiceNow, notify EHS, log in OSHA tracker, and schedule investigation."
          inputParameters:
            - name: location
              in: body
              type: string
              description: "Building and area where the incident occurred."
            - name: incident_type
              in: body
              type: string
              description: "Type (near_miss, first_aid, recordable, lost_time)."
            - name: description
              in: body
              type: string
              description: "Detailed description of the incident."
            - name: employee_id
              in: body
              type: string
              description: "Involved employee's personnel number."
          steps:
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                category: "safety"
                subcategory: "{{incident_type}}"
                short_description: "Safety incident: {{incident_type}} at {{location}}"
                description: "{{description}}"
                affected_employee: "{{employee_id}}"
            - name: notify-ehs
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "ehs-alerts"
                text: "SAFETY ALERT: {{incident_type}} at {{location}}. Ticket: {{create-incident.number}}. Details: {{description}}"
            - name: log-osha
              type: call
              call: "compliance-system.create-osha-record"
              with:
                incident_number: "{{create-incident.number}}"
                type: "{{incident_type}}"
                location: "{{location}}"
            - name: schedule-rca
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Root cause analysis for {{create-incident.number}}"
                parent: "{{create-incident.sys_id}}"
                assignment_group: "EHS_Investigations"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.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
        - name: tasks
          path: "/table/sc_task"
          operations:
            - name: create-task
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST
    - type: http
      namespace: compliance-system
      baseUri: "https://compliance.pw.utc.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.compliance_token"
      resources:
        - name: osha-records
          path: "/osha-log"
          operations:
            - name: create-osha-record
              method: POST

Retrieves a service bulletin from the Windchill PLM system, returning bulletin number, affected engine models, compliance category, and required action description.

naftiko: "0.5"
info:
  label: "Service Bulletin Lookup"
  description: "Retrieves a service bulletin from the Windchill PLM system, returning bulletin number, affected engine models, compliance category, and required action description."
  tags:
    - engine-mro
    - engineering
    - windchill
capability:
  exposes:
    - type: mcp
      namespace: service-bulletins
      port: 8080
      tools:
        - name: get-service-bulletin
          description: "Look up a service bulletin by bulletin number from Windchill PLM."
          inputParameters:
            - name: bulletin_number
              in: body
              type: string
              description: "The service bulletin number."
          call: "windchill.get-service-bulletin"
          with:
            sb_number: "{{bulletin_number}}"
          outputParameters:
            - name: affected_models
              type: string
              mapping: "$.affectedModels"
            - name: compliance_category
              type: string
              mapping: "$.complianceCategory"
            - name: required_action
              type: string
              mapping: "$.requiredAction"
  consumes:
    - type: http
      namespace: windchill
      baseUri: "https://plm.pw.utc.com/Windchill/servlet/odata/v8"
      authentication:
        type: bearer
        token: "$secrets.windchill_token"
      resources:
        - name: bulletins
          path: "/ServiceBulletins('{{sb_number}}')"
          inputParameters:
            - name: sb_number
              in: path
          operations:
            - name: get-service-bulletin
              method: GET

Creates an IT support incident in ServiceNow for manufacturing floor systems including MES terminals, test cell computers, and network issues.

naftiko: "0.5"
info:
  label: "ServiceNow IT Incident Creation"
  description: "Creates an IT support incident in ServiceNow for manufacturing floor systems including MES terminals, test cell computers, and network issues."
  tags:
    - it-support
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: it-support
      port: 8080
      tools:
        - name: create-it-incident
          description: "Submit an IT incident to ServiceNow for manufacturing floor systems."
          inputParameters:
            - name: category
              in: body
              type: string
              description: "IT category (mes_terminal, test_cell_computer, network, erp_access)."
            - name: location
              in: body
              type: string
              description: "Building and floor location."
            - name: description
              in: body
              type: string
              description: "Description of the IT issue."
            - name: priority
              in: body
              type: string
              description: "Priority (low, medium, high, critical)."
          call: "servicenow.create-incident"
          with:
            category: "{{category}}"
            location: "{{location}}"
            short_description: "Manufacturing IT: {{category}} at {{location}}"
            description: "{{description}}"
            priority: "{{priority}}"
          outputParameters:
            - name: incident_number
              type: string
              mapping: "$.result.number"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.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

Records a technician's time entry against a work order in SAP, documenting hours worked, operation number, and activity type.

naftiko: "0.5"
info:
  label: "Shop Floor Time Tracking"
  description: "Records a technician's time entry against a work order in SAP, documenting hours worked, operation number, and activity type."
  tags:
    - manufacturing
    - time-tracking
    - sap
capability:
  exposes:
    - type: mcp
      namespace: time-tracking
      port: 8080
      tools:
        - name: record-time-entry
          description: "Submit a time confirmation for a manufacturing work order in SAP."
          inputParameters:
            - name: work_order
              in: body
              type: string
              description: "The SAP maintenance order number."
            - name: operation
              in: body
              type: string
              description: "The operation number within the order."
            - name: hours
              in: body
              type: string
              description: "Hours worked."
            - name: employee_id
              in: body
              type: string
              description: "The employee personnel number."
          call: "sap.create-time-confirmation"
          with:
            order: "{{work_order}}"
            operation: "{{operation}}"
            actual_hours: "{{hours}}"
            personnel_number: "{{employee_id}}"
          outputParameters:
            - name: confirmation_number
              type: string
              mapping: "$.d.ConfirmationNumber"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PM_CONFIRMATION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: confirmations
          path: "/A_MaintOrderConfirmation"
          operations:
            - name: create-time-confirmation
              method: POST

Retrieves spare engine availability check data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Spare Engine Availability Check"
  description: "Retrieves spare engine availability check data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - spare
    - pratt-and-whitney
    - check
capability:
  exposes:
    - type: mcp
      namespace: spare
      port: 8080
      tools:
        - name: spare-engine-availability-check
          description: "Retrieves spare engine availability check data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.spare-engine-availability-check"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/spare/engine/availability/check/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: spare-engine-availability-check
              method: GET

When a technician requests a spare part, checks SAP inventory, creates a reservation if available, or generates a purchase requisition if not, and notifies the technician via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Spare Part Requisition Orchestrator"
  description: "When a technician requests a spare part, checks SAP inventory, creates a reservation if available, or generates a purchase requisition if not, and notifies the technician via Microsoft Teams."
  tags:
    - engine-mro
    - parts
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: spare-parts
      port: 8080
      tools:
        - name: request-spare-part
          description: "Given a part number, quantity, and work order, check stock and either reserve or requisition the part."
          inputParameters:
            - name: part_number
              in: body
              type: string
              description: "The spare part number."
            - name: quantity
              in: body
              type: string
              description: "Required quantity."
            - name: work_order
              in: body
              type: string
              description: "The SAP work order number."
            - name: requestor_upn
              in: body
              type: string
              description: "The requestor's Microsoft Teams UPN."
          steps:
            - name: check-stock
              type: call
              call: "sap.get-material-stock"
              with:
                material: "{{part_number}}"
            - name: reserve-or-requisition
              type: call
              call: "sap.create-reservation"
              with:
                material: "{{part_number}}"
                quantity: "{{quantity}}"
                order: "{{work_order}}"
            - name: notify-requestor
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{requestor_upn}}"
                text: "Part {{part_number}} x{{quantity}} for WO {{work_order}}: Stock available={{check-stock.AvailableQuantity}}. Reservation: {{reserve-or-requisition.reservation_number}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/MM_MATERIAL_STOCK_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: stock
          path: "/A_MaterialStock(Material='{{material}}')"
          inputParameters:
            - name: material
              in: path
          operations:
            - name: get-material-stock
              method: GET
        - name: reservations
          path: "/A_Reservation"
          operations:
            - name: create-reservation
              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

Orchestrates spare parts pricing optimization pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Spare Parts Pricing Optimization Pipeline"
  description: "Orchestrates spare parts pricing optimization pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - spare
    - pratt-and-whitney
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: spare
      port: 8080
      tools:
        - name: spare-parts-pricing-optimization-pipeline
          description: "Orchestrates spare parts pricing optimization pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/spare"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/spare"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prattwhitney.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/spare"
          operations:
            - name: execute-3
              method: POST

Orchestrates supplier corrective action tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Supplier Corrective Action Tracker"
  description: "Orchestrates supplier corrective action tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - supplier
    - pratt-and-whitney
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: supplier
      port: 8080
      tools:
        - name: supplier-corrective-action-tracker
          description: "Orchestrates supplier corrective action tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/supplier"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prattwhitney.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/supplier"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/supplier"
          operations:
            - name: execute-3
              method: POST

Orchestrates supplier delivery performance tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Supplier Delivery Performance Tracker"
  description: "Orchestrates supplier delivery performance tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - supplier
    - pratt-and-whitney
    - sap
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: supplier
      port: 8080
      tools:
        - name: supplier-delivery-performance-tracker
          description: "Orchestrates supplier delivery performance tracker across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/supplier"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prattwhitney.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/supplier"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/supplier"
          operations:
            - name: execute-3
              method: POST

Onboards a new supplier by creating the vendor record in SAP, registering them in SAP Ariba, initiating quality qualification in Solumina, and notifying procurement in Slack.

naftiko: "0.5"
info:
  label: "Supplier Onboarding Orchestrator"
  description: "Onboards a new supplier by creating the vendor record in SAP, registering them in SAP Ariba, initiating quality qualification in Solumina, and notifying procurement in Slack."
  tags:
    - procurement
    - sap
    - sap-ariba
    - solumina
    - slack
capability:
  exposes:
    - type: mcp
      namespace: supplier-onboarding
      port: 8080
      tools:
        - name: onboard-supplier
          description: "Given supplier details, create SAP vendor, register in Ariba, initiate qualification, and notify procurement."
          inputParameters:
            - name: company_name
              in: body
              type: string
              description: "Supplier company name."
            - name: contact_email
              in: body
              type: string
              description: "Primary contact email."
            - name: commodity
              in: body
              type: string
              description: "Commodity type the supplier provides."
          steps:
            - name: create-vendor
              type: call
              call: "sap.create-vendor"
              with:
                name: "{{company_name}}"
                email: "{{contact_email}}"
            - name: register-ariba
              type: call
              call: "ariba.register-supplier"
              with:
                vendor_id: "{{create-vendor.vendor_id}}"
                name: "{{company_name}}"
                commodity: "{{commodity}}"
            - name: initiate-qualification
              type: call
              call: "solumina.create-qualification"
              with:
                vendor_id: "{{create-vendor.vendor_id}}"
                commodity: "{{commodity}}"
            - name: notify-procurement
              type: call
              call: "slack.post-message"
              with:
                channel: "#supplier-management"
                text: "New supplier onboarded: {{company_name}} ({{create-vendor.vendor_id}}). Commodity: {{commodity}}. Ariba: {{register-ariba.registration_id}}. Qualification started."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/BP_VENDOR_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: vendors
          path: "/A_Supplier"
          operations:
            - name: create-vendor
              method: POST
    - type: http
      namespace: ariba
      baseUri: "https://openapi.ariba.com/api/supplier-management/v1"
      authentication:
        type: bearer
        token: "$secrets.ariba_token"
      resources:
        - name: registrations
          path: "/suppliers"
          operations:
            - name: register-supplier
              method: POST
    - type: http
      namespace: solumina
      baseUri: "https://solumina.pw.utc.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.solumina_token"
      resources:
        - name: qualifications
          path: "/supplier-qualifications"
          operations:
            - name: create-qualification
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When a supplier acknowledges a purchase order in SAP Ariba, updates the PO status in SAP S/4HANA, records the commitment in the project plan in Microsoft Project, and notifies procurement in Slack.

naftiko: "0.5"
info:
  label: "Supplier PO Acknowledgment Orchestrator"
  description: "When a supplier acknowledges a purchase order in SAP Ariba, updates the PO status in SAP S/4HANA, records the commitment in the project plan in Microsoft Project, and notifies procurement in Slack."
  tags:
    - procurement
    - sap-ariba
    - sap
    - microsoft-project
    - slack
capability:
  exposes:
    - type: mcp
      namespace: procurement-ack
      port: 8080
      tools:
        - name: process-po-acknowledgment
          description: "Given a PO number and supplier acknowledgment, update SAP, record in project plan, and notify procurement."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The purchase order number."
            - name: supplier_id
              in: body
              type: string
              description: "The supplier identifier."
            - name: confirmed_delivery_date
              in: body
              type: string
              description: "Supplier-confirmed delivery date."
          steps:
            - name: update-po-status
              type: call
              call: "sap.update-po-confirmation"
              with:
                po_number: "{{po_number}}"
                confirmed_date: "{{confirmed_delivery_date}}"
            - name: update-project
              type: call
              call: "ms-project.update-task"
              with:
                project_id: "engine_program"
                task_filter: "PO_{{po_number}}"
                delivery_date: "{{confirmed_delivery_date}}"
            - name: notify-procurement
              type: call
              call: "slack.post-message"
              with:
                channel: "#procurement-updates"
                text: "PO {{po_number}} acknowledged by supplier {{supplier_id}}. Confirmed delivery: {{confirmed_delivery_date}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: confirmations
          path: "/A_PurchaseOrder('{{po_number}}')"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: update-po-confirmation
              method: PATCH
    - type: http
      namespace: ms-project
      baseUri: "https://graph.microsoft.com/v1.0/planner"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: tasks
          path: "/plans/{{project_id}}/tasks"
          inputParameters:
            - name: project_id
              in: path
          operations:
            - name: update-task
              method: PATCH
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Retrieves a supplier's quality scorecard from SAP Ariba, returning on-time delivery rate, defect rate, corrective action count, and overall rating.

naftiko: "0.5"
info:
  label: "Supplier Quality Scorecard Lookup"
  description: "Retrieves a supplier's quality scorecard from SAP Ariba, returning on-time delivery rate, defect rate, corrective action count, and overall rating."
  tags:
    - quality
    - procurement
    - sap-ariba
capability:
  exposes:
    - type: mcp
      namespace: supplier-quality
      port: 8080
      tools:
        - name: get-supplier-scorecard
          description: "Look up a supplier quality scorecard from SAP Ariba by supplier ID."
          inputParameters:
            - name: supplier_id
              in: body
              type: string
              description: "The SAP Ariba supplier identifier."
          call: "ariba.get-supplier-scorecard"
          with:
            supplier_id: "{{supplier_id}}"
          outputParameters:
            - name: on_time_delivery
              type: string
              mapping: "$.data.on_time_delivery_rate"
            - name: defect_rate
              type: string
              mapping: "$.data.defect_rate"
            - name: corrective_actions
              type: string
              mapping: "$.data.open_car_count"
            - name: overall_rating
              type: string
              mapping: "$.data.overall_score"
  consumes:
    - type: http
      namespace: ariba
      baseUri: "https://openapi.ariba.com/api/supplier-management/v1"
      authentication:
        type: bearer
        token: "$secrets.ariba_token"
      inputParameters:
        - name: apikey
          in: header
          value: "$secrets.ariba_api_key"
      resources:
        - name: scorecards
          path: "/suppliers/{{supplier_id}}/scorecard"
          inputParameters:
            - name: supplier_id
              in: path
          operations:
            - name: get-supplier-scorecard
              method: GET

Orchestrates supply chain risk mitigation pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Supply Chain Risk Mitigation Pipeline"
  description: "Orchestrates supply chain risk mitigation pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - supply
    - pratt-and-whitney
    - datadog
    - pratt-whitney
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: supply
      port: 8080
      tools:
        - name: supply-chain-risk-mitigation-pipeline
          description: "Orchestrates supply chain risk mitigation pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "pratt-whitney.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/supply"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: pratt-whitney-resource
          path: "/api/supply"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/supply"
          operations:
            - name: execute-3
              method: POST

Orchestrates sustainability emissions tracking pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Sustainability Emissions Tracking Pipeline"
  description: "Orchestrates sustainability emissions tracking pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - sustainability
    - pratt-and-whitney
    - sharepoint
    - datadog
    - pratt-whitney
capability:
  exposes:
    - type: mcp
      namespace: sustainability
      port: 8080
      tools:
        - name: sustainability-emissions-tracking-pipeline
          description: "Orchestrates sustainability emissions tracking pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sharepoint.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "pratt-whitney.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/sustainability"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/sustainability"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: pratt-whitney-resource
          path: "/api/sustainability"
          operations:
            - name: execute-3
              method: POST

Orchestrates test cell data analytics pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Test Cell Data Analytics Pipeline"
  description: "Orchestrates test cell data analytics pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - test
    - pratt-and-whitney
    - pratt-whitney
    - servicenow
    - sap
capability:
  exposes:
    - type: mcp
      namespace: test
      port: 8080
      tools:
        - name: test-cell-data-analytics-pipeline
          description: "Orchestrates test cell data analytics pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "pratt-whitney.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: pratt-whitney-resource
          path: "/api/test"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/test"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/test"
          operations:
            - name: execute-3
              method: POST

Checks the calibration status of a manufacturing tool or measurement instrument from the Maximo asset management system, returning calibration date, next due date, and compliance status.

naftiko: "0.5"
info:
  label: "Tool Calibration Status Lookup"
  description: "Checks the calibration status of a manufacturing tool or measurement instrument from the Maximo asset management system, returning calibration date, next due date, and compliance status."
  tags:
    - manufacturing
    - quality
    - maximo
capability:
  exposes:
    - type: mcp
      namespace: tooling
      port: 8080
      tools:
        - name: get-calibration-status
          description: "Look up calibration status for a tool or instrument from IBM Maximo."
          inputParameters:
            - name: tool_id
              in: body
              type: string
              description: "The Maximo asset identifier for the tool."
          call: "maximo.get-asset"
          with:
            asset_id: "{{tool_id}}"
          outputParameters:
            - name: last_calibration
              type: string
              mapping: "$.member[0].lastCalibrationDate"
            - name: next_due_date
              type: string
              mapping: "$.member[0].nextCalibrationDate"
            - name: compliance_status
              type: string
              mapping: "$.member[0].calibrationStatus"
  consumes:
    - type: http
      namespace: maximo
      baseUri: "https://maximo.pw.utc.com/maximo/oslc/os"
      authentication:
        type: bearer
        token: "$secrets.maximo_token"
      resources:
        - name: assets
          path: "/mxasset/{{asset_id}}"
          inputParameters:
            - name: asset_id
              in: path
          operations:
            - name: get-asset
              method: GET

When a new tooling request is submitted, checks current tooling availability in Maximo, creates a purchase requisition in SAP if needed, and assigns the tool to the requesting work center via ServiceNow.

naftiko: "0.5"
info:
  label: "Tooling Requisition Orchestrator"
  description: "When a new tooling request is submitted, checks current tooling availability in Maximo, creates a purchase requisition in SAP if needed, and assigns the tool to the requesting work center via ServiceNow."
  tags:
    - manufacturing
    - tooling
    - maximo
    - sap
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: tooling-mgmt
      port: 8080
      tools:
        - name: requisition-tooling
          description: "Given a tool type, work center, and quantity, check availability, order if needed, and assign."
          inputParameters:
            - name: tool_type
              in: body
              type: string
              description: "The tool or fixture type identifier."
            - name: work_center
              in: body
              type: string
              description: "The requesting work center."
            - name: quantity
              in: body
              type: string
              description: "Quantity needed."
          steps:
            - name: check-availability
              type: call
              call: "maximo.search-assets"
              with:
                asset_type: "{{tool_type}}"
                status: "available"
            - name: create-requisition
              type: call
              call: "sap.create-purchase-requisition"
              with:
                material: "{{tool_type}}"
                quantity: "{{quantity}}"
                requisitioner: "{{work_center}}"
            - name: assign-tool
              type: call
              call: "servicenow.create-request"
              with:
                short_description: "Tooling assignment: {{tool_type}} to {{work_center}}"
                quantity: "{{quantity}}"
                available_count: "{{check-availability.count}}"
                pr_number: "{{create-requisition.pr_number}}"
  consumes:
    - type: http
      namespace: maximo
      baseUri: "https://maximo.pw.utc.com/maximo/oslc/os"
      authentication:
        type: bearer
        token: "$secrets.maximo_token"
      resources:
        - name: assets
          path: "/mxasset"
          inputParameters:
            - name: asset_type
              in: query
            - name: status
              in: query
          operations:
            - name: search-assets
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/MM_PUR_REQUISITION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: requisitions
          path: "/A_PurchaseRequisition"
          operations:
            - name: create-purchase-requisition
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: requests
          path: "/table/sc_request"
          operations:
            - name: create-request
              method: POST

Orchestrates tooling utilization optimizer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Tooling Utilization Optimizer"
  description: "Orchestrates tooling utilization optimizer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - tooling
    - pratt-and-whitney
    - pratt-whitney
    - servicenow
    - sap
capability:
  exposes:
    - type: mcp
      namespace: tooling
      port: 8080
      tools:
        - name: tooling-utilization-optimizer
          description: "Orchestrates tooling utilization optimizer across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "pratt-whitney.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: pratt-whitney-resource
          path: "/api/tooling"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prattwhitney.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/tooling"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://pw-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/tooling"
          operations:
            - name: execute-3
              method: POST

Retrieves coating thickness measurements for turbine blades from the metrology system, returning minimum, maximum, and average thickness readings along with spec compliance status.

naftiko: "0.5"
info:
  label: "Turbine Blade Coating Thickness Measurement"
  description: "Retrieves coating thickness measurements for turbine blades from the metrology system, returning minimum, maximum, and average thickness readings along with spec compliance status."
  tags:
    - manufacturing
    - quality
    - metrology
capability:
  exposes:
    - type: mcp
      namespace: metrology
      port: 8080
      tools:
        - name: get-coating-measurements
          description: "Retrieve turbine blade coating thickness measurements from the metrology system."
          inputParameters:
            - name: serial_number
              in: body
              type: string
              description: "The blade serial number."
          call: "metrology.get-measurements"
          with:
            serial: "{{serial_number}}"
            measurement_type: "coating_thickness"
          outputParameters:
            - name: min_thickness
              type: string
              mapping: "$.data.minThickness"
            - name: max_thickness
              type: string
              mapping: "$.data.maxThickness"
            - name: avg_thickness
              type: string
              mapping: "$.data.avgThickness"
            - name: spec_compliant
              type: string
              mapping: "$.data.inSpec"
  consumes:
    - type: http
      namespace: metrology
      baseUri: "https://metrology.pw.utc.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.metrology_token"
      resources:
        - name: measurements
          path: "/measurements"
          inputParameters:
            - name: serial
              in: query
            - name: measurement_type
              in: query
          operations:
            - name: get-measurements
              method: GET

Retrieves turbine blade inspection record data from the Pratt And Whitney aerospace engine manufacturing systems.

naftiko: "0.5"
info:
  label: "Turbine Blade Inspection Record"
  description: "Retrieves turbine blade inspection record data from the Pratt And Whitney aerospace engine manufacturing systems."
  tags:
    - turbine
    - pratt-and-whitney
    - record
capability:
  exposes:
    - type: mcp
      namespace: turbine
      port: 8080
      tools:
        - name: turbine-blade-inspection-record
          description: "Retrieves turbine blade inspection record data from the Pratt And Whitney aerospace engine manufacturing systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "pratt-whitney.turbine-blade-inspection-record"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: pratt-whitney
      baseUri: "https://api.prattwhitney.com/v2"
      authentication:
        type: bearer
        token: "$secrets.pw_api_token"
      resources:
        - name: resource
          path: "/turbine/blade/inspection/record/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: turbine-blade-inspection-record
              method: GET

Aggregates vendor delivery and quality data from SAP Ariba, pulls cost data from SAP S/4HANA, compiles a quarterly vendor review scorecard, and shares it with the procurement team via Slack.

naftiko: "0.5"
info:
  label: "Vendor Performance Review Orchestrator"
  description: "Aggregates vendor delivery and quality data from SAP Ariba, pulls cost data from SAP S/4HANA, compiles a quarterly vendor review scorecard, and shares it with the procurement team via Slack."
  tags:
    - procurement
    - quality
    - sap-ariba
    - sap
    - slack
capability:
  exposes:
    - type: mcp
      namespace: vendor-management
      port: 8080
      tools:
        - name: generate-vendor-review
          description: "Given a supplier ID and review period, compile quality, delivery, and cost data, then share the scorecard."
          inputParameters:
            - name: supplier_id
              in: body
              type: string
              description: "The supplier identifier."
            - name: review_period
              in: body
              type: string
              description: "Review period in YYYY-Q# format."
          steps:
            - name: get-quality-metrics
              type: call
              call: "ariba.get-supplier-scorecard"
              with:
                supplier_id: "{{supplier_id}}"
            - name: get-spend-data
              type: call
              call: "sap.get-vendor-spend"
              with:
                vendor_id: "{{supplier_id}}"
                period: "{{review_period}}"
            - name: share-scorecard
              type: call
              call: "slack.post-message"
              with:
                channel: "#vendor-reviews"
                text: "Vendor Review ({{review_period}}) - Supplier: {{supplier_id}}\nOTD: {{get-quality-metrics.on_time_delivery_rate}}%\nDefect Rate: {{get-quality-metrics.defect_rate}}%\nTotal Spend: ${{get-spend-data.total_spend}}\nOpen CARs: {{get-quality-metrics.open_car_count}}"
  consumes:
    - type: http
      namespace: ariba
      baseUri: "https://openapi.ariba.com/api/supplier-management/v1"
      authentication:
        type: bearer
        token: "$secrets.ariba_token"
      resources:
        - name: scorecards
          path: "/suppliers/{{supplier_id}}/scorecard"
          inputParameters:
            - name: supplier_id
              in: path
          operations:
            - name: get-supplier-scorecard
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/MM_VENDOR_SPEND_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: spend
          path: "/A_VendorSpend"
          inputParameters:
            - name: vendor_id
              in: query
            - name: period
              in: query
          operations:
            - name: get-vendor-spend
              method: GET
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Creates a warranty claim record in Salesforce for an airline customer, documenting engine serial, failure mode, flight hours at failure, and requested remedy.

naftiko: "0.5"
info:
  label: "Warranty Claim Submission"
  description: "Creates a warranty claim record in Salesforce for an airline customer, documenting engine serial, failure mode, flight hours at failure, and requested remedy."
  tags:
    - engine-mro
    - warranty
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: warranty
      port: 8080
      tools:
        - name: submit-warranty-claim
          description: "Submit a warranty claim for an engine component in Salesforce."
          inputParameters:
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number."
            - name: part_number
              in: body
              type: string
              description: "The failed part number."
            - name: failure_mode
              in: body
              type: string
              description: "Description of the failure mode."
            - name: flight_hours
              in: body
              type: string
              description: "Total flight hours at time of failure."
            - name: customer_account_id
              in: body
              type: string
              description: "The Salesforce account ID for the airline."
          call: "salesforce.create-case"
          with:
            account_id: "{{customer_account_id}}"
            subject: "Warranty claim: ESN {{engine_serial}} - {{part_number}}"
            description: "Failure mode: {{failure_mode}}. Flight hours: {{flight_hours}}."
            type: "Warranty"
          outputParameters:
            - name: case_number
              type: string
              mapping: "$.id"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://prattwhitney.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

Orchestrates warranty cost analysis pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Warranty Cost Analysis Pipeline"
  description: "Orchestrates warranty cost analysis pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
  tags:
    - warranty
    - pratt-and-whitney
    - jira
    - teams
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: warranty
      port: 8080
      tools:
        - name: warranty-cost-analysis-pipeline
          description: "Orchestrates warranty cost analysis pipeline across aerospace engine manufacturing systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://prattwhitney.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/warranty"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/warranty"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://prattwhitney.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/warranty"
          operations:
            - name: execute-3
              method: POST

Retrieves an engineering document from Windchill PLM by document number, returning the document title, revision, lifecycle state, and download URL.

naftiko: "0.5"
info:
  label: "Windchill Document Retrieval"
  description: "Retrieves an engineering document from Windchill PLM by document number, returning the document title, revision, lifecycle state, and download URL."
  tags:
    - engineering
    - windchill
    - documents
capability:
  exposes:
    - type: mcp
      namespace: engineering-docs
      port: 8080
      tools:
        - name: get-engineering-document
          description: "Look up an engineering document in Windchill PLM by document number."
          inputParameters:
            - name: document_number
              in: body
              type: string
              description: "The Windchill document number."
          call: "windchill.get-document"
          with:
            doc_number: "{{document_number}}"
          outputParameters:
            - name: title
              type: string
              mapping: "$.name"
            - name: revision
              type: string
              mapping: "$.revision"
            - name: state
              type: string
              mapping: "$.lifecycleState"
            - name: download_url
              type: string
              mapping: "$.contentUrl"
  consumes:
    - type: http
      namespace: windchill
      baseUri: "https://plm.pw.utc.com/Windchill/servlet/odata/v8"
      authentication:
        type: bearer
        token: "$secrets.windchill_token"
      resources:
        - name: documents
          path: "/Documents('{{doc_number}}')"
          inputParameters:
            - name: doc_number
              in: path
          operations:
            - name: get-document
              method: GET

Queries the status of a maintenance work order from SAP Plant Maintenance, returning order type, status, planned start and finish dates, and assigned work center.

naftiko: "0.5"
info:
  label: "Work Order Status Check"
  description: "Queries the status of a maintenance work order from SAP Plant Maintenance, returning order type, status, planned start and finish dates, and assigned work center."
  tags:
    - engine-mro
    - erp
    - sap
    - maintenance
capability:
  exposes:
    - type: mcp
      namespace: mro-orders
      port: 8080
      tools:
        - name: get-work-order-status
          description: "Retrieve a SAP Plant Maintenance work order by order number."
          inputParameters:
            - name: work_order_number
              in: body
              type: string
              description: "The SAP maintenance order number."
          call: "sap.get-maintenance-order"
          with:
            order_number: "{{work_order_number}}"
          outputParameters:
            - name: order_type
              type: string
              mapping: "$.d.OrderType"
            - name: status
              type: string
              mapping: "$.d.SystemStatus"
            - name: planned_start
              type: string
              mapping: "$.d.PlannedStartDate"
            - name: planned_finish
              type: string
              mapping: "$.d.PlannedFinishDate"
            - name: work_center
              type: string
              mapping: "$.d.WorkCenter"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://pw-s4.sap.com/sap/opu/odata/sap/PM_ORDER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      inputParameters:
        - name: Accept
          in: header
          value: "application/json"
      resources:
        - name: orders
          path: "/A_MaintenanceOrder('{{order_number}}')"
          inputParameters:
            - name: order_number
              in: path
          operations:
            - name: get-maintenance-order
              method: GET