GE Aerospace Capabilities
Naftiko 0.5 capability definitions for GE Aerospace - 100 capabilities showing integration workflows and service orchestrations.
Reviews access at GE Aerospace via Okta, IAM, and Jira.
naftiko: "0.5"
info:
label: "Access Review Pipeline"
description: "Reviews access at GE Aerospace via Okta, IAM, and Jira."
tags:
- security
- access-management
- okta
- compliance
capability:
exposes:
- type: mcp
namespace: access-rev
port: 8080
tools:
- name: review
description: "Review access at GE Aerospace."
inputParameters:
- name: dept
in: body
type: string
description: "Department."
steps:
- name: ent
type: call
call: "okta.get-users"
with:
dept: "{{dept}}"
- name: compare
type: call
call: "iam.compare"
with:
data: "{{ent.data}}"
- name: flag
type: call
call: "iam.flag"
with:
violations: "{{compare.violations}}"
- name: fix
type: call
call: "jira.create-issue"
with:
project: "IAM"
summary: "Violations in {{dept}}"
consumes:
- type: http
namespace: okta
baseUri: "https://geaerospace.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users"
operations:
- name: get-users
method: GET
- type: http
namespace: iam
baseUri: "https://iam.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.iam_token"
resources:
- name: reviews
path: "/compare"
operations:
- name: compare
method: POST
- type: http
namespace: jira
baseUri: "https://geaerospace.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Manages API deprecation at GE Aerospace via consumer identification, notices, and tracking.
naftiko: "0.5"
info:
label: "API Deprecation Pipeline"
description: "Manages API deprecation at GE Aerospace via consumer identification, notices, and tracking."
tags:
- api-management
- communications
- governance
capability:
exposes:
- type: mcp
namespace: api-sunset
port: 8080
tools:
- name: notify-sunset
description: "Manage API sunset at GE Aerospace."
inputParameters:
- name: api
in: body
type: string
description: "API name."
- name: date
in: body
type: string
description: "Sunset date."
steps:
- name: consumers
type: call
call: "api-gw.consumers"
with:
api: "{{api}}"
- name: notify
type: call
call: "email.batch"
with:
to: "{{consumers.emails}}"
subject: "{{api}} sunset: {{date}}"
- name: track
type: call
call: "analytics.usage"
with:
api: "{{api}}"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "API"
summary: "Sunset {{api}} by {{date}}"
consumes:
- type: http
namespace: api-gw
baseUri: "https://api-gw.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.api_gw_token"
resources:
- name: consumers
path: "/apis/{{api}}/consumers"
inputParameters:
- name: api
in: path
operations:
- name: consumers
method: GET
- type: http
namespace: email
baseUri: "https://email.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: batch
path: "/send-batch"
operations:
- name: batch
method: POST
- type: http
namespace: analytics
baseUri: "https://analytics.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: usage
path: "/api-usage"
operations:
- name: usage
method: GET
- type: http
namespace: jira
baseUri: "https://geaerospace.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Retrieves metadata for an AutoCAD drawing file stored in the Autodesk cloud, including version, creator, modification date, and associated part numbers.
naftiko: "0.5"
info:
label: "AutoCAD Drawing Metadata"
description: "Retrieves metadata for an AutoCAD drawing file stored in the Autodesk cloud, including version, creator, modification date, and associated part numbers."
tags:
- engineering
- cad
- autocad
capability:
exposes:
- type: mcp
namespace: cad-management
port: 8080
tools:
- name: get-drawing-metadata
description: "Look up an AutoCAD drawing by file URN. Returns version, creator, last modified, and thumbnail URL."
inputParameters:
- name: file_urn
in: body
type: string
description: "The Autodesk cloud file URN."
call: "autodesk.get-item-metadata"
with:
urn: "{{file_urn}}"
consumes:
- type: http
namespace: autodesk
baseUri: "https://developer.api.autodesk.com/data/v1"
authentication:
type: bearer
token: "$secrets.autodesk_token"
resources:
- name: items
path: "/projects/{{project_id}}/items/{{urn}}"
inputParameters:
- name: urn
in: path
operations:
- name: get-item-metadata
method: GET
Retrieves monthly Azure spend by resource group for GE Aerospace cloud workloads, returning total cost, top services, and month-over-month trend.
naftiko: "0.5"
info:
label: "Azure Cost Management Report"
description: "Retrieves monthly Azure spend by resource group for GE Aerospace cloud workloads, returning total cost, top services, and month-over-month trend."
tags:
- finance
- cloud
- microsoft-azure
capability:
exposes:
- type: mcp
namespace: cloud-cost
port: 8080
tools:
- name: get-azure-spend
description: "Retrieve Azure cost summary by subscription and billing period."
inputParameters:
- name: subscription_id
in: body
type: string
description: "The Azure subscription ID."
- name: billing_period
in: body
type: string
description: "Billing period in YYYYMM format."
call: "azure.get-cost-report"
with:
subscription_id: "{{subscription_id}}"
billing_period: "{{billing_period}}"
consumes:
- type: http
namespace: azure
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_mgmt_token"
resources:
- name: cost-management
path: "/subscriptions/{{subscription_id}}/providers/Microsoft.CostManagement/query"
inputParameters:
- name: subscription_id
in: path
operations:
- name: get-cost-report
method: POST
Checks the status of an Azure Data Factory pipeline run, returning run state, start time, duration, and activity details.
naftiko: "0.5"
info:
label: "Azure Data Factory Pipeline Status"
description: "Checks the status of an Azure Data Factory pipeline run, returning run state, start time, duration, and activity details."
tags:
- data-engineering
- azure-data-factory
capability:
exposes:
- type: mcp
namespace: data-pipelines
port: 8080
tools:
- name: get-pipeline-run
description: "Look up an ADF pipeline run by run ID."
inputParameters:
- name: run_id
in: body
type: string
description: "The ADF pipeline run ID."
call: "adf.get-pipeline-run"
with:
run_id: "{{run_id}}"
consumes:
- type: http
namespace: adf
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_mgmt_token"
resources:
- name: pipeline-runs
path: "/subscriptions/{{sub_id}}/resourceGroups/{{rg}}/providers/Microsoft.DataFactory/factories/{{factory}}/pipelineruns/{{run_id}}"
inputParameters:
- name: run_id
in: path
operations:
- name: get-pipeline-run
method: GET
Checks build at GE Aerospace.
naftiko: "0.5"
info:
label: "Azure DevOps Build Check"
description: "Checks build at GE Aerospace."
tags:
- devops
- azure-devops
- ci-cd
capability:
exposes:
- type: mcp
namespace: azdo-build
port: 8080
tools:
- name: check-build
description: "Check build at GE Aerospace."
inputParameters:
- name: project
in: body
type: string
description: "Project."
- name: build_id
in: body
type: string
description: "Build ID."
call: "azdo.get-build"
with:
project: "{{project}}"
build_id: "{{build_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: azdo
baseUri: "https://dev.azure.com/geaerospace.com"
authentication:
type: bearer
token: "$secrets.azdo_token"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds/{{build_id}}"
inputParameters:
- name: project
in: path
- name: build_id
in: path
operations:
- name: get-build
method: GET
Retrieves the latest Azure DevOps build status for a given pipeline, returning build result, duration, triggered by, and artifacts.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status"
description: "Retrieves the latest Azure DevOps build status for a given pipeline, returning build result, duration, triggered by, and artifacts."
tags:
- engineering
- cicd
- azure-devops
capability:
exposes:
- type: mcp
namespace: cicd
port: 8080
tools:
- name: get-build-status
description: "Look up the latest build for an Azure DevOps pipeline. Returns status, result, duration, and trigger."
inputParameters:
- name: project
in: body
type: string
description: "The Azure DevOps project name."
- name: pipeline_id
in: body
type: string
description: "The pipeline definition ID."
call: "azdo.get-latest-build"
with:
project: "{{project}}"
pipeline_id: "{{pipeline_id}}"
consumes:
- type: http
namespace: azdo
baseUri: "https://dev.azure.com/geaerospace"
authentication:
type: basic
username: ""
password: "$secrets.azdo_pat"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
inputParameters:
- name: project
in: path
- name: pipeline_id
in: query
operations:
- name: get-latest-build
method: GET
Retrieves Azure Kubernetes Service cluster health for GE Aerospace workloads, returning node count, pod status, resource utilization, and any failing deployments.
naftiko: "0.5"
info:
label: "Azure Kubernetes Cluster Health"
description: "Retrieves Azure Kubernetes Service cluster health for GE Aerospace workloads, returning node count, pod status, resource utilization, and any failing deployments."
tags:
- infrastructure
- kubernetes
- azure-kubernetes-service
capability:
exposes:
- type: mcp
namespace: k8s-ops
port: 8080
tools:
- name: get-cluster-health
description: "Check AKS cluster health by resource group and cluster name. Returns node status, pod counts, and resource utilization."
inputParameters:
- name: resource_group
in: body
type: string
description: "The Azure resource group name."
- name: cluster_name
in: body
type: string
description: "The AKS cluster name."
call: "aks.get-cluster"
with:
resource_group: "{{resource_group}}"
cluster_name: "{{cluster_name}}"
consumes:
- type: http
namespace: aks
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_mgmt_token"
resources:
- name: clusters
path: "/subscriptions/{{subscription_id}}/resourceGroups/{{resource_group}}/providers/Microsoft.ContainerService/managedClusters/{{cluster_name}}"
inputParameters:
- name: resource_group
in: path
- name: cluster_name
in: path
operations:
- name: get-cluster
method: GET
Verifies backups at GE Aerospace.
naftiko: "0.5"
info:
label: "Backup Verification Pipeline"
description: "Verifies backups at GE Aerospace."
tags:
- database
- backup
- operations
capability:
exposes:
- type: mcp
namespace: backup-verify
port: 8080
tools:
- name: verify-backups
description: "Verify backups at GE Aerospace."
inputParameters:
- name: db
in: body
type: string
description: "Database."
- name: date
in: body
type: string
description: "Backup date."
steps:
- name: status
type: call
call: "backup.get-status"
with:
db: "{{db}}"
date: "{{date}}"
- name: verify
type: call
call: "backup.verify"
with:
id: "{{status.backup_id}}"
- name: log
type: call
call: "snowflake.query"
with:
query: "INSERT INTO backup_log VALUES ('{{db}}','{{date}}','{{verify.status}}')"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#dba"
text: "Backup {{db}}: {{verify.status}}"
consumes:
- type: http
namespace: backup
baseUri: "https://backup.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.backup_token"
resources:
- name: backups
path: "/databases/{{db}}/status"
inputParameters:
- name: db
in: path
operations:
- name: get-status
method: GET
- type: http
namespace: snowflake
baseUri: "https://geaerospace.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Analyzes budget variance at GE Aerospace via Oracle, Workday, and Slack.
naftiko: "0.5"
info:
label: "Budget Variance Pipeline"
description: "Analyzes budget variance at GE Aerospace via Oracle, Workday, and Slack."
tags:
- finance
- budget
- oracle
- workday
capability:
exposes:
- type: mcp
namespace: budget-var
port: 8080
tools:
- name: analyze-variance
description: "Check budget variance at GE Aerospace."
inputParameters:
- name: cc
in: body
type: string
description: "Cost center."
- name: period
in: body
type: string
description: "Period."
steps:
- name: actuals
type: call
call: "oracle.get-actuals"
with:
cc: "{{cc}}"
period: "{{period}}"
- name: budget
type: call
call: "workday.get-budget"
with:
cc: "{{cc}}"
- name: compute
type: call
call: "analytics.variance"
with:
a: "{{actuals.total}}"
b: "{{budget.total}}"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#finance"
text: "Variance {{cc}}: ${{compute.variance}}"
consumes:
- type: http
namespace: oracle
baseUri: "https://oracle.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: fin
path: "/actuals"
operations:
- name: get-actuals
method: GET
- type: http
namespace: workday
baseUri: "https://wd5.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: budgets
path: "/budgets"
operations:
- name: get-budget
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: var
path: "/compute"
operations:
- name: variance
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Plans capacity at GE Aerospace by collecting utilization and forecasting.
naftiko: "0.5"
info:
label: "Capacity Planning Pipeline"
description: "Plans capacity at GE Aerospace by collecting utilization and forecasting."
tags:
- infrastructure
- capacity-planning
- forecasting
capability:
exposes:
- type: mcp
namespace: capacity
port: 8080
tools:
- name: plan-capacity
description: "Plan capacity at GE Aerospace."
inputParameters:
- name: resource
in: body
type: string
description: "Resource type."
- name: months
in: body
type: number
description: "Forecast months."
steps:
- name: util
type: call
call: "monitoring.get-util"
with:
resource: "{{resource}}"
- name: forecast
type: call
call: "analytics.forecast"
with:
current: "{{util.pct}}"
months: "{{months}}"
- name: procure
type: call
call: "servicenow.create-request"
with:
type: "capacity"
resource: "{{resource}}"
- name: dashboard
type: call
call: "power-bi.refresh"
with:
dataset: "capacity"
consumes:
- type: http
namespace: monitoring
baseUri: "https://monitoring.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.monitoring_token"
resources:
- name: util
path: "/resources/{{resource}}/util"
inputParameters:
- name: resource
in: path
operations:
- name: get-util
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: forecast
path: "/demand"
operations:
- name: forecast
method: POST
- type: http
namespace: servicenow
baseUri: "https://geaerospace.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
Monitors cert expiry at GE Aerospace.
naftiko: "0.5"
info:
label: "Certificate Expiry Pipeline"
description: "Monitors cert expiry at GE Aerospace."
tags:
- security
- certificates
- monitoring
capability:
exposes:
- type: mcp
namespace: cert-monitor
port: 8080
tools:
- name: check-certs
description: "Monitor certs at GE Aerospace."
inputParameters:
- name: domains
in: body
type: string
description: "Domains to check."
steps:
- name: scan
type: call
call: "cert-scanner.scan"
with:
domains: "{{domains}}"
- name: filter
type: call
call: "analytics.filter-expiring"
with:
certs: "{{scan.results}}"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "SEC"
summary: "{{filter.count}} certs expiring"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#security"
text: "Cert alert: {{filter.count}} expiring"
consumes:
- type: http
namespace: cert-scanner
baseUri: "https://certs.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.cert_token"
resources:
- name: scans
path: "/scan"
operations:
- name: scan
method: POST
- type: http
namespace: jira
baseUri: "https://geaerospace.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Routes changes at GE Aerospace through ServiceNow and CAB approval.
naftiko: "0.5"
info:
label: "Change Management Pipeline"
description: "Routes changes at GE Aerospace through ServiceNow and CAB approval."
tags:
- change-management
- servicenow
- itil
capability:
exposes:
- type: mcp
namespace: change-mgmt
port: 8080
tools:
- name: process-change
description: "Process changes at GE Aerospace."
inputParameters:
- name: change_id
in: body
type: string
description: "Change ID."
- name: date
in: body
type: string
description: "Date."
steps:
- name: get
type: call
call: "servicenow.get-change"
with:
id: "{{change_id}}"
- name: conflicts
type: call
call: "servicenow.check-conflicts"
with:
date: "{{date}}"
- name: submit
type: call
call: "servicenow.update"
with:
id: "{{change_id}}"
state: "approval"
- name: notify
type: call
call: "email.send"
with:
to: "cab@co.com"
subject: "CAB: {{change_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://geaerospace.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: changes
path: "/table/change_request/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-change
method: GET
- type: http
namespace: email
baseUri: "https://email.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Queries Cisco DNA Center for network device inventory across GE Aerospace facilities, returning device type, OS version, management IP, and health status.
naftiko: "0.5"
info:
label: "Cisco Network Device Inventory"
description: "Queries Cisco DNA Center for network device inventory across GE Aerospace facilities, returning device type, OS version, management IP, and health status."
tags:
- infrastructure
- networking
- cisco
capability:
exposes:
- type: mcp
namespace: network-inventory
port: 8080
tools:
- name: get-network-devices
description: "List network devices from Cisco DNA Center by site. Returns device type, hostname, IP, OS version, and health."
inputParameters:
- name: site_name
in: body
type: string
description: "The facility site name."
call: "cisco.get-devices"
with:
site_name: "{{site_name}}"
consumes:
- type: http
namespace: cisco
baseUri: "https://ge-aerospace-dnac.internal/dna/intent/api/v1"
authentication:
type: bearer
token: "$secrets.cisco_dnac_token"
resources:
- name: devices
path: "/network-device"
operations:
- name: get-devices
method: GET
Optimizes cloud costs at GE Aerospace via Azure, FinOps, Jira, and Power BI.
naftiko: "0.5"
info:
label: "Cloud Cost Optimization Pipeline"
description: "Optimizes cloud costs at GE Aerospace via Azure, FinOps, Jira, and Power BI."
tags:
- cloud
- cost-management
- finops
capability:
exposes:
- type: mcp
namespace: cloud-opt
port: 8080
tools:
- name: optimize
description: "Optimize cloud costs at GE Aerospace."
inputParameters:
- name: provider
in: body
type: string
description: "Provider."
- name: range
in: body
type: string
description: "Range."
steps:
- name: spend
type: call
call: "cloud.get-costs"
with:
provider: "{{provider}}"
range: "{{range}}"
- name: savings
type: call
call: "finops.analyze"
with:
data: "{{spend.data}}"
- name: action
type: call
call: "jira.create-issue"
with:
project: "FINOPS"
summary: "Save ${{savings.potential}}"
- name: report
type: call
call: "power-bi.refresh"
with:
dataset: "cloud"
consumes:
- type: http
namespace: cloud
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_token"
resources:
- name: costs
path: "/providers/Microsoft.CostManagement/query"
operations:
- name: get-costs
method: POST
- type: http
namespace: finops
baseUri: "https://finops.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.finops_token"
resources:
- name: analysis
path: "/savings"
operations:
- name: analyze
method: POST
- type: http
namespace: jira
baseUri: "https://geaerospace.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
Searches Confluence at GE Aerospace.
naftiko: "0.5"
info:
label: "Confluence Article Search"
description: "Searches Confluence at GE Aerospace."
tags:
- knowledge-management
- confluence
- documentation
capability:
exposes:
- type: mcp
namespace: confluence-search
port: 8080
tools:
- name: search-articles
description: "Search Confluence at GE Aerospace."
inputParameters:
- name: query
in: body
type: string
description: "Query."
call: "confluence.search"
with:
query: "{{query}}"
outputParameters:
- name: title
type: string
mapping: "$.results[0].title"
consumes:
- type: http
namespace: confluence
baseUri: "https://geaerospace.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: content
path: "/content/search"
operations:
- name: search
method: GET
Searches GE Aerospace Confluence for technical documentation by keyword, returning matching page titles, spaces, authors, and direct links.
naftiko: "0.5"
info:
label: "Confluence Technical Document Search"
description: "Searches GE Aerospace Confluence for technical documentation by keyword, returning matching page titles, spaces, authors, and direct links."
tags:
- knowledge-management
- confluence
capability:
exposes:
- type: mcp
namespace: tech-docs
port: 8080
tools:
- name: search-documents
description: "Search Confluence for technical documents by keyword. Returns page titles, spaces, and URLs."
inputParameters:
- name: query
in: body
type: string
description: "Search keyword or phrase."
call: "confluence.search"
with:
cql: "text~\"{{query}}\" AND space.type=global"
consumes:
- type: http
namespace: confluence
baseUri: "https://geaerospace.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: search
path: "/search"
operations:
- name: search
method: GET
Tracks contract renewals at GE Aerospace via contracts system, email, Jira, and Salesforce.
naftiko: "0.5"
info:
label: "Contract Renewal Pipeline"
description: "Tracks contract renewals at GE Aerospace via contracts system, email, Jira, and Salesforce."
tags:
- procurement
- contracts
- salesforce
- jira
capability:
exposes:
- type: mcp
namespace: contract-renew
port: 8080
tools:
- name: track
description: "Track renewals at GE Aerospace."
inputParameters:
- name: contract_id
in: body
type: string
description: "Contract ID."
- name: owner
in: body
type: string
description: "Owner email."
steps:
- name: get
type: call
call: "contracts.get"
with:
id: "{{contract_id}}"
- name: remind
type: call
call: "email.send"
with:
to: "{{owner}}"
subject: "Renewal: {{contract_id}}"
- name: task
type: call
call: "jira.create-issue"
with:
project: "PROC"
summary: "Renew {{contract_id}}"
- name: crm
type: call
call: "salesforce.update"
with:
id: "{{contract_id}}"
stage: "Renewal"
consumes:
- type: http
namespace: contracts
baseUri: "https://contracts.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.contracts_token"
resources:
- name: contracts
path: "/contracts/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get
method: GET
- type: http
namespace: email
baseUri: "https://email.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
- type: http
namespace: jira
baseUri: "https://geaerospace.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: salesforce
baseUri: "https://geaerospace.com.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opps
path: "/sobjects/Opportunity"
operations:
- name: update
method: PATCH
Reallocates costs at GE Aerospace.
naftiko: "0.5"
info:
label: "Cost Reallocation Pipeline"
description: "Reallocates costs at GE Aerospace."
tags:
- finance
- cost-allocation
- oracle
capability:
exposes:
- type: mcp
namespace: cost-realloc
port: 8080
tools:
- name: reallocate
description: "Reallocate costs at GE Aerospace."
inputParameters:
- name: source
in: body
type: string
description: "Source CC."
- name: target
in: body
type: string
description: "Target CC."
- name: amount
in: body
type: number
description: "Amount."
steps:
- name: current
type: call
call: "oracle.get-alloc"
with:
cc: "{{source}}"
- name: compute
type: call
call: "analytics.realloc"
with:
source: "{{source}}"
target: "{{target}}"
amount: "{{amount}}"
- name: post
type: call
call: "oracle.post-journal"
with:
entries: "{{compute.entries}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#finance"
text: "Reallocated ${{amount}} from {{source}} to {{target}}"
consumes:
- type: http
namespace: oracle
baseUri: "https://oracle.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: allocations
path: "/cost-centers/{{cc}}/allocations"
inputParameters:
- name: cc
in: path
operations:
- name: get-alloc
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: realloc
path: "/compute"
operations:
- name: realloc
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
When a customer service contract nears expiration in Salesforce, pulls contract details, generates a renewal proposal document in SharePoint, sends renewal notice via Microsoft Outlook, and logs the activity in Salesforce.
naftiko: "0.5"
info:
label: "Customer Contract Renewal Orchestrator"
description: "When a customer service contract nears expiration in Salesforce, pulls contract details, generates a renewal proposal document in SharePoint, sends renewal notice via Microsoft Outlook, and logs the activity in Salesforce."
tags:
- sales
- contracts
- salesforce
- sharepoint
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: contract-renewal
port: 8080
tools:
- name: process-contract-renewal
description: "Given a Salesforce contract ID, pull details, generate renewal doc, email the customer, and log the activity."
inputParameters:
- name: contract_id
in: body
type: string
description: "The Salesforce contract ID."
steps:
- name: get-contract
type: call
call: "salesforce.get-contract"
with:
contract_id: "{{contract_id}}"
- name: generate-proposal
type: call
call: "sharepoint.create-file"
with:
site_id: "sales-proposals"
folder_path: "Renewals/{{get-contract.AccountName}}"
content: "Service Contract Renewal Proposal for {{get-contract.AccountName}}. Contract: {{contract_id}}. Current value: {{get-contract.ContractAmount}}. Expiry: {{get-contract.EndDate}}."
- name: send-renewal-notice
type: call
call: "outlook.send-email"
with:
to: "{{get-contract.CustomerEmail}}"
subject: "GE Aerospace Service Contract Renewal — {{get-contract.ContractNumber}}"
body: "Dear {{get-contract.ContactName}}, your service contract {{get-contract.ContractNumber}} expires on {{get-contract.EndDate}}. Please find the renewal proposal attached: {{generate-proposal.url}}."
- name: log-activity
type: call
call: "salesforce.create-activity"
with:
contract_id: "{{contract_id}}"
subject: "Renewal notice sent"
description: "Renewal proposal sent to {{get-contract.CustomerEmail}}. Proposal: {{generate-proposal.url}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://geaerospace.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contracts
path: "/sobjects/Contract/{{contract_id}}"
inputParameters:
- name: contract_id
in: path
operations:
- name: get-contract
method: GET
- name: activities
path: "/sobjects/Task"
operations:
- name: create-activity
method: POST
- 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:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-file
method: PUT
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Monitors data pipelines at GE Aerospace via Databricks, Snowflake, Slack, and ServiceNow.
naftiko: "0.5"
info:
label: "Data Pipeline Monitor Pipeline"
description: "Monitors data pipelines at GE Aerospace via Databricks, Snowflake, Slack, and ServiceNow."
tags:
- data-engineering
- databricks
- monitoring
- slack
capability:
exposes:
- type: mcp
namespace: pipeline-mon
port: 8080
tools:
- name: monitor
description: "Monitor pipelines at GE Aerospace."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "Pipeline ID."
steps:
- name: status
type: call
call: "databricks.get-run"
with:
id: "{{pipeline_id}}"
- name: quality
type: call
call: "snowflake.query"
with:
query: "SELECT COUNT(*) FROM out WHERE p='{{pipeline_id}}'"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#data"
text: "Pipeline {{pipeline_id}}: {{status.state}}"
- name: incident
type: call
call: "servicenow.create-incident"
with:
desc: "Pipeline {{pipeline_id}} issue"
consumes:
- type: http
namespace: databricks
baseUri: "https://geaerospace.com.cloud.databricks.com/api/2.1"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: jobs
path: "/jobs/runs/get"
operations:
- name: get-run
method: GET
- type: http
namespace: snowflake
baseUri: "https://geaerospace.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: servicenow
baseUri: "https://geaerospace.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
Checks the status of a Databricks analytics job run, returning state, start time, duration, and output artifacts for data engineering pipelines.
naftiko: "0.5"
info:
label: "Databricks Analytics Job Status"
description: "Checks the status of a Databricks analytics job run, returning state, start time, duration, and output artifacts for data engineering pipelines."
tags:
- data-engineering
- analytics
- databricks
capability:
exposes:
- type: mcp
namespace: data-analytics
port: 8080
tools:
- name: get-job-run-status
description: "Look up a Databricks job run by run ID. Returns state, start time, duration, and result."
inputParameters:
- name: run_id
in: body
type: string
description: "The Databricks job run ID."
call: "databricks.get-run"
with:
run_id: "{{run_id}}"
consumes:
- type: http
namespace: databricks
baseUri: "https://ge-aerospace.cloud.databricks.com/api/2.1"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: runs
path: "/jobs/runs/get?run_id={{run_id}}"
inputParameters:
- name: run_id
in: query
operations:
- name: get-run
method: GET
Queries Datadog for current infrastructure health metrics for GE Aerospace cloud workloads, returning host status, CPU utilization, and active alerts.
naftiko: "0.5"
info:
label: "Datadog Infrastructure Monitoring"
description: "Queries Datadog for current infrastructure health metrics for GE Aerospace cloud workloads, returning host status, CPU utilization, and active alerts."
tags:
- infrastructure
- monitoring
- datadog
capability:
exposes:
- type: mcp
namespace: infra-monitoring
port: 8080
tools:
- name: get-host-metrics
description: "Retrieve host health metrics from Datadog by hostname. Returns CPU, memory, disk utilization, and alert status."
inputParameters:
- name: hostname
in: body
type: string
description: "The Datadog hostname or host tag filter."
call: "datadog.get-host-totals"
with:
filter: "host:{{hostname}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
name: "DD-API-KEY"
in: header
value: "$secrets.datadog_api_key"
resources:
- name: hosts
path: "/hosts"
operations:
- name: get-host-totals
method: GET
Checks Datadog monitor at GE Aerospace.
naftiko: "0.5"
info:
label: "Datadog Monitor Check"
description: "Checks Datadog monitor at GE Aerospace."
tags:
- monitoring
- datadog
- observability
capability:
exposes:
- type: mcp
namespace: dd-monitor
port: 8080
tools:
- name: check-monitor
description: "Check monitor at GE Aerospace."
inputParameters:
- name: monitor_id
in: body
type: string
description: "Monitor ID."
call: "datadog.get-monitor"
with:
monitor_id: "{{monitor_id}}"
outputParameters:
- name: status
type: string
mapping: "$.overall_state"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: monitors
path: "/monitor/{{monitor_id}}"
inputParameters:
- name: monitor_id
in: path
operations:
- name: get-monitor
method: GET
Tests disaster recovery at GE Aerospace via failover, health checks, and reporting.
naftiko: "0.5"
info:
label: "DR Test Pipeline"
description: "Tests disaster recovery at GE Aerospace via failover, health checks, and reporting."
tags:
- disaster-recovery
- business-continuity
- testing
capability:
exposes:
- type: mcp
namespace: dr-test
port: 8080
tools:
- name: test-dr
description: "Test DR at GE Aerospace."
inputParameters:
- name: plan_id
in: body
type: string
description: "Plan ID."
- name: type
in: body
type: string
description: "Test type."
steps:
- name: failover
type: call
call: "dr.failover"
with:
plan: "{{plan_id}}"
type: "{{type}}"
- name: validate
type: call
call: "monitoring.check"
with:
scope: "critical"
- name: measure
type: call
call: "dr.metrics"
with:
id: "{{failover.id}}"
- name: report
type: call
call: "confluence.create-page"
with:
title: "DR - {{plan_id}}"
body: "RTO:{{measure.rto}}m RPO:{{measure.rpo}}m"
consumes:
- type: http
namespace: dr
baseUri: "https://dr.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.dr_token"
resources:
- name: failovers
path: "/failovers"
operations:
- name: failover
method: POST
- type: http
namespace: monitoring
baseUri: "https://monitoring.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.monitoring_token"
resources:
- name: health
path: "/checks"
operations:
- name: check
method: POST
- type: http
namespace: confluence
baseUri: "https://geaerospace.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Detects infrastructure drift at GE Aerospace via Terraform, Slack, and Jira.
naftiko: "0.5"
info:
label: "Drift Detection Pipeline"
description: "Detects infrastructure drift at GE Aerospace via Terraform, Slack, and Jira."
tags:
- infrastructure
- terraform
- drift-detection
- devops
capability:
exposes:
- type: mcp
namespace: drift-det
port: 8080
tools:
- name: detect
description: "Detect drift at GE Aerospace."
inputParameters:
- name: ws_id
in: body
type: string
description: "Workspace ID."
- name: env
in: body
type: string
description: "Environment."
steps:
- name: plan
type: call
call: "terraform.run"
with:
ws: "{{ws_id}}"
- name: check
type: call
call: "terraform.get-plan"
with:
run: "{{plan.id}}"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#infra"
text: "Drift {{env}}: {{check.changes}} changes"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "INFRA"
summary: "Drift in {{env}}"
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_token"
resources:
- name: runs
path: "/runs"
operations:
- name: run
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: jira
baseUri: "https://geaerospace.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Retrieves Dynatrace application monitoring data for GE Aerospace services, returning response time, failure rate, and user action counts.
naftiko: "0.5"
info:
label: "Dynatrace Application Monitoring"
description: "Retrieves Dynatrace application monitoring data for GE Aerospace services, returning response time, failure rate, and user action counts."
tags:
- infrastructure
- apm
- dynatrace
capability:
exposes:
- type: mcp
namespace: dynatrace-apm
port: 8080
tools:
- name: get-app-metrics
description: "Retrieve Dynatrace application performance by entity ID."
inputParameters:
- name: entity_id
in: body
type: string
description: "The Dynatrace entity ID."
call: "dynatrace.get-entity"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: dynatrace
baseUri: "https://ge-aerospace.live.dynatrace.com/api/v2"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: entities
path: "/entities/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-entity
method: GET
Checks ES index at GE Aerospace.
naftiko: "0.5"
info:
label: "ES Index Health"
description: "Checks ES index at GE Aerospace."
tags:
- search
- elasticsearch
- infrastructure
capability:
exposes:
- type: mcp
namespace: es-health
port: 8080
tools:
- name: check-index
description: "Check ES index at GE Aerospace."
inputParameters:
- name: index
in: body
type: string
description: "Index name."
call: "es.get-health"
with:
index: "{{index}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: docs
type: number
mapping: "$.docs.count"
consumes:
- type: http
namespace: es
baseUri: "https://es.geaerospace.com:9200"
authentication:
type: bearer
token: "$secrets.es_token"
resources:
- name: indices
path: "/{{index}}/_stats"
inputParameters:
- name: index
in: path
operations:
- name: get-health
method: GET
Offboards employees at GE Aerospace via Okta, Slack, ServiceNow, and storage.
naftiko: "0.5"
info:
label: "Employee Offboarding Pipeline"
description: "Offboards employees at GE Aerospace via Okta, Slack, ServiceNow, and storage."
tags:
- hr
- offboarding
- okta
- servicenow
capability:
exposes:
- type: mcp
namespace: offboarding
port: 8080
tools:
- name: offboard
description: "Offboard employees at GE Aerospace."
inputParameters:
- name: emp_id
in: body
type: string
description: "Employee ID."
- name: last_day
in: body
type: string
description: "Last day."
steps:
- name: disable
type: call
call: "okta.deactivate"
with:
user: "{{emp_id}}"
- name: revoke
type: call
call: "slack.remove"
with:
user: "{{emp_id}}"
- name: return
type: call
call: "servicenow.create-request"
with:
type: "return"
emp: "{{emp_id}}"
- name: archive
type: call
call: "storage.archive"
with:
user: "{{emp_id}}"
consumes:
- type: http
namespace: okta
baseUri: "https://geaerospace.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users/{{user}}/lifecycle/deactivate"
inputParameters:
- name: user
in: path
operations:
- name: deactivate
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: users
path: "/users.admin.remove"
operations:
- name: remove
method: POST
- type: http
namespace: servicenow
baseUri: "https://geaerospace.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: storage
baseUri: "https://storage.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.storage_token"
resources:
- name: archives
path: "/archive"
operations:
- name: archive
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder for training documents, assigns a Pluralsight learning path, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder for training documents, assigns a Pluralsight learning path, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- pluralsight
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: onboard-employee
description: "Given a Workday worker ID and start date, orchestrate IT ticket, training folder, learning path, and welcome message."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker 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 the new hire is joining."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding"
folder_path: "NewHires/{{get-employee.full_name}}_{{start_date}}"
- name: assign-learning
type: call
call: "pluralsight.assign-path"
with:
user_email: "{{get-employee.work_email}}"
path_id: "aerospace-fundamentals"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to GE Aerospace, {{get-employee.first_name}}! IT ticket: {{open-ticket.number}}. Training docs: {{provision-folder.url}}. Your Pluralsight path: {{assign-learning.path_url}}."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://geaerospace.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: folders
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: pluralsight
baseUri: "https://api.pluralsight.com/api/v1"
authentication:
type: bearer
token: "$secrets.pluralsight_token"
resources:
- name: assignments
path: "/learning-paths/{{path_id}}/assignments"
inputParameters:
- name: path_id
in: path
operations:
- name: assign-path
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
When an engine reaches delivery milestone, updates SAP delivery status, creates a Salesforce activity for the account team, uploads delivery documentation to SharePoint, and notifies the customer program manager via Microsoft Teams.
naftiko: "0.5"
info:
label: "Engine Delivery Milestone Orchestrator"
description: "When an engine reaches delivery milestone, updates SAP delivery status, creates a Salesforce activity for the account team, uploads delivery documentation to SharePoint, and notifies the customer program manager via Microsoft Teams."
tags:
- engine-delivery
- sap
- salesforce
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: engine-delivery
port: 8080
tools:
- name: process-delivery-milestone
description: "Given an engine serial number and milestone, update SAP, log Salesforce activity, upload docs, and notify the PM."
inputParameters:
- name: serial_number
in: body
type: string
description: "The engine serial number."
- name: milestone
in: body
type: string
description: "The delivery milestone (e.g. Final Test Complete, Shipping, Delivered)."
- name: customer_account_id
in: body
type: string
description: "The Salesforce customer account ID."
steps:
- name: update-sap-status
type: call
call: "sap.update-delivery-status"
with:
equipment: "{{serial_number}}"
milestone: "{{milestone}}"
- name: log-sf-activity
type: call
call: "salesforce.create-activity"
with:
account_id: "{{customer_account_id}}"
subject: "Engine {{serial_number}} — {{milestone}}"
description: "Engine {{serial_number}} reached milestone: {{milestone}}."
- name: upload-docs
type: call
call: "sharepoint.upload-file"
with:
site_id: "engine-deliveries"
folder_path: "{{serial_number}}/{{milestone}}"
- name: notify-pm
type: call
call: "msteams.post-channel-message"
with:
team_id: "customer-programs"
channel_id: "delivery-milestones"
text: "Engine {{serial_number}} milestone: {{milestone}}. SAP updated. Salesforce logged. Documents: {{upload-docs.url}}."
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/ZPM_DELIVERY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: delivery-status
path: "/DeliveryStatusSet"
operations:
- name: update-delivery-status
method: PATCH
- type: http
namespace: salesforce
baseUri: "https://geaerospace.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: activities
path: "/sobjects/Task"
operations:
- name: create-activity
method: POST
- 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:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: upload-file
method: PUT
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Retrieves engine configuration and status from SAP S/4HANA by engine serial number, returning engine model, build date, total flight hours, and current operator.
naftiko: "0.5"
info:
label: "Engine Serial Number Lookup"
description: "Retrieves engine configuration and status from SAP S/4HANA by engine serial number, returning engine model, build date, total flight hours, and current operator."
tags:
- engine-management
- sap
capability:
exposes:
- type: mcp
namespace: engine-registry
port: 8080
tools:
- name: get-engine-details
description: "Look up an engine by serial number. Returns model, build date, flight hours, cycles, and current operator."
inputParameters:
- name: serial_number
in: body
type: string
description: "The engine serial number."
call: "sap.get-engine"
with:
serial_number: "{{serial_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/ZPM_ENGINE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: engines
path: "/EngineSet('{{serial_number}}')"
inputParameters:
- name: serial_number
in: path
operations:
- name: get-engine
method: GET
When an engine arrives for overhaul, creates the work order in SAP, opens a ServiceNow MRO ticket, provisions a SharePoint documentation folder, and notifies the shop floor team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Engine Shop Visit Orchestrator"
description: "When an engine arrives for overhaul, creates the work order in SAP, opens a ServiceNow MRO ticket, provisions a SharePoint documentation folder, and notifies the shop floor team via Microsoft Teams."
tags:
- mro
- engine-overhaul
- sap
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: shop-visit
port: 8080
tools:
- name: initiate-shop-visit
description: "Given an engine serial number and shop location, create the SAP work order, ServiceNow ticket, documentation folder, and notify the shop team."
inputParameters:
- name: serial_number
in: body
type: string
description: "The engine serial number."
- name: shop_code
in: body
type: string
description: "The MRO shop facility code."
- name: visit_type
in: body
type: string
description: "Type of shop visit (e.g. overhaul, repair, inspection)."
steps:
- name: get-engine
type: call
call: "sap.get-engine"
with:
serial_number: "{{serial_number}}"
- name: create-work-order
type: call
call: "sap.create-work-order"
with:
equipment: "{{serial_number}}"
order_type: "{{visit_type}}"
plant: "{{shop_code}}"
description: "Shop visit: {{visit_type}} for engine {{serial_number}} ({{get-engine.model}})"
- name: open-mro-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "Engine shop visit: {{serial_number}} — {{visit_type}}"
category: "mro"
assigned_group: "MRO_{{shop_code}}"
description: "Engine: {{get-engine.model}} (SN: {{serial_number}}). Visit type: {{visit_type}}. SAP WO: {{create-work-order.order_number}}. Flight hours: {{get-engine.total_flight_hours}}."
- name: provision-docs
type: call
call: "sharepoint.create-folder"
with:
site_id: "mro-documentation"
folder_path: "ShopVisits/{{serial_number}}_{{create-work-order.order_number}}"
- name: notify-shop
type: call
call: "msteams.post-channel-message"
with:
team_id: "mro-{{shop_code}}"
channel_id: "shop-floor"
text: "New shop visit: Engine {{serial_number}} ({{get-engine.model}}). Type: {{visit_type}}. SAP WO: {{create-work-order.order_number}}. ServiceNow: {{open-mro-ticket.number}}. Docs: {{provision-docs.url}}."
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/ZPM_ENGINE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: engines
path: "/EngineSet('{{serial_number}}')"
inputParameters:
- name: serial_number
in: path
operations:
- name: get-engine
method: GET
- name: work-orders
path: "/WorkOrderSet"
operations:
- name: create-work-order
method: POST
- type: http
namespace: servicenow
baseUri: "https://geaerospace.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: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
After an engine test run, collects test data from Azure IoT Hub, logs results in SAP, generates a test report in Confluence, and notifies the test engineering team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Engine Test Cell Data Orchestrator"
description: "After an engine test run, collects test data from Azure IoT Hub, logs results in SAP, generates a test report in Confluence, and notifies the test engineering team via Microsoft Teams."
tags:
- engine-testing
- telemetry
- microsoft-azure
- sap
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: test-cell
port: 8080
tools:
- name: process-test-run
description: "Given a test run ID and engine serial number, collect telemetry, log in SAP, generate report, and notify the team."
inputParameters:
- name: test_run_id
in: body
type: string
description: "The test run identifier."
- name: serial_number
in: body
type: string
description: "The engine serial number under test."
steps:
- name: get-test-data
type: call
call: "azure-iot.get-test-telemetry"
with:
test_run_id: "{{test_run_id}}"
- name: log-results
type: call
call: "sap.create-test-record"
with:
equipment: "{{serial_number}}"
test_run: "{{test_run_id}}"
results: "{{get-test-data.summary}}"
- name: generate-report
type: call
call: "confluence.create-page"
with:
space_key: "TESTENG"
title: "Test Report: {{serial_number}} — Run {{test_run_id}}"
body: "Engine: {{serial_number}}. Test Run: {{test_run_id}}. Peak thrust: {{get-test-data.peak_thrust}}. EGT margin: {{get-test-data.egt_margin}}. Result: {{get-test-data.pass_fail}}."
- name: notify-team
type: call
call: "msteams.post-channel-message"
with:
team_id: "test-engineering"
channel_id: "test-results"
text: "Test complete: Engine {{serial_number}}, Run {{test_run_id}}. Result: {{get-test-data.pass_fail}}. Peak thrust: {{get-test-data.peak_thrust}}. Report: {{generate-report.url}}."
consumes:
- type: http
namespace: azure-iot
baseUri: "https://ge-aerospace-iothub.azure-devices.net"
authentication:
type: bearer
token: "$secrets.azure_iot_token"
resources:
- name: test-telemetry
path: "/twins/query"
operations:
- name: get-test-telemetry
method: POST
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/ZPM_TEST_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: test-records
path: "/TestRecordSet"
operations:
- name: create-test-record
method: POST
- type: http
namespace: confluence
baseUri: "https://geaerospace.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Processes an engineering change order by retrieving the ECO from SAP, updating the bill of materials, creating a Jira task for implementation, documenting the change in Confluence, and notifying affected programs via Microsoft Teams.
naftiko: "0.5"
info:
label: "Engineering Change Order Orchestrator"
description: "Processes an engineering change order by retrieving the ECO from SAP, updating the bill of materials, creating a Jira task for implementation, documenting the change in Confluence, and notifying affected programs via Microsoft Teams."
tags:
- engineering
- change-management
- sap
- jira
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: eco-management
port: 8080
tools:
- name: process-change-order
description: "Given an ECO number, retrieve the change details, log implementation tasks, document in Confluence, and notify programs."
inputParameters:
- name: eco_number
in: body
type: string
description: "The SAP engineering change order number."
- name: affected_programs
in: body
type: string
description: "Comma-separated list of affected engine programs."
steps:
- name: get-eco
type: call
call: "sap.get-change-order"
with:
eco_number: "{{eco_number}}"
- name: create-implementation-task
type: call
call: "jira.create-issue"
with:
project: "ECO"
summary: "Implement ECO {{eco_number}}: {{get-eco.description}}"
description: "ECO: {{eco_number}}. Affected parts: {{get-eco.affected_parts}}. Programs: {{affected_programs}}. Effective date: {{get-eco.effective_date}}."
issue_type: "Task"
- name: document-change
type: call
call: "confluence.create-page"
with:
space_key: "ENG"
title: "ECO {{eco_number}} — {{get-eco.description}}"
body: "Change order: {{eco_number}}. Description: {{get-eco.description}}. Affected parts: {{get-eco.affected_parts}}. Programs: {{affected_programs}}. Jira: {{create-implementation-task.key}}."
- name: notify-programs
type: call
call: "msteams.post-channel-message"
with:
team_id: "engineering"
channel_id: "change-orders"
text: "ECO {{eco_number}}: {{get-eco.description}}. Affected programs: {{affected_programs}}. Jira: {{create-implementation-task.key}}. Documentation: {{document-change.url}}."
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/ZPM_ECO_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: change-orders
path: "/ChangeOrderSet('{{eco_number}}')"
inputParameters:
- name: eco_number
in: path
operations:
- name: get-change-order
method: GET
- type: http
namespace: jira
baseUri: "https://geaerospace.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: confluence
baseUri: "https://geaerospace.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Audits expenses at GE Aerospace via Concur, compliance checks, and email.
naftiko: "0.5"
info:
label: "Expense Audit Pipeline"
description: "Audits expenses at GE Aerospace via Concur, compliance checks, and email."
tags:
- finance
- travel
- sap-concur
- compliance
capability:
exposes:
- type: mcp
namespace: expense-audit
port: 8080
tools:
- name: audit
description: "Audit expenses at GE Aerospace."
inputParameters:
- name: report_id
in: body
type: string
description: "Report ID."
steps:
- name: get
type: call
call: "concur.get-report"
with:
id: "{{report_id}}"
- name: check
type: call
call: "compliance.check"
with:
expenses: "{{get.entries}}"
- name: flag
type: call
call: "workflow.flag"
with:
id: "{{report_id}}"
violations: "{{check.violations}}"
- name: notify
type: call
call: "email.send"
with:
to: "{{get.approver}}"
subject: "Expense {{report_id}} violations"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: reports
path: "/expense/reports/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-report
method: GET
- type: http
namespace: compliance
baseUri: "https://compliance.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: policies
path: "/check"
operations:
- name: check
method: POST
- type: http
namespace: workflow
baseUri: "https://workflow.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.workflow_token"
resources:
- name: reviews
path: "/flag"
operations:
- name: flag
method: POST
- type: http
namespace: email
baseUri: "https://email.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Retrieves a SAP Concur expense report, validates against Workday cost center data, and opens a ServiceNow task for finance review when policy exceptions are detected.
naftiko: "0.5"
info:
label: "Expense Report Compliance Review"
description: "Retrieves a SAP Concur expense report, validates against Workday cost center data, and opens a ServiceNow task for finance review when policy exceptions are detected."
tags:
- finance
- compliance
- sap-concur
- workday
- servicenow
capability:
exposes:
- type: mcp
namespace: expense-compliance
port: 8080
tools:
- name: review-expense-compliance
description: "Given a Concur report ID and employee ID, validate the expense against policy and cost center, and flag violations."
inputParameters:
- name: report_id
in: body
type: string
description: "The SAP Concur expense report ID."
- name: employee_id
in: body
type: string
description: "The Workday employee ID."
steps:
- name: get-report
type: call
call: "concur.get-report"
with:
report_id: "{{report_id}}"
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: create-review-task
type: call
call: "servicenow.create-task"
with:
short_description: "Expense review: {{get-report.report_name}} — {{get-employee.full_name}}"
description: "Report {{report_id}} total: {{get-report.total_amount}}. Cost center: {{get-employee.cost_center}}. Employee: {{get-employee.full_name}}."
assigned_group: "Finance_Audit"
category: "expense_review"
consumes:
- type: http
namespace: concur
baseUri: "https://us2.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-report
method: GET
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://geaerospace.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
When a new FAA AD is published, creates a compliance tracking record in SAP, opens a Jira task for engineering review, logs the AD in Confluence, and notifies the regulatory compliance team via Microsoft Teams.
naftiko: "0.5"
info:
label: "FAA Airworthiness Directive Compliance Tracker"
description: "When a new FAA AD is published, creates a compliance tracking record in SAP, opens a Jira task for engineering review, logs the AD in Confluence, and notifies the regulatory compliance team via Microsoft Teams."
tags:
- compliance
- regulatory
- sap
- jira
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: ad-compliance
port: 8080
tools:
- name: track-airworthiness-directive
description: "Given an AD number and affected engine models, create SAP compliance record, Jira task, Confluence documentation, and team notification."
inputParameters:
- name: ad_number
in: body
type: string
description: "The FAA Airworthiness Directive number."
- name: ad_title
in: body
type: string
description: "Title of the AD."
- 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 in YYYY-MM-DD format."
steps:
- name: create-compliance-record
type: call
call: "sap.create-compliance-record"
with:
ad_number: "{{ad_number}}"
description: "{{ad_title}}"
affected_models: "{{affected_models}}"
deadline: "{{compliance_deadline}}"
- name: create-review-task
type: call
call: "jira.create-issue"
with:
project: "COMPLY"
summary: "AD {{ad_number}}: {{ad_title}}"
description: "Affected models: {{affected_models}}. Deadline: {{compliance_deadline}}. SAP record: {{create-compliance-record.record_id}}."
issue_type: "Task"
due_date: "{{compliance_deadline}}"
- name: document-ad
type: call
call: "confluence.create-page"
with:
space_key: "REGCOMP"
title: "AD {{ad_number}} — {{ad_title}}"
body: "AD Number: {{ad_number}}. Title: {{ad_title}}. Models: {{affected_models}}. Deadline: {{compliance_deadline}}. SAP: {{create-compliance-record.record_id}}. Jira: {{create-review-task.key}}."
- name: notify-compliance
type: call
call: "msteams.post-channel-message"
with:
team_id: "regulatory-compliance"
channel_id: "airworthiness-directives"
text: "New AD {{ad_number}}: {{ad_title}}. Models: {{affected_models}}. Deadline: {{compliance_deadline}}. Jira: {{create-review-task.key}}. Docs: {{document-ad.url}}."
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/ZPM_COMPLIANCE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: compliance-records
path: "/ComplianceRecordSet"
operations:
- name: create-compliance-record
method: POST
- type: http
namespace: jira
baseUri: "https://geaerospace.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: confluence
baseUri: "https://geaerospace.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Analyzes feedback at GE Aerospace via surveys, AI sentiment, and Power BI.
naftiko: "0.5"
info:
label: "Customer Feedback Pipeline"
description: "Analyzes feedback at GE Aerospace via surveys, AI sentiment, and Power BI."
tags:
- customer-experience
- analytics
- sentiment-analysis
capability:
exposes:
- type: mcp
namespace: feedback
port: 8080
tools:
- name: analyze
description: "Analyze feedback at GE Aerospace."
inputParameters:
- name: survey_id
in: body
type: string
description: "Survey ID."
steps:
- name: collect
type: call
call: "survey.get"
with:
id: "{{survey_id}}"
- name: sentiment
type: call
call: "ai.analyze"
with:
text: "{{collect.responses}}"
- name: themes
type: call
call: "ai.themes"
with:
data: "{{collect.responses}}"
- name: dashboard
type: call
call: "power-bi.refresh"
with:
dataset: "cx"
consumes:
- type: http
namespace: survey
baseUri: "https://surveys.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.survey_token"
resources:
- name: responses
path: "/surveys/{{id}}/responses"
inputParameters:
- name: id
in: path
operations:
- name: get
method: GET
- type: http
namespace: ai
baseUri: "https://api.openai.com/v1"
authentication:
type: bearer
token: "$secrets.openai_api_key"
resources:
- name: completions
path: "/chat/completions"
operations:
- name: analyze
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
Aggregates engine telemetry from Azure IoT Hub, correlates with maintenance history from SAP, refreshes the Power BI fleet dashboard, and alerts the fleet management team in Microsoft Teams when health scores drop.
naftiko: "0.5"
info:
label: "Fleet Health Monitoring Dashboard Pipeline"
description: "Aggregates engine telemetry from Azure IoT Hub, correlates with maintenance history from SAP, refreshes the Power BI fleet dashboard, and alerts the fleet management team in Microsoft Teams when health scores drop."
tags:
- fleet-management
- telemetry
- microsoft-azure
- sap
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: fleet-health
port: 8080
tools:
- name: refresh-fleet-health
description: "Given a fleet ID, pull latest telemetry, correlate with SAP maintenance data, refresh Power BI, and alert on anomalies."
inputParameters:
- name: fleet_id
in: body
type: string
description: "The fleet identifier for the airline customer."
- name: threshold_score
in: body
type: number
description: "Minimum health score threshold for alerting."
steps:
- name: get-telemetry
type: call
call: "azure-iot.get-fleet-telemetry"
with:
fleet_id: "{{fleet_id}}"
- name: get-maintenance-history
type: call
call: "sap.get-fleet-maintenance"
with:
fleet_id: "{{fleet_id}}"
- name: refresh-dashboard
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "fleet-health-dashboard"
- name: alert-team
type: call
call: "msteams.post-channel-message"
with:
team_id: "fleet-ops"
channel_id: "health-alerts"
text: "Fleet {{fleet_id}} health update: {{get-telemetry.engine_count}} engines monitored. Avg health score: {{get-telemetry.avg_health_score}}. {{get-maintenance-history.open_work_orders}} open work orders. Dashboard refreshed."
consumes:
- type: http
namespace: azure-iot
baseUri: "https://ge-aerospace-iothub.azure-devices.net"
authentication:
type: bearer
token: "$secrets.azure_iot_token"
resources:
- name: fleet-telemetry
path: "/twins/query"
operations:
- name: get-fleet-telemetry
method: POST
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/ZPM_FLEET_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: fleet-maintenance
path: "/FleetMaintenanceSet"
operations:
- name: get-fleet-maintenance
method: GET
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Checks GitHub repo at GE Aerospace.
naftiko: "0.5"
info:
label: "GitHub Repo Check"
description: "Checks GitHub repo at GE Aerospace."
tags:
- devops
- github
- version-control
capability:
exposes:
- type: mcp
namespace: gh-repo
port: 8080
tools:
- name: get-branch
description: "Check branch at GE Aerospace."
inputParameters:
- name: repo
in: body
type: string
description: "Repo."
- name: branch
in: body
type: string
description: "Branch."
call: "github.get-branch"
with:
repo: "{{repo}}"
branch: "{{branch}}"
outputParameters:
- name: sha
type: string
mapping: "$.commit.sha"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: branches
path: "/repos/org/{{repo}}/branches/{{branch}}"
inputParameters:
- name: repo
in: path
- name: branch
in: path
operations:
- name: get-branch
method: GET
Retrieves GCP Cloud Storage usage metrics for GE Aerospace buckets, returning total size, object count, and egress bandwidth.
naftiko: "0.5"
info:
label: "Google Cloud Platform Storage Usage"
description: "Retrieves GCP Cloud Storage usage metrics for GE Aerospace buckets, returning total size, object count, and egress bandwidth."
tags:
- infrastructure
- cloud-storage
- google-cloud-platform
capability:
exposes:
- type: mcp
namespace: cloud-storage
port: 8080
tools:
- name: get-storage-usage
description: "Retrieve GCP Cloud Storage bucket metrics by bucket name."
inputParameters:
- name: bucket_name
in: body
type: string
description: "The GCS bucket name."
call: "gcs.get-bucket"
with:
bucket: "{{bucket_name}}"
consumes:
- type: http
namespace: gcs
baseUri: "https://storage.googleapis.com/storage/v1"
authentication:
type: bearer
token: "$secrets.gcp_token"
resources:
- name: buckets
path: "/b/{{bucket}}"
inputParameters:
- name: bucket
in: path
operations:
- name: get-bucket
method: GET
Checks Grafana dashboard at GE Aerospace.
naftiko: "0.5"
info:
label: "Grafana Dashboard Status"
description: "Checks Grafana dashboard at GE Aerospace."
tags:
- monitoring
- grafana
- dashboards
capability:
exposes:
- type: mcp
namespace: grafana
port: 8080
tools:
- name: check-dash
description: "Check dashboard at GE Aerospace."
inputParameters:
- name: uid
in: body
type: string
description: "Dashboard UID."
call: "grafana.get-dash"
with:
uid: "{{uid}}"
outputParameters:
- name: title
type: string
mapping: "$.dashboard.title"
consumes:
- type: http
namespace: grafana
baseUri: "https://grafana.geaerospace.com/api"
authentication:
type: bearer
token: "$secrets.grafana_token"
resources:
- name: dashboards
path: "/dashboards/uid/{{uid}}"
inputParameters:
- name: uid
in: path
operations:
- name: get-dash
method: GET
Queries Grafana for operational metrics dashboards covering MRO throughput, engine delivery times, and quality KPIs.
naftiko: "0.5"
info:
label: "Grafana Operational Metrics"
description: "Queries Grafana for operational metrics dashboards covering MRO throughput, engine delivery times, and quality KPIs."
tags:
- operations
- monitoring
- grafana
capability:
exposes:
- type: mcp
namespace: ops-metrics
port: 8080
tools:
- name: get-dashboard-snapshot
description: "Retrieve current metric values from a Grafana dashboard by UID."
inputParameters:
- name: dashboard_uid
in: body
type: string
description: "The Grafana dashboard UID."
call: "grafana.get-dashboard"
with:
uid: "{{dashboard_uid}}"
consumes:
- type: http
namespace: grafana
baseUri: "https://ge-aerospace-grafana.internal/api"
authentication:
type: bearer
token: "$secrets.grafana_token"
resources:
- name: dashboards
path: "/dashboards/uid/{{uid}}"
inputParameters:
- name: uid
in: path
operations:
- name: get-dashboard
method: GET
Retrieves new marketing leads from HubSpot for GE Aerospace's aviation services marketing campaigns, returning contact details, lead source, and engagement score.
naftiko: "0.5"
info:
label: "HubSpot Marketing Lead Capture"
description: "Retrieves new marketing leads from HubSpot for GE Aerospace's aviation services marketing campaigns, returning contact details, lead source, and engagement score."
tags:
- marketing
- lead-management
- hubspot
capability:
exposes:
- type: mcp
namespace: marketing-leads
port: 8080
tools:
- name: get-recent-leads
description: "Retrieve recent leads from HubSpot for a given campaign. Returns contact name, email, company, and lead score."
inputParameters:
- name: campaign_id
in: body
type: string
description: "The HubSpot campaign ID."
call: "hubspot.get-campaign-contacts"
with:
campaign_id: "{{campaign_id}}"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/crm/v3/objects/contacts/search"
operations:
- name: get-campaign-contacts
method: POST
Checks the status of an Informatica data integration job, returning execution status, rows processed, errors, and runtime duration.
naftiko: "0.5"
info:
label: "Informatica Data Pipeline Monitoring"
description: "Checks the status of an Informatica data integration job, returning execution status, rows processed, errors, and runtime duration."
tags:
- data-engineering
- etl
- informatica
capability:
exposes:
- type: mcp
namespace: data-integration
port: 8080
tools:
- name: get-job-status
description: "Look up an Informatica job by task ID. Returns status, rows processed, errors, and duration."
inputParameters:
- name: task_id
in: body
type: string
description: "The Informatica task ID."
call: "informatica.get-activity-log"
with:
task_id: "{{task_id}}"
consumes:
- type: http
namespace: informatica
baseUri: "https://dm-us.informaticacloud.com/saas/api/v2"
authentication:
type: bearer
token: "$secrets.informatica_token"
resources:
- name: activity-log
path: "/activity/activityLog?taskId={{task_id}}"
inputParameters:
- name: task_id
in: query
operations:
- name: get-activity-log
method: GET
Escalates IT incidents at GE Aerospace via ServiceNow, PagerDuty, and Slack.
naftiko: "0.5"
info:
label: "IT Incident Escalation Pipeline"
description: "Escalates IT incidents at GE Aerospace via ServiceNow, PagerDuty, and Slack."
tags:
- incident-management
- servicenow
- pagerduty
- slack
capability:
exposes:
- type: mcp
namespace: incident-escalation
port: 8080
tools:
- name: escalate-incident
description: "Escalate incidents at GE Aerospace."
inputParameters:
- name: incident_id
in: body
type: string
description: "Incident ID."
- name: severity
in: body
type: string
description: "Severity."
steps:
- name: get-incident
type: call
call: "servicenow.get-incident"
with:
incident_id: "{{incident_id}}"
- name: page
type: call
call: "pagerduty.create-incident"
with:
title: "{{get-incident.description}}"
urgency: "{{severity}}"
- name: channel
type: call
call: "slack.create-channel"
with:
name: "inc-{{incident_id}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#inc-{{incident_id}}"
text: "P{{severity}}: {{get-incident.description}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://geaerospace.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident/{{incident_id}}"
inputParameters:
- name: incident_id
in: path
operations:
- name: get-incident
method: GET
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: channels
path: "/conversations.create"
operations:
- name: create-channel
method: POST
Retrieves a Jira engineering task by issue key, returning summary, status, assignee, priority, and linked requirements.
naftiko: "0.5"
info:
label: "Jira Engineering Task Lookup"
description: "Retrieves a Jira engineering task by issue key, returning summary, status, assignee, priority, and linked requirements."
tags:
- engineering
- project-management
- jira
capability:
exposes:
- type: mcp
namespace: eng-tasks
port: 8080
tools:
- name: get-engineering-task
description: "Look up a Jira issue by key. Returns summary, status, assignee, and priority."
inputParameters:
- name: issue_key
in: body
type: string
description: "The Jira issue key (e.g. ENG-1234)."
call: "jira.get-issue"
with:
issue_key: "{{issue_key}}"
consumes:
- type: http
namespace: jira
baseUri: "https://geaerospace.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue/{{issue_key}}"
inputParameters:
- name: issue_key
in: path
operations:
- name: get-issue
method: GET
Retrieves sprint progress at GE Aerospace.
naftiko: "0.5"
info:
label: "Jira Sprint Progress Lookup"
description: "Retrieves sprint progress at GE Aerospace."
tags:
- project-management
- jira
- agile
capability:
exposes:
- type: mcp
namespace: jira-sprint
port: 8080
tools:
- name: get-sprint
description: "Look up sprint at GE Aerospace."
inputParameters:
- name: project_key
in: body
type: string
description: "Project key."
call: "jira.get-sprints"
with:
project: "{{project_key}}"
outputParameters:
- name: name
type: string
mapping: "$.values[0].name"
- name: state
type: string
mapping: "$.values[0].state"
consumes:
- type: http
namespace: jira
baseUri: "https://geaerospace.com.atlassian.net/rest/agile/1.0"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: sprints
path: "/board/1/sprint"
operations:
- name: get-sprints
method: GET
Maintains KB at GE Aerospace by finding stale articles and notifying owners.
naftiko: "0.5"
info:
label: "Knowledge Base Maintenance Pipeline"
description: "Maintains KB at GE Aerospace by finding stale articles and notifying owners."
tags:
- knowledge-management
- confluence
- maintenance
capability:
exposes:
- type: mcp
namespace: kb-maint
port: 8080
tools:
- name: maintain-kb
description: "Maintain KB at GE Aerospace."
inputParameters:
- name: space
in: body
type: string
description: "Confluence space."
- name: stale_days
in: body
type: number
description: "Days threshold."
steps:
- name: find
type: call
call: "confluence.search-stale"
with:
space: "{{space}}"
days: "{{stale_days}}"
- name: notify
type: call
call: "email.batch"
with:
to: "{{find.owners}}"
subject: "KB review needed"
- name: flag
type: call
call: "confluence.add-label"
with:
pages: "{{find.ids}}"
label: "needs-review"
- name: report
type: call
call: "slack.post-message"
with:
channel: "#kb"
text: "KB: {{find.count}} stale articles"
consumes:
- type: http
namespace: confluence
baseUri: "https://geaerospace.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: content
path: "/content/search"
operations:
- name: search-stale
method: GET
- type: http
namespace: email
baseUri: "https://email.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: batch
path: "/send-batch"
operations:
- name: batch
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Generates KPI digest at GE Aerospace from Snowflake, Oracle, Power BI, and email.
naftiko: "0.5"
info:
label: "Weekly KPI Digest Pipeline"
description: "Generates KPI digest at GE Aerospace from Snowflake, Oracle, Power BI, and email."
tags:
- reporting
- kpi
- snowflake
- executive
capability:
exposes:
- type: mcp
namespace: kpi-digest
port: 8080
tools:
- name: gen-digest
description: "Generate KPI digest at GE Aerospace."
inputParameters:
- name: week
in: body
type: string
description: "Week ending."
- name: dist
in: body
type: string
description: "Distribution list."
steps:
- name: ops
type: call
call: "snowflake.query"
with:
query: "SELECT * FROM kpis WHERE w='{{week}}'"
- name: fin
type: call
call: "oracle.get-summary"
with:
period: "{{week}}"
- name: refresh
type: call
call: "power-bi.refresh"
with:
dataset: "exec_kpis"
- name: send
type: call
call: "email.send"
with:
to: "{{dist}}"
subject: "KPIs - {{week}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://geaerospace.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: oracle
baseUri: "https://oracle.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: fin
path: "/summary"
operations:
- name: get-summary
method: GET
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
- type: http
namespace: email
baseUri: "https://email.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Checks K8s pod health at GE Aerospace.
naftiko: "0.5"
info:
label: "K8s Pod Health"
description: "Checks K8s pod health at GE Aerospace."
tags:
- containers
- kubernetes
- infrastructure
capability:
exposes:
- type: mcp
namespace: k8s-pod
port: 8080
tools:
- name: check-pod
description: "Check pod at GE Aerospace."
inputParameters:
- name: namespace
in: body
type: string
description: "Namespace."
- name: pod
in: body
type: string
description: "Pod name."
call: "k8s.get-pod"
with:
namespace: "{{namespace}}"
pod: "{{pod}}"
outputParameters:
- name: phase
type: string
mapping: "$.status.phase"
consumes:
- type: http
namespace: k8s
baseUri: "https://k8s.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.k8s_token"
resources:
- name: pods
path: "/namespaces/{{namespace}}/pods/{{pod}}"
inputParameters:
- name: namespace
in: path
- name: pod
in: path
operations:
- name: get-pod
method: GET
Checks license compliance at GE Aerospace via scanning, entitlements, and procurement.
naftiko: "0.5"
info:
label: "License Compliance Pipeline"
description: "Checks license compliance at GE Aerospace via scanning, entitlements, and procurement."
tags:
- compliance
- licensing
- procurement
capability:
exposes:
- type: mcp
namespace: license-comp
port: 8080
tools:
- name: check-licenses
description: "Check license compliance at GE Aerospace."
inputParameters:
- name: software
in: body
type: string
description: "Software."
- name: vendor
in: body
type: string
description: "Vendor."
steps:
- name: scan
type: call
call: "assets.installations"
with:
sw: "{{software}}"
- name: entitlements
type: call
call: "licenses.get"
with:
sw: "{{software}}"
- name: flag
type: call
call: "compliance.flag"
with:
installed: "{{scan.count}}"
entitled: "{{entitlements.count}}"
- name: procure
type: call
call: "servicenow.create-request"
with:
type: "license"
sw: "{{software}}"
consumes:
- type: http
namespace: assets
baseUri: "https://assets.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.asset_token"
resources:
- name: installations
path: "/installations"
operations:
- name: installations
method: GET
- type: http
namespace: licenses
baseUri: "https://licenses.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.license_token"
resources:
- name: ent
path: "/entitlements"
operations:
- name: get
method: GET
- type: http
namespace: compliance
baseUri: "https://compliance.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: overages
path: "/flag"
operations:
- name: flag
method: POST
- type: http
namespace: servicenow
baseUri: "https://geaerospace.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
Retrieves LinkedIn company page analytics for GE Aerospace including follower growth, post engagement, and visitor demographics.
naftiko: "0.5"
info:
label: "LinkedIn Company Page Analytics"
description: "Retrieves LinkedIn company page analytics for GE Aerospace including follower growth, post engagement, and visitor demographics."
tags:
- marketing
- social-media
- linkedin
capability:
exposes:
- type: mcp
namespace: social-analytics
port: 8080
tools:
- name: get-page-analytics
description: "Retrieve LinkedIn company page analytics by organization URN."
inputParameters:
- name: organization_urn
in: body
type: string
description: "The LinkedIn organization URN."
call: "linkedin.get-analytics"
with:
org: "{{organization_urn}}"
consumes:
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: analytics
path: "/organizationalEntityShareStatistics?q=organizationalEntity&organizationalEntity={{org}}"
inputParameters:
- name: org
in: query
operations:
- name: get-analytics
method: GET
Checks the status of a MATLAB simulation job running on GE Aerospace compute infrastructure, returning completion percentage, elapsed time, and output artifacts.
naftiko: "0.5"
info:
label: "MATLAB Simulation Job Status"
description: "Checks the status of a MATLAB simulation job running on GE Aerospace compute infrastructure, returning completion percentage, elapsed time, and output artifacts."
tags:
- engineering
- simulation
- matlab
capability:
exposes:
- type: mcp
namespace: simulation
port: 8080
tools:
- name: get-simulation-status
description: "Look up a MATLAB simulation job by job ID."
inputParameters:
- name: job_id
in: body
type: string
description: "The MATLAB simulation job ID."
call: "matlab.get-job"
with:
job_id: "{{job_id}}"
consumes:
- type: http
namespace: matlab
baseUri: "https://ge-aerospace-matlab.internal/api/v1"
authentication:
type: bearer
token: "$secrets.matlab_token"
resources:
- name: jobs
path: "/jobs/{{job_id}}"
inputParameters:
- name: job_id
in: path
operations:
- name: get-job
method: GET
Sends a formatted notification to a Microsoft Teams channel for operational alerts, shift changes, or program updates across GE Aerospace teams.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notification"
description: "Sends a formatted notification to a Microsoft Teams channel for operational alerts, shift changes, or program updates across GE Aerospace teams."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: notifications
port: 8080
tools:
- name: send-channel-alert
description: "Post a notification message to a Microsoft Teams channel."
inputParameters:
- name: team_id
in: body
type: string
description: "The Microsoft Teams team ID."
- name: channel_id
in: body
type: string
description: "The Microsoft Teams channel ID."
- name: message
in: body
type: string
description: "The notification message text."
call: "msteams.post-channel-message"
with:
team_id: "{{team_id}}"
channel_id: "{{channel_id}}"
text: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Generates monthly security reports at GE Aerospace from Splunk and Qualys.
naftiko: "0.5"
info:
label: "Monthly Security Report Pipeline"
description: "Generates monthly security reports at GE Aerospace from Splunk and Qualys."
tags:
- security
- reporting
- splunk
- compliance
capability:
exposes:
- type: mcp
namespace: sec-report
port: 8080
tools:
- name: gen-sec-report
description: "Generate security report at GE Aerospace."
inputParameters:
- name: month
in: body
type: string
description: "Month."
steps:
- name: splunk
type: call
call: "splunk.search"
with:
query: "index=security earliest=-30d"
- name: scans
type: call
call: "qualys.results"
with:
month: "{{month}}"
- name: compile
type: call
call: "analytics.compile-security"
with:
events: "{{splunk.count}}"
vulns: "{{scans.critical}}"
- name: send
type: call
call: "email.send"
with:
to: "ciso@co.com"
subject: "Security - {{month}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://splunk.geaerospace.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search
path: "/search/jobs"
operations:
- name: search
method: POST
- type: http
namespace: qualys
baseUri: "https://qualysapi.qualys.com/api/v2"
authentication:
type: bearer
token: "$secrets.qualys_token"
resources:
- name: results
path: "/fo/scan/results"
operations:
- name: results
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: security
path: "/compile"
operations:
- name: compile-security
method: POST
- type: http
namespace: email
baseUri: "https://email.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
When a spare part stock drops below reorder point in SAP, creates a purchase requisition, opens a ServiceNow logistics ticket, and alerts the supply chain team via Microsoft Teams.
naftiko: "0.5"
info:
label: "MRO Parts Reorder Pipeline"
description: "When a spare part stock drops below reorder point in SAP, creates a purchase requisition, opens a ServiceNow logistics ticket, and alerts the supply chain team via Microsoft Teams."
tags:
- mro
- supply-chain
- sap
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: parts-reorder
port: 8080
tools:
- name: reorder-spare-part
description: "Given a material number and plant, check stock level, create a PR if below threshold, open a logistics ticket, and notify the supply chain team."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
- name: plant_code
in: body
type: string
description: "The MRO plant code."
- name: quantity
in: body
type: number
description: "Quantity to reorder."
steps:
- name: check-stock
type: call
call: "sap.get-material-stock"
with:
material_number: "{{material_number}}"
plant: "{{plant_code}}"
- name: create-pr
type: call
call: "sap.create-purchase-requisition"
with:
material: "{{material_number}}"
plant: "{{plant_code}}"
quantity: "{{quantity}}"
- name: open-logistics-ticket
type: call
call: "servicenow.create-task"
with:
short_description: "Parts reorder: {{material_number}} at {{plant_code}}"
assigned_group: "Supply_Chain_Logistics"
description: "Reorder {{quantity}} units of material {{material_number}} for plant {{plant_code}}. Current stock: {{check-stock.on_hand}}. PR: {{create-pr.requisition_number}}."
- name: notify-supply-chain
type: call
call: "msteams.post-channel-message"
with:
team_id: "supply-chain"
channel_id: "parts-reorder"
text: "Parts reorder initiated: {{material_number}} x{{quantity}} at {{plant_code}}. Stock was {{check-stock.on_hand}}. PR: {{create-pr.requisition_number}}. ServiceNow: {{open-logistics-ticket.number}}."
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: material-stock
path: "/A_MatlStkInAcctMod(Material='{{material_number}}',Plant='{{plant}}')"
inputParameters:
- name: material_number
in: path
- name: plant
in: path
operations:
- name: get-material-stock
method: GET
- name: purchase-requisitions
path: "/A_PurchaseRequisition"
operations:
- name: create-purchase-requisition
method: POST
- type: http
namespace: servicenow
baseUri: "https://geaerospace.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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Aggregates MRO shop visit turnaround data from SAP, correlates with customer SLA targets from Salesforce, generates a performance report in Confluence, refreshes the Power BI dashboard, and notifies operations leadership.
naftiko: "0.5"
info:
label: "MRO Turnaround Time Reporting Pipeline"
description: "Aggregates MRO shop visit turnaround data from SAP, correlates with customer SLA targets from Salesforce, generates a performance report in Confluence, refreshes the Power BI dashboard, and notifies operations leadership."
tags:
- mro
- reporting
- sap
- salesforce
- confluence
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: tat-reporting
port: 8080
tools:
- name: generate-tat-report
description: "Given a date range and shop code, aggregate TAT metrics, check SLA compliance, generate report, refresh dashboard, and notify leadership."
inputParameters:
- name: shop_code
in: body
type: string
description: "The MRO shop facility code."
- name: start_date
in: body
type: string
description: "Report start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "Report end date in YYYY-MM-DD format."
steps:
- name: get-tat-data
type: call
call: "sap.get-shop-tat"
with:
plant: "{{shop_code}}"
date_from: "{{start_date}}"
date_to: "{{end_date}}"
- name: get-sla-targets
type: call
call: "salesforce.query-sla"
with:
shop_code: "{{shop_code}}"
- name: create-report
type: call
call: "confluence.create-page"
with:
space_key: "MROOPS"
title: "TAT Report: {{shop_code}} ({{start_date}} to {{end_date}})"
body: "Shop: {{shop_code}}. Avg TAT: {{get-tat-data.avg_tat_days}} days. SLA target: {{get-sla-targets.target_days}} days. Compliance: {{get-tat-data.sla_compliance_pct}}%. Engines completed: {{get-tat-data.engines_completed}}."
- name: refresh-dashboard
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "mro-tat-dashboard"
- name: notify-leadership
type: call
call: "msteams.post-channel-message"
with:
team_id: "operations-leadership"
channel_id: "mro-performance"
text: "TAT Report for {{shop_code}} ({{start_date}} to {{end_date}}): Avg TAT: {{get-tat-data.avg_tat_days}}d. SLA compliance: {{get-tat-data.sla_compliance_pct}}%. Engines: {{get-tat-data.engines_completed}}. Report: {{create-report.url}}."
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/ZPM_TAT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: tat-data
path: "/TATDataSet"
operations:
- name: get-shop-tat
method: GET
- type: http
namespace: salesforce
baseUri: "https://geaerospace.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: sla
path: "/query"
operations:
- name: query-sla
method: GET
- type: http
namespace: confluence
baseUri: "https://geaerospace.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Onboards employees at GE Aerospace with Okta, ServiceNow, Slack, and calendar.
naftiko: "0.5"
info:
label: "New Employee IT Onboarding Pipeline"
description: "Onboards employees at GE Aerospace with Okta, ServiceNow, Slack, and calendar."
tags:
- hr
- onboarding
- okta
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: it-onboarding
port: 8080
tools:
- name: onboard-employee
description: "Onboard employees at GE Aerospace."
inputParameters:
- name: name
in: body
type: string
description: "Name."
- name: dept
in: body
type: string
description: "Department."
- name: start
in: body
type: string
description: "Start date."
steps:
- name: okta
type: call
call: "okta.create-user"
with:
name: "{{name}}"
department: "{{dept}}"
- name: equip
type: call
call: "servicenow.create-request"
with:
type: "new_hire"
for: "{{name}}"
- name: slack
type: call
call: "slack.invite"
with:
email: "{{okta.email}}"
- name: orient
type: call
call: "calendar.create-event"
with:
title: "Orientation - {{name}}"
date: "{{start}}"
consumes:
- type: http
namespace: okta
baseUri: "https://geaerospace.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users"
operations:
- name: create-user
method: POST
- type: http
namespace: servicenow
baseUri: "https://geaerospace.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: users
path: "/users.admin.invite"
operations:
- name: invite
method: POST
- type: http
namespace: calendar
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: events
path: "/users/hr/events"
operations:
- name: create-event
method: POST
Checks New Relic APM at GE Aerospace.
naftiko: "0.5"
info:
label: "New Relic APM Check"
description: "Checks New Relic APM at GE Aerospace."
tags:
- monitoring
- new-relic
- apm
capability:
exposes:
- type: mcp
namespace: nr-apm
port: 8080
tools:
- name: check-apm
description: "Check APM at GE Aerospace."
inputParameters:
- name: app_id
in: body
type: string
description: "App ID."
call: "newrelic.get-app"
with:
app_id: "{{app_id}}"
outputParameters:
- name: health
type: string
mapping: "$.application.health_status"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: bearer
token: "$secrets.new_relic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-app
method: GET
Queries New Relic for application performance metrics including response time, error rate, and throughput for GE Aerospace digital services.
naftiko: "0.5"
info:
label: "New Relic Application Performance Check"
description: "Queries New Relic for application performance metrics including response time, error rate, and throughput for GE Aerospace digital services."
tags:
- infrastructure
- apm
- new-relic
capability:
exposes:
- type: mcp
namespace: apm
port: 8080
tools:
- name: get-app-performance
description: "Retrieve application performance metrics from New Relic by application ID."
inputParameters:
- name: app_id
in: body
type: string
description: "The New Relic application ID."
call: "newrelic.get-application"
with:
app_id: "{{app_id}}"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
name: "Api-Key"
in: header
value: "$secrets.newrelic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-application
method: GET
Checks Okta user at GE Aerospace.
naftiko: "0.5"
info:
label: "Okta User Check"
description: "Checks Okta user at GE Aerospace."
tags:
- identity
- okta
- access-management
capability:
exposes:
- type: mcp
namespace: okta-user
port: 8080
tools:
- name: check-user
description: "Check user at GE Aerospace."
inputParameters:
- name: email
in: body
type: string
description: "Email."
call: "okta.get-user"
with:
email: "{{email}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: okta
baseUri: "https://geaerospace.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users/{{email}}"
inputParameters:
- name: email
in: path
operations:
- name: get-user
method: GET
Checks the status of an Oracle Integration Cloud flow execution, returning run state, start time, duration, and error details.
naftiko: "0.5"
info:
label: "Oracle Integration Cloud Flow Status"
description: "Checks the status of an Oracle Integration Cloud flow execution, returning run state, start time, duration, and error details."
tags:
- integration
- oracle-integration
capability:
exposes:
- type: mcp
namespace: integration
port: 8080
tools:
- name: get-flow-status
description: "Look up an Oracle Integration flow run by ID."
inputParameters:
- name: flow_id
in: body
type: string
description: "The Oracle Integration flow ID."
- name: run_id
in: body
type: string
description: "The flow run ID."
call: "oic.get-run"
with:
flow_id: "{{flow_id}}"
run_id: "{{run_id}}"
consumes:
- type: http
namespace: oic
baseUri: "https://ge-aerospace.integration.ocp.oraclecloud.com/ic/api/integration/v1"
authentication:
type: bearer
token: "$secrets.oic_token"
resources:
- name: runs
path: "/integrations/{{flow_id}}/runs/{{run_id}}"
inputParameters:
- name: flow_id
in: path
- name: run_id
in: path
operations:
- name: get-run
method: GET
Checks on-call at GE Aerospace.
naftiko: "0.5"
info:
label: "PagerDuty On-Call Check"
description: "Checks on-call at GE Aerospace."
tags:
- incident-management
- pagerduty
- on-call
capability:
exposes:
- type: mcp
namespace: pd-oncall
port: 8080
tools:
- name: get-oncall
description: "Check on-call at GE Aerospace."
inputParameters:
- name: schedule_id
in: body
type: string
description: "Schedule ID."
call: "pagerduty.get-oncall"
with:
schedule_id: "{{schedule_id}}"
outputParameters:
- name: user
type: string
mapping: "$.oncalls[0].user.summary"
consumes:
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: oncalls
path: "/oncalls"
operations:
- name: get-oncall
method: GET
Creates postmortems at GE Aerospace.
naftiko: "0.5"
info:
label: "Incident Postmortem Pipeline"
description: "Creates postmortems at GE Aerospace."
tags:
- incident-management
- postmortem
- pagerduty
- confluence
capability:
exposes:
- type: mcp
namespace: postmortem
port: 8080
tools:
- name: create-postmortem
description: "Create postmortem at GE Aerospace."
inputParameters:
- name: incident_id
in: body
type: string
description: "Incident ID."
steps:
- name: timeline
type: call
call: "pagerduty.get-log"
with:
id: "{{incident_id}}"
- name: metrics
type: call
call: "datadog.get-metrics"
with:
incident: "{{incident_id}}"
- name: doc
type: call
call: "confluence.create-page"
with:
title: "Postmortem: {{timeline.title}}"
body: "Impact: {{metrics.impact}}"
- name: review
type: call
call: "calendar.create-event"
with:
title: "Review: {{timeline.title}}"
consumes:
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: incidents
path: "/incidents/{{id}}/log_entries"
inputParameters:
- name: id
in: path
operations:
- name: get-log
method: GET
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: incidents
path: "/incidents"
operations:
- name: get-metrics
method: GET
- type: http
namespace: confluence
baseUri: "https://geaerospace.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: calendar
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: events
path: "/users/sre/events"
operations:
- name: create-event
method: POST
Triggers a Power BI dataset refresh for fleet analytics dashboards used by GE Aerospace operations and returns the refresh status.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresh"
description: "Triggers a Power BI dataset refresh for fleet analytics dashboards used by GE Aerospace operations and returns the refresh status."
tags:
- analytics
- reporting
- power-bi
capability:
exposes:
- type: mcp
namespace: bi-reporting
port: 8080
tools:
- name: refresh-dashboard
description: "Trigger a Power BI dataset refresh by dataset ID. Returns refresh request status."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Checks Power BI refresh at GE Aerospace.
naftiko: "0.5"
info:
label: "Power BI Refresh Check"
description: "Checks Power BI refresh at GE Aerospace."
tags:
- analytics
- power-bi
- dashboards
capability:
exposes:
- type: mcp
namespace: pbi-refresh
port: 8080
tools:
- name: check-refresh
description: "Check refresh at GE Aerospace."
inputParameters:
- name: dataset_id
in: body
type: string
description: "Dataset ID."
call: "power-bi.get-refresh"
with:
dataset_id: "{{dataset_id}}"
outputParameters:
- name: status
type: string
mapping: "$.value[0].status"
consumes:
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: get-refresh
method: GET
Processes predictive maintenance alerts from Azure Machine Learning, creates a preventive work order in SAP, notifies the airline customer via Salesforce case, and alerts the MRO scheduling team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Predictive Maintenance Alert Pipeline"
description: "Processes predictive maintenance alerts from Azure Machine Learning, creates a preventive work order in SAP, notifies the airline customer via Salesforce case, and alerts the MRO scheduling team in Microsoft Teams."
tags:
- predictive-maintenance
- machine-learning
- azure-machine-learning
- sap
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: predictive-maint
port: 8080
tools:
- name: process-prediction-alert
description: "Given an engine serial number and prediction details, create preventive work order, customer case, and notify scheduling."
inputParameters:
- name: serial_number
in: body
type: string
description: "The engine serial number."
- name: failure_mode
in: body
type: string
description: "Predicted failure mode."
- name: confidence
in: body
type: number
description: "Prediction confidence score (0-1)."
- name: recommended_action
in: body
type: string
description: "Recommended maintenance action."
steps:
- name: create-preventive-wo
type: call
call: "sap.create-work-order"
with:
equipment: "{{serial_number}}"
order_type: "preventive"
description: "Predictive alert: {{failure_mode}} (confidence: {{confidence}}). Recommended: {{recommended_action}}."
- name: create-customer-case
type: call
call: "salesforce.create-case"
with:
subject: "Predictive maintenance: Engine {{serial_number}} — {{failure_mode}}"
description: "Our predictive analytics identified potential {{failure_mode}} on engine {{serial_number}}. Confidence: {{confidence}}. Recommended action: {{recommended_action}}. Work order: {{create-preventive-wo.order_number}}."
type: "Maintenance Advisory"
- name: notify-scheduling
type: call
call: "msteams.post-channel-message"
with:
team_id: "mro-scheduling"
channel_id: "predictive-alerts"
text: "Predictive alert: Engine {{serial_number}}, {{failure_mode}} ({{confidence}} confidence). WO: {{create-preventive-wo.order_number}}. Customer case: {{create-customer-case.CaseNumber}}. Action: {{recommended_action}}."
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/ZPM_WORKORDER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: work-orders
path: "/WorkOrderSet"
operations:
- name: create-work-order
method: POST
- type: http
namespace: salesforce
baseUri: "https://geaerospace.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
When a SAP purchase requisition exceeds the approval threshold, retrieves the requisition details, resolves the approver from Workday, and notifies both parties via Microsoft Teams.
naftiko: "0.5"
info:
label: "Procurement Requisition Approval Pipeline"
description: "When a SAP purchase requisition exceeds the approval threshold, retrieves the requisition details, resolves the approver from Workday, and notifies both parties via Microsoft Teams."
tags:
- procurement
- sap
- workday
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: route-requisition-approval
description: "Given a requisition number and requestor ID, check the amount, resolve the approver, and send notifications."
inputParameters:
- name: requisition_number
in: body
type: string
description: "The SAP purchase requisition number."
- name: requestor_id
in: body
type: string
description: "The Workday worker ID of the requestor."
steps:
- name: get-requisition
type: call
call: "sap.get-purchase-requisition"
with:
requisition_number: "{{requisition_number}}"
- name: get-requestor
type: call
call: "workday.get-worker"
with:
worker_id: "{{requestor_id}}"
- name: get-approver
type: call
call: "workday.get-worker"
with:
worker_id: "{{get-requestor.manager_id}}"
- name: notify-approver
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-approver.work_email}}"
text: "Approval Required: PR {{requisition_number}} from {{get-requestor.full_name}} for {{get-requisition.total_value}} {{get-requisition.currency}}. Vendor: {{get-requisition.vendor_name}}."
- name: notify-requestor
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-requestor.work_email}}"
text: "Your requisition {{requisition_number}} ({{get-requisition.total_value}} {{get-requisition.currency}}) has been routed to {{get-approver.full_name}} for approval."
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-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-requisitions
path: "/A_PurchaseRequisition('{{requisition_number}}')"
inputParameters:
- name: requisition_number
in: path
operations:
- name: get-purchase-requisition
method: GET
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: 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
Generates compliance reports at GE Aerospace from Snowflake, Power BI, and email.
naftiko: "0.5"
info:
label: "Quarterly Compliance Report Pipeline"
description: "Generates compliance reports at GE Aerospace from Snowflake, Power BI, and email."
tags:
- compliance
- reporting
- snowflake
- power-bi
capability:
exposes:
- type: mcp
namespace: compliance-rpt
port: 8080
tools:
- name: gen-report
description: "Generate compliance reports at GE Aerospace."
inputParameters:
- name: quarter
in: body
type: string
description: "Quarter."
- name: type
in: body
type: string
description: "Type."
steps:
- name: data
type: call
call: "snowflake.query"
with:
query: "SELECT * FROM compliance WHERE q='{{quarter}}'"
- name: metrics
type: call
call: "analytics.compute"
with:
data: "{{data.results}}"
- name: refresh
type: call
call: "power-bi.refresh"
with:
dataset: "compliance"
- name: send
type: call
call: "email.send"
with:
to: "compliance@co.com"
subject: "{{type}} - {{quarter}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://geaerospace.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: analytics
baseUri: "https://analytics.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: metrics
path: "/compute"
operations:
- name: compute
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
- type: http
namespace: email
baseUri: "https://email.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Checks Redis at GE Aerospace.
naftiko: "0.5"
info:
label: "Redis Cache Status"
description: "Checks Redis at GE Aerospace."
tags:
- caching
- redis
- infrastructure
capability:
exposes:
- type: mcp
namespace: redis
port: 8080
tools:
- name: check-cache
description: "Check Redis at GE Aerospace."
inputParameters:
- name: instance
in: body
type: string
description: "Instance ID."
call: "redis.get-info"
with:
instance: "{{instance}}"
outputParameters:
- name: memory
type: string
mapping: "$.used_memory_human"
consumes:
- type: http
namespace: redis
baseUri: "https://redis.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.redis_token"
resources:
- name: instances
path: "/instances/{{instance}}/info"
inputParameters:
- name: instance
in: path
operations:
- name: get-info
method: GET
Checks release readiness at GE Aerospace.
naftiko: "0.5"
info:
label: "Release Readiness Pipeline"
description: "Checks release readiness at GE Aerospace."
tags:
- release-management
- devops
- quality
capability:
exposes:
- type: mcp
namespace: release-ready
port: 8080
tools:
- name: check-release
description: "Check release at GE Aerospace."
inputParameters:
- name: release_id
in: body
type: string
description: "Release ID."
- name: project
in: body
type: string
description: "Project."
steps:
- name: tests
type: call
call: "azdo.get-tests"
with:
project: "{{project}}"
release: "{{release_id}}"
- name: quality
type: call
call: "sonarqube.get-gate"
with:
project: "{{project}}"
- name: security
type: call
call: "security.get-scan"
with:
project: "{{project}}"
- name: doc
type: call
call: "confluence.create-page"
with:
title: "Release - {{release_id}}"
body: "Tests: {{tests.pass_rate}}% Quality: {{quality.status}}"
consumes:
- type: http
namespace: azdo
baseUri: "https://dev.azure.com/geaerospace.com"
authentication:
type: bearer
token: "$secrets.azdo_token"
resources:
- name: tests
path: "/{{project}}/_apis/test/runs"
inputParameters:
- name: project
in: path
operations:
- name: get-tests
method: GET
- type: http
namespace: sonarqube
baseUri: "https://sonarqube.geaerospace.com/api"
authentication:
type: bearer
token: "$secrets.sonarqube_token"
resources:
- name: quality
path: "/qualitygates/project_status"
operations:
- name: get-gate
method: GET
- type: http
namespace: security
baseUri: "https://security.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.security_token"
resources:
- name: scans
path: "/results"
operations:
- name: get-scan
method: GET
- type: http
namespace: confluence
baseUri: "https://geaerospace.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Retrieves an airline customer account from Salesforce by account ID, returning fleet size, active engine contracts, and account manager details.
naftiko: "0.5"
info:
label: "Salesforce Customer Account Lookup"
description: "Retrieves an airline customer account from Salesforce by account ID, returning fleet size, active engine contracts, and account manager details."
tags:
- sales
- crm
- salesforce
capability:
exposes:
- type: mcp
namespace: crm
port: 8080
tools:
- name: get-customer-account
description: "Look up an airline customer account in Salesforce. Returns fleet details, active contracts, and account owner."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce account ID."
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://geaerospace.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
Queries Salesforce for open opportunities in a given stage, returning deal count, total value, expected close dates, and account names for sales reviews.
naftiko: "0.5"
info:
label: "Salesforce Opportunity Pipeline Report"
description: "Queries Salesforce for open opportunities in a given stage, returning deal count, total value, expected close dates, and account names for sales reviews."
tags:
- sales
- pipeline
- salesforce
capability:
exposes:
- type: mcp
namespace: sales-pipeline
port: 8080
tools:
- name: get-pipeline-by-stage
description: "Query Salesforce opportunities by stage. Returns deal count, total value, and top opportunities."
inputParameters:
- name: stage
in: body
type: string
description: "The opportunity stage (e.g. Negotiation, Proposal)."
call: "salesforce.query-opportunities"
with:
query: "SELECT Id,Name,Amount,CloseDate,Account.Name FROM Opportunity WHERE StageName='{{stage}}' AND IsClosed=false"
consumes:
- type: http
namespace: salesforce
baseUri: "https://geaerospace.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: query
path: "/query"
operations:
- name: query-opportunities
method: GET
Retrieves a submitted travel expense report from SAP Concur by report ID, returning total amount, expense entries, approval status, and submitter details.
naftiko: "0.5"
info:
label: "SAP Concur Travel Expense Lookup"
description: "Retrieves a submitted travel expense report from SAP Concur by report ID, returning total amount, expense entries, approval status, and submitter details."
tags:
- finance
- travel
- sap-concur
capability:
exposes:
- type: mcp
namespace: travel-expense
port: 8080
tools:
- name: get-expense-report
description: "Look up a SAP Concur expense report by ID. Returns total, status, entries, and submitter."
inputParameters:
- name: report_id
in: body
type: string
description: "The SAP Concur expense report ID."
call: "concur.get-report"
with:
report_id: "{{report_id}}"
consumes:
- type: http
namespace: concur
baseUri: "https://us2.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-report
method: GET
Checks SAP PO at GE Aerospace.
naftiko: "0.5"
info:
label: "SAP PO Check"
description: "Checks SAP PO at GE Aerospace."
tags:
- procurement
- sap
- purchase-orders
capability:
exposes:
- type: mcp
namespace: sap-po
port: 8080
tools:
- name: get-po
description: "Check PO at GE Aerospace."
inputParameters:
- name: po_number
in: body
type: string
description: "PO number."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: vendor
type: string
mapping: "$.order.vendor"
- name: status
type: string
mapping: "$.order.status"
consumes:
- type: http
namespace: sap
baseUri: "https://sap.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: purchase-orders
path: "/purchase-orders/{{po_number}}"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
Remediates vulnerabilities at GE Aerospace via scanning, Jira, and Slack.
naftiko: "0.5"
info:
label: "Security Vulnerability Remediation Pipeline"
description: "Remediates vulnerabilities at GE Aerospace via scanning, Jira, and Slack."
tags:
- security
- vulnerability-management
- jira
capability:
exposes:
- type: mcp
namespace: vuln-fix
port: 8080
tools:
- name: remediate
description: "Fix vulnerabilities at GE Aerospace."
inputParameters:
- name: target
in: body
type: string
description: "Target."
- name: policy
in: body
type: string
description: "Policy."
steps:
- name: scan
type: call
call: "qualys.scan"
with:
target: "{{target}}"
policy: "{{policy}}"
- name: prioritize
type: call
call: "security.prioritize"
with:
scan: "{{scan.id}}"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "SEC"
summary: "Vulns: {{prioritize.critical}} critical"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#security"
text: "Scan: {{prioritize.critical}} critical"
consumes:
- type: http
namespace: qualys
baseUri: "https://qualysapi.qualys.com/api/v2"
authentication:
type: bearer
token: "$secrets.qualys_token"
resources:
- name: scans
path: "/fo/scan"
operations:
- name: scan
method: POST
- type: http
namespace: security
baseUri: "https://security.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.security_token"
resources:
- name: vulns
path: "/prioritize"
operations:
- name: prioritize
method: POST
- type: http
namespace: jira
baseUri: "https://geaerospace.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Checks IT incident in ServiceNow for GE Aerospace.
naftiko: "0.5"
info:
label: "ServiceNow Incident Detail Check"
description: "Checks IT incident in ServiceNow for GE Aerospace."
tags:
- it-service
- servicenow
- incident-management
capability:
exposes:
- type: mcp
namespace: snow-incident
port: 8080
tools:
- name: check-incident
description: "Check incident at GE Aerospace."
inputParameters:
- name: incident_number
in: body
type: string
description: "Incident number."
call: "servicenow.get-incident"
with:
number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result.state"
- name: priority
type: string
mapping: "$.result.priority"
consumes:
- type: http
namespace: servicenow
baseUri: "https://geaerospace.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: get-incident
method: GET
Looks up a ServiceNow IT incident by number, returning state, priority, assigned group, and resolution notes for IT service management.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Looks up a ServiceNow IT incident by number, returning state, priority, assigned group, and resolution notes for IT service management."
tags:
- it-operations
- servicenow
capability:
exposes:
- type: mcp
namespace: it-service
port: 8080
tools:
- name: get-incident
description: "Retrieve a ServiceNow incident by number. Returns state, priority, assigned group, and description."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://geaerospace.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: query
operations:
- name: get-incident
method: GET
Retrieves engineering specification documents from SharePoint by part number or specification ID, returning document metadata and download links.
naftiko: "0.5"
info:
label: "SharePoint Engineering Specifications"
description: "Retrieves engineering specification documents from SharePoint by part number or specification ID, returning document metadata and download links."
tags:
- engineering
- documentation
- sharepoint
capability:
exposes:
- type: mcp
namespace: eng-specs
port: 8080
tools:
- name: get-specification
description: "Search SharePoint for engineering specs by part number. Returns matching documents with metadata and URLs."
inputParameters:
- name: part_number
in: body
type: string
description: "The part number or specification ID to search for."
call: "sharepoint.search-specs"
with:
query: "{{part_number}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: spec-search
path: "/eng-specs-hub/drive/root/search(q='{{query}}')"
inputParameters:
- name: query
in: path
operations:
- name: search-specs
method: GET
Retrieves SharePoint metadata at GE Aerospace.
naftiko: "0.5"
info:
label: "SharePoint File Metadata"
description: "Retrieves SharePoint metadata at GE Aerospace."
tags:
- document-management
- sharepoint
- collaboration
capability:
exposes:
- type: mcp
namespace: sp-docs
port: 8080
tools:
- name: get-file
description: "Look up file at GE Aerospace."
inputParameters:
- name: site_id
in: body
type: string
description: "Site ID."
- name: file_path
in: body
type: string
description: "Path."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
path: "{{file_path}}"
outputParameters:
- name: name
type: string
mapping: "$.name"
- name: size
type: number
mapping: "$.size"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: files
path: "/sites/{{site_id}}/drive/root:/{{path}}"
inputParameters:
- name: site_id
in: path
- name: path
in: path
operations:
- name: get-file
method: GET
Monitors SLAs at GE Aerospace via Datadog and Slack.
naftiko: "0.5"
info:
label: "SLA Monitoring Pipeline"
description: "Monitors SLAs at GE Aerospace via Datadog and Slack."
tags:
- operations
- sla
- datadog
- slack
capability:
exposes:
- type: mcp
namespace: sla-monitor
port: 8080
tools:
- name: check-sla
description: "Monitor SLAs at GE Aerospace."
inputParameters:
- name: service
in: body
type: string
description: "Service."
- name: target
in: body
type: number
description: "SLA target %."
steps:
- name: metrics
type: call
call: "datadog.get-sla"
with:
service: "{{service}}"
- name: check
type: call
call: "analytics.check-sla"
with:
uptime: "{{metrics.uptime}}"
target: "{{target}}"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#ops"
text: "SLA: {{service}} at {{metrics.uptime}}% (target: {{target}}%)"
- name: log
type: call
call: "servicenow.create-incident"
with:
desc: "SLA breach: {{service}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/metrics"
operations:
- name: get-sla
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: servicenow
baseUri: "https://geaerospace.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
Queries SolarWinds for network performance metrics at GE Aerospace facilities, returning interface utilization, packet loss, and latency.
naftiko: "0.5"
info:
label: "SolarWinds Network Performance"
description: "Queries SolarWinds for network performance metrics at GE Aerospace facilities, returning interface utilization, packet loss, and latency."
tags:
- infrastructure
- network-monitoring
- solarwinds
capability:
exposes:
- type: mcp
namespace: network-perf
port: 8080
tools:
- name: get-network-performance
description: "Retrieve network performance metrics from SolarWinds for a node."
inputParameters:
- name: node_id
in: body
type: string
description: "The SolarWinds node ID."
call: "solarwinds.get-node"
with:
node_id: "{{node_id}}"
consumes:
- type: http
namespace: solarwinds
baseUri: "https://ge-aerospace-sw.internal:17778/SolarWinds/InformationService/v3/Json"
authentication:
type: basic
username: "$secrets.solarwinds_user"
password: "$secrets.solarwinds_password"
resources:
- name: nodes
path: "/Query?query=SELECT+*+FROM+Orion.Nodes+WHERE+NodeID={{node_id}}"
inputParameters:
- name: node_id
in: query
operations:
- name: get-node
method: GET
Queries SAP S/4HANA for spare parts availability by material number across MRO facilities, returning on-hand quantity, reserved stock, and reorder point.
naftiko: "0.5"
info:
label: "Spare Parts Inventory Check"
description: "Queries SAP S/4HANA for spare parts availability by material number across MRO facilities, returning on-hand quantity, reserved stock, and reorder point."
tags:
- mro
- spare-parts
- sap
capability:
exposes:
- type: mcp
namespace: parts-inventory
port: 8080
tools:
- name: check-parts-availability
description: "Given a SAP material number and optional plant code, return on-hand quantity, reserved stock, and reorder point."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number for the spare part."
- name: plant_code
in: body
type: string
description: "Optional MRO plant code."
call: "sap.get-material-stock"
with:
material_number: "{{material_number}}"
plant: "{{plant_code}}"
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: material-stock
path: "/A_MatlStkInAcctMod(Material='{{material_number}}',Plant='{{plant}}')"
inputParameters:
- name: material_number
in: path
- name: plant
in: path
operations:
- name: get-material-stock
method: GET
Searches Splunk at GE Aerospace.
naftiko: "0.5"
info:
label: "Splunk Log Search"
description: "Searches Splunk at GE Aerospace."
tags:
- security
- splunk
- logging
capability:
exposes:
- type: mcp
namespace: splunk-search
port: 8080
tools:
- name: search-logs
description: "Search logs at GE Aerospace."
inputParameters:
- name: query
in: body
type: string
description: "SPL query."
call: "splunk.search"
with:
query: "{{query}}"
outputParameters:
- name: count
type: number
mapping: "$.results.count"
consumes:
- type: http
namespace: splunk
baseUri: "https://splunk.geaerospace.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search
path: "/search/jobs"
operations:
- name: search
method: POST
Queries Splunk for security events matching a given pattern, returning event count, source IPs, and severity distribution for the security operations team.
naftiko: "0.5"
info:
label: "Splunk Security Event Investigation"
description: "Queries Splunk for security events matching a given pattern, returning event count, source IPs, and severity distribution for the security operations team."
tags:
- security
- monitoring
- splunk
capability:
exposes:
- type: mcp
namespace: security-ops
port: 8080
tools:
- name: search-security-events
description: "Run a Splunk search for security events. Returns event count, top sources, and severity breakdown."
inputParameters:
- name: search_query
in: body
type: string
description: "The Splunk search query (SPL)."
- name: time_range
in: body
type: string
description: "Time range (e.g. -24h, -7d)."
call: "splunk.search"
with:
search: "{{search_query}}"
earliest_time: "{{time_range}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://ge-aerospace-splunk.internal:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search
path: "/search/jobs"
operations:
- name: search
method: POST
When a quality nonconformance is detected on a received part, logs the NCR in SAP, creates a Salesforce case against the supplier, opens a Jira engineering investigation, and notifies the quality team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Supplier Quality Nonconformance Pipeline"
description: "When a quality nonconformance is detected on a received part, logs the NCR in SAP, creates a Salesforce case against the supplier, opens a Jira engineering investigation, and notifies the quality team via Microsoft Teams."
tags:
- quality
- supply-chain
- sap
- salesforce
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: quality-ncr
port: 8080
tools:
- name: log-nonconformance
description: "Given a part number, supplier ID, and defect details, log the NCR in SAP, open a supplier case, create an engineering investigation, and notify the quality team."
inputParameters:
- name: part_number
in: body
type: string
description: "The part material number."
- name: supplier_id
in: body
type: string
description: "The SAP supplier ID."
- name: defect_description
in: body
type: string
description: "Description of the nonconformance."
- name: severity
in: body
type: string
description: "Severity level (Critical, Major, Minor)."
steps:
- name: create-ncr
type: call
call: "sap.create-quality-notification"
with:
material: "{{part_number}}"
vendor: "{{supplier_id}}"
notification_type: "Q2"
description: "{{defect_description}}"
- name: create-supplier-case
type: call
call: "salesforce.create-case"
with:
subject: "Quality NCR: Part {{part_number}} — {{severity}}"
description: "Nonconformance on part {{part_number}} from supplier {{supplier_id}}. NCR: {{create-ncr.notification_number}}. Defect: {{defect_description}}"
type: "Supplier Quality"
priority: "{{severity}}"
- name: create-investigation
type: call
call: "jira.create-issue"
with:
project: "QUAL"
summary: "NCR Investigation: Part {{part_number}} — {{defect_description}}"
description: "SAP NCR: {{create-ncr.notification_number}}. Supplier case: {{create-supplier-case.CaseNumber}}. Severity: {{severity}}."
issue_type: "Bug"
- name: notify-quality
type: call
call: "msteams.post-channel-message"
with:
team_id: "quality-engineering"
channel_id: "ncr-alerts"
text: "NCR Alert ({{severity}}): Part {{part_number}}. SAP: {{create-ncr.notification_number}}. Supplier case: {{create-supplier-case.CaseNumber}}. Jira: {{create-investigation.key}}. {{defect_description}}"
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/API_QUALITYNOTIFICATION_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: quality-notifications
path: "/QualityNotification"
operations:
- name: create-quality-notification
method: POST
- type: http
namespace: salesforce
baseUri: "https://geaerospace.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: jira
baseUri: "https://geaerospace.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Retrieves Teams activity at GE Aerospace.
naftiko: "0.5"
info:
label: "Teams Channel Activity"
description: "Retrieves Teams activity at GE Aerospace."
tags:
- communications
- microsoft-teams
- analytics
capability:
exposes:
- type: mcp
namespace: teams-activity
port: 8080
tools:
- name: get-activity
description: "Check Teams activity at GE Aerospace."
inputParameters:
- name: team_id
in: body
type: string
description: "Team ID."
- name: channel_id
in: body
type: string
description: "Channel ID."
call: "teams.get-messages"
with:
team_id: "{{team_id}}"
channel_id: "{{channel_id}}"
outputParameters:
- name: count
type: number
mapping: "$.value.length"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_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: get-messages
method: GET
Executes a SQL query against GE Aerospace's Teradata data warehouse for operational analytics, supply chain reporting, and manufacturing metrics.
naftiko: "0.5"
info:
label: "Teradata Warehouse Query"
description: "Executes a SQL query against GE Aerospace's Teradata data warehouse for operational analytics, supply chain reporting, and manufacturing metrics."
tags:
- data-analytics
- teradata
capability:
exposes:
- type: mcp
namespace: data-warehouse
port: 8080
tools:
- name: run-query
description: "Execute a SQL query against Teradata."
inputParameters:
- name: sql_statement
in: body
type: string
description: "The SQL query."
call: "teradata.execute-query"
with:
query: "{{sql_statement}}"
consumes:
- type: http
namespace: teradata
baseUri: "https://ge-aerospace-td.teradata.com/api/v1"
authentication:
type: bearer
token: "$secrets.teradata_token"
resources:
- name: queries
path: "/systems/{{system_name}}/queries"
inputParameters:
- name: system_name
in: path
operations:
- name: execute-query
method: POST
Runs a Terraform plan against GE Aerospace Azure infrastructure to detect drift and posts results to Microsoft Teams.
naftiko: "0.5"
info:
label: "Terraform Infrastructure Drift Detection"
description: "Runs a Terraform plan against GE Aerospace Azure infrastructure to detect drift and posts results to Microsoft Teams."
tags:
- infrastructure
- terraform
- microsoft-azure
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: infra-drift
port: 8080
tools:
- name: detect-drift
description: "Given a Terraform workspace, run a plan to detect drift and notify the infra team."
inputParameters:
- name: workspace_id
in: body
type: string
description: "The Terraform Cloud workspace ID."
steps:
- name: create-run
type: call
call: "terraform.create-run"
with:
workspace_id: "{{workspace_id}}"
message: "Automated drift detection"
- name: notify-infra
type: call
call: "msteams.post-channel-message"
with:
team_id: "cloud-infrastructure"
channel_id: "drift-alerts"
text: "Terraform drift check for workspace {{workspace_id}}. Run: {{create-run.id}}. Status: {{create-run.status}}."
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_token"
resources:
- name: runs
path: "/runs"
operations:
- name: create-run
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Checks Terraform workspace at GE Aerospace.
naftiko: "0.5"
info:
label: "Terraform Workspace Check"
description: "Checks Terraform workspace at GE Aerospace."
tags:
- infrastructure
- terraform
- iac
capability:
exposes:
- type: mcp
namespace: tf-ws
port: 8080
tools:
- name: check-ws
description: "Check workspace at GE Aerospace."
inputParameters:
- name: workspace_id
in: body
type: string
description: "Workspace ID."
call: "terraform.get-ws"
with:
workspace_id: "{{workspace_id}}"
outputParameters:
- name: name
type: string
mapping: "$.data.attributes.name"
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_token"
resources:
- name: workspaces
path: "/workspaces/{{workspace_id}}"
inputParameters:
- name: workspace_id
in: path
operations:
- name: get-ws
method: GET
Checks Vault secret at GE Aerospace.
naftiko: "0.5"
info:
label: "Vault Secret Metadata"
description: "Checks Vault secret at GE Aerospace."
tags:
- security
- vault
- secrets-management
capability:
exposes:
- type: mcp
namespace: vault
port: 8080
tools:
- name: check-secret
description: "Check secret at GE Aerospace."
inputParameters:
- name: path
in: body
type: string
description: "Secret path."
call: "vault.get-metadata"
with:
path: "{{path}}"
outputParameters:
- name: version
type: number
mapping: "$.data.current_version"
consumes:
- type: http
namespace: vault
baseUri: "https://vault.geaerospace.com/v1"
authentication:
type: bearer
token: "$secrets.vault_token"
resources:
- name: secrets
path: "/secret/metadata/{{path}}"
inputParameters:
- name: path
in: path
operations:
- name: get-metadata
method: GET
Processes invoices at GE Aerospace via OCR, SAP matching, approval, and Oracle recording.
naftiko: "0.5"
info:
label: "Vendor Invoice Processing Pipeline"
description: "Processes invoices at GE Aerospace via OCR, SAP matching, approval, and Oracle recording."
tags:
- finance
- accounts-payable
- sap
- oracle
capability:
exposes:
- type: mcp
namespace: invoice-proc
port: 8080
tools:
- name: process-invoice
description: "Process invoices at GE Aerospace."
inputParameters:
- name: invoice_id
in: body
type: string
description: "Invoice ID."
- name: vendor_id
in: body
type: string
description: "Vendor ID."
steps:
- name: extract
type: call
call: "ocr.extract"
with:
doc: "{{invoice_id}}"
- name: match
type: call
call: "sap.match-po"
with:
vendor: "{{vendor_id}}"
amount: "{{extract.total}}"
- name: approve
type: call
call: "workflow.submit"
with:
invoice: "{{invoice_id}}"
- name: record
type: call
call: "oracle.create-payment"
with:
invoice: "{{invoice_id}}"
consumes:
- type: http
namespace: ocr
baseUri: "https://ocr.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.ocr_token"
resources:
- name: invoices
path: "/extract"
operations:
- name: extract
method: POST
- type: http
namespace: sap
baseUri: "https://sap.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: pos
path: "/match"
operations:
- name: match-po
method: POST
- type: http
namespace: workflow
baseUri: "https://workflow.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.workflow_token"
resources:
- name: approvals
path: "/submit"
operations:
- name: submit
method: POST
- type: http
namespace: oracle
baseUri: "https://oracle.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: payments
path: "/payments"
operations:
- name: create-payment
method: POST
Reviews vendors at GE Aerospace.
naftiko: "0.5"
info:
label: "Quarterly Vendor Review Pipeline"
description: "Reviews vendors at GE Aerospace."
tags:
- procurement
- vendor-management
- review
capability:
exposes:
- type: mcp
namespace: vendor-review
port: 8080
tools:
- name: review-vendor
description: "Review vendors at GE Aerospace."
inputParameters:
- name: vendor_id
in: body
type: string
description: "Vendor ID."
- name: quarter
in: body
type: string
description: "Quarter."
steps:
- name: perf
type: call
call: "procurement.get-metrics"
with:
vendor: "{{vendor_id}}"
q: "{{quarter}}"
- name: scorecard
type: call
call: "analytics.scorecard"
with:
data: "{{perf.data}}"
- name: invite
type: call
call: "email.send"
with:
to: "{{perf.contact}}"
subject: "QBR - {{quarter}}"
- name: schedule
type: call
call: "calendar.create-event"
with:
title: "QBR - {{perf.name}}"
consumes:
- type: http
namespace: procurement
baseUri: "https://procurement.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.procurement_token"
resources:
- name: vendors
path: "/vendors/{{vendor}}/metrics"
inputParameters:
- name: vendor
in: path
operations:
- name: get-metrics
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: scorecards
path: "/compute"
operations:
- name: scorecard
method: POST
- type: http
namespace: email
baseUri: "https://email.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
- type: http
namespace: calendar
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: events
path: "/users/proc/events"
operations:
- name: create-event
method: POST
Retrieves virtual machine status from VMware vSphere for GE Aerospace on-premises infrastructure, returning power state, CPU, memory, and storage utilization.
naftiko: "0.5"
info:
label: "VMware vSphere VM Status"
description: "Retrieves virtual machine status from VMware vSphere for GE Aerospace on-premises infrastructure, returning power state, CPU, memory, and storage utilization."
tags:
- infrastructure
- virtualization
- vmware
capability:
exposes:
- type: mcp
namespace: vm-ops
port: 8080
tools:
- name: get-vm-status
description: "Look up a VMware VM by name. Returns power state, CPU, memory, and storage."
inputParameters:
- name: vm_name
in: body
type: string
description: "The virtual machine name."
call: "vsphere.get-vm"
with:
vm_name: "{{vm_name}}"
consumes:
- type: http
namespace: vsphere
baseUri: "https://ge-aerospace-vcenter.internal/api"
authentication:
type: bearer
token: "$secrets.vsphere_token"
resources:
- name: vms
path: "/vcenter/vm?filter.names={{vm_name}}"
inputParameters:
- name: vm_name
in: query
operations:
- name: get-vm
method: GET
Retrieves a maintenance work order from SAP by order number, returning status, assigned technician, estimated completion date, and parts list.
naftiko: "0.5"
info:
label: "Work Order Status Check"
description: "Retrieves a maintenance work order from SAP by order number, returning status, assigned technician, estimated completion date, and parts list."
tags:
- mro
- work-orders
- sap
capability:
exposes:
- type: mcp
namespace: mro-work-orders
port: 8080
tools:
- name: get-work-order
description: "Look up a SAP maintenance work order. Returns status, technician, ETA, and required parts."
inputParameters:
- name: work_order_id
in: body
type: string
description: "The SAP work order number."
call: "sap.get-work-order"
with:
order_id: "{{work_order_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://ge-aerospace-s4.sap.com/sap/opu/odata/sap/ZPM_WORKORDER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: work-orders
path: "/WorkOrderSet('{{order_id}}')"
inputParameters:
- name: order_id
in: path
operations:
- name: get-work-order
method: GET
Retrieves employee profile from Workday for GE Aerospace.
naftiko: "0.5"
info:
label: "Workday Employee Profile Lookup"
description: "Retrieves employee profile from Workday for GE Aerospace."
tags:
- hr
- workday
- employee-directory
capability:
exposes:
- type: mcp
namespace: workday-profile
port: 8080
tools:
- name: get-employee-profile
description: "Look up GE Aerospace employee in Workday."
inputParameters:
- name: employee_id
in: body
type: string
description: "Employee ID."
call: "workday.get-worker"
with:
employee_id: "{{employee_id}}"
outputParameters:
- name: name
type: string
mapping: "$.worker.name"
- name: title
type: string
mapping: "$.worker.title"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5.geaerospace.com/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{employee_id}}"
inputParameters:
- name: employee_id
in: path
operations:
- name: get-worker
method: GET
Retrieves an employee profile from Workday by worker ID, returning name, department, job title, location, and reporting chain.
naftiko: "0.5"
info:
label: "Workday Employee Record"
description: "Retrieves an employee profile from Workday by worker ID, returning name, department, job title, location, and reporting chain."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-employee
description: "Look up an employee in Workday by worker ID. Returns name, department, title, location, and manager."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
Retrieves a headcount summary from Workday by business unit, returning total employees, open positions, attrition rate, and average tenure.
naftiko: "0.5"
info:
label: "Workday Headcount Report"
description: "Retrieves a headcount summary from Workday by business unit, returning total employees, open positions, attrition rate, and average tenure."
tags:
- hr
- workforce
- workday
capability:
exposes:
- type: mcp
namespace: hr-analytics
port: 8080
tools:
- name: get-headcount
description: "Retrieve headcount metrics for a business unit from Workday."
inputParameters:
- name: business_unit
in: body
type: string
description: "The business unit name."
call: "workday.get-headcount"
with:
business_unit: "{{business_unit}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: headcount
path: "/headcountReport?businessUnit={{business_unit}}"
inputParameters:
- name: business_unit
in: query
operations:
- name: get-headcount
method: GET