Kubota Corporation Capabilities

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

Sort
Expand

Analyzes equipment data in Snowflake, generates part recommendations, updates dealer portal in Salesforce, and emails dealers via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Aftermarket Parts Recommendation Pipeline"
  description: "Analyzes equipment data in Snowflake, generates part recommendations, updates dealer portal in Salesforce, and emails dealers via Microsoft Outlook."
  tags:
    - parts
    - snowflake
    - salesforce
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: aftermarket-parts-recommendation-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Analyzes equipment data in Snowflake, generates part recommendations, updates dealer portal in Salesforce, and emails dealers via Microsoft Outlook."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "salesforce.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "microsoft-outlook.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-outlook.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-outlook
      baseUri: "https://api.microsoftoutlook.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_outlook_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Monitors equipment GPS data from Oracle Cloud IoT, detects geo-fence violations, creates an alert in ServiceNow, and notifies the equipment owner via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Agricultural Equipment Geo-Fence Alert Pipeline"
  description: "Monitors equipment GPS data from Oracle Cloud IoT, detects geo-fence violations, creates an alert in ServiceNow, and notifies the equipment owner via Microsoft Teams."
  tags:
    - iot
    - geo-fencing
    - oracle-cloud
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: geo-fence-alerts
      port: 8080
      tools:
        - name: check-geo-fence
          description: "Given a machine serial number, check GPS against geo-fence boundaries and alert if violated."
          inputParameters:
            - name: serial_number
              in: body
              type: string
              description: "The machine serial number."
            - name: owner_email
              in: body
              type: string
              description: "The equipment owner email."
          steps:
            - name: get-location
              type: call
              call: "oracle.get-gps-data"
              with:
                serial_number: "{{serial_number}}"
            - name: create-alert
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Geo-fence alert: {{serial_number}}"
                category: "security"
                priority: "high"
                description: "Machine {{serial_number}} detected outside geo-fence. Location: {{get-location.latitude}}, {{get-location.longitude}}."
            - name: notify-owner
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{owner_email}}"
                text: "Geo-fence alert: Machine {{serial_number}} is outside the designated area. Location: {{get-location.latitude}}, {{get-location.longitude}}. Incident: {{create-alert.number}}."
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://kubota-iot.oraclecloud.com/iot/api/v2"
      authentication:
        type: bearer
        token: "$secrets.oracle_iot_token"
      resources:
        - name: gps
          path: "/devices/{{serial_number}}/location"
          inputParameters:
            - name: serial_number
              in: path
          operations:
            - name: get-gps-data
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://kubota.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves product roadmap entries from Airtable for Kubota equipment lines.

naftiko: "0.5"
info:
  label: "Airtable Product Roadmap Lookup"
  description: "Retrieves product roadmap entries from Airtable for Kubota equipment lines."
  tags:
    - product
    - airtable
capability:
  exposes:
    - type: mcp
      namespace: airtable-roadmap
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves product roadmap entries from Airtable for Kubota equipment lines."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "airtable-roadmap.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: airtable-roadmap
      baseUri: "https://api.airtable.com/v0/appKubota"
      authentication:
        type: bearer
        token: "$secrets.airtable_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Retrieves spend from SAP, builds forecasts in Snowflake, creates templates in Google Sheets, and submits via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Annual Budget Planning Pipeline"
  description: "Retrieves spend from SAP, builds forecasts in Snowflake, creates templates in Google Sheets, and submits via Microsoft Teams."
  tags:
    - finance
    - sap
    - snowflake
    - google-sheets
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: annual-budget-planning-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Retrieves spend from SAP, builds forecasts in Snowflake, creates templates in Google Sheets, and submits via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "snowflake.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "google-sheets.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Aggregates performance from Snowflake, generates scorecards in Google Sheets, shares via SharePoint, and notifies via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Annual Dealer Review Pipeline"
  description: "Aggregates performance from Snowflake, generates scorecards in Google Sheets, shares via SharePoint, and notifies via Microsoft Teams."
  tags:
    - dealer
    - snowflake
    - google-sheets
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: annual-dealer-review-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Aggregates performance from Snowflake, generates scorecards in Google Sheets, shares via SharePoint, and notifies via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "google-sheets.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://api.sharepoint.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves engineering project status from Asana.

naftiko: "0.5"
info:
  label: "Asana Engineering Project Lookup"
  description: "Retrieves engineering project status from Asana."
  tags:
    - project-management
    - asana
capability:
  exposes:
    - type: mcp
      namespace: asana-eng
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves engineering project status from Asana."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "asana-eng.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: asana-eng
      baseUri: "https://app.asana.com/api/1.0"
      authentication:
        type: bearer
        token: "$secrets.asana_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Monitors autonomous equipment via IoT, stores data in Snowflake, alerts on anomalies via Slack, and logs incidents in ServiceNow.

naftiko: "0.5"
info:
  label: "Autonomous Equipment Monitoring Pipeline"
  description: "Monitors autonomous equipment via IoT, stores data in Snowflake, alerts on anomalies via Slack, and logs incidents in ServiceNow."
  tags:
    - iot
    - snowflake
    - slack
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: autonomous-equipment-monitoring-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Monitors autonomous equipment via IoT, stores data in Snowflake, alerts on anomalies via Slack, and logs incidents in ServiceNow."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "slack.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "servicenow.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "servicenow.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://api.servicenow.com/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves the latest build status from Azure DevOps for a given pipeline.

naftiko: "0.5"
info:
  label: "Azure DevOps Build Status"
  description: "Retrieves the latest build status from Azure DevOps for a given pipeline."
  tags:
    - devops
    - azure-devops
capability:
  exposes:
    - type: mcp
      namespace: ci-cd
      port: 8080
      tools:
        - name: get-build-status
          description: "Get the latest build status from Azure DevOps."
          inputParameters:
            - name: pipeline_id
              in: body
              type: string
              description: "The Azure DevOps pipeline ID."
          call: "azuredevops.get-latest-build"
          with:
            pipeline_id: "{{pipeline_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.value[0].result"
            - name: status
              type: string
              mapping: "$.value[0].status"
  consumes:
    - type: http
      namespace: azuredevops
      baseUri: "https://dev.azure.com/kubota"
      authentication:
        type: basic
        username: ""
        password: "$secrets.azuredevops_pat"
      resources:
        - name: builds
          path: "/_apis/build/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
          inputParameters:
            - name: pipeline_id
              in: query
          operations:
            - name: get-latest-build
              method: GET

Archives an engineering document to Box in the appropriate project folder.

naftiko: "0.5"
info:
  label: "Box Engineering Document Archive"
  description: "Archives an engineering document to Box in the appropriate project folder."
  tags:
    - engineering
    - documentation
    - box
capability:
  exposes:
    - type: mcp
      namespace: engineering-docs
      port: 8080
      tools:
        - name: archive-document
          description: "Upload an engineering document to Box."
          inputParameters:
            - name: file_name
              in: body
              type: string
              description: "The document file name."
            - name: folder_id
              in: body
              type: string
              description: "The Box target folder ID."
          call: "box.upload-file"
          with:
            folder_id: "{{folder_id}}"
            file_name: "{{file_name}}"
  consumes:
    - type: http
      namespace: box
      baseUri: "https://upload.box.com/api/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files/content"
          operations:
            - name: upload-file
              method: POST

Pulls market data, analyzes in Snowflake, generates Confluence insights, and shares via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Competitive Intelligence Pipeline"
  description: "Pulls market data, analyzes in Snowflake, generates Confluence insights, and shares via Microsoft Teams."
  tags:
    - intelligence
    - snowflake
    - confluence
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: competitive-intelligence-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Pulls market data, analyzes in Snowflake, generates Confluence insights, and shares via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "confluence.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "microsoft-teams.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://api.confluence.com/v1"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Searches Confluence for technical manuals and service documentation by keyword.

naftiko: "0.5"
info:
  label: "Confluence Technical Documentation Search"
  description: "Searches Confluence for technical manuals and service documentation by keyword."
  tags:
    - knowledge-management
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: technical-docs
      port: 8080
      tools:
        - name: search-documentation
          description: "Search Confluence for technical documentation."
          inputParameters:
            - name: keyword
              in: body
              type: string
              description: "The search keyword."
          call: "confluence.search"
          with:
            cql: "type=page AND space=TECHNICAL AND text~'{{keyword}}'"
          outputParameters:
            - name: results
              type: string
              mapping: "$.results"
            - name: total_size
              type: string
              mapping: "$.totalSize"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://kubota.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: search
          path: "/search?cql={{cql}}"
          inputParameters:
            - name: cql
              in: query
          operations:
            - name: search
              method: GET

Collects utilization data from IoT sensors via Oracle Cloud, analyzes usage patterns in Azure Databricks, generates a utilization report in Google Sheets, and shares with the customer via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Construction Equipment Utilization Pipeline"
  description: "Collects utilization data from IoT sensors via Oracle Cloud, analyzes usage patterns in Azure Databricks, generates a utilization report in Google Sheets, and shares with the customer via Microsoft Teams."
  tags:
    - iot
    - construction
    - oracle-cloud
    - azure-databricks
    - google-sheets
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: equipment-utilization
      port: 8080
      tools:
        - name: generate-utilization-report
          description: "Given a fleet or machine ID, analyze utilization patterns and generate a customer report."
          inputParameters:
            - name: fleet_id
              in: body
              type: string
              description: "The customer fleet identifier."
            - name: period
              in: body
              type: string
              description: "The reporting period."
            - name: customer_email
              in: body
              type: string
              description: "The customer email."
          steps:
            - name: get-usage-data
              type: call
              call: "oracle.get-usage-history"
              with:
                fleet_id: "{{fleet_id}}"
                period: "{{period}}"
            - name: analyze-patterns
              type: call
              call: "databricks.run-query"
              with:
                query: "SELECT * FROM utilization_analysis WHERE fleet_id = '{{fleet_id}}' AND period = '{{period}}'"
            - name: create-report
              type: call
              call: "google-sheets.create-spreadsheet"
              with:
                title: "Equipment Utilization - {{fleet_id}} - {{period}}"
                data: "{{analyze-patterns.results}}"
            - name: share-report
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{customer_email}}"
                text: "Your Kubota equipment utilization report for {{period}} is ready. Average utilization: {{analyze-patterns.avg_utilization}}%. Report: {{create-report.spreadsheet_url}}."
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://kubota-iot.oraclecloud.com/iot/api/v2"
      authentication:
        type: bearer
        token: "$secrets.oracle_iot_token"
      resources:
        - name: usage-history
          path: "/fleets/{{fleet_id}}/usage?period={{period}}"
          inputParameters:
            - name: fleet_id
              in: path
            - name: period
              in: query
          operations:
            - name: get-usage-history
              method: GET
    - type: http
      namespace: databricks
      baseUri: "https://kubota-analytics.azuredatabricks.net/api/2.0"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: sql-queries
          path: "/sql/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://sheets.googleapis.com/v4"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: spreadsheets
          path: "/spreadsheets"
          operations:
            - name: create-spreadsheet
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Creates quote in Salesforce, configures equipment in SAP, generates proposal in SharePoint, and sends via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Construction Project Quoting Pipeline"
  description: "Creates quote in Salesforce, configures equipment in SAP, generates proposal in SharePoint, and sends via Microsoft Outlook."
  tags:
    - sales
    - salesforce
    - sap
    - sharepoint
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: construction-project-quoting-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Creates quote in Salesforce, configures equipment in SAP, generates proposal in SharePoint, and sends via Microsoft Outlook."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "sap.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-outlook.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://api.sharepoint.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-outlook
      baseUri: "https://api.microsoftoutlook.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_outlook_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves content from SharePoint, translates via Azure, uploads to Google Drive, and notifies via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Content Localization Pipeline"
  description: "Retrieves content from SharePoint, translates via Azure, uploads to Google Drive, and notifies via Microsoft Teams."
  tags:
    - localization
    - sharepoint
    - microsoft-azure
    - google-drive
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: content-localization-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Retrieves content from SharePoint, translates via Azure, uploads to Google Drive, and notifies via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sharepoint.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "microsoft-azure.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "google-drive.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://api.sharepoint.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-azure
      baseUri: "https://api.microsoftazure.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_azure_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-drive
      baseUri: "https://api.googledrive.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_drive_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Queries expiring contracts from Salesforce, creates Jira tasks, sends reminders via Microsoft Outlook, and logs in Google Sheets.

naftiko: "0.5"
info:
  label: "Contract Renewal Pipeline"
  description: "Queries expiring contracts from Salesforce, creates Jira tasks, sends reminders via Microsoft Outlook, and logs in Google Sheets."
  tags:
    - legal
    - salesforce
    - jira
    - microsoft-outlook
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: contract-renewal-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Queries expiring contracts from Salesforce, creates Jira tasks, sends reminders via Microsoft Outlook, and logs in Google Sheets."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "jira.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "microsoft-outlook.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "google-sheets.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://api.jira.com/v1"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-outlook
      baseUri: "https://api.microsoftoutlook.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_outlook_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Collects feedback from Zendesk, analyzes via Azure ML, stores in Snowflake, and publishes to Confluence.

naftiko: "0.5"
info:
  label: "Customer Feedback Analysis Pipeline"
  description: "Collects feedback from Zendesk, analyzes via Azure ML, stores in Snowflake, and publishes to Confluence."
  tags:
    - feedback
    - zendesk
    - azure-machine-learning
    - snowflake
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: customer-feedback-analysis-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Collects feedback from Zendesk, analyzes via Azure ML, stores in Snowflake, and publishes to Confluence."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "zendesk.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "azure-machine-learning.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "snowflake.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "confluence.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: zendesk
      baseUri: "https://api.zendesk.com/v1"
      authentication:
        type: bearer
        token: "$secrets.zendesk_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: azure-machine-learning
      baseUri: "https://api.azuremachinelearning.com/v1"
      authentication:
        type: bearer
        token: "$secrets.azure_machine_learning_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://api.confluence.com/v1"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Sends surveys via MailChimp, collects responses in Snowflake, analyzes in Tableau, and shares insights via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Customer Satisfaction Survey Pipeline"
  description: "Sends surveys via MailChimp, collects responses in Snowflake, analyzes in Tableau, and shares insights via Microsoft Teams."
  tags:
    - feedback
    - mailchimp
    - snowflake
    - tableau
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: customer-satisfaction-survey-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Sends surveys via MailChimp, collects responses in Snowflake, analyzes in Tableau, and shares insights via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "mailchimp.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "snowflake.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "tableau.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: mailchimp
      baseUri: "https://api.mailchimp.com/v1"
      authentication:
        type: bearer
        token: "$secrets.mailchimp_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://api.tableau.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Audits data in Snowflake, generates compliance reports in Google Sheets, archives in SharePoint, and notifies legal via Slack.

naftiko: "0.5"
info:
  label: "Data Privacy Compliance Pipeline"
  description: "Audits data in Snowflake, generates compliance reports in Google Sheets, archives in SharePoint, and notifies legal via Slack."
  tags:
    - compliance
    - snowflake
    - google-sheets
    - sharepoint
    - slack
capability:
  exposes:
    - type: mcp
      namespace: data-privacy-compliance-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Audits data in Snowflake, generates compliance reports in Google Sheets, archives in SharePoint, and notifies legal via Slack."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "google-sheets.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "slack.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://api.sharepoint.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Receives application via Salesforce, validates in SAP, generates agreement in DocuSign, and notifies finance via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Dealer Credit Application Pipeline"
  description: "Receives application via Salesforce, validates in SAP, generates agreement in DocuSign, and notifies finance via Microsoft Teams."
  tags:
    - finance
    - salesforce
    - sap
    - docusign
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: dealer-credit-application-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Receives application via Salesforce, validates in SAP, generates agreement in DocuSign, and notifies finance via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "sap.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "docusign.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: docusign
      baseUri: "https://api.docusign.com/v1"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

When a dealer submits a financing application in Salesforce, verifies credit data, processes the application in SAP, and notifies the finance team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Dealer Financing Application Pipeline"
  description: "When a dealer submits a financing application in Salesforce, verifies credit data, processes the application in SAP, and notifies the finance team via Microsoft Teams."
  tags:
    - dealer
    - finance
    - salesforce
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: dealer-financing
      port: 8080
      tools:
        - name: process-financing-application
          description: "Given a financing application, verify credit, process in SAP, and notify finance."
          inputParameters:
            - name: application_id
              in: body
              type: string
              description: "The Salesforce financing application ID."
            - name: dealer_id
              in: body
              type: string
              description: "The dealer account ID."
            - name: amount
              in: body
              type: string
              description: "The requested financing amount."
          steps:
            - name: get-application
              type: call
              call: "salesforce.get-financing-app"
              with:
                application_id: "{{application_id}}"
            - name: process-credit
              type: call
              call: "sap.process-financing"
              with:
                dealer_id: "{{dealer_id}}"
                amount: "{{amount}}"
                terms: "{{get-application.requested_terms}}"
            - name: notify-finance
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "dealer-finance"
                text: "Financing application {{application_id}} for dealer {{dealer_id}}: Amount: ${{amount}}. Credit decision: {{process-credit.decision}}. Terms: {{process-credit.approved_terms}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://kubota.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: financing
          path: "/sobjects/FinancingApplication__c/{{application_id}}"
          inputParameters:
            - name: application_id
              in: path
          operations:
            - name: get-financing-app
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/FI_FINANCING_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: financing
          path: "/FinancingApplications"
          operations:
            - name: process-financing
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves current equipment inventory at a dealer location from Salesforce, including model, stock count, and availability.

naftiko: "0.5"
info:
  label: "Dealer Inventory Lookup"
  description: "Retrieves current equipment inventory at a dealer location from Salesforce, including model, stock count, and availability."
  tags:
    - dealer
    - inventory
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: dealer-inventory
      port: 8080
      tools:
        - name: get-dealer-inventory
          description: "Look up equipment inventory at a dealer by dealer ID and model."
          inputParameters:
            - name: dealer_id
              in: body
              type: string
              description: "The Salesforce dealer account ID."
            - name: model
              in: body
              type: string
              description: "The equipment model number."
          call: "salesforce.query-inventory"
          with:
            dealer_id: "{{dealer_id}}"
            model: "{{model}}"
          outputParameters:
            - name: stock_count
              type: string
              mapping: "$.totalSize"
            - name: units
              type: string
              mapping: "$.records"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://kubota.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: inventory
          path: "/query/?q=SELECT+Id,SerialNumber__c,Status__c+FROM+Equipment__c+WHERE+DealerId__c='{{dealer_id}}'+AND+Model__c='{{model}}'"
          inputParameters:
            - name: dealer_id
              in: query
            - name: model
              in: query
          operations:
            - name: query-inventory
              method: GET

Creates prospect in Salesforce, generates agreement via DocuSign, provisions in SAP, and notifies via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Dealer Network Expansion Pipeline"
  description: "Creates prospect in Salesforce, generates agreement via DocuSign, provisions in SAP, and notifies via Microsoft Teams."
  tags:
    - dealer
    - salesforce
    - docusign
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: dealer-network-expansion-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Creates prospect in Salesforce, generates agreement via DocuSign, provisions in SAP, and notifies via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "docusign.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "sap.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: docusign
      baseUri: "https://api.docusign.com/v1"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

When a dealer places an equipment order in Salesforce, creates a sales order in SAP, checks inventory availability, and notifies the dealer via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Dealer Order Processing Pipeline"
  description: "When a dealer places an equipment order in Salesforce, creates a sales order in SAP, checks inventory availability, and notifies the dealer via Microsoft Teams."
  tags:
    - dealer
    - order-management
    - salesforce
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: dealer-orders
      port: 8080
      tools:
        - name: process-dealer-order
          description: "Given a Salesforce order ID, create a SAP sales order, check stock, and notify the dealer."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The Salesforce order record ID."
            - name: dealer_email
              in: body
              type: string
              description: "The dealer contact email."
          steps:
            - name: get-order
              type: call
              call: "salesforce.get-order"
              with:
                order_id: "{{order_id}}"
            - name: create-sales-order
              type: call
              call: "sap.create-sales-order"
              with:
                dealer_id: "{{get-order.dealer_id}}"
                items: "{{get-order.line_items}}"
                delivery_date: "{{get-order.requested_date}}"
            - name: check-availability
              type: call
              call: "sap.check-atp"
              with:
                sales_order: "{{create-sales-order.order_number}}"
            - name: notify-dealer
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{dealer_email}}"
                text: "Order {{order_id}} confirmed. SAP order: {{create-sales-order.order_number}}. Estimated delivery: {{check-availability.confirmed_date}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://kubota.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: orders
          path: "/sobjects/Order/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: get-order
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/SD_SALES_ORDER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: sales-orders
          path: "/A_SalesOrder"
          operations:
            - name: create-sales-order
              method: POST
        - name: atp
          path: "/A_SalesOrder('{{sales_order}}')/ATP"
          inputParameters:
            - name: sales_order
              in: path
          operations:
            - name: check-atp
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Pulls dealer sales data from Salesforce, enriches with market data from Azure Databricks, creates a performance report in Google Sheets, and notifies the regional manager via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Dealer Performance Reporting Pipeline"
  description: "Pulls dealer sales data from Salesforce, enriches with market data from Azure Databricks, creates a performance report in Google Sheets, and notifies the regional manager via Microsoft Teams."
  tags:
    - dealer
    - analytics
    - salesforce
    - azure-databricks
    - google-sheets
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: dealer-performance
      port: 8080
      tools:
        - name: generate-dealer-report
          description: "Given a dealer ID and period, generate a performance report and notify management."
          inputParameters:
            - name: dealer_id
              in: body
              type: string
              description: "The Salesforce dealer account ID."
            - name: period
              in: body
              type: string
              description: "The reporting period (e.g., 2025-Q4)."
            - name: manager_email
              in: body
              type: string
              description: "The regional manager email."
          steps:
            - name: get-sales-data
              type: call
              call: "salesforce.get-dealer-sales"
              with:
                dealer_id: "{{dealer_id}}"
                period: "{{period}}"
            - name: get-market-data
              type: call
              call: "databricks.run-query"
              with:
                query: "SELECT * FROM dealer_market_share WHERE dealer_id = '{{dealer_id}}' AND period = '{{period}}'"
            - name: create-report
              type: call
              call: "google-sheets.create-spreadsheet"
              with:
                title: "Dealer Performance - {{dealer_id}} - {{period}}"
                data: "{{get-sales-data.results}}"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{manager_email}}"
                text: "Dealer {{dealer_id}} performance report for {{period}} ready. Units sold: {{get-sales-data.total_units}}. Market share: {{get-market-data.market_share}}%. Report: {{create-report.spreadsheet_url}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://kubota.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: dealer-sales
          path: "/query/?q=SELECT+SUM(Amount)+FROM+Opportunity+WHERE+AccountId='{{dealer_id}}'+AND+CloseDate>=THIS_QUARTER"
          inputParameters:
            - name: dealer_id
              in: query
          operations:
            - name: get-dealer-sales
              method: GET
    - type: http
      namespace: databricks
      baseUri: "https://kubota-analytics.azuredatabricks.net/api/2.0"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: sql-queries
          path: "/sql/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://sheets.googleapis.com/v4"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: spreadsheets
          path: "/spreadsheets"
          operations:
            - name: create-spreadsheet
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

When a customer requests equipment service, checks dealer availability in Salesforce, creates a service appointment, orders required parts from SAP, and confirms with the customer via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Dealer Service Scheduling Pipeline"
  description: "When a customer requests equipment service, checks dealer availability in Salesforce, creates a service appointment, orders required parts from SAP, and confirms with the customer via Microsoft Teams."
  tags:
    - dealer
    - service
    - salesforce
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: dealer-service
      port: 8080
      tools:
        - name: schedule-service
          description: "Given equipment and service details, check availability, schedule service, order parts, and confirm."
          inputParameters:
            - name: serial_number
              in: body
              type: string
              description: "The equipment serial number."
            - name: service_type
              in: body
              type: string
              description: "The type of service needed."
            - name: dealer_id
              in: body
              type: string
              description: "The dealer ID."
            - name: customer_email
              in: body
              type: string
              description: "The customer email."
          steps:
            - name: check-availability
              type: call
              call: "salesforce.get-dealer-availability"
              with:
                dealer_id: "{{dealer_id}}"
                service_type: "{{service_type}}"
            - name: create-appointment
              type: call
              call: "salesforce.create-service-appointment"
              with:
                serial_number: "{{serial_number}}"
                dealer_id: "{{dealer_id}}"
                service_type: "{{service_type}}"
                scheduled_date: "{{check-availability.next_available}}"
            - name: order-parts
              type: call
              call: "sap.create-parts-order"
              with:
                serial_number: "{{serial_number}}"
                service_type: "{{service_type}}"
                dealer_id: "{{dealer_id}}"
            - name: confirm-customer
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{customer_email}}"
                text: "Service appointment confirmed for machine {{serial_number}} at your Kubota dealer. Date: {{check-availability.next_available}}. Service type: {{service_type}}. Appointment: {{create-appointment.appointment_id}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://kubota.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: availability
          path: "/sobjects/DealerAvailability__c?dealer_id={{dealer_id}}"
          inputParameters:
            - name: dealer_id
              in: query
          operations:
            - name: get-dealer-availability
              method: GET
        - name: appointments
          path: "/sobjects/ServiceAppointment__c"
          operations:
            - name: create-service-appointment
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/PM_ORDER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: parts-orders
          path: "/PartsOrders"
          operations:
            - name: create-parts-order
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Creates training modules in Pluralsight, tracks completion in Workday, generates reports in Google Sheets, and certifies via DocuSign.

naftiko: "0.5"
info:
  label: "Dealer Training Program Pipeline"
  description: "Creates training modules in Pluralsight, tracks completion in Workday, generates reports in Google Sheets, and certifies via DocuSign."
  tags:
    - training
    - pluralsight
    - workday
    - google-sheets
    - docusign
capability:
  exposes:
    - type: mcp
      namespace: dealer-training-program-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Creates training modules in Pluralsight, tracks completion in Workday, generates reports in Google Sheets, and certifies via DocuSign."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "pluralsight.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "workday.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "google-sheets.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "docusign.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: pluralsight
      baseUri: "https://api.pluralsight.com/v1"
      authentication:
        type: bearer
        token: "$secrets.pluralsight_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://api.workday.com/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: docusign
      baseUri: "https://api.docusign.com/v1"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Creates campaign in HubSpot, sets up Facebook ads, tracks in Google Analytics, and reports via Google Sheets.

naftiko: "0.5"
info:
  label: "Digital Marketing Pipeline"
  description: "Creates campaign in HubSpot, sets up Facebook ads, tracks in Google Analytics, and reports via Google Sheets."
  tags:
    - marketing
    - hubspot
    - facebook
    - google-analytics
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: digital-marketing-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Creates campaign in HubSpot, sets up Facebook ads, tracks in Google Analytics, and reports via Google Sheets."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "hubspot.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "facebook.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "google-analytics.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "google-sheets.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubspot.com/v1"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: facebook
      baseUri: "https://api.facebook.com/v1"
      authentication:
        type: bearer
        token: "$secrets.facebook_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-analytics
      baseUri: "https://api.googleanalytics.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_analytics_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves DocuSign dealer agreement envelope status.

naftiko: "0.5"
info:
  label: "DocuSign Dealer Agreement Lookup"
  description: "Retrieves DocuSign dealer agreement envelope status."
  tags:
    - legal
    - docusign
capability:
  exposes:
    - type: mcp
      namespace: docusign-dealer
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves DocuSign dealer agreement envelope status."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "docusign-dealer.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: docusign-dealer
      baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/kubota"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Retrieves application performance metrics from Dynatrace for a given service.

naftiko: "0.5"
info:
  label: "Dynatrace Application Health Check"
  description: "Retrieves application performance metrics from Dynatrace for a given service."
  tags:
    - monitoring
    - dynatrace
capability:
  exposes:
    - type: mcp
      namespace: app-monitoring
      port: 8080
      tools:
        - name: get-app-health
          description: "Retrieve application health metrics from Dynatrace."
          inputParameters:
            - name: service_name
              in: body
              type: string
              description: "The Dynatrace service name."
          call: "dynatrace.get-service-metrics"
          with:
            service_name: "{{service_name}}"
          outputParameters:
            - name: response_time
              type: string
              mapping: "$.result[0].data[0].values[0]"
            - name: error_rate
              type: string
              mapping: "$.result[1].data[0].values[0]"
  consumes:
    - type: http
      namespace: dynatrace
      baseUri: "https://kubota.live.dynatrace.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.dynatrace_token"
      resources:
        - name: metrics
          path: "/metrics/query?metricSelector=builtin:service.response.time,builtin:service.errors.total.rate&entitySelector=type(SERVICE),entityName({{service_name}})"
          inputParameters:
            - name: service_name
              in: query
          operations:
            - name: get-service-metrics
              method: GET

Collects emissions data from SAP, validates against standards in Snowflake, generates reports in Google Sheets, and archives in Box.

naftiko: "0.5"
info:
  label: "Emissions Compliance Pipeline"
  description: "Collects emissions data from SAP, validates against standards in Snowflake, generates reports in Google Sheets, and archives in Box."
  tags:
    - compliance
    - sap
    - snowflake
    - google-sheets
    - box
capability:
  exposes:
    - type: mcp
      namespace: emissions-compliance-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Collects emissions data from SAP, validates against standards in Snowflake, generates reports in Google Sheets, and archives in Box."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "snowflake.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "google-sheets.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "box.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: box
      baseUri: "https://api.box.com/v1"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Deactivates Workday profile, revokes Azure AD access, creates ServiceNow ticket, and archives in Box.

naftiko: "0.5"
info:
  label: "Employee Offboarding Pipeline"
  description: "Deactivates Workday profile, revokes Azure AD access, creates ServiceNow ticket, and archives in Box."
  tags:
    - hr
    - workday
    - azure-active-directory
    - servicenow
    - box
capability:
  exposes:
    - type: mcp
      namespace: employee-offboarding-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Deactivates Workday profile, revokes Azure AD access, creates ServiceNow ticket, and archives in Box."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "workday.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "azure-active-directory.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "servicenow.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "box.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://api.workday.com/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: azure-active-directory
      baseUri: "https://api.azureactivedirectory.com/v1"
      authentication:
        type: bearer
        token: "$secrets.azure_active_directory_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://api.servicenow.com/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: box
      baseUri: "https://api.box.com/v1"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence."
          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"
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding_site"
                folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.work_email}}"
                text: "Welcome to Kubota, {{get-employee.first_name}}! Your IT onboarding ticket is {{open-ticket.number}}."
  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://kubota.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves test results from SAP, generates certificates in SharePoint, updates Airtable tracker, and notifies compliance via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Equipment Certification Pipeline"
  description: "Retrieves test results from SAP, generates certificates in SharePoint, updates Airtable tracker, and notifies compliance via Microsoft Teams."
  tags:
    - compliance
    - sap
    - sharepoint
    - airtable
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: equipment-certification-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Retrieves test results from SAP, generates certificates in SharePoint, updates Airtable tracker, and notifies compliance via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "sharepoint.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "airtable.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://api.sharepoint.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: airtable
      baseUri: "https://api.airtable.com/v1"
      authentication:
        type: bearer
        token: "$secrets.airtable_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Processes dealer order in SAP, schedules delivery logistics, updates Salesforce, and notifies dealer via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Equipment Delivery Orchestrator"
  description: "Processes dealer order in SAP, schedules delivery logistics, updates Salesforce, and notifies dealer via Microsoft Outlook."
  tags:
    - delivery
    - sap
    - salesforce
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: equipment-delivery-orchestrator
      port: 8080
      tools:
        - name: execute
          description: "Processes dealer order in SAP, schedules delivery logistics, updates Salesforce, and notifies dealer via Microsoft Outlook."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "salesforce.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "microsoft-outlook.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-outlook.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-outlook
      baseUri: "https://api.microsoftoutlook.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_outlook_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Initiates recall in SAP, creates ServiceNow incident, notifies dealers via Salesforce, and sends customer letters via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Equipment Recall Pipeline"
  description: "Initiates recall in SAP, creates ServiceNow incident, notifies dealers via Salesforce, and sends customer letters via Microsoft Outlook."
  tags:
    - safety
    - sap
    - servicenow
    - salesforce
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: equipment-recall-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Initiates recall in SAP, creates ServiceNow incident, notifies dealers via Salesforce, and sends customer letters via Microsoft Outlook."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "servicenow.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "salesforce.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-outlook.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://api.servicenow.com/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-outlook
      baseUri: "https://api.microsoftoutlook.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_outlook_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves real-time telematics data for a Kubota machine from the IoT platform, including GPS location, engine hours, fuel level, and diagnostic codes.

naftiko: "0.5"
info:
  label: "Equipment Telematics Data Lookup"
  description: "Retrieves real-time telematics data for a Kubota machine from the IoT platform, including GPS location, engine hours, fuel level, and diagnostic codes."
  tags:
    - iot
    - telematics
    - oracle-cloud
capability:
  exposes:
    - type: mcp
      namespace: telematics
      port: 8080
      tools:
        - name: get-machine-telemetry
          description: "Retrieve real-time telematics data for a Kubota machine by serial number."
          inputParameters:
            - name: serial_number
              in: body
              type: string
              description: "The machine serial number."
          call: "oracle.get-telemetry"
          with:
            serial_number: "{{serial_number}}"
          outputParameters:
            - name: gps_location
              type: string
              mapping: "$.data.gpsLocation"
            - name: engine_hours
              type: string
              mapping: "$.data.engineHours"
            - name: fuel_level
              type: string
              mapping: "$.data.fuelLevel"
            - name: dtc_codes
              type: string
              mapping: "$.data.diagnosticCodes"
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://kubota-iot.oraclecloud.com/iot/api/v2"
      authentication:
        type: bearer
        token: "$secrets.oracle_iot_token"
      resources:
        - name: devices
          path: "/devices/{{serial_number}}/telemetry"
          inputParameters:
            - name: serial_number
              in: path
          operations:
            - name: get-telemetry
              method: GET

Appraises equipment in SAP, creates Salesforce opportunity, generates paperwork in DocuSign, and notifies dealer via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Equipment Trade-In Pipeline"
  description: "Appraises equipment in SAP, creates Salesforce opportunity, generates paperwork in DocuSign, and notifies dealer via Microsoft Outlook."
  tags:
    - sales
    - sap
    - salesforce
    - docusign
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: equipment-trade-in-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Appraises equipment in SAP, creates Salesforce opportunity, generates paperwork in DocuSign, and notifies dealer via Microsoft Outlook."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "salesforce.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "docusign.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-outlook.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: docusign
      baseUri: "https://api.docusign.com/v1"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-outlook
      baseUri: "https://api.microsoftoutlook.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_outlook_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Receives service request via Zendesk, dispatches technician via ServiceNow, updates SAP work order, and notifies dealer via Slack.

naftiko: "0.5"
info:
  label: "Field Service Dispatch Pipeline"
  description: "Receives service request via Zendesk, dispatches technician via ServiceNow, updates SAP work order, and notifies dealer via Slack."
  tags:
    - service
    - zendesk
    - servicenow
    - sap
    - slack
capability:
  exposes:
    - type: mcp
      namespace: field-service-dispatch-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Receives service request via Zendesk, dispatches technician via ServiceNow, updates SAP work order, and notifies dealer via Slack."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "zendesk.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "servicenow.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "sap.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "slack.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: zendesk
      baseUri: "https://api.zendesk.com/v1"
      authentication:
        type: bearer
        token: "$secrets.zendesk_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://api.servicenow.com/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves a Figma equipment design file by key.

naftiko: "0.5"
info:
  label: "Figma Equipment Design Lookup"
  description: "Retrieves a Figma equipment design file by key."
  tags:
    - design
    - figma
capability:
  exposes:
    - type: mcp
      namespace: figma-equip
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves a Figma equipment design file by key."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "figma-equip.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: figma-equip
      baseUri: "https://api.figma.com/v1"
      authentication:
        type: bearer
        token: "$secrets.figma_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Triggers SAP period close, generates Power BI reports, archives in Box, and notifies leadership via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Financial Close Pipeline"
  description: "Triggers SAP period close, generates Power BI reports, archives in Box, and notifies leadership via Microsoft Teams."
  tags:
    - finance
    - sap
    - power-bi
    - box
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: financial-close-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Triggers SAP period close, generates Power BI reports, archives in Box, and notifies leadership via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "power-bi.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "box.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: power-bi
      baseUri: "https://api.powerbi.com/v1"
      authentication:
        type: bearer
        token: "$secrets.power_bi_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: box
      baseUri: "https://api.box.com/v1"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Aggregates fleet telematics data from Oracle Cloud IoT, calculates utilization metrics in Azure Databricks, refreshes the Power BI dashboard, and alerts fleet managers via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Fleet Management Dashboard Pipeline"
  description: "Aggregates fleet telematics data from Oracle Cloud IoT, calculates utilization metrics in Azure Databricks, refreshes the Power BI dashboard, and alerts fleet managers via Microsoft Teams."
  tags:
    - iot
    - fleet-management
    - oracle-cloud
    - azure-databricks
    - power-bi
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: fleet-management
      port: 8080
      tools:
        - name: refresh-fleet-dashboard
          description: "Given a customer fleet ID, aggregate telemetry, calculate metrics, and refresh the dashboard."
          inputParameters:
            - name: fleet_id
              in: body
              type: string
              description: "The customer fleet identifier."
            - name: manager_email
              in: body
              type: string
              description: "The fleet manager email."
          steps:
            - name: aggregate-telemetry
              type: call
              call: "oracle.get-fleet-data"
              with:
                fleet_id: "{{fleet_id}}"
            - name: calculate-metrics
              type: call
              call: "databricks.run-query"
              with:
                query: "SELECT * FROM fleet_utilization WHERE fleet_id = '{{fleet_id}}'"
            - name: refresh-dashboard
              type: call
              call: "powerbi.refresh-dataset"
              with:
                dataset_id: "fleet-utilization-dashboard"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{manager_email}}"
                text: "Fleet {{fleet_id}} dashboard refreshed. Average utilization: {{calculate-metrics.avg_utilization}}%. Machines requiring service: {{calculate-metrics.service_due_count}}."
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://kubota-iot.oraclecloud.com/iot/api/v2"
      authentication:
        type: bearer
        token: "$secrets.oracle_iot_token"
      resources:
        - name: fleet-data
          path: "/fleets/{{fleet_id}}/summary"
          inputParameters:
            - name: fleet_id
              in: path
          operations:
            - name: get-fleet-data
              method: GET
    - type: http
      namespace: databricks
      baseUri: "https://kubota-analytics.azuredatabricks.net/api/2.0"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: sql-queries
          path: "/sql/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset_id}}/refreshes"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: refresh-dataset
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Aggregates telematics data in Snowflake, generates utilization reports in Power BI, and shares dealer insights via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Fleet Utilization Analytics Pipeline"
  description: "Aggregates telematics data in Snowflake, generates utilization reports in Power BI, and shares dealer insights via Microsoft Teams."
  tags:
    - fleet
    - snowflake
    - power-bi
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: fleet-utilization-analytics-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Aggregates telematics data in Snowflake, generates utilization reports in Power BI, and shares dealer insights via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "power-bi.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "microsoft-teams.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: power-bi
      baseUri: "https://api.powerbi.com/v1"
      authentication:
        type: bearer
        token: "$secrets.power_bi_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Updates pricing in SAP, syncs to dealer portal via Salesforce, logs in Snowflake, and notifies sales via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Global Pricing Update Pipeline"
  description: "Updates pricing in SAP, syncs to dealer portal via Salesforce, logs in Snowflake, and notifies sales via Microsoft Teams."
  tags:
    - pricing
    - sap
    - salesforce
    - snowflake
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: global-pricing-update-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Updates pricing in SAP, syncs to dealer portal via Salesforce, logs in Snowflake, and notifies sales via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "salesforce.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "snowflake.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves website engagement metrics from Google Analytics for marketing campaigns.

naftiko: "0.5"
info:
  label: "Google Analytics Marketing Metrics"
  description: "Retrieves website engagement metrics from Google Analytics for marketing campaigns."
  tags:
    - marketing
    - google-analytics
capability:
  exposes:
    - type: mcp
      namespace: marketing-analytics
      port: 8080
      tools:
        - name: get-campaign-metrics
          description: "Retrieve marketing campaign metrics from Google Analytics."
          inputParameters:
            - 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: "google-analytics.get-report"
          with:
            property_id: "kubota-website"
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
          outputParameters:
            - name: sessions
              type: string
              mapping: "$.rows[0].metricValues[0].value"
            - name: conversions
              type: string
              mapping: "$.rows[0].metricValues[1].value"
  consumes:
    - type: http
      namespace: google-analytics
      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: get-report
              method: POST

Searches Google Drive for equipment technical manuals and service guides.

naftiko: "0.5"
info:
  label: "Google Drive Technical Manuals Search"
  description: "Searches Google Drive for equipment technical manuals and service guides."
  tags:
    - documentation
    - google-drive
capability:
  exposes:
    - type: mcp
      namespace: tech-manuals
      port: 8080
      tools:
        - name: search-manuals
          description: "Search Google Drive for technical manuals."
          inputParameters:
            - name: keyword
              in: body
              type: string
              description: "The search keyword."
          call: "google-drive.search-files"
          with:
            query: "name contains '{{keyword}}' and mimeType='application/pdf'"
          outputParameters:
            - name: files
              type: string
              mapping: "$.files"
  consumes:
    - type: http
      namespace: google-drive
      baseUri: "https://www.googleapis.com/drive/v3"
      authentication:
        type: bearer
        token: "$secrets.google_drive_token"
      resources:
        - name: files
          path: "/files?q={{query}}"
          inputParameters:
            - name: query
              in: query
          operations:
            - name: search-files
              method: GET

Retrieves nearby Kubota dealer locations using Google Maps geocoding and places API for customer-facing applications.

naftiko: "0.5"
info:
  label: "Google Maps Dealer Locator"
  description: "Retrieves nearby Kubota dealer locations using Google Maps geocoding and places API for customer-facing applications."
  tags:
    - dealer
    - google-maps
capability:
  exposes:
    - type: mcp
      namespace: dealer-locator
      port: 8080
      tools:
        - name: find-nearby-dealers
          description: "Find Kubota dealers near a given location."
          inputParameters:
            - name: address
              in: body
              type: string
              description: "The customer address or zip code."
            - name: radius_miles
              in: body
              type: string
              description: "Search radius in miles."
          call: "google-maps.search-places"
          with:
            query: "Kubota dealer near {{address}}"
            radius: "{{radius_miles}}"
          outputParameters:
            - name: dealers
              type: string
              mapping: "$.results"
  consumes:
    - type: http
      namespace: google-maps
      baseUri: "https://maps.googleapis.com/maps/api"
      authentication:
        type: apikey
        key: "$secrets.google_maps_key"
      resources:
        - name: places
          path: "/place/textsearch/json?query={{query}}&radius={{radius}}"
          inputParameters:
            - name: query
              in: query
            - name: radius
              in: query
          operations:
            - name: search-places
              method: GET

Retrieves search performance for Kubota web properties.

naftiko: "0.5"
info:
  label: "Google Search Console SEO Lookup"
  description: "Retrieves search performance for Kubota web properties."
  tags:
    - seo
    - google-search-console
capability:
  exposes:
    - type: mcp
      namespace: gsc-seo
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves search performance for Kubota web properties."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "gsc-seo.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: gsc-seo
      baseUri: "https://www.googleapis.com/webmasters/v3"
      authentication:
        type: bearer
        token: "$secrets.google_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Collects hydraulic sensor data from IoT platform, analyzes in Snowflake, creates service recommendations in ServiceNow, and notifies dealers via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Hydraulic System Diagnostics Pipeline"
  description: "Collects hydraulic sensor data from IoT platform, analyzes in Snowflake, creates service recommendations in ServiceNow, and notifies dealers via Microsoft Outlook."
  tags:
    - diagnostics
    - snowflake
    - servicenow
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: hydraulic-diagnostics
      port: 8080
      tools:
        - name: execute
          description: "Orchestrate hydraulic system diagnostics across Snowflake, ServiceNow, and Outlook."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The equipment ID."
            - name: context
              in: body
              type: string
              description: "Additional context."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "servicenow.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "microsoft-outlook.execute-step-3"
              with:
                data: "{{step-2.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://api.servicenow.com/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-outlook
      baseUri: "https://api.microsoftoutlook.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_outlook_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Creates campaign in HubSpot, generates contract via DocuSign, tracks deliverables in Asana, and monitors Instagram metrics.

naftiko: "0.5"
info:
  label: "Influencer Partnership Pipeline"
  description: "Creates campaign in HubSpot, generates contract via DocuSign, tracks deliverables in Asana, and monitors Instagram metrics."
  tags:
    - marketing
    - hubspot
    - docusign
    - asana
    - instagram
capability:
  exposes:
    - type: mcp
      namespace: influencer-partnership-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Creates campaign in HubSpot, generates contract via DocuSign, tracks deliverables in Asana, and monitors Instagram metrics."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "hubspot.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "docusign.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "asana.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "instagram.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubspot.com/v1"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: docusign
      baseUri: "https://api.docusign.com/v1"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: asana
      baseUri: "https://api.asana.com/v1"
      authentication:
        type: bearer
        token: "$secrets.asana_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: instagram
      baseUri: "https://api.instagram.com/v1"
      authentication:
        type: bearer
        token: "$secrets.instagram_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves engagement metrics for Kubota Instagram posts.

naftiko: "0.5"
info:
  label: "Instagram Brand Metrics Lookup"
  description: "Retrieves engagement metrics for Kubota Instagram posts."
  tags:
    - social-media
    - instagram
capability:
  exposes:
    - type: mcp
      namespace: instagram-brand
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves engagement metrics for Kubota Instagram posts."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "instagram-brand.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: instagram-brand
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.instagram_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

On Dynatrace alert, creates ServiceNow incident, pages team via Slack, and opens Zoom bridge.

naftiko: "0.5"
info:
  label: "IT Incident Response Pipeline"
  description: "On Dynatrace alert, creates ServiceNow incident, pages team via Slack, and opens Zoom bridge."
  tags:
    - incident
    - dynatrace
    - servicenow
    - slack
    - zoom
capability:
  exposes:
    - type: mcp
      namespace: it-incident-response-pipeline
      port: 8080
      tools:
        - name: execute
          description: "On Dynatrace alert, creates ServiceNow incident, pages team via Slack, and opens Zoom bridge."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "dynatrace.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "servicenow.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "slack.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "zoom.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: dynatrace
      baseUri: "https://api.dynatrace.com/v1"
      authentication:
        type: bearer
        token: "$secrets.dynatrace_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://api.servicenow.com/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: zoom
      baseUri: "https://api.zoom.com/v1"
      authentication:
        type: bearer
        token: "$secrets.zoom_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves a Jira issue by key from the engineering project.

naftiko: "0.5"
info:
  label: "Jira Engineering Task Lookup"
  description: "Retrieves a Jira issue by key from the engineering project."
  tags:
    - engineering
    - jira
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: get-jira-issue
          description: "Look up a Jira issue by key."
          inputParameters:
            - name: issue_key
              in: body
              type: string
              description: "The Jira issue key."
          call: "jira.get-issue"
          with:
            issue_key: "{{issue_key}}"
          outputParameters:
            - name: summary
              type: string
              mapping: "$.fields.summary"
            - name: status
              type: string
              mapping: "$.fields.status.name"
            - name: assignee
              type: string
              mapping: "$.fields.assignee.displayName"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://kubota.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: issues
          path: "/issue/{{issue_key}}"
          inputParameters:
            - name: issue_key
              in: path
          operations:
            - name: get-issue
              method: GET

Creates a job posting on LinkedIn for dealer technician recruitment and tracks it in Salesforce.

naftiko: "0.5"
info:
  label: "LinkedIn Dealer Recruitment Post"
  description: "Creates a job posting on LinkedIn for dealer technician recruitment and tracks it in Salesforce."
  tags:
    - recruitment
    - linkedin
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: recruitment
      port: 8080
      tools:
        - name: post-technician-job
          description: "Given job details, create a LinkedIn job post and log it in Salesforce."
          inputParameters:
            - name: job_title
              in: body
              type: string
              description: "The job title."
            - name: location
              in: body
              type: string
              description: "The job location."
            - name: description
              in: body
              type: string
              description: "The job description."
          steps:
            - name: create-post
              type: call
              call: "linkedin.create-job-post"
              with:
                title: "{{job_title}}"
                description: "{{description}}"
                location: "{{location}}"
            - name: log-posting
              type: call
              call: "salesforce.create-job-record"
              with:
                title: "{{job_title}}"
                location: "{{location}}"
                linkedin_post_id: "{{create-post.post_id}}"
  consumes:
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v2"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: job-posts
          path: "/simpleJobPostings"
          operations:
            - name: create-job-post
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://kubota.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: job-records
          path: "/sobjects/JobPosting__c"
          operations:
            - name: create-job-record
              method: POST

Validates batch in SAP, updates status, creates Confluence report, and alerts quality team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Manufacturing Quality Gate Pipeline"
  description: "Validates batch in SAP, updates status, creates Confluence report, and alerts quality team via Microsoft Teams."
  tags:
    - manufacturing
    - sap
    - confluence
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: manufacturing-quality-gate-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Validates batch in SAP, updates status, creates Confluence report, and alerts quality team via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "confluence.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "microsoft-teams.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://api.confluence.com/v1"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Gets employee from Workday, provisions Azure AD account, creates ServiceNow request, and sends welcome via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "New Hire Provisioning Pipeline"
  description: "Gets employee from Workday, provisions Azure AD account, creates ServiceNow request, and sends welcome via Microsoft Outlook."
  tags:
    - it
    - workday
    - azure-active-directory
    - servicenow
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: new-hire-provisioning-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Gets employee from Workday, provisions Azure AD account, creates ServiceNow request, and sends welcome via Microsoft Outlook."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "workday.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "azure-active-directory.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "servicenow.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-outlook.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://api.workday.com/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: azure-active-directory
      baseUri: "https://api.azureactivedirectory.com/v1"
      authentication:
        type: bearer
        token: "$secrets.azure_active_directory_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://api.servicenow.com/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-outlook
      baseUri: "https://api.microsoftoutlook.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_outlook_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Creates product in SAP, publishes to dealer portal via Salesforce, promotes on LinkedIn, and notifies dealers via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "New Model Launch Pipeline"
  description: "Creates product in SAP, publishes to dealer portal via Salesforce, promotes on LinkedIn, and notifies dealers via Microsoft Outlook."
  tags:
    - product
    - sap
    - salesforce
    - linkedin
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: new-model-launch-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Creates product in SAP, publishes to dealer portal via Salesforce, promotes on LinkedIn, and notifies dealers via Microsoft Outlook."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "salesforce.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "linkedin.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-outlook.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v1"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-outlook
      baseUri: "https://api.microsoftoutlook.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_outlook_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves IoT telematics platform health metrics from New Relic.

naftiko: "0.5"
info:
  label: "New Relic IoT Platform Lookup"
  description: "Retrieves IoT telematics platform health metrics from New Relic."
  tags:
    - monitoring
    - new-relic
capability:
  exposes:
    - type: mcp
      namespace: newrelic-iot
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves IoT telematics platform health metrics from New Relic."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "newrelic-iot.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: newrelic-iot
      baseUri: "https://api.newrelic.com/v2"
      authentication:
        type: bearer
        token: "$secrets.newrelic_api_key"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Retrieves parts information from SAP by part number, including description, price, and availability.

naftiko: "0.5"
info:
  label: "Parts Catalog Lookup"
  description: "Retrieves parts information from SAP by part number, including description, price, and availability."
  tags:
    - supply-chain
    - parts
    - sap
capability:
  exposes:
    - type: mcp
      namespace: parts-catalog
      port: 8080
      tools:
        - name: get-part-details
          description: "Look up a part in SAP by part number."
          inputParameters:
            - name: part_number
              in: body
              type: string
              description: "The SAP part number."
          call: "sap.get-material"
          with:
            material: "{{part_number}}"
          outputParameters:
            - name: description
              type: string
              mapping: "$.d.MaterialDescription"
            - name: price
              type: string
              mapping: "$.d.StandardPrice"
            - name: available_stock
              type: string
              mapping: "$.d.AvailableStock"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/MM_MATERIAL_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: materials
          path: "/A_Material('{{material}}')"
          inputParameters:
            - name: material
              in: path
          operations:
            - name: get-material
              method: GET

Checks stock in SAP, creates replenishment PO, notifies warehouse via Slack, and updates Google Sheets tracker.

naftiko: "0.5"
info:
  label: "Parts Inventory Replenishment Pipeline"
  description: "Checks stock in SAP, creates replenishment PO, notifies warehouse via Slack, and updates Google Sheets tracker."
  tags:
    - inventory
    - sap
    - slack
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: parts-inventory-replenishment-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Checks stock in SAP, creates replenishment PO, notifies warehouse via Slack, and updates Google Sheets tracker."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "slack.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "google-sheets.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "google-sheets.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

When equipment requires maintenance, creates a work order in SAP, assigns a technician via ServiceNow, and notifies the plant manager via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Plant Maintenance Work Order Pipeline"
  description: "When equipment requires maintenance, creates a work order in SAP, assigns a technician via ServiceNow, and notifies the plant manager via Microsoft Teams."
  tags:
    - manufacturing
    - maintenance
    - sap
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: plant-maintenance
      port: 8080
      tools:
        - name: create-maintenance-order
          description: "Given equipment details, create a work order, assign a technician, and notify management."
          inputParameters:
            - name: equipment_id
              in: body
              type: string
              description: "The SAP equipment identifier."
            - name: plant_code
              in: body
              type: string
              description: "The plant code."
            - name: issue_description
              in: body
              type: string
              description: "Description of the maintenance issue."
            - name: priority
              in: body
              type: string
              description: "Priority level."
          steps:
            - name: create-order
              type: call
              call: "sap.create-maintenance-order"
              with:
                equipment_id: "{{equipment_id}}"
                plant: "{{plant_code}}"
                description: "{{issue_description}}"
                priority: "{{priority}}"
            - name: assign-technician
              type: call
              call: "servicenow.create-work-order"
              with:
                short_description: "Equipment maintenance: {{equipment_id}}"
                priority: "{{priority}}"
                description: "{{issue_description}}. SAP order: {{create-order.order_number}}."
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "plant-maintenance"
                text: "Maintenance order for {{equipment_id}} at {{plant_code}}. Priority: {{priority}}. SAP: {{create-order.order_number}}. ServiceNow: {{assign-technician.number}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/PM_ORDER_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: servicenow
      baseUri: "https://kubota.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: work-orders
          path: "/table/wm_order"
          operations:
            - name: create-work-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/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves Power BI manufacturing KPI dashboard refresh status.

naftiko: "0.5"
info:
  label: "Power BI Manufacturing Dashboard"
  description: "Retrieves Power BI manufacturing KPI dashboard refresh status."
  tags:
    - analytics
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: powerbi-mfg
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves Power BI manufacturing KPI dashboard refresh status."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "powerbi-mfg.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: powerbi-mfg
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Triggers a refresh of the dealer sales Power BI dataset.

naftiko: "0.5"
info:
  label: "Power BI Sales Dashboard Refresh"
  description: "Triggers a refresh of the dealer sales Power BI dataset."
  tags:
    - analytics
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: sales-analytics
      port: 8080
      tools:
        - name: refresh-sales-dashboard
          description: "Trigger a Power BI dataset refresh for the dealer sales dashboard."
          inputParameters:
            - name: dataset_id
              in: body
              type: string
              description: "The Power BI dataset identifier."
          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

Collects field data from IoT platform, stores in Snowflake, generates insights in Power BI, and shares with dealers via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Precision Agriculture Data Pipeline"
  description: "Collects field data from IoT platform, stores in Snowflake, generates insights in Power BI, and shares with dealers via Microsoft Teams."
  tags:
    - agriculture
    - snowflake
    - power-bi
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: precision-agriculture-data-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Collects field data from IoT platform, stores in Snowflake, generates insights in Power BI, and shares with dealers via Microsoft Teams."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "power-bi.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "microsoft-teams.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-teams.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: power-bi
      baseUri: "https://api.powerbi.com/v1"
      authentication:
        type: bearer
        token: "$secrets.power_bi_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-teams
      baseUri: "https://api.microsoftteams.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_teams_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Monitors IoT sensor data from Oracle Cloud, runs failure prediction in Azure Machine Learning, creates a service case in ServiceNow, and notifies the dealer via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Predictive Maintenance Alert Pipeline"
  description: "Monitors IoT sensor data from Oracle Cloud, runs failure prediction in Azure Machine Learning, creates a service case in ServiceNow, and notifies the dealer via Microsoft Teams."
  tags:
    - iot
    - predictive-maintenance
    - oracle-cloud
    - azure-machine-learning
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: predictive-maintenance
      port: 8080
      tools:
        - name: assess-machine-health
          description: "Given a machine serial number, analyze sensor data, predict failures, and create service cases."
          inputParameters:
            - name: serial_number
              in: body
              type: string
              description: "The machine serial number."
            - name: dealer_email
              in: body
              type: string
              description: "The dealer service manager email."
          steps:
            - name: get-sensor-data
              type: call
              call: "oracle.get-sensor-history"
              with:
                serial_number: "{{serial_number}}"
            - name: predict-failure
              type: call
              call: "azureml.score"
              with:
                model: "equipment-failure-prediction-v2"
                input_data: "{{get-sensor-data.readings}}"
            - name: create-service-case
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "Predictive maintenance: {{serial_number}}"
                category: "preventive_maintenance"
                priority: "{{predict-failure.risk_level}}"
                description: "Failure probability: {{predict-failure.probability}}. Component: {{predict-failure.component}}. Recommended action: {{predict-failure.recommendation}}."
            - name: notify-dealer
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{dealer_email}}"
                text: "Predictive maintenance alert for machine {{serial_number}}: {{predict-failure.component}} risk level {{predict-failure.risk_level}}. Service case: {{create-service-case.number}}."
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://kubota-iot.oraclecloud.com/iot/api/v2"
      authentication:
        type: bearer
        token: "$secrets.oracle_iot_token"
      resources:
        - name: sensor-history
          path: "/devices/{{serial_number}}/messages?limit=1000"
          inputParameters:
            - name: serial_number
              in: path
          operations:
            - name: get-sensor-history
              method: GET
    - type: http
      namespace: azureml
      baseUri: "https://kubota-ml.eastus.inference.ml.azure.com"
      authentication:
        type: bearer
        token: "$secrets.azureml_token"
      resources:
        - name: scoring
          path: "/score"
          operations:
            - name: score
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://kubota.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: cases
          path: "/table/sn_customerservice_case"
          operations:
            - name: create-case
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

When a safety issue is detected, identifies affected machines in SAP, creates a recall campaign in Salesforce, notifies dealers via MailChimp, and alerts the safety team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Product Recall Pipeline"
  description: "When a safety issue is detected, identifies affected machines in SAP, creates a recall campaign in Salesforce, notifies dealers via MailChimp, and alerts the safety team via Microsoft Teams."
  tags:
    - safety
    - recall
    - sap
    - salesforce
    - mailchimp
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: product-safety
      port: 8080
      tools:
        - name: initiate-recall
          description: "Given a product model and issue, identify affected machines, create recall campaign, and notify stakeholders."
          inputParameters:
            - name: model
              in: body
              type: string
              description: "The equipment model number."
            - name: issue_description
              in: body
              type: string
              description: "Description of the safety issue."
            - name: severity
              in: body
              type: string
              description: "Severity level."
          steps:
            - name: find-affected
              type: call
              call: "sap.find-affected-machines"
              with:
                model: "{{model}}"
            - name: create-campaign
              type: call
              call: "salesforce.create-recall-campaign"
              with:
                model: "{{model}}"
                affected_count: "{{find-affected.machine_count}}"
                severity: "{{severity}}"
            - name: notify-dealers
              type: call
              call: "mailchimp.send-campaign"
              with:
                list_id: "dealer-network"
                template: "safety-recall"
                subject: "Safety Recall: {{model}}"
            - name: alert-safety-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "product-safety"
                text: "SAFETY RECALL: Model {{model}}. Severity: {{severity}}. Affected machines: {{find-affected.machine_count}}. Campaign: {{create-campaign.campaign_id}}. Dealer notifications sent."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/PM_ORDER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: machines
          path: "/Equipment?$filter=Model eq '{{model}}'"
          inputParameters:
            - name: model
              in: query
          operations:
            - name: find-affected-machines
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://kubota.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: campaigns
          path: "/sobjects/Campaign"
          operations:
            - name: create-recall-campaign
              method: POST
    - type: http
      namespace: mailchimp
      baseUri: "https://us1.api.mailchimp.com/3.0"
      authentication:
        type: basic
        username: "anystring"
        password: "$secrets.mailchimp_api_key"
      resources:
        - name: campaigns
          path: "/campaigns"
          operations:
            - name: send-campaign
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves the current status of a manufacturing production line from SAP, including throughput, downtime, and current batch.

naftiko: "0.5"
info:
  label: "Production Line Status Lookup"
  description: "Retrieves the current status of a manufacturing production line from SAP, including throughput, downtime, and current batch."
  tags:
    - manufacturing
    - production
    - sap
capability:
  exposes:
    - type: mcp
      namespace: manufacturing
      port: 8080
      tools:
        - name: get-production-line-status
          description: "Look up a production line status in SAP by line ID."
          inputParameters:
            - name: line_id
              in: body
              type: string
              description: "The SAP production line identifier."
          call: "sap.get-production-line"
          with:
            line_id: "{{line_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.d.LineStatus"
            - name: throughput_rate
              type: string
              mapping: "$.d.ThroughputRate"
            - name: current_batch
              type: string
              mapping: "$.d.CurrentBatchId"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/PP_PRODUCTION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: production-lines
          path: "/ProductionLines('{{line_id}}')"
          inputParameters:
            - name: line_id
              in: path
          operations:
            - name: get-production-line
              method: GET

Analyzes demand in Snowflake, optimizes schedules in SAP, refreshes Power BI dashboards, and alerts plant managers via Slack.

naftiko: "0.5"
info:
  label: "Production Scheduling Optimization Pipeline"
  description: "Analyzes demand in Snowflake, optimizes schedules in SAP, refreshes Power BI dashboards, and alerts plant managers via Slack."
  tags:
    - manufacturing
    - snowflake
    - sap
    - power-bi
    - slack
capability:
  exposes:
    - type: mcp
      namespace: production-scheduling-optimization-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Analyzes demand in Snowflake, optimizes schedules in SAP, refreshes Power BI dashboards, and alerts plant managers via Slack."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "sap.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "power-bi.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "slack.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: power-bi
      baseUri: "https://api.powerbi.com/v1"
      authentication:
        type: bearer
        token: "$secrets.power_bi_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves Qlik Sense parts sales analytics dashboard status.

naftiko: "0.5"
info:
  label: "Qlik Sense Parts Analytics Lookup"
  description: "Retrieves Qlik Sense parts sales analytics dashboard status."
  tags:
    - analytics
    - qlik-sense
capability:
  exposes:
    - type: mcp
      namespace: qlik-parts
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves Qlik Sense parts sales analytics dashboard status."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "qlik-parts.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: qlik-parts
      baseUri: "https://kubota.qlikcloud.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.qlik_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

When a manufacturing batch completes, runs quality inspections in SAP, stores the inspection report in SharePoint, and notifies QA via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Quality Inspection Batch Release Pipeline"
  description: "When a manufacturing batch completes, runs quality inspections in SAP, stores the inspection report in SharePoint, and notifies QA via Microsoft Teams."
  tags:
    - manufacturing
    - quality-control
    - sap
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: quality-control
      port: 8080
      tools:
        - name: process-batch-inspection
          description: "Given a batch ID, run quality inspections, store the report, and notify QA."
          inputParameters:
            - name: batch_id
              in: body
              type: string
              description: "The SAP production batch identifier."
            - name: plant_code
              in: body
              type: string
              description: "The manufacturing plant code."
          steps:
            - name: run-inspection
              type: call
              call: "sap.run-quality-inspection"
              with:
                batch_id: "{{batch_id}}"
                plant: "{{plant_code}}"
            - name: store-report
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "quality-docs"
                folder_path: "Inspections/{{plant_code}}/{{batch_id}}"
                file_name: "inspection_report.pdf"
            - name: notify-qa
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "quality-assurance"
                text: "Batch {{batch_id}} inspection at {{plant_code}}: Result: {{run-inspection.result}}. Report: {{store-report.url}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/QM_INSPECTION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: inspections
          path: "/QualityInspections"
          operations:
            - name: run-quality-inspection
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: files
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Tracks rental equipment in SAP, manages contracts in Salesforce, processes payments via Stripe, and reports in Google Sheets.

naftiko: "0.5"
info:
  label: "Rental Fleet Management Pipeline"
  description: "Tracks rental equipment in SAP, manages contracts in Salesforce, processes payments via Stripe, and reports in Google Sheets."
  tags:
    - fleet
    - sap
    - salesforce
    - stripe
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: rental-fleet-management-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Tracks rental equipment in SAP, manages contracts in Salesforce, processes payments via Stripe, and reports in Google Sheets."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "salesforce.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "stripe.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "google-sheets.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: stripe
      baseUri: "https://api.stripe.com/v1"
      authentication:
        type: bearer
        token: "$secrets.stripe_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves Salesforce dealer account details by ID.

naftiko: "0.5"
info:
  label: "Salesforce Dealer Account Lookup"
  description: "Retrieves Salesforce dealer account details by ID."
  tags:
    - sales
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: sf-dealers
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves Salesforce dealer account details by ID."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "sf-dealers.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: sf-dealers
      baseUri: "https://kubota.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Retrieves a travel expense report from SAP Concur by report ID.

naftiko: "0.5"
info:
  label: "SAP Concur Travel Expense Lookup"
  description: "Retrieves a travel expense report from SAP Concur by report ID."
  tags:
    - finance
    - travel
    - sap-concur
capability:
  exposes:
    - type: mcp
      namespace: travel-expenses
      port: 8080
      tools:
        - name: get-expense-report
          description: "Look up a SAP Concur expense report by report ID."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "The SAP Concur expense report ID."
          call: "concur.get-report"
          with:
            report_id: "{{report_id}}"
          outputParameters:
            - name: total_amount
              type: string
              mapping: "$.Total"
            - name: approval_status
              type: string
              mapping: "$.ApprovalStatusName"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://us.api.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-report
              method: GET

Retrieves material inventory levels from SAP by material number.

naftiko: "0.5"
info:
  label: "SAP Material Inventory Lookup"
  description: "Retrieves material inventory levels from SAP by material number."
  tags:
    - inventory
    - sap
capability:
  exposes:
    - type: mcp
      namespace: sap-inventory
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves material inventory levels from SAP by material number."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "sap-inventory.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: sap-inventory
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/ZINVENTORY_SRV"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Retrieves production order details from SAP by order number.

naftiko: "0.5"
info:
  label: "SAP Production Order Lookup"
  description: "Retrieves production order details from SAP by order number."
  tags:
    - manufacturing
    - sap
capability:
  exposes:
    - type: mcp
      namespace: sap-prodorders
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves production order details from SAP by order number."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "sap-prodorders.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: sap-prodorders
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/ZPRODORDER_SRV"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Looks up a SAP purchase order by number and returns header status, vendor, total value, and delivery date.

naftiko: "0.5"
info:
  label: "SAP Purchase Order Status"
  description: "Looks up a SAP purchase order by number and returns header status, vendor, total value, and delivery date."
  tags:
    - procurement
    - supply-chain
    - sap
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: get-purchase-order
          description: "Look up a SAP purchase order by PO number."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The SAP purchase order number."
          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: delivery_date
              type: string
              mapping: "$.d.DeliveryDate"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder('{{po_number}}')"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: get-po
              method: GET

Retrieves quality inspection results from SAP by inspection lot.

naftiko: "0.5"
info:
  label: "SAP Quality Inspection Lookup"
  description: "Retrieves quality inspection results from SAP by inspection lot."
  tags:
    - quality
    - sap
capability:
  exposes:
    - type: mcp
      namespace: sap-quality
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves quality inspection results from SAP by inspection lot."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "sap-quality.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: sap-quality
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/ZQUALITY_SRV"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Detects issues via Dynatrace, creates Jira tickets, alerts team via Slack, and triggers Azure DevOps patches.

naftiko: "0.5"
info:
  label: "Security Vulnerability Pipeline"
  description: "Detects issues via Dynatrace, creates Jira tickets, alerts team via Slack, and triggers Azure DevOps patches."
  tags:
    - security
    - dynatrace
    - jira
    - slack
    - azure-devops
capability:
  exposes:
    - type: mcp
      namespace: security-vulnerability-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Detects issues via Dynatrace, creates Jira tickets, alerts team via Slack, and triggers Azure DevOps patches."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "dynatrace.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "jira.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "slack.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "azure-devops.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: dynatrace
      baseUri: "https://api.dynatrace.com/v1"
      authentication:
        type: bearer
        token: "$secrets.dynatrace_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://api.jira.com/v1"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: azure-devops
      baseUri: "https://api.azuredevops.com/v1"
      authentication:
        type: bearer
        token: "$secrets.azure_devops_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Pulls search data from Google Search Console, identifies opportunities, updates website, and reports via Google Sheets.

naftiko: "0.5"
info:
  label: "SEO Content Optimization Pipeline"
  description: "Pulls search data from Google Search Console, identifies opportunities, updates website, and reports via Google Sheets."
  tags:
    - seo
    - google-search-console
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: seo-content-optimization-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Pulls search data from Google Search Console, identifies opportunities, updates website, and reports via Google Sheets."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "google-search-console.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "google-sheets.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "service.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "google-sheets.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: google-search-console
      baseUri: "https://api.googlesearchconsole.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_search_console_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves a ServiceNow incident by number and returns priority, status, and assigned group.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Lookup"
  description: "Retrieves a ServiceNow incident by number and returns priority, status, and assigned group."
  tags:
    - it-operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: it-support
      port: 8080
      tools:
        - name: get-incident
          description: "Look up a ServiceNow incident by number."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number."
          call: "servicenow.get-incident"
          with:
            incident_number: "{{incident_number}}"
          outputParameters:
            - name: priority
              type: string
              mapping: "$.result.priority"
            - name: state
              type: string
              mapping: "$.result.state"
            - name: assigned_to
              type: string
              mapping: "$.result.assigned_to.display_value"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://kubota.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident?sysparm_query=number={{incident_number}}"
          inputParameters:
            - name: incident_number
              in: query
          operations:
            - name: get-incident
              method: GET

Sends a message to a Slack engineering channel.

naftiko: "0.5"
info:
  label: "Slack Engineering Message Sender"
  description: "Sends a message to a Slack engineering channel."
  tags:
    - communications
    - slack
capability:
  exposes:
    - type: mcp
      namespace: slack-eng
      port: 8080
      tools:
        - name: get-data
          description: "Sends a message to a Slack engineering channel."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "slack-eng.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: slack-eng
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Queries equipment usage and sales analytics from Snowflake.

naftiko: "0.5"
info:
  label: "Snowflake Equipment Analytics Query"
  description: "Queries equipment usage and sales analytics from Snowflake."
  tags:
    - analytics
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: snowflake-equip
      port: 8080
      tools:
        - name: get-data
          description: "Queries equipment usage and sales analytics from Snowflake."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "snowflake-equip.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: snowflake-equip
      baseUri: "https://kubota.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Creates campaign in HubSpot, schedules posts on LinkedIn and Instagram, tracks in Google Analytics, and reports via Google Sheets.

naftiko: "0.5"
info:
  label: "Social Media Campaign Pipeline"
  description: "Creates campaign in HubSpot, schedules posts on LinkedIn and Instagram, tracks in Google Analytics, and reports via Google Sheets."
  tags:
    - social-media
    - hubspot
    - linkedin
    - instagram
    - google-analytics
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: social-media-campaign-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Creates campaign in HubSpot, schedules posts on LinkedIn and Instagram, tracks in Google Analytics, and reports via Google Sheets."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "hubspot.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "linkedin.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "instagram.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "google-sheets.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubspot.com/v1"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v1"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: instagram
      baseUri: "https://api.instagram.com/v1"
      authentication:
        type: bearer
        token: "$secrets.instagram_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-analytics
      baseUri: "https://api.googleanalytics.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_analytics_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves security event logs from Splunk for Kubota infrastructure.

naftiko: "0.5"
info:
  label: "Splunk Security Event Lookup"
  description: "Retrieves security event logs from Splunk for Kubota infrastructure."
  tags:
    - security
    - splunk
capability:
  exposes:
    - type: mcp
      namespace: splunk-events
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves security event logs from Splunk for Kubota infrastructure."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "splunk-events.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: splunk-events
      baseUri: "https://kubota.splunkcloud.com:8089/services"
      authentication:
        type: bearer
        token: "$secrets.splunk_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Retrieves a Stripe payment for Kubota parts and accessories orders.

naftiko: "0.5"
info:
  label: "Stripe Parts Payment Lookup"
  description: "Retrieves a Stripe payment for Kubota parts and accessories orders."
  tags:
    - payments
    - stripe
capability:
  exposes:
    - type: mcp
      namespace: stripe-parts
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves a Stripe payment for Kubota parts and accessories orders."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "stripe-parts.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: stripe-parts
      baseUri: "https://api.stripe.com/v1"
      authentication:
        type: bearer
        token: "$secrets.stripe_secret_key"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Tracks incoming parts deliveries from suppliers in SAP, updates the dealer parts inventory in Salesforce, and notifies the parts department via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Supplier Parts Delivery Tracking Pipeline"
  description: "Tracks incoming parts deliveries from suppliers in SAP, updates the dealer parts inventory in Salesforce, and notifies the parts department via Microsoft Teams."
  tags:
    - supply-chain
    - parts
    - sap
    - salesforce
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: parts-delivery
      port: 8080
      tools:
        - name: track-parts-delivery
          description: "Given a delivery number, track the shipment, update dealer inventory, and notify the parts team."
          inputParameters:
            - name: delivery_number
              in: body
              type: string
              description: "The SAP inbound delivery number."
            - name: dealer_id
              in: body
              type: string
              description: "The destination dealer ID."
          steps:
            - name: get-delivery
              type: call
              call: "sap.get-delivery-status"
              with:
                delivery_number: "{{delivery_number}}"
            - name: update-inventory
              type: call
              call: "salesforce.update-dealer-inventory"
              with:
                dealer_id: "{{dealer_id}}"
                parts: "{{get-delivery.line_items}}"
                delivery_status: "{{get-delivery.status}}"
            - name: notify-parts
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "parts-logistics"
                text: "Parts delivery {{delivery_number}} for dealer {{dealer_id}}: Status: {{get-delivery.status}}. Items: {{get-delivery.item_count}}. ETA: {{get-delivery.eta}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/SD_DELIVERY_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: deliveries
          path: "/InboundDeliveries('{{delivery_number}}')"
          inputParameters:
            - name: delivery_number
              in: path
          operations:
            - name: get-delivery-status
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://kubota.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: dealer-inventory
          path: "/sobjects/DealerInventory__c"
          operations:
            - name: update-dealer-inventory
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Schedules audit in SAP, creates checklist in Asana, stores findings in Confluence, and notifies procurement via Slack.

naftiko: "0.5"
info:
  label: "Supplier Quality Audit Pipeline"
  description: "Schedules audit in SAP, creates checklist in Asana, stores findings in Confluence, and notifies procurement via Slack."
  tags:
    - quality
    - sap
    - asana
    - confluence
    - slack
capability:
  exposes:
    - type: mcp
      namespace: supplier-quality-audit-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Schedules audit in SAP, creates checklist in Asana, stores findings in Confluence, and notifies procurement via Slack."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "asana.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "confluence.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "slack.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: asana
      baseUri: "https://api.asana.com/v1"
      authentication:
        type: bearer
        token: "$secrets.asana_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://api.confluence.com/v1"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Extracts emissions data from SAP, calculates environmental metrics in Azure Databricks, stores the report in SharePoint, and notifies the ESG team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Sustainability Reporting Pipeline"
  description: "Extracts emissions data from SAP, calculates environmental metrics in Azure Databricks, stores the report in SharePoint, and notifies the ESG team via Microsoft Teams."
  tags:
    - sustainability
    - sap
    - azure-databricks
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: sustainability
      port: 8080
      tools:
        - name: generate-sustainability-report
          description: "Given a reporting period, extract data, calculate metrics, and distribute the report."
          inputParameters:
            - name: reporting_period
              in: body
              type: string
              description: "The reporting period."
            - name: plant_code
              in: body
              type: string
              description: "The plant code."
          steps:
            - name: extract-data
              type: call
              call: "sap.get-emissions-data"
              with:
                period: "{{reporting_period}}"
                plant: "{{plant_code}}"
            - name: calculate-metrics
              type: call
              call: "databricks.run-query"
              with:
                query: "SELECT * FROM emissions_calc('{{reporting_period}}', '{{plant_code}}')"
            - name: store-report
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "esg-reports"
                folder_path: "Sustainability/{{plant_code}}/{{reporting_period}}"
                file_name: "emissions_report.pdf"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "esg-team"
                text: "Sustainability report for {{plant_code}} ({{reporting_period}}): Total emissions: {{calculate-metrics.total_emissions}} tCO2e. Report: {{store-report.url}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/SUSTAINABILITY_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: emissions
          path: "/EmissionsData?$filter=Period eq '{{period}}' and Plant eq '{{plant}}'"
          inputParameters:
            - name: period
              in: query
            - name: plant
              in: query
          operations:
            - name: get-emissions-data
              method: GET
    - type: http
      namespace: databricks
      baseUri: "https://kubota-analytics.azuredatabricks.net/api/2.0"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: sql-queries
          path: "/sql/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: files
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves a Tableau dashboard embed URL for dealer network analytics.

naftiko: "0.5"
info:
  label: "Tableau Dealer Network Dashboard"
  description: "Retrieves a Tableau dashboard embed URL for dealer network analytics."
  tags:
    - analytics
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: dealer-analytics
      port: 8080
      tools:
        - name: get-dealer-dashboard
          description: "Retrieve the embed URL for a Tableau dealer network dashboard."
          inputParameters:
            - name: workbook_name
              in: body
              type: string
              description: "The Tableau workbook name."
          call: "tableau.get-workbook"
          with:
            workbook_name: "{{workbook_name}}"
          outputParameters:
            - name: embed_url
              type: string
              mapping: "$.workbook.contentUrl"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://kubota-tableau.online/api/3.14"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: workbooks
          path: "/sites/{{site_id}}/workbooks?filter=name:eq:{{workbook_name}}"
          inputParameters:
            - name: workbook_name
              in: query
          operations:
            - name: get-workbook
              method: GET

Posts jobs to LinkedIn, syncs applicants to Workday, schedules interviews via Zoom, and notifies managers via Slack.

naftiko: "0.5"
info:
  label: "Talent Acquisition Pipeline"
  description: "Posts jobs to LinkedIn, syncs applicants to Workday, schedules interviews via Zoom, and notifies managers via Slack."
  tags:
    - recruiting
    - linkedin
    - workday
    - zoom
    - slack
capability:
  exposes:
    - type: mcp
      namespace: talent-acquisition-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Posts jobs to LinkedIn, syncs applicants to Workday, schedules interviews via Zoom, and notifies managers via Slack."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "linkedin.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "workday.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "zoom.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "slack.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v1"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://api.workday.com/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: zoom
      baseUri: "https://api.zoom.com/v1"
      authentication:
        type: bearer
        token: "$secrets.zoom_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

On IoT alert, creates ServiceNow ticket, notifies dealer via Slack, schedules service in SAP, and logs in Snowflake.

naftiko: "0.5"
info:
  label: "Telematics Alert Response Pipeline"
  description: "On IoT alert, creates ServiceNow ticket, notifies dealer via Slack, schedules service in SAP, and logs in Snowflake."
  tags:
    - iot
    - servicenow
    - slack
    - sap
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: telematics-alert-response-pipeline
      port: 8080
      tools:
        - name: execute
          description: "On IoT alert, creates ServiceNow ticket, notifies dealer via Slack, schedules service in SAP, and logs in Snowflake."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "slack.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "sap.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "snowflake.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://api.servicenow.com/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Queries dealer network performance data from Teradata.

naftiko: "0.5"
info:
  label: "Teradata Dealer Network Query"
  description: "Queries dealer network performance data from Teradata."
  tags:
    - analytics
    - teradata
capability:
  exposes:
    - type: mcp
      namespace: teradata-dealers
      port: 8080
      tools:
        - name: get-data
          description: "Queries dealer network performance data from Teradata."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "teradata-dealers.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: teradata-dealers
      baseUri: "https://kubota.teradata.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.teradata_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Pulls completions from Pluralsight, syncs with Workday, generates reports in Google Sheets, and alerts managers via Slack.

naftiko: "0.5"
info:
  label: "Training Compliance Pipeline"
  description: "Pulls completions from Pluralsight, syncs with Workday, generates reports in Google Sheets, and alerts managers via Slack."
  tags:
    - training
    - pluralsight
    - workday
    - google-sheets
    - slack
capability:
  exposes:
    - type: mcp
      namespace: training-compliance-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Pulls completions from Pluralsight, syncs with Workday, generates reports in Google Sheets, and alerts managers via Slack."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "pluralsight.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "workday.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "google-sheets.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "slack.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: pluralsight
      baseUri: "https://api.pluralsight.com/v1"
      authentication:
        type: bearer
        token: "$secrets.pluralsight_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://api.workday.com/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

When a vendor invoice arrives, validates against the SAP purchase order, routes for approval, and notifies accounts payable via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Vendor Invoice Processing Pipeline"
  description: "When a vendor invoice arrives, validates against the SAP purchase order, routes for approval, and notifies accounts payable via Microsoft Teams."
  tags:
    - finance
    - accounts-payable
    - sap
    - workday
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: invoice-processing
      port: 8080
      tools:
        - name: process-invoice
          description: "Given an invoice and PO number, validate, route for approval, and notify AP."
          inputParameters:
            - name: invoice_number
              in: body
              type: string
              description: "The vendor invoice number."
            - name: po_number
              in: body
              type: string
              description: "The SAP purchase order number."
            - name: amount
              in: body
              type: string
              description: "The invoice amount."
          steps:
            - name: validate-po
              type: call
              call: "sap.get-po"
              with:
                po_number: "{{po_number}}"
            - name: route-approval
              type: call
              call: "workday.submit-approval"
              with:
                amount: "{{amount}}"
                description: "Invoice {{invoice_number}} for PO {{po_number}}"
            - name: notify-ap
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "accounts-payable"
                text: "Invoice {{invoice_number}} for PO {{po_number}}. Amount: ${{amount}}. Vendor: {{validate-po.Supplier.CompanyName}}. Approval routed."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder('{{po_number}}')"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: get-po
              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: approvals
          path: "/approvals"
          operations:
            - name: submit-approval
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Matches invoices from SAP, validates contracts in Salesforce, processes payments, and logs in Google Sheets.

naftiko: "0.5"
info:
  label: "Vendor Invoice Reconciliation Pipeline"
  description: "Matches invoices from SAP, validates contracts in Salesforce, processes payments, and logs in Google Sheets."
  tags:
    - finance
    - sap
    - salesforce
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: vendor-invoice-reconciliation-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Matches invoices from SAP, validates contracts in Salesforce, processes payments, and logs in Google Sheets."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "salesforce.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "google-sheets.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "google-sheets.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: google-sheets
      baseUri: "https://api.googlesheets.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

When a dealer submits a warranty claim in Salesforce, validates the equipment warranty in SAP, creates a claim record, and notifies the warranty team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Warranty Claim Processing Pipeline"
  description: "When a dealer submits a warranty claim in Salesforce, validates the equipment warranty in SAP, creates a claim record, and notifies the warranty team via Microsoft Teams."
  tags:
    - dealer
    - warranty
    - salesforce
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: warranty
      port: 8080
      tools:
        - name: process-warranty-claim
          description: "Given a warranty claim from Salesforce, validate coverage, process the claim, and notify the team."
          inputParameters:
            - name: claim_id
              in: body
              type: string
              description: "The Salesforce warranty claim ID."
            - name: serial_number
              in: body
              type: string
              description: "The equipment serial number."
            - name: failure_code
              in: body
              type: string
              description: "The failure or defect code."
          steps:
            - name: get-claim
              type: call
              call: "salesforce.get-warranty-claim"
              with:
                claim_id: "{{claim_id}}"
            - name: check-warranty
              type: call
              call: "sap.check-warranty-coverage"
              with:
                serial_number: "{{serial_number}}"
                failure_code: "{{failure_code}}"
            - name: create-sap-claim
              type: call
              call: "sap.create-warranty-claim"
              with:
                serial_number: "{{serial_number}}"
                failure_code: "{{failure_code}}"
                dealer_id: "{{get-claim.dealer_id}}"
                coverage_status: "{{check-warranty.coverage_status}}"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "warranty-claims"
                text: "Warranty claim {{claim_id}} for machine {{serial_number}}: Coverage: {{check-warranty.coverage_status}}. SAP claim: {{create-sap-claim.claim_number}}. Failure: {{failure_code}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://kubota.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: warranty-claims
          path: "/sobjects/WarrantyClaim__c/{{claim_id}}"
          inputParameters:
            - name: claim_id
              in: path
          operations:
            - name: get-warranty-claim
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://kubota-s4.sap.com/sap/opu/odata/sap/WARRANTY_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: warranty-coverage
          path: "/WarrantyCoverage(SerialNumber='{{serial_number}}',FailureCode='{{failure_code}}')"
          inputParameters:
            - name: serial_number
              in: path
            - name: failure_code
              in: path
          operations:
            - name: check-warranty-coverage
              method: GET
        - name: warranty-claims
          path: "/WarrantyClaims"
          operations:
            - name: create-warranty-claim
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Validates eligibility in SAP, creates offer in Salesforce, generates contract in DocuSign, and notifies dealer via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Warranty Extension Pipeline"
  description: "Validates eligibility in SAP, creates offer in Salesforce, generates contract in DocuSign, and notifies dealer via Microsoft Outlook."
  tags:
    - warranty
    - sap
    - salesforce
    - docusign
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: warranty-extension-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Validates eligibility in SAP, creates offer in Salesforce, generates contract in DocuSign, and notifies dealer via Microsoft Outlook."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "salesforce.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "docusign.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "microsoft-outlook.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://api.sap.com/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://api.salesforce.com/v1"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: docusign
      baseUri: "https://api.docusign.com/v1"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: microsoft-outlook
      baseUri: "https://api.microsoftoutlook.com/v1"
      authentication:
        type: bearer
        token: "$secrets.microsoft_outlook_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Aggregates sales from Snowflake, generates Power BI reports, creates Confluence summaries, and distributes via Slack.

naftiko: "0.5"
info:
  label: "Weekly Sales Digest Pipeline"
  description: "Aggregates sales from Snowflake, generates Power BI reports, creates Confluence summaries, and distributes via Slack."
  tags:
    - sales
    - snowflake
    - power-bi
    - confluence
    - slack
capability:
  exposes:
    - type: mcp
      namespace: weekly-sales-digest-pipeline
      port: 8080
      tools:
        - name: execute
          description: "Aggregates sales from Snowflake, generates Power BI reports, creates Confluence summaries, and distributes via Slack."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
            - name: context
              in: body
              type: string
              description: "Additional context parameter."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-step-1"
              with:
                input: "{{input_id}}"
                context: "{{context}}"
            - name: step-2
              type: call
              call: "power-bi.execute-step-2"
              with:
                data: "{{step-1.result}}"
            - name: step-3
              type: call
              call: "confluence.execute-step-3"
              with:
                data: "{{step-2.result}}"
            - name: step-4
              type: call
              call: "slack.execute-step-4"
              with:
                data: "{{step-3.result}}"
                id: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://api.snowflake.com/v1"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: power-bi
      baseUri: "https://api.powerbi.com/v1"
      authentication:
        type: bearer
        token: "$secrets.power_bi_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://api.confluence.com/v1"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://api.slack.com/v1"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: resources
          path: "/{{id}}"
          operations:
            - name: execute
              method: POST

Retrieves employee benefits enrollment from Workday.

naftiko: "0.5"
info:
  label: "Workday Employee Benefits Lookup"
  description: "Retrieves employee benefits enrollment from Workday."
  tags:
    - hr
    - workday
capability:
  exposes:
    - type: mcp
      namespace: workday-benefits
      port: 8080
      tools:
        - name: get-data
          description: "Retrieves employee benefits enrollment from Workday."
          inputParameters:
            - name: query_id
              in: body
              type: string
              description: "The lookup identifier."
          call: "workday-benefits.get-data"
          with:
            id: "{{query_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
  consumes:
    - type: http
      namespace: workday-benefits
      baseUri: "https://wd5-impl-services1.workday.com/ccx/service/kubota"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: data
          path: "/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-data
              method: GET

Looks up an employee in Workday by employee ID and returns name, department, title, and contact information.

naftiko: "0.5"
info:
  label: "Workday Employee Directory Lookup"
  description: "Looks up an employee in Workday by employee ID and returns name, department, title, and contact information."
  tags:
    - hr
    - workday
capability:
  exposes:
    - type: mcp
      namespace: hr-directory
      port: 8080
      tools:
        - name: get-employee
          description: "Look up an employee by Workday worker ID."
          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: "$.worker.descriptor"
            - name: department
              type: string
              mapping: "$.worker.primarySupervisoryOrganization.descriptor"
            - name: title
              type: string
              mapping: "$.worker.businessTitle"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET

Retrieves a Zendesk support ticket by ID for the customer support team.

naftiko: "0.5"
info:
  label: "Zendesk Customer Support Ticket Lookup"
  description: "Retrieves a Zendesk support ticket by ID for the customer support team."
  tags:
    - customer-support
    - zendesk
capability:
  exposes:
    - type: mcp
      namespace: customer-support
      port: 8080
      tools:
        - name: get-support-ticket
          description: "Look up a Zendesk support ticket by ticket ID."
          inputParameters:
            - name: ticket_id
              in: body
              type: string
              description: "The Zendesk ticket ID."
          call: "zendesk.get-ticket"
          with:
            ticket_id: "{{ticket_id}}"
          outputParameters:
            - name: subject
              type: string
              mapping: "$.ticket.subject"
            - name: status
              type: string
              mapping: "$.ticket.status"
            - name: priority
              type: string
              mapping: "$.ticket.priority"
  consumes:
    - type: http
      namespace: zendesk
      baseUri: "https://kubota.zendesk.com/api/v2"
      authentication:
        type: basic
        username: "$secrets.zendesk_user"
        password: "$secrets.zendesk_token"
      resources:
        - name: tickets
          path: "/tickets/{{ticket_id}}"
          inputParameters:
            - name: ticket_id
              in: path
          operations:
            - name: get-ticket
              method: GET