Rolls-Royce Capabilities

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

Sort
Expand

Retrieves accessory drive status check data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Accessory Drive Status Check"
  description: "Retrieves accessory drive status check data from the Rolls Royce aerospace and power systems systems."
  tags:
    - accessory
    - rolls-royce
    - check
capability:
  exposes:
    - type: mcp
      namespace: accessory
      port: 8080
      tools:
        - name: accessory-drive-status-check
          description: "Retrieves accessory drive status check data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.accessory-drive-status-check"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/accessory/drive/status/check/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: accessory-drive-status-check
              method: GET

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

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

Orchestrates aftermarket revenue pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Retrieves the latest version of an AutoCAD drawing file from SharePoint, returning the file name, version number, and last modifier for engineering design teams.

naftiko: "0.5"
info:
  label: "AutoCAD Drawing Version Lookup"
  description: "Retrieves the latest version of an AutoCAD drawing file from SharePoint, returning the file name, version number, and last modifier for engineering design teams."
  tags:
    - engineering
    - design
    - autocad
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: design-docs
      port: 8080
      tools:
        - name: get-drawing-version
          description: "Look up the latest version of an AutoCAD drawing file in SharePoint."
          inputParameters:
            - name: site_id
              in: body
              type: string
              description: "The SharePoint site ID for engineering drawings."
            - name: file_path
              in: body
              type: string
              description: "The path to the AutoCAD file in SharePoint."
          call: "sharepoint.get-file-version"
          with:
            site_id: "{{site_id}}"
            file_path: "{{file_path}}"
          outputParameters:
            - name: version
              type: string
              mapping: "$.versionLabel"
            - name: last_modified_by
              type: string
              mapping: "$.lastModifiedBy.user.displayName"
            - name: modified_date
              type: string
              mapping: "$.lastModifiedDateTime"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: file-versions
          path: "/{{site_id}}/drive/root:/{{file_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: file_path
              in: path
          operations:
            - name: get-file-version
              method: GET

Retrieves the latest build status for an Azure DevOps pipeline, returning build result, duration, and triggering commit for the engineering team.

naftiko: "0.5"
info:
  label: "Azure DevOps Build Status"
  description: "Retrieves the latest build status for an Azure DevOps pipeline, returning build result, duration, and triggering commit for the engineering team."
  tags:
    - ci-cd
    - engineering
    - azure-devops
capability:
  exposes:
    - type: mcp
      namespace: devops-ci
      port: 8080
      tools:
        - name: get-build-status
          description: "Look up the latest build for an Azure DevOps pipeline."
          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: "azdevops.get-latest-build"
          with:
            project: "{{project}}"
            pipeline_id: "{{pipeline_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.value[0].result"
            - name: status
              type: string
              mapping: "$.value[0].status"
            - name: build_number
              type: string
              mapping: "$.value[0].buildNumber"
  consumes:
    - type: http
      namespace: azdevops
      baseUri: "https://dev.azure.com/rollsroyce"
      authentication:
        type: basic
        username: "$secrets.azdevops_user"
        password: "$secrets.azdevops_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: path
          operations:
            - name: get-latest-build
              method: GET

Checks the deployment status of a machine learning model in Azure ML, returning endpoint health, model version, and inference latency metrics.

naftiko: "0.5"
info:
  label: "Azure Machine Learning Model Deployment Status"
  description: "Checks the deployment status of a machine learning model in Azure ML, returning endpoint health, model version, and inference latency metrics."
  tags:
    - machine-learning
    - azure-machine-learning
    - model-deployment
capability:
  exposes:
    - type: mcp
      namespace: ml-ops
      port: 8080
      tools:
        - name: get-model-deployment-status
          description: "Check the deployment status of an Azure ML endpoint."
          inputParameters:
            - name: endpoint_name
              in: body
              type: string
              description: "The Azure ML managed endpoint name."
          call: "azureml.get-endpoint"
          with:
            endpoint_name: "{{endpoint_name}}"
          outputParameters:
            - name: provisioning_state
              type: string
              mapping: "$.properties.provisioningState"
            - name: model_version
              type: string
              mapping: "$.properties.deployments[0].properties.model.version"
            - name: scoring_uri
              type: string
              mapping: "$.properties.scoringUri"
  consumes:
    - type: http
      namespace: azureml
      baseUri: "https://management.azure.com/subscriptions/$secrets.azure_subscription_id/resourceGroups/$secrets.azure_rg/providers/Microsoft.MachineLearningServices/workspaces/$secrets.azure_ml_workspace"
      authentication:
        type: bearer
        token: "$secrets.azure_ml_token"
      resources:
        - name: endpoints
          path: "/onlineEndpoints/{{endpoint_name}}?api-version=2023-04-01"
          inputParameters:
            - name: endpoint_name
              in: path
          operations:
            - name: get-endpoint
              method: GET

Retrieves bearing vibration analysis data data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Bearing Vibration Analysis Data"
  description: "Retrieves bearing vibration analysis data data from the Rolls Royce aerospace and power systems systems."
  tags:
    - bearing
    - rolls-royce
    - data
capability:
  exposes:
    - type: mcp
      namespace: bearing
      port: 8080
      tools:
        - name: bearing-vibration-analysis-data
          description: "Retrieves bearing vibration analysis data data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.bearing-vibration-analysis-data"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/bearing/vibration/analysis/data/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: bearing-vibration-analysis-data
              method: GET

Searches Box for archived engineering documents and specifications by keyword, returning file names, shared links, and upload dates.

naftiko: "0.5"
info:
  label: "Box Engineering Archive Search"
  description: "Searches Box for archived engineering documents and specifications by keyword, returning file names, shared links, and upload dates."
  tags:
    - documentation
    - archive
    - box
capability:
  exposes:
    - type: mcp
      namespace: archive-search
      port: 8080
      tools:
        - name: search-box-archive
          description: "Search Box for archived engineering documents by keyword."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The search keyword."
          call: "box.search"
          with:
            query: "{{query}}"
          outputParameters:
            - name: results
              type: array
              mapping: "$.entries"
  consumes:
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: search
          path: "/search?query={{query}}&content_types=name,description"
          inputParameters:
            - name: query
              in: path
          operations:
            - name: search
              method: GET

When an engineering change request is submitted in ServiceNow, creates a Jira epic for implementation tracking, updates the Confluence change log, and notifies the CAB in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Change Management Workflow"
  description: "When an engineering change request is submitted in ServiceNow, creates a Jira epic for implementation tracking, updates the Confluence change log, and notifies the CAB in Microsoft Teams."
  tags:
    - change-management
    - servicenow
    - jira
    - confluence
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: change-mgmt
      port: 8080
      tools:
        - name: process-change-request
          description: "Given a ServiceNow change request number, create a Jira epic, update Confluence, and notify the CAB."
          inputParameters:
            - name: change_number
              in: body
              type: string
              description: "The ServiceNow change request number."
            - name: change_summary
              in: body
              type: string
              description: "Summary of the change request."
            - name: project_key
              in: body
              type: string
              description: "The Jira project key for implementation tracking."
          steps:
            - name: get-change
              type: call
              call: "servicenow.get-change"
              with:
                change_number: "{{change_number}}"
            - name: create-epic
              type: call
              call: "jira.create-issue"
              with:
                project_key: "{{project_key}}"
                summary: "Change Implementation: {{change_number}} — {{change_summary}}"
                issue_type: "Epic"
                description: "Implementation of change {{change_number}}: {{get-change.description}}"
            - name: update-changelog
              type: call
              call: "confluence.update-page"
              with:
                page_id: "engineering_changelog"
                body: "Change {{change_number}}: {{change_summary}}. Jira: {{create-epic.key}}. Status: {{get-change.state}}."
            - name: notify-cab
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "change_advisory_board"
                text: "Change Request {{change_number}}: {{change_summary}}. Jira Epic: {{create-epic.key}}. Current state: {{get-change.state}}."
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: changes
          path: "/table/change_request?sysparm_query=number={{change_number}}"
          inputParameters:
            - name: change_number
              in: path
          operations:
            - name: get-change
              method: GET
    - type: http
      namespace: jira
      baseUri: "https://rollsroyce.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://rollsroyce.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: content
          path: "/content/{{page_id}}"
          inputParameters:
            - name: page_id
              in: path
          operations:
            - name: update-page
              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/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Queries Cloudflare for CDN performance metrics including cache hit rate, bandwidth savings, and threat mitigation for Rolls-Royce web properties.

naftiko: "0.5"
info:
  label: "Cloudflare CDN Performance Check"
  description: "Queries Cloudflare for CDN performance metrics including cache hit rate, bandwidth savings, and threat mitigation for Rolls-Royce web properties."
  tags:
    - infrastructure
    - cdn
    - cloudflare
capability:
  exposes:
    - type: mcp
      namespace: cdn-performance
      port: 8080
      tools:
        - name: get-cdn-performance
          description: "Retrieve Cloudflare zone analytics for a web property."
          inputParameters:
            - name: zone_id
              in: body
              type: string
              description: "The Cloudflare zone ID."
          call: "cloudflare.get-zone-analytics"
          with:
            zone_id: "{{zone_id}}"
  consumes:
    - type: http
      namespace: cloudflare
      baseUri: "https://api.cloudflare.com/client/v4"
      authentication:
        type: bearer
        token: "$secrets.cloudflare_token"
      resources:
        - name: analytics
          path: "/zones/{{zone_id}}/analytics/dashboard"
          inputParameters:
            - name: zone_id
              in: path
          operations:
            - name: get-zone-analytics
              method: GET

Retrieves combustion chamber life lookup data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Combustion Chamber Life Lookup"
  description: "Retrieves combustion chamber life lookup data from the Rolls Royce aerospace and power systems systems."
  tags:
    - combustion
    - rolls-royce
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: combustion
      port: 8080
      tools:
        - name: combustion-chamber-life-lookup
          description: "Retrieves combustion chamber life lookup data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.combustion-chamber-life-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/combustion/chamber/life/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: combustion-chamber-life-lookup
              method: GET

Retrieves compressor wash interval check data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Compressor Wash Interval Check"
  description: "Retrieves compressor wash interval check data from the Rolls Royce aerospace and power systems systems."
  tags:
    - compressor
    - rolls-royce
    - check
capability:
  exposes:
    - type: mcp
      namespace: compressor
      port: 8080
      tools:
        - name: compressor-wash-interval-check
          description: "Retrieves compressor wash interval check data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.compressor-wash-interval-check"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/compressor/wash/interval/check/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: compressor-wash-interval-check
              method: GET

Searches Confluence for engine maintenance documentation by keyword and returns matching page titles, URLs, and last modified dates.

naftiko: "0.5"
info:
  label: "Confluence Engine Documentation Search"
  description: "Searches Confluence for engine maintenance documentation by keyword and returns matching page titles, URLs, and last modified dates."
  tags:
    - documentation
    - knowledge-management
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: knowledge
      port: 8080
      tools:
        - name: search-engine-docs
          description: "Search Confluence for engine maintenance documentation matching a keyword."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The search keyword or phrase for engine documentation."
          call: "confluence.search"
          with:
            query: "{{query}}"
          outputParameters:
            - name: results
              type: array
              mapping: "$.results"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://rollsroyce.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: search
          path: "/search?cql=type=page AND text~\"{{query}}\""
          inputParameters:
            - name: query
              in: path
          operations:
            - name: search
              method: GET

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

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

Orchestrates customer satisfaction survey pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates customer technical publication pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Queries Datadog for the current health status of a manufacturing plant's infrastructure hosts, returning CPU, memory, and alert counts.

naftiko: "0.5"
info:
  label: "Datadog Infrastructure Monitor"
  description: "Queries Datadog for the current health status of a manufacturing plant's infrastructure hosts, returning CPU, memory, and alert counts."
  tags:
    - monitoring
    - infrastructure
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: infra-monitoring
      port: 8080
      tools:
        - name: get-host-health
          description: "Query Datadog for infrastructure host health metrics by host name."
          inputParameters:
            - name: host_name
              in: body
              type: string
              description: "The Datadog host name to query."
          call: "datadog.get-host"
          with:
            host_name: "{{host_name}}"
          outputParameters:
            - name: cpu_usage
              type: number
              mapping: "$.host_list[0].metrics.cpu"
            - name: memory_usage
              type: number
              mapping: "$.host_list[0].metrics.iowait"
            - name: alert_count
              type: number
              mapping: "$.host_list[0].apps.length"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: hosts
          path: "/hosts?filter={{host_name}}"
          inputParameters:
            - name: host_name
              in: path
          operations:
            - name: get-host
              method: GET

Orchestrates defense contract milestone pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Retrieves defense engine fleet summary data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Defense Engine Fleet Summary"
  description: "Retrieves defense engine fleet summary data from the Rolls Royce aerospace and power systems systems."
  tags:
    - defense
    - rolls-royce
    - summary
capability:
  exposes:
    - type: mcp
      namespace: defense
      port: 8080
      tools:
        - name: defense-engine-fleet-summary
          description: "Retrieves defense engine fleet summary data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.defense-engine-fleet-summary"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/defense/engine/fleet/summary/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: defense-engine-fleet-summary
              method: GET

Orchestrates defense engine readiness pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates digital twin analytics pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Digital Twin Analytics Pipeline"
  description: "Orchestrates digital twin analytics pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - digital
    - rolls-royce
    - rolls-royce
    - servicenow
    - sap
capability:
  exposes:
    - type: mcp
      namespace: digital
      port: 8080
      tools:
        - name: digital-twin-analytics-pipeline
          description: "Orchestrates digital twin analytics pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "rolls-royce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: rolls-royce-resource
          path: "/api/digital"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/digital"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rr-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/digital"
          operations:
            - name: execute-3
              method: POST

Reads the latest telemetry data from an Azure Digital Twins engine model instance, returning vibration, temperature, and pressure sensor values for predictive maintenance analysis.

naftiko: "0.5"
info:
  label: "Digital Twin Telemetry Reader"
  description: "Reads the latest telemetry data from an Azure Digital Twins engine model instance, returning vibration, temperature, and pressure sensor values for predictive maintenance analysis."
  tags:
    - digital-twin
    - iot
    - predictive-maintenance
    - microsoft-azure
capability:
  exposes:
    - type: mcp
      namespace: digital-twin
      port: 8080
      tools:
        - name: get-engine-telemetry
          description: "Retrieve the latest telemetry snapshot for a given engine digital twin instance from Azure Digital Twins."
          inputParameters:
            - name: twin_id
              in: body
              type: string
              description: "The Azure Digital Twins instance ID for the engine."
          call: "azure-dt.get-twin"
          with:
            twin_id: "{{twin_id}}"
          outputParameters:
            - name: vibration
              type: number
              mapping: "$.contents.vibration"
            - name: temperature
              type: number
              mapping: "$.contents.exhaust_temp"
            - name: pressure
              type: number
              mapping: "$.contents.oil_pressure"
            - name: last_updated
              type: string
              mapping: "$.$metadata.$lastUpdateTime"
  consumes:
    - type: http
      namespace: azure-dt
      baseUri: "https://rolls-royce-dt.api.eus.digitaltwins.azure.net"
      authentication:
        type: bearer
        token: "$secrets.azure_dt_token"
      resources:
        - name: twins
          path: "/digitaltwins/{{twin_id}}"
          inputParameters:
            - name: twin_id
              in: path
          operations:
            - name: get-twin
              method: GET

On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder for employee documents, 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 employee documents, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence across ServiceNow, SharePoint, and Microsoft Teams."
          inputParameters:
            - name: workday_employee_id
              in: body
              type: string
              description: "The Workday worker ID for the new hire."
            - name: start_date
              in: body
              type: string
              description: "The 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: "{{workday_employee_id}}"
            - name: open-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "New hire onboarding: {{get-employee.full_name}}"
                category: "hr_onboarding"
                assigned_group: "IT_Onboarding"
                description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding_site"
                folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "new_hires"
                text: "Welcome to Rolls-Royce, {{get-employee.first_name}}! Your IT onboarding ticket is {{open-ticket.number}}. Documents: {{provision-folder.url}}."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves engine air intake inspection data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Engine Air Intake Inspection"
  description: "Retrieves engine air intake inspection data from the Rolls Royce aerospace and power systems systems."
  tags:
    - engine
    - rolls-royce
    - inspection
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-air-intake-inspection
          description: "Retrieves engine air intake inspection data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.engine-air-intake-inspection"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/engine/air/intake/inspection/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: engine-air-intake-inspection
              method: GET

Orchestrates engine certification compliance pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Certification Compliance Pipeline"
  description: "Orchestrates engine certification compliance pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - rolls-royce
    - datadog
    - rolls-royce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-certification-compliance-pipeline
          description: "Orchestrates engine certification compliance pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "rolls-royce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: rolls-royce-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Orchestrates engine component life extension pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Component Life Extension Pipeline"
  description: "Orchestrates engine component life extension pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - rolls-royce
    - servicenow
    - sap
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-component-life-extension-pipeline
          description: "Orchestrates engine component life extension pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rr-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://rollsroyce.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Orchestrates engine development testing pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Development Testing Pipeline"
  description: "Orchestrates engine development testing pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - rolls-royce
    - jira
    - teams
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-development-testing-pipeline
          description: "Orchestrates engine development testing pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://rollsroyce.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Orchestrates engine emissions compliance pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates engine fleet optimization pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Queries Azure Digital Twins for all engine twins in a fleet, aggregates flight hours from SAP PM, and sends a weekly utilization summary to the fleet management team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Engine Fleet Utilization Report"
  description: "Queries Azure Digital Twins for all engine twins in a fleet, aggregates flight hours from SAP PM, and sends a weekly utilization summary to the fleet management team in Microsoft Teams."
  tags:
    - fleet-management
    - digital-twin
    - sap
    - microsoft-teams
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: fleet-utilization
      port: 8080
      tools:
        - name: generate-fleet-utilization
          description: "Given a fleet code, query digital twins, aggregate SAP flight hours, and send a utilization summary to Microsoft Teams."
          inputParameters:
            - name: fleet_code
              in: body
              type: string
              description: "The fleet identifier code."
            - name: reporting_period
              in: body
              type: string
              description: "The reporting period (e.g., 2026-W12)."
          steps:
            - name: query-fleet-twins
              type: call
              call: "azure-dt.query-twins"
              with:
                query: "SELECT * FROM digitaltwins WHERE fleet_code = '{{fleet_code}}'"
            - name: get-flight-hours
              type: call
              call: "sap.get-fleet-hours"
              with:
                fleet_code: "{{fleet_code}}"
                period: "{{reporting_period}}"
            - name: send-report
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "fleet_management"
                text: "Fleet {{fleet_code}} Utilization Report ({{reporting_period}}): Total engines: {{query-fleet-twins.count}}. Total flight hours: {{get-flight-hours.total_hours}}. Average per engine: {{get-flight-hours.avg_hours}}."
  consumes:
    - type: http
      namespace: azure-dt
      baseUri: "https://rolls-royce-dt.api.eus.digitaltwins.azure.net"
      authentication:
        type: bearer
        token: "$secrets.azure_dt_token"
      resources:
        - name: query
          path: "/query"
          operations:
            - name: query-twins
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rolls-royce-s4.sap.com/sap/opu/odata/sap/PM_FLEET_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: fleet-hours
          path: "/FleetHours?$filter=fleet_code eq '{{fleet_code}}' and period eq '{{period}}'"
          inputParameters:
            - name: fleet_code
              in: path
            - name: period
              in: path
          operations:
            - name: get-fleet-hours
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves engine fuel burn rate lookup data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Engine Fuel Burn Rate Lookup"
  description: "Retrieves engine fuel burn rate lookup data from the Rolls Royce aerospace and power systems systems."
  tags:
    - engine
    - rolls-royce
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-fuel-burn-rate-lookup
          description: "Retrieves engine fuel burn rate lookup data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.engine-fuel-burn-rate-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/engine/fuel/burn/rate/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: engine-fuel-burn-rate-lookup
              method: GET

When an Azure Digital Twins telemetry anomaly is detected, creates a Datadog alert, opens a ServiceNow incident for the engine health team, and sends a Microsoft Teams notification to the fleet monitoring channel.

naftiko: "0.5"
info:
  label: "Engine Health Alert Pipeline"
  description: "When an Azure Digital Twins telemetry anomaly is detected, creates a Datadog alert, opens a ServiceNow incident for the engine health team, and sends a Microsoft Teams notification to the fleet monitoring channel."
  tags:
    - engine-health
    - digital-twin
    - datadog
    - servicenow
    - microsoft-teams
    - alerting
capability:
  exposes:
    - type: mcp
      namespace: engine-health
      port: 8080
      tools:
        - name: raise-engine-health-alert
          description: "Given a twin ID and anomaly type, create a Datadog event, open a ServiceNow incident, and notify the fleet monitoring team in Microsoft Teams."
          inputParameters:
            - name: twin_id
              in: body
              type: string
              description: "The Azure Digital Twins instance ID for the engine."
            - name: anomaly_type
              in: body
              type: string
              description: "The type of anomaly detected (e.g., vibration_spike, temp_exceedance)."
            - name: severity
              in: body
              type: string
              description: "Alert severity level (low, medium, high, critical)."
          steps:
            - name: create-dd-event
              type: call
              call: "datadog.create-event"
              with:
                title: "Engine Health Alert: {{anomaly_type}} on twin {{twin_id}}"
                text: "Anomaly type: {{anomaly_type}}. Severity: {{severity}}."
                alert_type: "{{severity}}"
                tags: "engine:{{twin_id}},anomaly:{{anomaly_type}}"
            - name: open-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Engine Health Alert: {{anomaly_type}} — Twin {{twin_id}}"
                category: "engine_health"
                urgency: "{{severity}}"
                assigned_group: "Engine_Health_Monitoring"
            - name: notify-fleet
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "fleet_monitoring"
                text: "Engine Health Alert for twin {{twin_id}}: {{anomaly_type}} ({{severity}}). ServiceNow: {{open-incident.number}}. Datadog event: {{create-dd-event.url}}."
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: events
          path: "/events"
          operations:
            - name: create-event
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates engine health monitoring pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates engine lease management pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates engine module build tracking pipeline v2 across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Retrieves engine module serial lookup data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Engine Module Serial Lookup"
  description: "Retrieves engine module serial lookup data from the Rolls Royce aerospace and power systems systems."
  tags:
    - engine
    - rolls-royce
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-module-serial-lookup
          description: "Retrieves engine module serial lookup data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.engine-module-serial-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/engine/module/serial/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: engine-module-serial-lookup
              method: GET

When a maintenance work order is created in SAP S/4HANA, opens a ServiceNow incident for tracking, provisions a SharePoint folder for MRO documentation, and notifies the engine shop team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Engine MRO Work Order Orchestrator"
  description: "When a maintenance work order is created in SAP S/4HANA, opens a ServiceNow incident for tracking, provisions a SharePoint folder for MRO documentation, and notifies the engine shop team via Microsoft Teams."
  tags:
    - mro
    - engine-maintenance
    - sap-s4hana
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: mro-workorder
      port: 8080
      tools:
        - name: trigger-mro-workorder
          description: "Given a SAP work order ID and engine serial number, orchestrate the full MRO work order sequence across ServiceNow, SharePoint, and Microsoft Teams."
          inputParameters:
            - name: work_order_id
              in: body
              type: string
              description: "The SAP S/4HANA maintenance work order ID."
            - name: engine_serial
              in: body
              type: string
              description: "The engine serial number under maintenance."
            - name: shop_code
              in: body
              type: string
              description: "The MRO shop facility code."
          steps:
            - name: get-work-order
              type: call
              call: "sap.get-work-order"
              with:
                work_order_id: "{{work_order_id}}"
            - name: open-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "MRO Work Order: {{work_order_id}} — Engine {{engine_serial}}"
                category: "engine_mro"
                assigned_group: "MRO_Shop_{{shop_code}}"
                description: "Maintenance work order {{work_order_id}} for engine {{engine_serial}} at facility {{shop_code}}. Type: {{get-work-order.order_type}}."
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "mro_documentation_site"
                folder_path: "MRO/{{engine_serial}}_{{work_order_id}}"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "mro_shop_{{shop_code}}"
                text: "New MRO Work Order {{work_order_id}} for engine {{engine_serial}}. ServiceNow ticket: {{open-incident.number}}. Documents: {{provision-folder.url}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://rolls-royce-s4.sap.com/sap/opu/odata/sap/PM_WORKORDER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: work-orders
          path: "/WorkOrders('{{work_order_id}}')"
          inputParameters:
            - name: work_order_id
              in: path
          operations:
            - name: get-work-order
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves engine ndt inspection record data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Engine Ndt Inspection Record"
  description: "Retrieves engine ndt inspection record data from the Rolls Royce aerospace and power systems systems."
  tags:
    - engine
    - rolls-royce
    - record
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-ndt-inspection-record
          description: "Retrieves engine ndt inspection record data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.engine-ndt-inspection-record"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/engine/ndt/inspection/record/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: engine-ndt-inspection-record
              method: GET

Orchestrates engine noise reduction pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Retrieves historical overhaul cost data from SAP PM, aggregates material costs from SAP MM, and generates a cost estimate report sent to the finance team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Engine Overhaul Cost Estimator"
  description: "Retrieves historical overhaul cost data from SAP PM, aggregates material costs from SAP MM, and generates a cost estimate report sent to the finance team via Microsoft Teams."
  tags:
    - finance
    - mro
    - cost-estimation
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: mro-costing
      port: 8080
      tools:
        - name: estimate-overhaul-cost
          description: "Given an engine model and overhaul scope, pull historical costs from SAP and send an estimate summary to Microsoft Teams."
          inputParameters:
            - name: engine_model
              in: body
              type: string
              description: "The engine model designation (e.g., Trent XWB)."
            - name: overhaul_scope
              in: body
              type: string
              description: "The overhaul scope (e.g., hot_section, full_overhaul)."
          steps:
            - name: get-historical-costs
              type: call
              call: "sap.get-overhaul-history"
              with:
                engine_model: "{{engine_model}}"
                scope: "{{overhaul_scope}}"
            - name: get-material-costs
              type: call
              call: "sap.get-material-costs"
              with:
                engine_model: "{{engine_model}}"
                scope: "{{overhaul_scope}}"
            - name: send-estimate
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "mro_finance"
                text: "Overhaul Cost Estimate for {{engine_model}} ({{overhaul_scope}}): Historical avg: ${{get-historical-costs.avg_cost}}. Material estimate: ${{get-material-costs.total}}. Parts count: {{get-material-costs.part_count}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://rolls-royce-s4.sap.com/sap/opu/odata/sap/PM_COST_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: overhaul-history
          path: "/OverhaulCosts?$filter=EngineModel eq '{{engine_model}}' and Scope eq '{{scope}}'"
          inputParameters:
            - name: engine_model
              in: path
            - name: scope
              in: path
          operations:
            - name: get-overhaul-history
              method: GET
        - name: material-costs
          path: "/MaterialCosts?$filter=EngineModel eq '{{engine_model}}' and Scope eq '{{scope}}'"
          inputParameters:
            - name: engine_model
              in: path
            - name: scope
              in: path
          operations:
            - name: get-material-costs
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates engine overhaul scheduling pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates engine performance restoration pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Performance Restoration Pipeline"
  description: "Orchestrates engine performance restoration pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - rolls-royce
    - confluence
    - datadog
    - rolls-royce
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-performance-restoration-pipeline
          description: "Orchestrates engine performance restoration pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "rolls-royce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://rollsroyce.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: rolls-royce-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Orchestrates engine reliability analysis pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Engine Reliability Analysis Pipeline"
  description: "Orchestrates engine reliability analysis pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - engine
    - rolls-royce
    - datadog
    - rolls-royce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-reliability-analysis-pipeline
          description: "Orchestrates engine reliability analysis pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "rolls-royce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/engine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: rolls-royce-resource
          path: "/api/engine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/engine"
          operations:
            - name: execute-3
              method: POST

Orchestrates engine sustainability metrics pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Retrieves engine totalcare contract lookup data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Engine Totalcare Contract Lookup"
  description: "Retrieves engine totalcare contract lookup data from the Rolls Royce aerospace and power systems systems."
  tags:
    - engine
    - rolls-royce
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: engine
      port: 8080
      tools:
        - name: engine-totalcare-contract-lookup
          description: "Retrieves engine totalcare contract lookup data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.engine-totalcare-contract-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/engine/totalcare/contract/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: engine-totalcare-contract-lookup
              method: GET

Retrieves submitted expense reports from SAP Concur, 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 Processing Pipeline"
  description: "Retrieves submitted expense reports from SAP Concur, validates against Workday cost center data, and opens a ServiceNow task for finance review when policy exceptions are detected."
  tags:
    - finance
    - expense
    - sap-concur
    - workday
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: expense-review
      port: 8080
      tools:
        - name: review-expense-report
          description: "Given a Concur expense report ID and employee ID, fetch the report details, validate the cost center against Workday, and flag any policy violations to ServiceNow."
          inputParameters:
            - name: expense_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 of the expense submitter."
          steps:
            - name: get-expense-report
              type: call
              call: "concur.get-expense-report"
              with:
                report_id: "{{expense_report_id}}"
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{employee_id}}"
            - name: open-review-task
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Expense policy review: {{get-expense-report.report_name}} — {{get-employee.full_name}}"
                description: "Report {{expense_report_id}} total: {{get-expense-report.total_amount}} {{get-expense-report.currency}}. Cost center: {{get-employee.cost_center}}."
                assigned_group: "Finance_Audit"
                category: "expense_review"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://www.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: expense-reports
          path: "/expense/reports/{{report_id}}"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: get-expense-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://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/task"
          operations:
            - name: create-task
              method: POST

Orchestrates field service dispatch pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates fuel efficiency optimization pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Fuel Efficiency Optimization Pipeline"
  description: "Orchestrates fuel efficiency optimization pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - fuel
    - rolls-royce
    - jira
    - teams
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: fuel
      port: 8080
      tools:
        - name: fuel-efficiency-optimization-pipeline
          description: "Orchestrates fuel efficiency optimization pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://rollsroyce.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/fuel"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/fuel"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/fuel"
          operations:
            - name: execute-3
              method: POST

Retrieves the status of a GitHub pull request including review state, CI check status, and merge readiness for engineering teams.

naftiko: "0.5"
info:
  label: "GitHub Pull Request Status"
  description: "Retrieves the status of a GitHub pull request including review state, CI check status, and merge readiness for engineering teams."
  tags:
    - engineering
    - ci-cd
    - github
capability:
  exposes:
    - type: mcp
      namespace: engineering-ci
      port: 8080
      tools:
        - name: get-pr-status
          description: "Look up a GitHub pull request by repo and PR number and return its review and CI status."
          inputParameters:
            - name: repo
              in: body
              type: string
              description: "The GitHub repository in owner/repo format."
            - name: pr_number
              in: body
              type: string
              description: "The pull request number."
          call: "github.get-pull-request"
          with:
            repo: "{{repo}}"
            pr_number: "{{pr_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.state"
            - name: mergeable
              type: boolean
              mapping: "$.mergeable"
            - name: review_status
              type: string
              mapping: "$.review_decision"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com/repos"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: pull-requests
          path: "/{{repo}}/pulls/{{pr_number}}"
          inputParameters:
            - name: repo
              in: path
            - name: pr_number
              in: path
          operations:
            - name: get-pull-request
              method: GET

Retrieves the latest CI pipeline status for a GitLab project, returning pipeline ID, status, duration, and triggering ref.

naftiko: "0.5"
info:
  label: "GitLab CI Pipeline Status"
  description: "Retrieves the latest CI pipeline status for a GitLab project, returning pipeline ID, status, duration, and triggering ref."
  tags:
    - ci-cd
    - engineering
    - gitlab
capability:
  exposes:
    - type: mcp
      namespace: gitlab-ci
      port: 8080
      tools:
        - name: get-pipeline-status
          description: "Look up the latest CI pipeline for a GitLab project."
          inputParameters:
            - name: project_id
              in: body
              type: string
              description: "The GitLab project ID."
          call: "gitlab.get-latest-pipeline"
          with:
            project_id: "{{project_id}}"
          outputParameters:
            - name: pipeline_id
              type: number
              mapping: "$[0].id"
            - name: status
              type: string
              mapping: "$[0].status"
            - name: ref
              type: string
              mapping: "$[0].ref"
  consumes:
    - type: http
      namespace: gitlab
      baseUri: "https://gitlab.rollsroyce.com/api/v4"
      authentication:
        type: bearer
        token: "$secrets.gitlab_token"
      resources:
        - name: pipelines
          path: "/projects/{{project_id}}/pipelines?per_page=1"
          inputParameters:
            - name: project_id
              in: path
          operations:
            - name: get-latest-pipeline
              method: GET

Retrieves the latest web traffic summary from Google Analytics for the Rolls-Royce corporate site, returning page views, sessions, and bounce rate.

naftiko: "0.5"
info:
  label: "Google Analytics Web Traffic Summary"
  description: "Retrieves the latest web traffic summary from Google Analytics for the Rolls-Royce corporate site, returning page views, sessions, and bounce rate."
  tags:
    - marketing
    - analytics
    - google-analytics
capability:
  exposes:
    - type: mcp
      namespace: web-analytics
      port: 8080
      tools:
        - name: get-traffic-summary
          description: "Retrieve web traffic metrics from Google Analytics for a given property and date range."
          inputParameters:
            - name: property_id
              in: body
              type: string
              description: "The Google Analytics property ID."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: end_date
              in: body
              type: string
              description: "End date in YYYY-MM-DD format."
          call: "ga.run-report"
          with:
            property_id: "{{property_id}}"
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
  consumes:
    - type: http
      namespace: ga
      baseUri: "https://analyticsdata.googleapis.com/v1beta"
      authentication:
        type: bearer
        token: "$secrets.google_analytics_token"
      resources:
        - name: reports
          path: "/properties/{{property_id}}:runReport"
          inputParameters:
            - name: property_id
              in: path
          operations:
            - name: run-report
              method: POST

Retrieves a HubSpot contact by email and returns company, job title, lifecycle stage, and last activity date for marketing teams.

naftiko: "0.5"
info:
  label: "HubSpot Contact Enrichment"
  description: "Retrieves a HubSpot contact by email and returns company, job title, lifecycle stage, and last activity date for marketing teams."
  tags:
    - marketing
    - crm
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: marketing-crm
      port: 8080
      tools:
        - name: get-hubspot-contact
          description: "Look up a HubSpot contact by email."
          inputParameters:
            - name: email
              in: body
              type: string
              description: "The contact email address."
          call: "hubspot.get-contact"
          with:
            email: "{{email}}"
          outputParameters:
            - name: company
              type: string
              mapping: "$.properties.company"
            - name: job_title
              type: string
              mapping: "$.properties.jobtitle"
            - name: lifecycle_stage
              type: string
              mapping: "$.properties.lifecyclestage"
  consumes:
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/crm/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: contacts
          path: "/objects/contacts/{{email}}?idProperty=email"
          inputParameters:
            - name: email
              in: path
          operations:
            - name: get-contact
              method: GET

Orchestrates intelligent engine diagnostics pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

When an IT asset reaches end-of-life in ServiceNow CMDB, deactivates the Workday employee equipment assignment, archives asset records to SharePoint, and notifies the IT asset manager via Microsoft Teams.

naftiko: "0.5"
info:
  label: "IT Asset Retirement Pipeline"
  description: "When an IT asset reaches end-of-life in ServiceNow CMDB, deactivates the Workday employee equipment assignment, archives asset records to SharePoint, and notifies the IT asset manager via Microsoft Teams."
  tags:
    - it-operations
    - asset-management
    - servicenow
    - workday
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: asset-retirement
      port: 8080
      tools:
        - name: retire-it-asset
          description: "Given a ServiceNow asset ID, deactivate assignment, archive records, and notify the asset manager."
          inputParameters:
            - name: asset_id
              in: body
              type: string
              description: "The ServiceNow CMDB asset ID."
            - name: assigned_employee_id
              in: body
              type: string
              description: "The Workday employee ID currently assigned to the asset."
          steps:
            - name: get-asset
              type: call
              call: "servicenow.get-asset"
              with:
                asset_id: "{{asset_id}}"
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{assigned_employee_id}}"
            - name: archive-records
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "it_asset_archive"
                folder_path: "RetiredAssets/{{asset_id}}_{{get-asset.asset_tag}}"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "it_asset_management"
                text: "IT Asset Retired: {{get-asset.asset_tag}} ({{get-asset.model}}). Previously assigned to: {{get-employee.full_name}}. Archive: {{archive-records.url}}."
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: assets
          path: "/table/alm_hardware/{{asset_id}}"
          inputParameters:
            - name: asset_id
              in: path
          operations:
            - name: get-asset
              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: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Fetches the current sprint details and open issue count from Jira for a given aerospace engineering board, providing velocity and backlog health insights.

naftiko: "0.5"
info:
  label: "Jira Engineering Sprint Tracker"
  description: "Fetches the current sprint details and open issue count from Jira for a given aerospace engineering board, providing velocity and backlog health insights."
  tags:
    - engineering
    - project-management
    - jira
capability:
  exposes:
    - type: mcp
      namespace: engineering-pm
      port: 8080
      tools:
        - name: get-sprint-status
          description: "Retrieve active sprint details and open issues for a Jira board."
          inputParameters:
            - name: board_id
              in: body
              type: string
              description: "The Jira board ID."
          call: "jira.get-active-sprint"
          with:
            board_id: "{{board_id}}"
          outputParameters:
            - name: sprint_name
              type: string
              mapping: "$.values[0].name"
            - name: start_date
              type: string
              mapping: "$.values[0].startDate"
            - name: end_date
              type: string
              mapping: "$.values[0].endDate"
            - name: goal
              type: string
              mapping: "$.values[0].goal"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://rollsroyce.atlassian.net/rest/agile/1.0"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: sprints
          path: "/board/{{board_id}}/sprint?state=active"
          inputParameters:
            - name: board_id
              in: path
          operations:
            - name: get-active-sprint
              method: GET

Fetches all completed Jira issues for a given release version, generates a formatted release notes page in Confluence, and notifies the engineering team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Jira to Confluence Release Notes Generator"
  description: "Fetches all completed Jira issues for a given release version, generates a formatted release notes page in Confluence, and notifies the engineering team via Microsoft Teams."
  tags:
    - engineering
    - release-management
    - jira
    - confluence
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: release-mgmt
      port: 8080
      tools:
        - name: generate-release-notes
          description: "Given a Jira project and version, fetch completed issues, create Confluence release notes, and notify the team."
          inputParameters:
            - name: project_key
              in: body
              type: string
              description: "The Jira project key."
            - name: version_name
              in: body
              type: string
              description: "The release version name."
          steps:
            - name: get-release-issues
              type: call
              call: "jira.search-issues"
              with:
                jql: "project = {{project_key}} AND fixVersion = '{{version_name}}' AND status = Done"
            - name: create-release-notes
              type: call
              call: "confluence.create-page"
              with:
                space_key: "ENG"
                title: "Release Notes: {{project_key}} {{version_name}}"
                body: "Release {{version_name}} for {{project_key}}. Issues completed: {{get-release-issues.total}}."
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "engineering_releases"
                text: "Release notes published for {{project_key}} {{version_name}}: {{create-release-notes.url}}. Issues: {{get-release-issues.total}}."
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://rollsroyce.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: search
          path: "/search?jql={{jql}}"
          inputParameters:
            - name: jql
              in: path
          operations:
            - name: search-issues
              method: GET
    - type: http
      namespace: confluence
      baseUri: "https://rollsroyce.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: content
          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/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves the status of a LinkedIn job posting including application count and days active for the talent acquisition team.

naftiko: "0.5"
info:
  label: "LinkedIn Job Posting Status"
  description: "Retrieves the status of a LinkedIn job posting including application count and days active for the talent acquisition team."
  tags:
    - recruitment
    - talent-acquisition
    - linkedin
capability:
  exposes:
    - type: mcp
      namespace: recruitment
      port: 8080
      tools:
        - name: get-job-posting-status
          description: "Look up a LinkedIn job posting by ID and return application count and posting status."
          inputParameters:
            - name: job_posting_id
              in: body
              type: string
              description: "The LinkedIn job posting ID."
          call: "linkedin.get-job-posting"
          with:
            job_posting_id: "{{job_posting_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: application_count
              type: number
              mapping: "$.applicationCount"
            - name: title
              type: string
              mapping: "$.title"
  consumes:
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v2"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: job-postings
          path: "/jobPostings/{{job_posting_id}}"
          inputParameters:
            - name: job_posting_id
              in: path
          operations:
            - name: get-job-posting
              method: GET

Orchestrates manufacturing quality control pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

When a quality deviation is logged in SAP, creates a ServiceNow problem record, notifies the quality engineering team in Microsoft Teams, and links the deviation to the Confluence root cause analysis template.

naftiko: "0.5"
info:
  label: "Manufacturing Quality Deviation Workflow"
  description: "When a quality deviation is logged in SAP, creates a ServiceNow problem record, notifies the quality engineering team in Microsoft Teams, and links the deviation to the Confluence root cause analysis template."
  tags:
    - quality
    - manufacturing
    - sap
    - servicenow
    - microsoft-teams
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: quality-deviation
      port: 8080
      tools:
        - name: process-quality-deviation
          description: "Given a SAP quality notification ID, create a ServiceNow problem, notify the quality team, and link to Confluence RCA template."
          inputParameters:
            - name: notification_id
              in: body
              type: string
              description: "The SAP quality notification ID."
            - name: plant_code
              in: body
              type: string
              description: "The manufacturing plant code."
          steps:
            - name: get-notification
              type: call
              call: "sap.get-quality-notification"
              with:
                notification_id: "{{notification_id}}"
            - name: create-problem
              type: call
              call: "servicenow.create-problem"
              with:
                short_description: "Quality Deviation: {{notification_id}} — {{get-notification.defect_type}}"
                category: "quality_deviation"
                assigned_group: "Quality_Engineering_{{plant_code}}"
                description: "Quality notification {{notification_id}} at plant {{plant_code}}. Material: {{get-notification.material}}. Defect: {{get-notification.defect_type}}."
            - name: notify-quality-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "quality_engineering"
                text: "Quality Deviation {{notification_id}} at plant {{plant_code}}: {{get-notification.defect_type}}. ServiceNow problem: {{create-problem.number}}."
            - name: link-rca-template
              type: call
              call: "confluence.create-page"
              with:
                space_key: "QUALITY"
                title: "RCA: {{notification_id}} — {{get-notification.defect_type}}"
                body: "Root Cause Analysis for quality deviation {{notification_id}}. Plant: {{plant_code}}. Material: {{get-notification.material}}. ServiceNow: {{create-problem.number}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://rolls-royce-s4.sap.com/sap/opu/odata/sap/QM_NOTIFICATION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: quality-notifications
          path: "/QualityNotifications('{{notification_id}}')"
          inputParameters:
            - name: notification_id
              in: path
          operations:
            - name: get-quality-notification
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: problems
          path: "/table/problem"
          operations:
            - name: create-problem
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://rollsroyce.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: content
          path: "/content"
          operations:
            - name: create-page
              method: POST

Retrieves marine engine status check data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Marine Engine Status Check"
  description: "Retrieves marine engine status check data from the Rolls Royce aerospace and power systems systems."
  tags:
    - marine
    - rolls-royce
    - check
capability:
  exposes:
    - type: mcp
      namespace: marine
      port: 8080
      tools:
        - name: marine-engine-status-check
          description: "Retrieves marine engine status check data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.marine-engine-status-check"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/marine/engine/status/check/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: marine-engine-status-check
              method: GET

Orchestrates marine hybrid propulsion pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Marine Hybrid Propulsion Pipeline"
  description: "Orchestrates marine hybrid propulsion pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - marine
    - rolls-royce
    - rolls-royce
    - servicenow
    - sap
capability:
  exposes:
    - type: mcp
      namespace: marine
      port: 8080
      tools:
        - name: marine-hybrid-propulsion-pipeline
          description: "Orchestrates marine hybrid propulsion pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "rolls-royce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: rolls-royce-resource
          path: "/api/marine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/marine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rr-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/marine"
          operations:
            - name: execute-3
              method: POST

Orchestrates marine propulsion maintenance pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Marine Propulsion Maintenance Pipeline"
  description: "Orchestrates marine propulsion maintenance pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - marine
    - rolls-royce
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: marine
      port: 8080
      tools:
        - name: marine-propulsion-maintenance-pipeline
          description: "Orchestrates marine propulsion maintenance pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://rollsroyce.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/marine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/marine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://rollsroyce.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/marine"
          operations:
            - name: execute-3
              method: POST

Checks the calendar availability of a Rolls-Royce employee via Microsoft Graph API, returning free/busy status for scheduling MRO reviews.

naftiko: "0.5"
info:
  label: "Microsoft Outlook Calendar Availability Check"
  description: "Checks the calendar availability of a Rolls-Royce employee via Microsoft Graph API, returning free/busy status for scheduling MRO reviews."
  tags:
    - scheduling
    - collaboration
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: scheduling
      port: 8080
      tools:
        - name: check-availability
          description: "Check an employee's Outlook calendar availability for a given time range."
          inputParameters:
            - name: user_email
              in: body
              type: string
              description: "The employee email address."
            - name: start_time
              in: body
              type: string
              description: "Start of the time window in ISO 8601."
            - name: end_time
              in: body
              type: string
              description: "End of the time window in ISO 8601."
          call: "outlook.get-schedule"
          with:
            user_email: "{{user_email}}"
            start_time: "{{start_time}}"
            end_time: "{{end_time}}"
  consumes:
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: schedule
          path: "/users/{{user_email}}/calendar/getSchedule"
          inputParameters:
            - name: user_email
              in: path
          operations:
            - name: get-schedule
              method: POST

Sends a formatted message to a specified Microsoft Teams channel for cross-functional communication workflows.

naftiko: "0.5"
info:
  label: "Microsoft Teams Channel Notifier"
  description: "Sends a formatted message to a specified Microsoft Teams channel for cross-functional communication workflows."
  tags:
    - communications
    - messaging
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: comms
      port: 8080
      tools:
        - name: send-teams-notification
          description: "Send a text message to a Microsoft Teams channel."
          inputParameters:
            - name: channel_id
              in: body
              type: string
              description: "The Teams channel ID."
            - name: message
              in: body
              type: string
              description: "The message text to send."
          call: "msteams.send-message"
          with:
            channel_id: "{{channel_id}}"
            text: "{{message}}"
  consumes:
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves nacelle component status data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Nacelle Component Status"
  description: "Retrieves nacelle component status data from the Rolls Royce aerospace and power systems systems."
  tags:
    - nacelle
    - rolls-royce
    - status
capability:
  exposes:
    - type: mcp
      namespace: nacelle
      port: 8080
      tools:
        - name: nacelle-component-status
          description: "Retrieves nacelle component status data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.nacelle-component-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/nacelle/component/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: nacelle-component-status
              method: GET

Queries New Relic for the current performance metrics of a critical application, returning response time, throughput, and error rate.

naftiko: "0.5"
info:
  label: "New Relic Application Performance Check"
  description: "Queries New Relic for the current performance metrics of a critical application, returning response time, throughput, and error rate."
  tags:
    - monitoring
    - performance
    - new-relic
capability:
  exposes:
    - type: mcp
      namespace: apm
      port: 8080
      tools:
        - name: get-app-performance
          description: "Check New Relic APM metrics for a given application."
          inputParameters:
            - name: app_id
              in: body
              type: string
              description: "The New Relic application ID."
          call: "newrelic.get-app"
          with:
            app_id: "{{app_id}}"
          outputParameters:
            - name: response_time
              type: number
              mapping: "$.application.application_summary.response_time"
            - name: throughput
              type: number
              mapping: "$.application.application_summary.throughput"
            - name: error_rate
              type: number
              mapping: "$.application.application_summary.error_rate"
  consumes:
    - type: http
      namespace: newrelic
      baseUri: "https://api.newrelic.com/v2"
      authentication:
        type: apiKey
        key: "$secrets.newrelic_api_key"
      resources:
        - name: applications
          path: "/applications/{{app_id}}.json"
          inputParameters:
            - name: app_id
              in: path
          operations:
            - name: get-app
              method: GET

Orchestrates nuclear safety compliance pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Nuclear Safety Compliance Pipeline"
  description: "Orchestrates nuclear safety compliance pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - nuclear
    - rolls-royce
    - datadog
    - rolls-royce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: nuclear
      port: 8080
      tools:
        - name: nuclear-safety-compliance-pipeline
          description: "Orchestrates nuclear safety compliance pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "rolls-royce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/nuclear"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: rolls-royce-resource
          path: "/api/nuclear"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/nuclear"
          operations:
            - name: execute-3
              method: POST

Retrieves nuclear submarine reactor status data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Nuclear Submarine Reactor Status"
  description: "Retrieves nuclear submarine reactor status data from the Rolls Royce aerospace and power systems systems."
  tags:
    - nuclear
    - rolls-royce
    - status
capability:
  exposes:
    - type: mcp
      namespace: nuclear
      port: 8080
      tools:
        - name: nuclear-submarine-reactor-status
          description: "Retrieves nuclear submarine reactor status data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.nuclear-submarine-reactor-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/nuclear/submarine/reactor/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: nuclear-submarine-reactor-status
              method: GET

Retrieves a journal entry from Oracle Cloud ERP by journal ID and returns header details, status, and total amount for finance teams.

naftiko: "0.5"
info:
  label: "Oracle Cloud ERP Journal Entry Lookup"
  description: "Retrieves a journal entry from Oracle Cloud ERP by journal ID and returns header details, status, and total amount for finance teams."
  tags:
    - finance
    - erp
    - oracle-cloud
capability:
  exposes:
    - type: mcp
      namespace: oracle-finance
      port: 8080
      tools:
        - name: get-journal-entry
          description: "Look up an Oracle Cloud ERP journal entry by ID."
          inputParameters:
            - name: journal_id
              in: body
              type: string
              description: "The Oracle Cloud journal entry ID."
          call: "oracle.get-journal"
          with:
            journal_id: "{{journal_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.Status"
            - name: total_debit
              type: number
              mapping: "$.TotalDebitAmount"
            - name: total_credit
              type: number
              mapping: "$.TotalCreditAmount"
            - name: period
              type: string
              mapping: "$.AccountingPeriod"
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://rollsroyce.oraclecloud.com/fscmRestApi/resources/v2"
      authentication:
        type: basic
        username: "$secrets.oracle_user"
        password: "$secrets.oracle_password"
      resources:
        - name: journals
          path: "/journals/{{journal_id}}"
          inputParameters:
            - name: journal_id
              in: path
          operations:
            - name: get-journal
              method: GET

Retrieves firewall rule configurations from Palo Alto Networks for a specified device group and returns rule count, unused rules, and last modification date for the security team.

naftiko: "0.5"
info:
  label: "Palo Alto Firewall Rule Audit"
  description: "Retrieves firewall rule configurations from Palo Alto Networks for a specified device group and returns rule count, unused rules, and last modification date for the security team."
  tags:
    - security
    - firewall
    - palo-alto-networks
capability:
  exposes:
    - type: mcp
      namespace: security-audit
      port: 8080
      tools:
        - name: audit-firewall-rules
          description: "Query Palo Alto Networks for firewall rule statistics on a device group."
          inputParameters:
            - name: device_group
              in: body
              type: string
              description: "The Palo Alto device group name."
          call: "paloalto.get-security-rules"
          with:
            device_group: "{{device_group}}"
  consumes:
    - type: http
      namespace: paloalto
      baseUri: "https://panorama.rollsroyce.com/restapi/v10.2"
      authentication:
        type: apiKey
        key: "$secrets.paloalto_api_key"
      resources:
        - name: security-rules
          path: "/Policies/SecurityRules?location=device-group&device-group={{device_group}}"
          inputParameters:
            - name: device_group
              in: path
          operations:
            - name: get-security-rules
              method: GET

Triggers a Power BI dataset refresh for the manufacturing operations dashboard and returns the refresh status.

naftiko: "0.5"
info:
  label: "Power BI Manufacturing Dashboard Refresh"
  description: "Triggers a Power BI dataset refresh for the manufacturing operations dashboard and returns the refresh status."
  tags:
    - analytics
    - manufacturing
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: refresh-manufacturing-dashboard
          description: "Trigger a dataset refresh for a Power BI manufacturing dashboard."
          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

Orchestrates power generation monitoring pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Power Generation Monitoring Pipeline"
  description: "Orchestrates power generation monitoring pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - power
    - rolls-royce
    - confluence
    - datadog
    - rolls-royce
capability:
  exposes:
    - type: mcp
      namespace: power
      port: 8080
      tools:
        - name: power-generation-monitoring-pipeline
          description: "Orchestrates power generation monitoring pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "rolls-royce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://rollsroyce.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/power"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/power"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: rolls-royce-resource
          path: "/api/power"
          operations:
            - name: execute-3
              method: POST

Retrieves power turbine performance data data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Power Turbine Performance Data"
  description: "Retrieves power turbine performance data data from the Rolls Royce aerospace and power systems systems."
  tags:
    - power
    - rolls-royce
    - data
capability:
  exposes:
    - type: mcp
      namespace: power
      port: 8080
      tools:
        - name: power-turbine-performance-data
          description: "Retrieves power turbine performance data data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.power-turbine-performance-data"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/power/turbine/performance/data/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: power-turbine-performance-data
              method: GET

When Azure Digital Twins telemetry indicates an engine is approaching a maintenance threshold, creates a planned maintenance order in SAP PM, notifies the MRO shop via Microsoft Teams, and logs the event in Datadog.

naftiko: "0.5"
info:
  label: "Predictive Maintenance Scheduling"
  description: "When Azure Digital Twins telemetry indicates an engine is approaching a maintenance threshold, creates a planned maintenance order in SAP PM, notifies the MRO shop via Microsoft Teams, and logs the event in Datadog."
  tags:
    - predictive-maintenance
    - digital-twin
    - sap
    - microsoft-teams
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: predictive-maint
      port: 8080
      tools:
        - name: schedule-predictive-maintenance
          description: "Given an engine twin ID and predicted failure window, create a SAP maintenance order, notify the shop, and log to Datadog."
          inputParameters:
            - name: twin_id
              in: body
              type: string
              description: "The Azure Digital Twins engine instance ID."
            - name: predicted_failure_date
              in: body
              type: string
              description: "The predicted failure date in YYYY-MM-DD format."
            - name: failure_mode
              in: body
              type: string
              description: "The predicted failure mode (e.g., bearing_wear, blade_erosion)."
          steps:
            - name: get-twin-details
              type: call
              call: "azure-dt.get-twin"
              with:
                twin_id: "{{twin_id}}"
            - name: create-maint-order
              type: call
              call: "sap.create-maintenance-order"
              with:
                equipment_id: "{{get-twin-details.equipment_id}}"
                order_type: "predictive"
                description: "Predictive maintenance: {{failure_mode}} predicted by {{predicted_failure_date}}"
                priority: "high"
            - name: notify-shop
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "mro_scheduling"
                text: "Predictive maintenance scheduled for engine {{twin_id}}: {{failure_mode}} by {{predicted_failure_date}}. SAP order: {{create-maint-order.order_number}}."
            - name: log-event
              type: call
              call: "datadog.create-event"
              with:
                title: "Predictive Maintenance: {{twin_id}} — {{failure_mode}}"
                text: "Scheduled maintenance order {{create-maint-order.order_number}} for predicted {{failure_mode}} by {{predicted_failure_date}}."
                alert_type: "info"
                tags: "engine:{{twin_id}},failure_mode:{{failure_mode}}"
  consumes:
    - type: http
      namespace: azure-dt
      baseUri: "https://rolls-royce-dt.api.eus.digitaltwins.azure.net"
      authentication:
        type: bearer
        token: "$secrets.azure_dt_token"
      resources:
        - name: twins
          path: "/digitaltwins/{{twin_id}}"
          inputParameters:
            - name: twin_id
              in: path
          operations:
            - name: get-twin
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://rolls-royce-s4.sap.com/sap/opu/odata/sap/PM_WORKORDER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: maintenance-orders
          path: "/MaintenanceOrders"
          operations:
            - name: create-maintenance-order
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: events
          path: "/events"
          operations:
            - name: create-event
              method: POST

When a SAP Ariba requisition exceeds a spend threshold, routes for manager approval via Workday and notifies the requestor in Microsoft Teams with approval status.

naftiko: "0.5"
info:
  label: "Procurement Approval Pipeline"
  description: "When a SAP Ariba requisition exceeds a spend threshold, routes for manager approval via Workday and notifies the requestor in Microsoft Teams with approval status."
  tags:
    - procurement
    - sap-ariba
    - workday
    - microsoft-teams
    - approval
capability:
  exposes:
    - type: mcp
      namespace: procurement-approval
      port: 8080
      tools:
        - name: route-requisition-approval
          description: "Given an Ariba requisition ID and requestor employee ID, check the requisition amount, resolve the approver from Workday, and notify both parties in Microsoft Teams."
          inputParameters:
            - name: requisition_id
              in: body
              type: string
              description: "The SAP Ariba requisition identifier."
            - name: requestor_employee_id
              in: body
              type: string
              description: "The Workday employee ID of the requestor."
            - name: spend_amount
              in: body
              type: number
              description: "The total spend amount on the requisition."
          steps:
            - name: get-requisition
              type: call
              call: "ariba.get-requisition"
              with:
                requisition_id: "{{requisition_id}}"
            - name: get-requestor
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{requestor_employee_id}}"
            - name: get-manager
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{get-requestor.manager_id}}"
            - name: notify-approver
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "procurement_approvals"
                text: "Approval Required: Ariba requisition {{requisition_id}} from {{get-requestor.full_name}} for ${{spend_amount}}. Vendor: {{get-requisition.vendor_name}}."
            - name: notify-requestor
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "procurement_requestors"
                text: "Your requisition {{requisition_id}} (${{spend_amount}}) has been routed to {{get-manager.full_name}} for approval."
  consumes:
    - type: http
      namespace: ariba
      baseUri: "https://openapi.ariba.com/api/purchase-req/v1"
      authentication:
        type: bearer
        token: "$secrets.ariba_token"
      resources:
        - name: requisitions
          path: "/requisitions/{{requisition_id}}"
          inputParameters:
            - name: requisition_id
              in: path
          operations:
            - name: get-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: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates regulatory airworthiness pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

When a regulatory document is updated in SharePoint, creates a ServiceNow change request, notifies the compliance team in Microsoft Teams, and updates the Confluence compliance register.

naftiko: "0.5"
info:
  label: "Regulatory Compliance Document Tracker"
  description: "When a regulatory document is updated in SharePoint, creates a ServiceNow change request, notifies the compliance team in Microsoft Teams, and updates the Confluence compliance register."
  tags:
    - compliance
    - regulatory
    - sharepoint
    - servicenow
    - microsoft-teams
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: compliance-tracker
      port: 8080
      tools:
        - name: track-regulatory-update
          description: "Given a document name and regulatory body, create a change request, notify compliance, and update the register."
          inputParameters:
            - name: document_name
              in: body
              type: string
              description: "The name of the updated regulatory document."
            - name: regulatory_body
              in: body
              type: string
              description: "The regulatory body (e.g., EASA, FAA, CAA)."
            - name: change_summary
              in: body
              type: string
              description: "Summary of the regulatory change."
          steps:
            - name: create-change-request
              type: call
              call: "servicenow.create-change"
              with:
                short_description: "Regulatory Update: {{document_name}} — {{regulatory_body}}"
                description: "{{change_summary}}"
                assigned_group: "Regulatory_Compliance"
                category: "regulatory"
            - name: notify-compliance
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "regulatory_compliance"
                text: "Regulatory Update: {{document_name}} from {{regulatory_body}}. Change request: {{create-change-request.number}}. Summary: {{change_summary}}"
            - name: update-register
              type: call
              call: "confluence.update-page"
              with:
                page_id: "compliance_register"
                body: "Updated: {{document_name}} — {{regulatory_body}} — {{change_summary}} — CR: {{create-change-request.number}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: changes
          path: "/table/change_request"
          operations:
            - name: create-change
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://rollsroyce.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: content
          path: "/content/{{page_id}}"
          inputParameters:
            - name: page_id
              in: path
          operations:
            - name: update-page
              method: PUT

When a safety incident is reported, creates a ServiceNow incident, notifies the EHS team in Microsoft Teams, uploads the incident form to SharePoint, and logs the event in Datadog for trend analysis.

naftiko: "0.5"
info:
  label: "Safety Incident Report Pipeline"
  description: "When a safety incident is reported, creates a ServiceNow incident, notifies the EHS team in Microsoft Teams, uploads the incident form to SharePoint, and logs the event in Datadog for trend analysis."
  tags:
    - safety
    - ehs
    - servicenow
    - microsoft-teams
    - sharepoint
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: safety-incident
      port: 8080
      tools:
        - name: report-safety-incident
          description: "Given incident details, create a ServiceNow record, notify EHS, upload documentation, and log for analytics."
          inputParameters:
            - name: incident_type
              in: body
              type: string
              description: "The type of safety incident (e.g., near_miss, injury, environmental)."
            - name: location
              in: body
              type: string
              description: "The facility location of the incident."
            - name: description
              in: body
              type: string
              description: "A description of the safety incident."
            - name: reporter_name
              in: body
              type: string
              description: "The name of the person reporting the incident."
          steps:
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Safety Incident: {{incident_type}} at {{location}}"
                category: "safety"
                urgency: "high"
                description: "{{description}} Reported by: {{reporter_name}}."
                assigned_group: "EHS_Team"
            - name: notify-ehs
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "ehs_team"
                text: "Safety Incident Reported: {{incident_type}} at {{location}}. Reporter: {{reporter_name}}. ServiceNow: {{create-incident.number}}. Description: {{description}}"
            - name: upload-form
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "ehs_documentation"
                folder_path: "SafetyIncidents/{{create-incident.number}}"
            - name: log-event
              type: call
              call: "datadog.create-event"
              with:
                title: "Safety Incident: {{incident_type}} at {{location}}"
                text: "ServiceNow: {{create-incident.number}}. {{description}}"
                alert_type: "warning"
                tags: "safety:{{incident_type}},location:{{location}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: events
          path: "/events"
          operations:
            - name: create-event
              method: POST

When a Salesforce lead converts to an opportunity, creates a corresponding customer record in SAP S/4HANA and notifies the account team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Salesforce Lead to SAP Customer Sync"
  description: "When a Salesforce lead converts to an opportunity, creates a corresponding customer record in SAP S/4HANA and notifies the account team in Microsoft Teams."
  tags:
    - sales
    - crm
    - salesforce
    - sap-s4hana
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: lead-sync
      port: 8080
      tools:
        - name: sync-lead-to-sap
          description: "Given a Salesforce opportunity ID, fetch the account details, create a SAP customer record, and notify the account team."
          inputParameters:
            - name: opportunity_id
              in: body
              type: string
              description: "The Salesforce opportunity ID from lead conversion."
          steps:
            - name: get-opportunity
              type: call
              call: "salesforce.get-opportunity"
              with:
                opportunity_id: "{{opportunity_id}}"
            - name: create-customer
              type: call
              call: "sap.create-customer"
              with:
                customer_name: "{{get-opportunity.account_name}}"
                country: "{{get-opportunity.account_country}}"
                industry: "{{get-opportunity.account_industry}}"
            - name: notify-account-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "sales_operations"
                text: "New SAP customer created for {{get-opportunity.account_name}} (SAP: {{create-customer.customer_number}}). Opportunity: {{opportunity_id}} — {{get-opportunity.stage}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://rollsroyce.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity/{{opportunity_id}}"
          inputParameters:
            - name: opportunity_id
              in: path
          operations:
            - name: get-opportunity
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://rolls-royce-s4.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: customers
          path: "/A_Customer"
          operations:
            - name: create-customer
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves a Salesforce opportunity by ID, returning stage, close date, amount, and account name for the defense and civil aerospace sales teams.

naftiko: "0.5"
info:
  label: "Salesforce Opportunity Lookup"
  description: "Retrieves a Salesforce opportunity by ID, returning stage, close date, amount, and account name for the defense and civil aerospace sales teams."
  tags:
    - sales
    - crm
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: sales-crm
      port: 8080
      tools:
        - name: get-opportunity
          description: "Look up a Salesforce opportunity by ID and return stage, close date, amount, and account details."
          inputParameters:
            - name: opportunity_id
              in: body
              type: string
              description: "The Salesforce opportunity ID."
          call: "salesforce.get-opportunity"
          with:
            opportunity_id: "{{opportunity_id}}"
          outputParameters:
            - name: stage
              type: string
              mapping: "$.StageName"
            - name: close_date
              type: string
              mapping: "$.CloseDate"
            - name: amount
              type: number
              mapping: "$.Amount"
            - name: account_name
              type: string
              mapping: "$.Account.Name"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://rollsroyce.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity/{{opportunity_id}}"
          inputParameters:
            - name: opportunity_id
              in: path
          operations:
            - name: get-opportunity
              method: GET

Retrieves a SAP Concur expense report by ID and returns total amount, approval status, and expense entries for finance teams.

naftiko: "0.5"
info:
  label: "SAP Concur Expense Report Lookup"
  description: "Retrieves a SAP Concur expense report by ID and returns total amount, approval status, and expense entries for finance teams."
  tags:
    - finance
    - expense
    - sap-concur
capability:
  exposes:
    - type: mcp
      namespace: finance-expense
      port: 8080
      tools:
        - name: get-expense-report
          description: "Look up a SAP Concur expense report by ID and return its details."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "The SAP Concur expense report ID."
          call: "concur.get-expense-report"
          with:
            report_id: "{{report_id}}"
          outputParameters:
            - name: report_name
              type: string
              mapping: "$.Name"
            - name: total_amount
              type: number
              mapping: "$.Total"
            - name: approval_status
              type: string
              mapping: "$.ApprovalStatusName"
            - name: submit_date
              type: string
              mapping: "$.SubmitDate"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://www.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: expense-reports
          path: "/expense/reports/{{report_id}}"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: get-expense-report
              method: GET

Retrieves a SAP material master record by material number, returning description, material group, unit of measure, and weight for supply chain teams.

naftiko: "0.5"
info:
  label: "SAP Material Master Lookup"
  description: "Retrieves a SAP material master record by material number, returning description, material group, unit of measure, and weight for supply chain teams."
  tags:
    - supply-chain
    - erp
    - sap-s4hana
    - material-master
capability:
  exposes:
    - type: mcp
      namespace: material-data
      port: 8080
      tools:
        - name: get-material-master
          description: "Look up a SAP material master record by material number."
          inputParameters:
            - name: material_number
              in: body
              type: string
              description: "The SAP material number."
          call: "sap.get-material"
          with:
            material_number: "{{material_number}}"
          outputParameters:
            - name: description
              type: string
              mapping: "$.d.MaterialName"
            - name: material_group
              type: string
              mapping: "$.d.MaterialGroup"
            - name: base_unit
              type: string
              mapping: "$.d.BaseUnit"
            - name: gross_weight
              type: number
              mapping: "$.d.GrossWeight"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://rolls-royce-s4.sap.com/sap/opu/odata/sap/API_PRODUCT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: materials
          path: "/A_Product('{{material_number}}')"
          inputParameters:
            - name: material_number
              in: path
          operations:
            - name: get-material
              method: GET

Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and delivery date for procurement and supply chain teams.

naftiko: "0.5"
info:
  label: "SAP Purchase Order Status Lookup"
  description: "Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and delivery date for procurement and supply chain teams."
  tags:
    - procurement
    - erp
    - sap
    - sap-s4hana
    - purchase-order
capability:
  exposes:
    - type: mcp
      namespace: erp-procurement
      port: 8080
      tools:
        - name: get-purchase-order
          description: "Look up a SAP S/4HANA purchase order by PO number. Returns header status, vendor name, total value, currency, and delivery date."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The SAP purchase order number (10-digit)."
          call: "sap.get-po"
          with:
            po_number: "{{po_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.d.OverallStatus"
            - name: vendor
              type: string
              mapping: "$.d.Supplier.CompanyName"
            - name: total_value
              type: string
              mapping: "$.d.TotalAmount"
            - name: currency
              type: string
              mapping: "$.d.TransactionCurrency"
            - name: delivery_date
              type: string
              mapping: "$.d.DeliveryDate"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://rolls-royce-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      inputParameters:
        - name: Accept
          in: header
          value: "application/json"
        - name: sap-client
          in: header
          value: "100"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder('{{po_number}}')"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: get-po
              method: GET

Retrieves a ServiceNow incident by number and returns its state, priority, assigned group, and short description for IT operations teams.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Lookup"
  description: "Retrieves a ServiceNow incident by number and returns its state, priority, assigned group, and short description for IT operations teams."
  tags:
    - it-operations
    - itsm
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: itsm
      port: 8080
      tools:
        - name: get-incident
          description: "Look up a ServiceNow incident by number and return its current state and assignment."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number (e.g., INC0012345)."
          call: "servicenow.get-incident"
          with:
            incident_number: "{{incident_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.result.state"
            - name: priority
              type: string
              mapping: "$.result.priority"
            - name: assigned_group
              type: string
              mapping: "$.result.assignment_group.display_value"
            - name: description
              type: string
              mapping: "$.result.short_description"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident?sysparm_query=number={{incident_number}}"
          inputParameters:
            - name: incident_number
              in: path
          operations:
            - name: get-incident
              method: GET

Searches a SharePoint site for engineering documents by keyword and returns matching file names, URLs, and modification dates.

naftiko: "0.5"
info:
  label: "SharePoint Document Lookup"
  description: "Searches a SharePoint site for engineering documents by keyword and returns matching file names, URLs, and modification dates."
  tags:
    - documentation
    - sharepoint
    - engineering
capability:
  exposes:
    - type: mcp
      namespace: doc-search
      port: 8080
      tools:
        - name: search-documents
          description: "Search SharePoint for engineering documents by keyword."
          inputParameters:
            - name: site_id
              in: body
              type: string
              description: "The SharePoint site ID."
            - name: query
              in: body
              type: string
              description: "The search keyword."
          call: "sharepoint.search"
          with:
            site_id: "{{site_id}}"
            query: "{{query}}"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: search
          path: "/{{site_id}}/drive/root/search(q='{{query}}')"
          inputParameters:
            - name: site_id
              in: path
            - name: query
              in: path
          operations:
            - name: search
              method: GET

Retrieves small modular reactor metrics data from the Rolls Royce aerospace and power systems systems.

naftiko: "0.5"
info:
  label: "Small Modular Reactor Metrics"
  description: "Retrieves small modular reactor metrics data from the Rolls Royce aerospace and power systems systems."
  tags:
    - small
    - rolls-royce
    - metrics
capability:
  exposes:
    - type: mcp
      namespace: small
      port: 8080
      tools:
        - name: small-modular-reactor-metrics
          description: "Retrieves small modular reactor metrics data from the Rolls Royce aerospace and power systems systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rolls-royce.small-modular-reactor-metrics"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: resource
          path: "/small/modular/reactor/metrics/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: small-modular-reactor-metrics
              method: GET

Orchestrates smr fuel cycle monitoring pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Smr Fuel Cycle Monitoring Pipeline"
  description: "Orchestrates smr fuel cycle monitoring pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - smr
    - rolls-royce
    - jira
    - teams
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: smr
      port: 8080
      tools:
        - name: smr-fuel-cycle-monitoring-pipeline
          description: "Orchestrates smr fuel cycle monitoring pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://rollsroyce.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/smr"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/smr"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/smr"
          operations:
            - name: execute-3
              method: POST

Queries SolarWinds for the health status of network nodes at a manufacturing site, returning node status, response time, and packet loss metrics.

naftiko: "0.5"
info:
  label: "SolarWinds Network Health Check"
  description: "Queries SolarWinds for the health status of network nodes at a manufacturing site, returning node status, response time, and packet loss metrics."
  tags:
    - networking
    - infrastructure
    - solarwinds
capability:
  exposes:
    - type: mcp
      namespace: network-health
      port: 8080
      tools:
        - name: get-network-health
          description: "Query SolarWinds for network node health at a given site."
          inputParameters:
            - name: site_name
              in: body
              type: string
              description: "The site name to filter network nodes."
          call: "solarwinds.query-nodes"
          with:
            site_name: "{{site_name}}"
          outputParameters:
            - name: nodes
              type: array
              mapping: "$.results"
  consumes:
    - type: http
      namespace: solarwinds
      baseUri: "https://solarwinds.rollsroyce.com:17778/SolarWinds/InformationService/v3/Json"
      authentication:
        type: basic
        username: "$secrets.solarwinds_user"
        password: "$secrets.solarwinds_password"
      resources:
        - name: nodes
          path: "/Query?query=SELECT+NodeID,Caption,Status,ResponseTime+FROM+Orion.Nodes+WHERE+Location='{{site_name}}'"
          inputParameters:
            - name: site_name
              in: path
          operations:
            - name: query-nodes
              method: GET

Orchestrates spare parts demand pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

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

Queries SAP S/4HANA for the current inventory level of a spare part by material number, returning available quantity, storage location, and reorder point status.

naftiko: "0.5"
info:
  label: "Spare Parts Inventory Check"
  description: "Queries SAP S/4HANA for the current inventory level of a spare part by material number, returning available quantity, storage location, and reorder point status."
  tags:
    - inventory
    - supply-chain
    - sap-s4hana
    - spare-parts
capability:
  exposes:
    - type: mcp
      namespace: inventory
      port: 8080
      tools:
        - name: check-spare-part-stock
          description: "Look up a spare part inventory level in SAP by material number and plant."
          inputParameters:
            - name: material_number
              in: body
              type: string
              description: "The SAP material number for the spare part."
            - name: plant
              in: body
              type: string
              description: "The SAP plant code."
          call: "sap.get-material-stock"
          with:
            material_number: "{{material_number}}"
            plant: "{{plant}}"
          outputParameters:
            - name: available_quantity
              type: number
              mapping: "$.d.MatlWrhsStkQtyInMatlBaseUnit"
            - name: storage_location
              type: string
              mapping: "$.d.StorageLocation"
            - name: reorder_point
              type: number
              mapping: "$.d.ReorderThresholdQuantity"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://rolls-royce-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

When a new supplier is approved in SAP Ariba, creates a vendor master record in SAP S/4HANA, opens a ServiceNow task for compliance review, and notifies the procurement team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Supplier Onboarding Pipeline"
  description: "When a new supplier is approved in SAP Ariba, creates a vendor master record in SAP S/4HANA, opens a ServiceNow task for compliance review, and notifies the procurement team in Microsoft Teams."
  tags:
    - procurement
    - supplier-management
    - sap-ariba
    - sap-s4hana
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: supplier-onboarding
      port: 8080
      tools:
        - name: onboard-supplier
          description: "Given an Ariba supplier ID, create the SAP vendor master, open a compliance task, and notify procurement."
          inputParameters:
            - name: ariba_supplier_id
              in: body
              type: string
              description: "The SAP Ariba supplier ID."
            - name: company_code
              in: body
              type: string
              description: "The SAP company code for the vendor master."
          steps:
            - name: get-supplier
              type: call
              call: "ariba.get-supplier"
              with:
                supplier_id: "{{ariba_supplier_id}}"
            - name: create-vendor
              type: call
              call: "sap.create-vendor"
              with:
                supplier_name: "{{get-supplier.name}}"
                company_code: "{{company_code}}"
                tax_id: "{{get-supplier.tax_id}}"
            - name: open-compliance-task
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Supplier compliance review: {{get-supplier.name}}"
                assigned_group: "Procurement_Compliance"
                description: "New supplier {{get-supplier.name}} (Ariba: {{ariba_supplier_id}}, SAP: {{create-vendor.vendor_number}}). Tax ID: {{get-supplier.tax_id}}."
            - name: notify-procurement
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "procurement_team"
                text: "New supplier onboarded: {{get-supplier.name}}. SAP vendor: {{create-vendor.vendor_number}}. Compliance task: {{open-compliance-task.number}}."
  consumes:
    - type: http
      namespace: ariba
      baseUri: "https://openapi.ariba.com/api/supplier/v1"
      authentication:
        type: bearer
        token: "$secrets.ariba_token"
      resources:
        - name: suppliers
          path: "/suppliers/{{supplier_id}}"
          inputParameters:
            - name: supplier_id
              in: path
          operations:
            - name: get-supplier
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://rolls-royce-s4.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: vendors
          path: "/A_Supplier"
          operations:
            - name: create-vendor
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/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/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates supplier quality monitoring pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Supplier Quality Monitoring Pipeline"
  description: "Orchestrates supplier quality monitoring pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - supplier
    - rolls-royce
    - confluence
    - datadog
    - rolls-royce
capability:
  exposes:
    - type: mcp
      namespace: supplier
      port: 8080
      tools:
        - name: supplier-quality-monitoring-pipeline
          description: "Orchestrates supplier quality monitoring pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "rolls-royce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://rollsroyce.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/supplier"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/supplier"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: rolls-royce-resource
          path: "/api/supplier"
          operations:
            - name: execute-3
              method: POST

Retrieves a Tableau workbook view image for manufacturing KPIs and posts it to the operations Microsoft Teams channel for daily standups.

naftiko: "0.5"
info:
  label: "Tableau Manufacturing Metrics Viewer"
  description: "Retrieves a Tableau workbook view image for manufacturing KPIs and posts it to the operations Microsoft Teams channel for daily standups."
  tags:
    - analytics
    - manufacturing
    - tableau
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: mfg-analytics
      port: 8080
      tools:
        - name: share-manufacturing-dashboard
          description: "Fetch a Tableau view image and post it to Microsoft Teams."
          inputParameters:
            - name: workbook_id
              in: body
              type: string
              description: "The Tableau workbook ID."
            - name: view_id
              in: body
              type: string
              description: "The Tableau view ID."
            - name: teams_channel_id
              in: body
              type: string
              description: "The Teams channel to post the image."
          steps:
            - name: get-view
              type: call
              call: "tableau.get-view-image"
              with:
                workbook_id: "{{workbook_id}}"
                view_id: "{{view_id}}"
            - name: post-to-teams
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "{{teams_channel_id}}"
                text: "Daily Manufacturing KPIs: {{get-view.image_url}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://tableau.rollsroyce.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: views
          path: "/sites/$secrets.tableau_site_id/workbooks/{{workbook_id}}/views/{{view_id}}/image"
          inputParameters:
            - name: workbook_id
              in: path
            - name: view_id
              in: path
          operations:
            - name: get-view-image
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates totalcare predictive analytics pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Totalcare Predictive Analytics Pipeline"
  description: "Orchestrates totalcare predictive analytics pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - totalcare
    - rolls-royce
    - servicenow
    - sap
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: totalcare
      port: 8080
      tools:
        - name: totalcare-predictive-analytics-pipeline
          description: "Orchestrates totalcare predictive analytics pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/totalcare"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rr-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/totalcare"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://rollsroyce.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/totalcare"
          operations:
            - name: execute-3
              method: POST

Pulls employee training records from Pluralsight, validates against required certifications in Workday, and opens a ServiceNow task for any compliance gaps found.

naftiko: "0.5"
info:
  label: "Training Compliance Audit"
  description: "Pulls employee training records from Pluralsight, validates against required certifications in Workday, and opens a ServiceNow task for any compliance gaps found."
  tags:
    - training
    - compliance
    - pluralsight
    - workday
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: training-compliance
      port: 8080
      tools:
        - name: audit-training-compliance
          description: "Given an employee ID, check Pluralsight completions against Workday certification requirements and flag gaps in ServiceNow."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday employee ID."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{employee_id}}"
            - name: get-training-records
              type: call
              call: "pluralsight.get-user-courses"
              with:
                email: "{{get-employee.work_email}}"
            - name: open-gap-task
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Training compliance gap: {{get-employee.full_name}}"
                description: "Employee {{get-employee.full_name}} ({{employee_id}}). Role: {{get-employee.job_title}}. Completed courses: {{get-training-records.completed_count}}."
                assigned_group: "Learning_Development"
                category: "training_compliance"
  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: pluralsight
      baseUri: "https://api.pluralsight.com/api/reports/v1"
      authentication:
        type: bearer
        token: "$secrets.pluralsight_token"
      resources:
        - name: user-courses
          path: "/user-courses?email={{email}}"
          inputParameters:
            - name: email
              in: path
          operations:
            - name: get-user-courses
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/task"
          operations:
            - name: create-task
              method: POST

Queries SAP PM for turbine blade cycle counts and compares against certified life limits, returning remaining life percentage and next inspection due date.

naftiko: "0.5"
info:
  label: "Turbine Blade Life Tracking"
  description: "Queries SAP PM for turbine blade cycle counts and compares against certified life limits, returning remaining life percentage and next inspection due date."
  tags:
    - engine-maintenance
    - lifecycle
    - sap
    - turbine
capability:
  exposes:
    - type: mcp
      namespace: blade-lifecycle
      port: 8080
      tools:
        - name: get-blade-life-status
          description: "Look up turbine blade life cycle data by serial number in SAP PM."
          inputParameters:
            - name: blade_serial
              in: body
              type: string
              description: "The turbine blade serial number."
          call: "sap.get-blade-lifecycle"
          with:
            blade_serial: "{{blade_serial}}"
          outputParameters:
            - name: cycles_used
              type: number
              mapping: "$.d.CyclesUsed"
            - name: certified_life
              type: number
              mapping: "$.d.CertifiedLifeCycles"
            - name: remaining_pct
              type: number
              mapping: "$.d.RemainingLifePct"
            - name: next_inspection
              type: string
              mapping: "$.d.NextInspectionDate"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://rolls-royce-s4.sap.com/sap/opu/odata/sap/PM_EQUIPMENT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: blade-lifecycle
          path: "/BladeLifecycle('{{blade_serial}}')"
          inputParameters:
            - name: blade_serial
              in: path
          operations:
            - name: get-blade-lifecycle
              method: GET

Retrieves employee compensation data from Workday, pulls performance ratings from the same system, and sends a consolidated review package to the manager via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Workday Compensation Review Pipeline"
  description: "Retrieves employee compensation data from Workday, pulls performance ratings from the same system, and sends a consolidated review package to the manager via Microsoft Outlook."
  tags:
    - hr
    - compensation
    - workday
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: hr-compensation
      port: 8080
      tools:
        - name: generate-comp-review
          description: "Given an employee ID, fetch compensation and performance data from Workday and send the review to the manager via Outlook."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday employee ID."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{employee_id}}"
            - name: get-compensation
              type: call
              call: "workday.get-compensation"
              with:
                worker_id: "{{employee_id}}"
            - name: send-review
              type: call
              call: "outlook.send-mail"
              with:
                recipient: "{{get-employee.manager_email}}"
                subject: "Compensation Review: {{get-employee.full_name}}"
                body: "Employee: {{get-employee.full_name}}. Current base: {{get-compensation.base_pay}}. Performance rating: {{get-compensation.performance_rating}}. Department: {{get-employee.department}}."
  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
        - name: compensation
          path: "/workers/{{worker_id}}/compensation"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-compensation
              method: GET
    - 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-mail
              method: POST

Retrieves a Workday worker profile by employee ID and returns name, department, cost center, and manager information for HR and operations teams.

naftiko: "0.5"
info:
  label: "Workday Employee Profile Lookup"
  description: "Retrieves a Workday worker profile by employee ID and returns name, department, cost center, and manager information for HR and operations teams."
  tags:
    - hr
    - employee-data
    - workday
capability:
  exposes:
    - type: mcp
      namespace: hr-data
      port: 8080
      tools:
        - name: get-employee-profile
          description: "Look up a Workday employee by ID and return their profile details."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday worker ID."
          call: "workday.get-worker"
          with:
            worker_id: "{{employee_id}}"
          outputParameters:
            - name: full_name
              type: string
              mapping: "$.descriptor"
            - name: department
              type: string
              mapping: "$.primaryPosition.department"
            - name: cost_center
              type: string
              mapping: "$.primaryPosition.costCenter"
            - name: manager
              type: string
              mapping: "$.primaryPosition.manager.descriptor"
  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

Orchestrates workforce skills development pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Workforce Skills Development Pipeline"
  description: "Orchestrates workforce skills development pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
  tags:
    - workforce
    - rolls-royce
    - rolls-royce
    - servicenow
    - sap
capability:
  exposes:
    - type: mcp
      namespace: workforce
      port: 8080
      tools:
        - name: workforce-skills-development-pipeline
          description: "Orchestrates workforce skills development pipeline across aerospace and power systems systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "rolls-royce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: rolls-royce
      baseUri: "https://api.rolls-royce.com/v2"
      authentication:
        type: bearer
        token: "$secrets.rr_api_token"
      resources:
        - name: rolls-royce-resource
          path: "/api/workforce"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://rollsroyce.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/workforce"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rr-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/workforce"
          operations:
            - name: execute-3
              method: POST

Creates a Zoom meeting and sends the join link to participants via Microsoft Teams for cross-site engineering collaboration.

naftiko: "0.5"
info:
  label: "Zoom Meeting Scheduler"
  description: "Creates a Zoom meeting and sends the join link to participants via Microsoft Teams for cross-site engineering collaboration."
  tags:
    - collaboration
    - meetings
    - zoom
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: collaboration
      port: 8080
      tools:
        - name: schedule-zoom-meeting
          description: "Create a Zoom meeting and notify participants via Microsoft Teams."
          inputParameters:
            - name: topic
              in: body
              type: string
              description: "The meeting topic."
            - name: start_time
              in: body
              type: string
              description: "The meeting start time in ISO 8601 format."
            - name: duration
              in: body
              type: number
              description: "Meeting duration in minutes."
            - name: teams_channel_id
              in: body
              type: string
              description: "The Teams channel ID to notify."
          steps:
            - name: create-meeting
              type: call
              call: "zoom.create-meeting"
              with:
                topic: "{{topic}}"
                start_time: "{{start_time}}"
                duration: "{{duration}}"
            - name: notify-teams
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "{{teams_channel_id}}"
                text: "Zoom meeting scheduled: {{topic}} at {{start_time}}. Join: {{create-meeting.join_url}}"
  consumes:
    - type: http
      namespace: zoom
      baseUri: "https://api.zoom.us/v2"
      authentication:
        type: bearer
        token: "$secrets.zoom_token"
      resources:
        - name: meetings
          path: "/users/me/meetings"
          operations:
            - name: create-meeting
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST