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