Pratt & Whitney Capabilities
Naftiko 0.5 capability definitions for Pratt & Whitney - 100 capabilities showing integration workflows and service orchestrations.
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