H&M Capabilities
Naftiko 0.5 capability definitions for H&M - 100 capabilities showing integration workflows and service orchestrations.
Retrieves payroll summary from ADP.
naftiko: "0.5"
info:
label: "ADP Payroll Summary"
description: "Retrieves payroll summary from ADP."
tags:
- hr
- payroll
- adp
capability:
exposes:
- type: mcp
namespace: hr-payroll
port: 8080
tools:
- name: get-payroll-summary
description: "Get payroll summary."
inputParameters:
- name: pay_period
in: body
type: string
description: "Pay period."
call: "adp.get-payroll"
with:
pay_period: "{{pay_period}}"
outputParameters:
- name: total_gross
type: string
mapping: "$.payrollSummary.totalGross"
- name: total_net
type: string
mapping: "$.payrollSummary.totalNet"
consumes:
- type: http
namespace: adp
baseUri: "https://api.adp.com/hr/v2"
authentication:
type: bearer
token: "$secrets.adp_token"
resources:
- name: payroll
path: "/payroll-outputs?payPeriod={{pay_period}}"
inputParameters:
- name: pay_period
in: query
operations:
- name: get-payroll
method: GET
Retrieves fashion collection calendar entries from Airtable by season.
naftiko: "0.5"
info:
label: "Airtable Collection Calendar Lookup"
description: "Retrieves fashion collection calendar entries from Airtable by season."
tags:
- product
- airtable
capability:
exposes:
- type: mcp
namespace: airtable-collections
port: 8080
tools:
- name: get-data
description: "Retrieves fashion collection calendar entries from Airtable by season."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "airtable-collections.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: airtable-collections
baseUri: "https://api.airtable.com/v0/appHM"
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
Retrieves fashion collection project status from Asana.
naftiko: "0.5"
info:
label: "Asana Collection Project Lookup"
description: "Retrieves fashion collection project status from Asana."
tags:
- project-management
- asana
capability:
exposes:
- type: mcp
namespace: asana-collections
port: 8080
tools:
- name: get-data
description: "Retrieves fashion collection project status from Asana."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "asana-collections.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: asana-collections
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
Retrieves latest build status for an Azure DevOps pipeline.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status"
description: "Retrieves latest build status for an Azure DevOps pipeline."
tags:
- devops
- ci-cd
- azure-devops
capability:
exposes:
- type: mcp
namespace: cicd-status
port: 8080
tools:
- name: get-build-status
description: "Get latest build status."
inputParameters:
- name: project_name
in: body
type: string
description: "Azure DevOps project."
- name: pipeline_id
in: body
type: string
description: "Pipeline ID."
call: "azdo.get-builds"
with:
project: "{{project_name}}"
definition_id: "{{pipeline_id}}"
outputParameters:
- name: build_number
type: string
mapping: "$.value[0].buildNumber"
- name: result
type: string
mapping: "$.value[0].result"
consumes:
- type: http
namespace: azdo
baseUri: "https://dev.azure.com/hm"
authentication:
type: basic
username: ""
password: "$secrets.azdo_pat"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds?definitions={{definition_id}}&$top=1&api-version=7.0"
inputParameters:
- name: project
in: path
- name: definition_id
in: query
operations:
- name: get-builds
method: GET
Archives documents from SharePoint to Box.
naftiko: "0.5"
info:
label: "Box Document Archive"
description: "Archives documents from SharePoint to Box."
tags:
- document-management
- archival
- sharepoint
- box
capability:
exposes:
- type: mcp
namespace: doc-archival
port: 8080
tools:
- name: archive-to-box
description: "Archive a SharePoint document to Box."
inputParameters:
- name: site_id
in: body
type: string
description: "SharePoint site ID."
- name: file_path
in: body
type: string
description: "File path."
- name: box_folder_id
in: body
type: string
description: "Box folder ID."
steps:
- name: get-file
type: call
call: "sharepoint.get-file-content"
with:
site_id: "{{site_id}}"
file_path: "{{file_path}}"
- name: upload-to-box
type: call
call: "box.upload-file"
with:
folder_id: "{{box_folder_id}}"
file_name: "{{file_path}}"
consumes:
- 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:/{{file_path}}:/content"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file-content
method: GET
- 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
Creates collaboration record in Salesforce, generates contract via DocuSign, tracks deliverables in Asana, and announces via Instagram.
naftiko: "0.5"
info:
label: "Brand Collaboration Pipeline"
description: "Creates collaboration record in Salesforce, generates contract via DocuSign, tracks deliverables in Asana, and announces via Instagram."
tags:
- partnerships
- salesforce
- docusign
- asana
- instagram
capability:
exposes:
- type: mcp
namespace: brand-collaboration-pipeline
port: 8080
tools:
- name: execute
description: "Creates collaboration record in Salesforce, generates contract via DocuSign, tracks deliverables in Asana, and announces via Instagram."
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: "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: 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: 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
Tracks garment recycling and reuse metrics from SAP, calculates circularity scores, and publishes to the sustainability Confluence space.
naftiko: "0.5"
info:
label: "Circular Fashion Garment Tracker"
description: "Tracks garment recycling and reuse metrics from SAP, calculates circularity scores, and publishes to the sustainability Confluence space."
tags:
- sustainability
- circular-fashion
- sap
- confluence
capability:
exposes:
- type: mcp
namespace: circular-fashion
port: 8080
tools:
- name: track-circularity
description: "Track garment circularity metrics and publish report."
inputParameters:
- name: collection
in: body
type: string
description: "Collection name."
- name: period
in: body
type: string
description: "Reporting period."
steps:
- name: get-circularity
type: call
call: "sap.get-circularity-metrics"
with:
collection: "{{collection}}"
period: "{{period}}"
- name: publish-report
type: call
call: "confluence.create-page"
with:
space_key: "ESG"
title: "Circularity Report: {{collection}} - {{period}}"
body: "Recycled materials: {{get-circularity.recycled_pct}}%. Garments collected: {{get-circularity.garments_collected}}. Reused: {{get-circularity.reused_count}}. Recycled: {{get-circularity.recycled_count}}."
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZRT_CIRCULARITY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: circularity
path: "/CircularityMetricSet(Collection='{{collection}}',Period='{{period}}')"
inputParameters:
- name: collection
in: path
- name: period
in: path
operations:
- name: get-circularity-metrics
method: GET
- type: http
namespace: confluence
baseUri: "https://hm.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Tracks garment lifecycle in SAP, logs recycling data in Snowflake, generates sustainability report in Google Sheets, and publishes to Confluence.
naftiko: "0.5"
info:
label: "Circular Fashion Tracking Pipeline"
description: "Tracks garment lifecycle in SAP, logs recycling data in Snowflake, generates sustainability report in Google Sheets, and publishes to Confluence."
tags:
- sustainability
- sap
- snowflake
- google-sheets
- confluence
capability:
exposes:
- type: mcp
namespace: circular-fashion-tracking-pipeline
port: 8080
tools:
- name: execute
description: "Tracks garment lifecycle in SAP, logs recycling data in Snowflake, generates sustainability report in Google Sheets, 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: "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: "confluence.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: confluence
baseUri: "https://api.confluence.com/v1"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Checks Cloudflare zone performance for H&M web properties.
naftiko: "0.5"
info:
label: "Cloudflare Web Performance Monitor"
description: "Checks Cloudflare zone performance for H&M web properties."
tags:
- performance
- cdn
- cloudflare
capability:
exposes:
- type: mcp
namespace: web-performance
port: 8080
tools:
- name: check-cdn-performance
description: "Check CDN performance."
inputParameters:
- name: zone_id
in: body
type: string
description: "Cloudflare zone ID."
call: "cloudflare.get-zone-analytics"
with:
zone_id: "{{zone_id}}"
outputParameters:
- name: cache_hit_rate
type: string
mapping: "$.result.totals.requests.cached"
- name: total_requests
type: integer
mapping: "$.result.totals.requests.all"
consumes:
- type: http
namespace: cloudflare
baseUri: "https://api.cloudflare.com/client/v4"
authentication:
type: bearer
token: "$secrets.cloudflare_token"
resources:
- name: analytics
path: "/zones/{{zone_id}}/analytics/dashboard"
inputParameters:
- name: zone_id
in: path
operations:
- name: get-zone-analytics
method: GET
Creates a Confluence knowledge base page.
naftiko: "0.5"
info:
label: "Confluence Knowledge Base Publisher"
description: "Creates a Confluence knowledge base page."
tags:
- knowledge-management
- confluence
capability:
exposes:
- type: mcp
namespace: knowledge-base
port: 8080
tools:
- name: publish-kb-article
description: "Publish a Confluence page."
inputParameters:
- name: space_key
in: body
type: string
description: "Space key."
- name: title
in: body
type: string
description: "Title."
- name: content
in: body
type: string
description: "Content."
call: "confluence.create-page"
with:
space_key: "{{space_key}}"
title: "{{title}}"
body: "{{content}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://hm.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
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
When a customer complaint arrives via Zendesk, retrieves order details from SAP, creates a Salesforce case, and notifies customer service in Microsoft Teams.
naftiko: "0.5"
info:
label: "Customer Complaint Handler"
description: "When a customer complaint arrives via Zendesk, retrieves order details from SAP, creates a Salesforce case, and notifies customer service in Microsoft Teams."
tags:
- customer-service
- zendesk
- sap
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: complaint-handling
port: 8080
tools:
- name: handle-complaint
description: "Process a customer complaint."
inputParameters:
- name: ticket_id
in: body
type: string
description: "Zendesk ticket ID."
- name: order_number
in: body
type: string
description: "SAP order number."
steps:
- name: get-ticket
type: call
call: "zendesk.get-ticket"
with:
ticket_id: "{{ticket_id}}"
- name: get-order
type: call
call: "sap.get-order"
with:
order_number: "{{order_number}}"
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "Complaint: {{get-ticket.subject}}"
description: "Zendesk #{{ticket_id}}: {{get-ticket.description}}. Order: {{order_number}}."
- name: notify-cs
type: call
call: "msteams.send-message"
with:
channel_id: "customer-service"
text: "Complaint for order {{order_number}}: {{get-ticket.subject}}. SF Case: {{create-case.CaseNumber}}."
consumes:
- type: http
namespace: zendesk
baseUri: "https://hm.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: tickets
path: "/tickets/{{ticket_id}}"
inputParameters:
- name: ticket_id
in: path
operations:
- name: get-ticket
method: GET
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZRT_ORDER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: orders
path: "/SalesOrderSet('{{order_number}}')"
inputParameters:
- name: order_number
in: path
operations:
- name: get-order
method: GET
- type: http
namespace: salesforce
baseUri: "https://hm.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Collects feedback from Zendesk, analyzes via Azure ML, stores in Snowflake, and publishes to Confluence.
naftiko: "0.5"
info:
label: "Customer Feedback 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-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
Enrolls customer in Salesforce, creates Stripe customer record, triggers welcome email via MailChimp, and logs in Snowflake.
naftiko: "0.5"
info:
label: "Customer Loyalty Enrollment Pipeline"
description: "Enrolls customer in Salesforce, creates Stripe customer record, triggers welcome email via MailChimp, and logs in Snowflake."
tags:
- loyalty
- salesforce
- stripe
- mailchimp
- snowflake
capability:
exposes:
- type: mcp
namespace: customer-loyalty-enrollment-pipeline
port: 8080
tools:
- name: execute
description: "Enrolls customer in Salesforce, creates Stripe customer record, triggers welcome email via MailChimp, 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: "salesforce.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "stripe.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "mailchimp.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: 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: 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
Processes return in Zendesk, initiates refund via Stripe, updates inventory in SAP, and logs in Snowflake.
naftiko: "0.5"
info:
label: "Customer Returns Pipeline"
description: "Processes return in Zendesk, initiates refund via Stripe, updates inventory in SAP, and logs in Snowflake."
tags:
- returns
- zendesk
- stripe
- sap
- snowflake
capability:
exposes:
- type: mcp
namespace: customer-returns-pipeline
port: 8080
tools:
- name: execute
description: "Processes return in Zendesk, initiates refund via Stripe, updates inventory 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: "zendesk.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "stripe.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: 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: 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: 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
Builds segments in Snowflake, syncs to Salesforce, creates campaigns in MailChimp, and tracks in Google Analytics.
naftiko: "0.5"
info:
label: "Customer Segment Targeting Pipeline"
description: "Builds segments in Snowflake, syncs to Salesforce, creates campaigns in MailChimp, and tracks in Google Analytics."
tags:
- marketing
- snowflake
- salesforce
- mailchimp
- google-analytics
capability:
exposes:
- type: mcp
namespace: customer-segment-targeting-pipeline
port: 8080
tools:
- name: execute
description: "Builds segments in Snowflake, syncs to Salesforce, creates campaigns in MailChimp, and tracks in Google Analytics."
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: "mailchimp.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-analytics.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: 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: 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
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
Retrieves service health from Datadog.
naftiko: "0.5"
info:
label: "Datadog Service Health Check"
description: "Retrieves service health from Datadog."
tags:
- it-operations
- monitoring
- datadog
capability:
exposes:
- type: mcp
namespace: infra-monitoring
port: 8080
tools:
- name: get-service-health
description: "Get Datadog metrics."
inputParameters:
- name: service_name
in: body
type: string
description: "Service name."
call: "datadog.get-metrics"
with:
service: "{{service_name}}"
outputParameters:
- name: cpu_usage
type: string
mapping: "$.series[0].pointlist[-1][1]"
- name: error_rate
type: string
mapping: "$.series[1].pointlist[-1][1]"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
headerName: "DD-API-KEY"
resources:
- name: metrics
path: "/query?query=avg:system.cpu.user{service:{{service}}}"
inputParameters:
- name: service
in: path
operations:
- name: get-metrics
method: GET
Creates campaign in HubSpot, sets up Facebook ads, tracks in Google Analytics, and reports in Google Sheets.
naftiko: "0.5"
info:
label: "Digital Marketing Campaign Pipeline"
description: "Creates campaign in HubSpot, sets up Facebook ads, tracks in Google Analytics, and reports in Google Sheets."
tags:
- marketing
- hubspot
- facebook
- google-analytics
- google-sheets
capability:
exposes:
- type: mcp
namespace: digital-marketing-campaign-pipeline
port: 8080
tools:
- name: execute
description: "Creates campaign in HubSpot, sets up Facebook ads, tracks in Google Analytics, 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: "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 the status of a DocuSign supplier contract envelope by ID.
naftiko: "0.5"
info:
label: "DocuSign Supplier Contract Lookup"
description: "Retrieves the status of a DocuSign supplier contract envelope by ID."
tags:
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: docusign-contracts
port: 8080
tools:
- name: get-data
description: "Retrieves the status of a DocuSign supplier contract envelope by ID."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "docusign-contracts.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: docusign-contracts
baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/hm"
authentication:
type: bearer
token: "$secrets.docusign_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Retrieves APM metrics from Dynatrace for the H&M e-commerce platform.
naftiko: "0.5"
info:
label: "Dynatrace E-Commerce APM"
description: "Retrieves APM metrics from Dynatrace for the H&M e-commerce platform."
tags:
- it-operations
- apm
- dynatrace
capability:
exposes:
- type: mcp
namespace: ecommerce-apm
port: 8080
tools:
- name: get-ecommerce-health
description: "Get Dynatrace APM metrics for e-commerce."
inputParameters:
- name: service_id
in: body
type: string
description: "Dynatrace service entity ID."
call: "dynatrace.get-metrics"
with:
entity_id: "{{service_id}}"
outputParameters:
- name: response_time_ms
type: number
mapping: "$.result[0].data[0].values[0]"
- name: error_rate_pct
type: number
mapping: "$.result[1].data[0].values[0]"
consumes:
- type: http
namespace: dynatrace
baseUri: "https://hm.live.dynatrace.com/api/v2"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: metrics
path: "/metrics/query?metricSelector=builtin:service.response.time&entitySelector=entityId({{entity_id}})"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-metrics
method: GET
When a new online order is placed, validates inventory in SAP, creates a fulfillment task in ServiceNow, updates the Salesforce customer record, and notifies the warehouse team in Microsoft Teams.
naftiko: "0.5"
info:
label: "E-Commerce Order Fulfillment Orchestrator"
description: "When a new online order is placed, validates inventory in SAP, creates a fulfillment task in ServiceNow, updates the Salesforce customer record, and notifies the warehouse team in Microsoft Teams."
tags:
- e-commerce
- fulfillment
- sap
- servicenow
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: order-fulfillment
port: 8080
tools:
- name: fulfill-order
description: "Orchestrate order fulfillment across SAP, ServiceNow, Salesforce, and Teams."
inputParameters:
- name: order_id
in: body
type: string
description: "The e-commerce order ID."
- name: customer_id
in: body
type: string
description: "The Salesforce customer ID."
steps:
- name: get-order
type: call
call: "sap.get-sales-order"
with:
order_id: "{{order_id}}"
- name: check-inventory
type: call
call: "sap.check-inventory"
with:
items: "{{get-order.line_items}}"
- name: create-fulfillment
type: call
call: "servicenow.create-record"
with:
table: "u_fulfillment_tasks"
short_description: "Fulfill order {{order_id}}"
description: "Items: {{get-order.item_count}}. Warehouse: {{check-inventory.assigned_warehouse}}. Ship by: {{get-order.promised_date}}."
- name: update-customer
type: call
call: "salesforce.update-contact"
with:
contact_id: "{{customer_id}}"
last_order_date: "{{get-order.order_date}}"
- name: notify-warehouse
type: call
call: "msteams.send-message"
with:
channel_id: "warehouse-ops"
text: "New order {{order_id}}: {{get-order.item_count}} items. Warehouse: {{check-inventory.assigned_warehouse}}. ServiceNow: {{create-fulfillment.number}}."
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZRT_ORDER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: orders
path: "/SalesOrderSet('{{order_id}}')"
inputParameters:
- name: order_id
in: path
operations:
- name: get-sales-order
method: GET
- name: inventory
path: "/InventoryCheckSet"
operations:
- name: check-inventory
method: POST
- type: http
namespace: servicenow
baseUri: "https://hm.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
- type: http
namespace: salesforce
baseUri: "https://hm.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: update-contact
method: PATCH
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Detects abandoned carts in BigCommerce, sends recovery emails via MailChimp, logs in Snowflake, and tracks in Google Analytics.
naftiko: "0.5"
info:
label: "E-Commerce Cart Abandonment Pipeline"
description: "Detects abandoned carts in BigCommerce, sends recovery emails via MailChimp, logs in Snowflake, and tracks in Google Analytics."
tags:
- e-commerce
- bigcommerce
- mailchimp
- snowflake
- google-analytics
capability:
exposes:
- type: mcp
namespace: ecommerce-cart-abandonment-pipeline
port: 8080
tools:
- name: execute
description: "Detects abandoned carts in BigCommerce, sends recovery emails via MailChimp, logs in Snowflake, and tracks in Google Analytics."
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: "bigcommerce.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "mailchimp.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: "google-analytics.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: bigcommerce
baseUri: "https://api.bigcommerce.com/v1"
authentication:
type: bearer
token: "$secrets.bigcommerce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- 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: 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
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
Provisions Workday profile, creates Azure AD account, assigns Slack channels, and sends welcome via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Employee Onboarding Enhancement Pipeline"
description: "Provisions Workday profile, creates Azure AD account, assigns Slack channels, and sends welcome via Microsoft Outlook."
tags:
- hr
- workday
- azure-active-directory
- slack
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: employee-onboarding-enhancement-pipeline
port: 8080
tools:
- name: execute
description: "Provisions Workday profile, creates Azure AD account, assigns Slack channels, 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: "slack.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: 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: 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
On new hire in Workday, opens ServiceNow ticket, provisions SharePoint folder, sends Teams welcome.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire in Workday, opens ServiceNow ticket, provisions SharePoint folder, sends Teams welcome."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Orchestrate new employee onboarding."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "Workday worker ID."
- name: start_date
in: body
type: string
description: "Start date YYYY-MM-DD."
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: "Onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_site"
folder_path: "Onboarding/{{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 H&M, {{get-employee.first_name}}! Ticket: {{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://hm.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
Analyzes supplier data from SAP Ariba, scores alternatives in Snowflake, updates procurement in SAP, and reports via Google Sheets.
naftiko: "0.5"
info:
label: "Fabric Sourcing Optimization Pipeline"
description: "Analyzes supplier data from SAP Ariba, scores alternatives in Snowflake, updates procurement in SAP, and reports via Google Sheets."
tags:
- sourcing
- sap-ariba
- snowflake
- sap
- google-sheets
capability:
exposes:
- type: mcp
namespace: fabric-sourcing-optimization-pipeline
port: 8080
tools:
- name: execute
description: "Analyzes supplier data from SAP Ariba, scores alternatives in Snowflake, updates procurement in SAP, 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: "sap-ariba.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: "sap.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-ariba
baseUri: "https://api.sapariba.com/v1"
authentication:
type: bearer
token: "$secrets.sap_ariba_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: 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: 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
Pulls social media data from Instagram, analyzes trends via Azure ML, stores in Snowflake, and publishes insights to Confluence.
naftiko: "0.5"
info:
label: "Fashion Trend Analysis Pipeline"
description: "Pulls social media data from Instagram, analyzes trends via Azure ML, stores in Snowflake, and publishes insights to Confluence."
tags:
- trends
- instagram
- azure-machine-learning
- snowflake
- confluence
capability:
exposes:
- type: mcp
namespace: fashion-trend-analysis-pipeline
port: 8080
tools:
- name: execute
description: "Pulls social media data from Instagram, analyzes trends via Azure ML, stores in Snowflake, and publishes insights 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: "instagram.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: 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: 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
Retrieves a Figma fashion design mockup by file key.
naftiko: "0.5"
info:
label: "Figma Fashion Design Lookup"
description: "Retrieves a Figma fashion design mockup by file key."
tags:
- design
- figma
capability:
exposes:
- type: mcp
namespace: figma-fashion
port: 8080
tools:
- name: get-data
description: "Retrieves a Figma fashion design mockup by file key."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "figma-fashion.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: figma-fashion
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
Retrieves quality test results from SAP, creates inspection report in Confluence, updates compliance tracker in Airtable, and notifies quality team via Slack.
naftiko: "0.5"
info:
label: "Garment Quality Inspection Pipeline"
description: "Retrieves quality test results from SAP, creates inspection report in Confluence, updates compliance tracker in Airtable, and notifies quality team via Slack."
tags:
- quality
- sap
- confluence
- airtable
- slack
capability:
exposes:
- type: mcp
namespace: garment-quality-inspection-pipeline
port: 8080
tools:
- name: execute
description: "Retrieves quality test results from SAP, creates inspection report in Confluence, updates compliance tracker in Airtable, and notifies quality team 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: "confluence.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: "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: 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: 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: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Processes an online return by retrieving order from SAP, creating a ServiceNow task for warehouse processing, issuing a refund via Salesforce, and notifying the customer via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Garment Return Processor"
description: "Processes an online return by retrieving order from SAP, creating a ServiceNow task for warehouse processing, issuing a refund via Salesforce, and notifying the customer via Microsoft Outlook."
tags:
- e-commerce
- returns
- sap
- servicenow
- salesforce
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: returns-processing
port: 8080
tools:
- name: process-return
description: "Process an online garment return."
inputParameters:
- name: order_number
in: body
type: string
description: "Original order number."
- name: return_reason
in: body
type: string
description: "Reason for return."
- name: customer_email
in: body
type: string
description: "Customer email."
steps:
- name: get-order
type: call
call: "sap.get-order"
with:
order_number: "{{order_number}}"
- name: create-return-task
type: call
call: "servicenow.create-record"
with:
table: "u_return_tasks"
short_description: "Return: order {{order_number}}"
description: "Reason: {{return_reason}}. Items: {{get-order.item_count}}. Value: {{get-order.total_amount}}."
- name: initiate-refund
type: call
call: "salesforce.create-refund"
with:
order_ref: "{{order_number}}"
amount: "{{get-order.total_amount}}"
- name: notify-customer
type: call
call: "outlook.send-email"
with:
to: "{{customer_email}}"
subject: "H&M Return Confirmation - Order {{order_number}}"
body: "Your return for order {{order_number}} has been processed. Refund of {{get-order.total_amount}} will be issued within 5-10 business days."
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZRT_ORDER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: orders
path: "/SalesOrderSet('{{order_number}}')"
inputParameters:
- name: order_number
in: path
operations:
- name: get-order
method: GET
- type: http
namespace: servicenow
baseUri: "https://hm.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
- type: http
namespace: salesforce
baseUri: "https://hm.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: refunds
path: "/sobjects/Refund__c"
operations:
- name: create-refund
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0/me"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/sendMail"
operations:
- name: send-email
method: POST
Pulls material composition from SAP, calculates sustainability impact, and updates the product record with a Conscious Choice rating.
naftiko: "0.5"
info:
label: "Garment Sustainability Score Calculator"
description: "Pulls material composition from SAP, calculates sustainability impact, and updates the product record with a Conscious Choice rating."
tags:
- sustainability
- product
- sap
capability:
exposes:
- type: mcp
namespace: sustainability-scoring
port: 8080
tools:
- name: calculate-sustainability-score
description: "Calculate sustainability score for a garment."
inputParameters:
- name: article_number
in: body
type: string
description: "The article number."
call: "sap.get-sustainability-score"
with:
article_id: "{{article_number}}"
outputParameters:
- name: overall_score
type: string
mapping: "$.d.OverallScore"
- name: recycled_pct
type: string
mapping: "$.d.RecycledContentPct"
- name: water_usage
type: string
mapping: "$.d.WaterUsageLiters"
- name: conscious_choice
type: boolean
mapping: "$.d.ConsciousChoice"
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZRT_SUSTAINABILITY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: scores
path: "/SustainabilityScoreSet('{{article_id}}')"
inputParameters:
- name: article_id
in: path
operations:
- name: get-sustainability-score
method: GET
Updates pricing in SAP, syncs to BigCommerce, logs changes in Snowflake, and notifies sales via Microsoft Teams.
naftiko: "0.5"
info:
label: "Global Pricing Update Pipeline"
description: "Updates pricing in SAP, syncs to BigCommerce, logs changes in Snowflake, and notifies sales via Microsoft Teams."
tags:
- pricing
- sap
- bigcommerce
- snowflake
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: global-pricing-update-pipeline
port: 8080
tools:
- name: execute
description: "Updates pricing in SAP, syncs to BigCommerce, logs changes 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: "bigcommerce.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: bigcommerce
baseUri: "https://api.bigcommerce.com/v1"
authentication:
type: bearer
token: "$secrets.bigcommerce_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 e-commerce performance metrics from Google Analytics.
naftiko: "0.5"
info:
label: "Google Analytics E-Commerce Performance"
description: "Retrieves e-commerce performance metrics from Google Analytics."
tags:
- e-commerce
- analytics
- google-analytics
capability:
exposes:
- type: mcp
namespace: ecommerce-analytics
port: 8080
tools:
- name: get-ecommerce-metrics
description: "Get e-commerce metrics from Google Analytics."
inputParameters:
- name: property_id
in: body
type: string
description: "GA property ID."
call: "ga.get-ecommerce"
with:
property_id: "{{property_id}}"
outputParameters:
- name: revenue
type: string
mapping: "$.rows[0].metricValues[0].value"
- name: transactions
type: integer
mapping: "$.rows[0].metricValues[1].value"
- name: conversion_rate
type: string
mapping: "$.rows[0].metricValues[2].value"
consumes:
- type: http
namespace: ga
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: get-ecommerce
method: POST
Uploads design assets to Google Drive.
naftiko: "0.5"
info:
label: "Google Drive Design Asset Upload"
description: "Uploads design assets to Google Drive."
tags:
- document-management
- google-drive
capability:
exposes:
- type: mcp
namespace: gdrive-assets
port: 8080
tools:
- name: upload-asset
description: "Upload a design asset."
inputParameters:
- name: folder_id
in: body
type: string
description: "Google Drive folder ID."
- name: file_name
in: body
type: string
description: "File name."
- name: content
in: body
type: string
description: "File content."
call: "gdrive.upload-file"
with:
folder_id: "{{folder_id}}"
name: "{{file_name}}"
content: "{{content}}"
outputParameters:
- name: file_id
type: string
mapping: "$.id"
- name: web_view_link
type: string
mapping: "$.webViewLink"
consumes:
- type: http
namespace: gdrive
baseUri: "https://www.googleapis.com/upload/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files?uploadType=multipart"
operations:
- name: upload-file
method: POST
Retrieves search performance data from Google Search Console for H&M properties.
naftiko: "0.5"
info:
label: "Google Search Console SEO Lookup"
description: "Retrieves search performance data from Google Search Console for H&M properties."
tags:
- seo
- google-search-console
capability:
exposes:
- type: mcp
namespace: gsc-seo
port: 8080
tools:
- name: get-data
description: "Retrieves search performance data from Google Search Console for H&M 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
Retrieves search performance from Google Search Console for H&M web properties.
naftiko: "0.5"
info:
label: "Google Search Console SEO Tracker"
description: "Retrieves search performance from Google Search Console for H&M web properties."
tags:
- marketing
- seo
- google-search-console
capability:
exposes:
- type: mcp
namespace: seo-tracking
port: 8080
tools:
- name: get-search-performance
description: "Get search performance data."
inputParameters:
- name: site_url
in: body
type: string
description: "Site URL."
call: "gsc.get-search-analytics"
with:
site_url: "{{site_url}}"
outputParameters:
- name: total_clicks
type: integer
mapping: "$.rows[0].clicks"
- name: total_impressions
type: integer
mapping: "$.rows[0].impressions"
consumes:
- type: http
namespace: gsc
baseUri: "https://www.googleapis.com/webmasters/v3"
authentication:
type: bearer
token: "$secrets.google_search_console_token"
resources:
- name: search-analytics
path: "/sites/{{site_url}}/searchAnalytics/query"
inputParameters:
- name: site_url
in: path
operations:
- name: get-search-analytics
method: POST
Pulls store KPIs from SAP and writes to Google Sheets.
naftiko: "0.5"
info:
label: "Google Sheets Store KPI Dashboard"
description: "Pulls store KPIs from SAP and writes to Google Sheets."
tags:
- reporting
- google-sheets
- sap
capability:
exposes:
- type: mcp
namespace: sheets-kpis
port: 8080
tools:
- name: sync-store-kpis
description: "Sync SAP store KPIs to Google Sheets."
inputParameters:
- name: spreadsheet_id
in: body
type: string
description: "Google Sheets ID."
- name: store_code
in: body
type: string
description: "Store code."
steps:
- name: get-kpis
type: call
call: "sap.get-store-kpis"
with:
store: "{{store_code}}"
- name: update-sheet
type: call
call: "gsheets.update-values"
with:
spreadsheet_id: "{{spreadsheet_id}}"
range: "KPIs!A2:D2"
values:
- - "{{store_code}}"
- "{{get-kpis.revenue}}"
- "{{get-kpis.footfall}}"
- "{{get-kpis.conversion_rate}}"
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZRT_STORE_KPI_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: kpis
path: "/StoreKPISet('{{store}}')"
inputParameters:
- name: store
in: path
operations:
- name: get-store-kpis
method: GET
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: values
path: "/{{spreadsheet_id}}/values/{{range}}"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: update-values
method: PUT
Publishes a GTM container version for H&M web properties.
naftiko: "0.5"
info:
label: "Google Tag Manager Container Publish"
description: "Publishes a GTM container version for H&M web properties."
tags:
- marketing
- analytics
- google-tag-manager
capability:
exposes:
- type: mcp
namespace: tag-management
port: 8080
tools:
- name: publish-gtm-container
description: "Publish a GTM container."
inputParameters:
- name: account_id
in: body
type: string
description: "GTM account ID."
- name: container_id
in: body
type: string
description: "GTM container ID."
- name: version_id
in: body
type: string
description: "Version to publish."
call: "gtm.publish-version"
with:
account_id: "{{account_id}}"
container_id: "{{container_id}}"
version_id: "{{version_id}}"
consumes:
- type: http
namespace: gtm
baseUri: "https://www.googleapis.com/tagmanager/v2"
authentication:
type: bearer
token: "$secrets.gtm_token"
resources:
- name: versions
path: "/accounts/{{account_id}}/containers/{{container_id}}/versions/{{version_id}}:publish"
inputParameters:
- name: account_id
in: path
- name: container_id
in: path
- name: version_id
in: path
operations:
- name: publish-version
method: POST
Captures a lead in HubSpot, enriches with Salesforce data, and notifies the marketing team.
naftiko: "0.5"
info:
label: "HubSpot Customer Lead Capture"
description: "Captures a lead in HubSpot, enriches with Salesforce data, and notifies the marketing team."
tags:
- marketing
- lead-management
- hubspot
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: lead-capture
port: 8080
tools:
- name: capture-lead
description: "Capture and enrich a customer lead."
inputParameters:
- name: lead_email
in: body
type: string
description: "Lead email."
- name: source
in: body
type: string
description: "Lead source."
steps:
- name: create-contact
type: call
call: "hubspot.create-contact"
with:
email: "{{lead_email}}"
lead_source: "{{source}}"
- name: search-sf
type: call
call: "salesforce.search-contact"
with:
email: "{{lead_email}}"
- name: notify-marketing
type: call
call: "msteams.send-message"
with:
channel_id: "marketing-leads"
text: "New lead: {{lead_email}} from {{source}}. HubSpot: {{create-contact.id}}."
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/objects/contacts"
operations:
- name: create-contact
method: POST
- type: http
namespace: salesforce
baseUri: "https://hm.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: search
path: "/parameterizedSearch/?q={{email}}&sobject=Contact"
inputParameters:
- name: email
in: query
operations:
- name: search-contact
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Creates campaign in HubSpot, generates contract via DocuSign, tracks deliverables in Asana, and monitors Instagram metrics.
naftiko: "0.5"
info:
label: "Influencer Campaign 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-campaign-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 an H&M Instagram fashion post.
naftiko: "0.5"
info:
label: "Instagram Fashion Metrics Lookup"
description: "Retrieves engagement metrics for an H&M Instagram fashion post."
tags:
- social-media
- instagram
capability:
exposes:
- type: mcp
namespace: instagram-fashion
port: 8080
tools:
- name: get-data
description: "Retrieves engagement metrics for an H&M Instagram fashion post."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "instagram-fashion.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: instagram-fashion
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 Datadog alert, creates ServiceNow incident, pages on-call via Slack, and opens Zoom bridge.
naftiko: "0.5"
info:
label: "IT Incident Response Pipeline"
description: "On Datadog alert, creates ServiceNow incident, pages on-call via Slack, and opens Zoom bridge."
tags:
- incident
- datadog
- servicenow
- slack
- zoom
capability:
exposes:
- type: mcp
namespace: it-incident-response-pipeline
port: 8080
tools:
- name: execute
description: "On Datadog alert, creates ServiceNow incident, pages on-call 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: "datadog.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: datadog
baseUri: "https://api.datadog.com/v1"
authentication:
type: bearer
token: "$secrets.datadog_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 project status from Jira.
naftiko: "0.5"
info:
label: "Jira Project Tracker"
description: "Retrieves project status from Jira."
tags:
- project-management
- jira
capability:
exposes:
- type: mcp
namespace: project-tracking
port: 8080
tools:
- name: get-project-status
description: "Get Jira project status."
inputParameters:
- name: project_key
in: body
type: string
description: "Jira project key."
call: "jira.get-project"
with:
project_key: "{{project_key}}"
outputParameters:
- name: total_issues
type: integer
mapping: "$.total"
- name: open_issues
type: integer
mapping: "$.open_count"
consumes:
- type: http
namespace: jira
baseUri: "https://hm.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: search
path: "/search?jql=project={{project_key}}"
inputParameters:
- name: project_key
in: path
operations:
- name: get-project
method: GET
Publishes a branded post to the H&M LinkedIn page.
naftiko: "0.5"
info:
label: "LinkedIn Brand Post Publisher"
description: "Publishes a branded post to the H&M LinkedIn page."
tags:
- marketing
- social-media
- linkedin
capability:
exposes:
- type: mcp
namespace: linkedin-publishing
port: 8080
tools:
- name: publish-linkedin-post
description: "Publish a LinkedIn post."
inputParameters:
- name: post_text
in: body
type: string
description: "Post content."
call: "linkedin.create-post"
with:
author: "urn:li:organization:hm"
text: "{{post_text}}"
consumes:
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: posts
path: "/ugcPosts"
operations:
- name: create-post
method: POST
Pulls new collection data from SAP and sends a newsletter via MailChimp.
naftiko: "0.5"
info:
label: "MailChimp Fashion Newsletter"
description: "Pulls new collection data from SAP and sends a newsletter via MailChimp."
tags:
- marketing
- newsletter
- mailchimp
- sap
capability:
exposes:
- type: mcp
namespace: fashion-newsletter
port: 8080
tools:
- name: send-collection-newsletter
description: "Send a new collection newsletter."
inputParameters:
- name: list_id
in: body
type: string
description: "MailChimp list ID."
- name: collection
in: body
type: string
description: "Collection name."
steps:
- name: get-collection
type: call
call: "sap.get-collection-highlights"
with:
collection: "{{collection}}"
- name: create-campaign
type: call
call: "mailchimp.create-campaign"
with:
list_id: "{{list_id}}"
subject: "New Collection: {{collection}} | H&M"
body: "Discover {{get-collection.item_count}} new styles! Featured: {{get-collection.hero_product}}."
- name: send-campaign
type: call
call: "mailchimp.send-campaign"
with:
campaign_id: "{{create-campaign.id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZRT_COLLECTION_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: collections
path: "/CollectionHighlightSet('{{collection}}')"
inputParameters:
- name: collection
in: path
operations:
- name: get-collection-highlights
method: GET
- 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: create-campaign
method: POST
- name: campaign-actions
path: "/campaigns/{{campaign_id}}/actions/send"
inputParameters:
- name: campaign_id
in: path
operations:
- name: send-campaign
method: POST
Pulls sales velocity from SAP, analyzes markdown candidates using Azure Machine Learning, and publishes pricing recommendations to Confluence.
naftiko: "0.5"
info:
label: "Markdown Pricing Optimizer"
description: "Pulls sales velocity from SAP, analyzes markdown candidates using Azure Machine Learning, and publishes pricing recommendations to Confluence."
tags:
- retail
- pricing
- sap
- azure-machine-learning
- confluence
capability:
exposes:
- type: mcp
namespace: markdown-optimization
port: 8080
tools:
- name: optimize-markdowns
description: "Generate markdown pricing recommendations."
inputParameters:
- name: category
in: body
type: string
description: "Product category."
- name: season
in: body
type: string
description: "Season code."
steps:
- name: get-velocity
type: call
call: "sap.get-sales-velocity"
with:
category: "{{category}}"
season: "{{season}}"
- name: run-model
type: call
call: "azml.run-inference"
with:
model_name: "markdown_optimizer"
input_data: "{{get-velocity.data}}"
- name: publish-report
type: call
call: "confluence.create-page"
with:
space_key: "MERCH"
title: "Markdown Recommendations: {{category}} - {{season}}"
body: "Articles to mark down: {{run-model.markdown_count}}. Projected sell-through improvement: {{run-model.improvement_pct}}%."
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZRT_VELOCITY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: velocity
path: "/VelocitySet(Category='{{category}}',Season='{{season}}')"
inputParameters:
- name: category
in: path
- name: season
in: path
operations:
- name: get-sales-velocity
method: GET
- type: http
namespace: azml
baseUri: "https://hm-ml.azureml.ms/score"
authentication:
type: bearer
token: "$secrets.azml_token"
resources:
- name: inference
path: "/{{model_name}}"
inputParameters:
- name: model_name
in: path
operations:
- name: run-inference
method: POST
- type: http
namespace: confluence
baseUri: "https://hm.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Sends a formatted email via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Microsoft Outlook Email Sender"
description: "Sends a formatted email via Microsoft Outlook."
tags:
- communications
- email
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: email-sending
port: 8080
tools:
- name: send-email
description: "Send an email via Outlook."
inputParameters:
- name: to_address
in: body
type: string
description: "Recipient email."
- name: subject
in: body
type: string
description: "Subject."
- name: body_text
in: body
type: string
description: "Body."
call: "outlook.send-mail"
with:
to: "{{to_address}}"
subject: "{{subject}}"
body: "{{body_text}}"
consumes:
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0/me"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/sendMail"
operations:
- name: send-mail
method: POST
Sends a formatted message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notifier"
description: "Sends a formatted message to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: team-notifications
port: 8080
tools:
- name: send-channel-notification
description: "Send a Teams channel message."
inputParameters:
- name: channel_id
in: body
type: string
description: "Teams channel ID."
- name: message_text
in: body
type: string
description: "Message text."
call: "msteams.send-channel-message"
with:
channel_id: "{{channel_id}}"
text: "{{message_text}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
On collection launch, updates SAP product catalog, publishes to BigCommerce, promotes on Instagram, and notifies stores via Microsoft Teams.
naftiko: "0.5"
info:
label: "New Collection Launch Pipeline"
description: "On collection launch, updates SAP product catalog, publishes to BigCommerce, promotes on Instagram, and notifies stores via Microsoft Teams."
tags:
- fashion
- sap
- bigcommerce
- instagram
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: new-collection-launch-pipeline
port: 8080
tools:
- name: execute
description: "On collection launch, updates SAP product catalog, publishes to BigCommerce, promotes on Instagram, and notifies stores 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: "bigcommerce.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: "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: bigcommerce
baseUri: "https://api.bigcommerce.com/v1"
authentication:
type: bearer
token: "$secrets.bigcommerce_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: 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 New Relic performance data for the H&M e-commerce application.
naftiko: "0.5"
info:
label: "New Relic E-Commerce Monitor"
description: "Retrieves New Relic performance data for the H&M e-commerce application."
tags:
- it-operations
- monitoring
- new-relic
capability:
exposes:
- type: mcp
namespace: newrelic-monitoring
port: 8080
tools:
- name: get-newrelic-metrics
description: "Get New Relic metrics."
inputParameters:
- name: app_id
in: body
type: string
description: "New Relic app ID."
call: "newrelic.get-app-metrics"
with:
app_id: "{{app_id}}"
outputParameters:
- name: response_time
type: number
mapping: "$.application_summary.response_time"
- name: throughput
type: number
mapping: "$.application_summary.throughput"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
key: "$secrets.newrelic_api_key"
headerName: "Api-Key"
resources:
- name: applications
path: "/applications/{{app_id}}.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-app-metrics
method: GET
Retrieves e-commerce platform health metrics from New Relic.
naftiko: "0.5"
info:
label: "New Relic E-Commerce Health Lookup"
description: "Retrieves e-commerce platform health metrics from New Relic."
tags:
- monitoring
- new-relic
capability:
exposes:
- type: mcp
namespace: newrelic-ecom
port: 8080
tools:
- name: get-data
description: "Retrieves e-commerce platform health metrics from New Relic."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "newrelic-ecom.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: newrelic-ecom
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
Syncs inventory from SAP to BigCommerce, updates Google Sheets tracker, refreshes Tableau dashboard, and notifies stores via Slack.
naftiko: "0.5"
info:
label: "Omnichannel Inventory Sync Pipeline"
description: "Syncs inventory from SAP to BigCommerce, updates Google Sheets tracker, refreshes Tableau dashboard, and notifies stores via Slack."
tags:
- inventory
- sap
- bigcommerce
- google-sheets
- tableau
- slack
capability:
exposes:
- type: mcp
namespace: omnichannel-inventory-sync-pipeline
port: 8080
tools:
- name: execute
description: "Syncs inventory from SAP to BigCommerce, updates Google Sheets tracker, refreshes Tableau dashboard, and notifies stores 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: "bigcommerce.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: 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: bigcommerce
baseUri: "https://api.bigcommerce.com/v1"
authentication:
type: bearer
token: "$secrets.bigcommerce_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: 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: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Validates inventory in SAP, creates shipment, updates BigCommerce order status, and sends confirmation via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Online Order Fulfillment Pipeline"
description: "Validates inventory in SAP, creates shipment, updates BigCommerce order status, and sends confirmation via Microsoft Outlook."
tags:
- fulfillment
- sap
- bigcommerce
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: online-order-fulfillment-pipeline
port: 8080
tools:
- name: execute
description: "Validates inventory in SAP, creates shipment, updates BigCommerce order status, and sends confirmation 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: "bigcommerce.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: bigcommerce
baseUri: "https://api.bigcommerce.com/v1"
authentication:
type: bearer
token: "$secrets.bigcommerce_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 Power BI fashion KPI dashboard refresh status.
naftiko: "0.5"
info:
label: "Power BI Fashion KPI Report"
description: "Retrieves Power BI fashion KPI dashboard refresh status."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: powerbi-fashion
port: 8080
tools:
- name: get-data
description: "Retrieves Power BI fashion KPI dashboard refresh status."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "powerbi-fashion.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: powerbi-fashion
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
Retrieves a product from the SAP product catalog by article number, returning name, category, price, color, and sustainability rating.
naftiko: "0.5"
info:
label: "Product Catalog Lookup"
description: "Retrieves a product from the SAP product catalog by article number, returning name, category, price, color, and sustainability rating."
tags:
- retail
- product
- sap
capability:
exposes:
- type: mcp
namespace: product-catalog
port: 8080
tools:
- name: get-product
description: "Look up an H&M product by article number."
inputParameters:
- name: article_number
in: body
type: string
description: "The SAP article number."
call: "sap.get-article"
with:
article_id: "{{article_number}}"
outputParameters:
- name: product_name
type: string
mapping: "$.d.ArticleName"
- name: category
type: string
mapping: "$.d.Category"
- name: price
type: string
mapping: "$.d.RetailPrice"
- name: sustainability_rating
type: string
mapping: "$.d.SustainabilityRating"
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZRT_ARTICLE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: articles
path: "/ArticleSet('{{article_id}}')"
inputParameters:
- name: article_id
in: path
operations:
- name: get-article
method: GET
Creates task in Asana, uploads assets to Google Drive, publishes to BigCommerce, and updates Airtable tracker.
naftiko: "0.5"
info:
label: "Product Photography Pipeline"
description: "Creates task in Asana, uploads assets to Google Drive, publishes to BigCommerce, and updates Airtable tracker."
tags:
- creative
- asana
- google-drive
- bigcommerce
- airtable
capability:
exposes:
- type: mcp
namespace: product-photography-pipeline
port: 8080
tools:
- name: execute
description: "Creates task in Asana, uploads assets to Google Drive, publishes to BigCommerce, and updates Airtable 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: "asana.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "google-drive.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "bigcommerce.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "airtable.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- 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: 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: bigcommerce
baseUri: "https://api.bigcommerce.com/v1"
authentication:
type: bearer
token: "$secrets.bigcommerce_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
Triggers a Qlik Sense reload for retail analytics and notifies the team.
naftiko: "0.5"
info:
label: "Qlik Sense Retail Dashboard Refresh"
description: "Triggers a Qlik Sense reload for retail analytics and notifies the team."
tags:
- analytics
- qlik-sense
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: analytics-refresh
port: 8080
tools:
- name: refresh-qlik-dashboard
description: "Trigger Qlik Sense reload."
inputParameters:
- name: app_id
in: body
type: string
description: "Qlik Sense app ID."
steps:
- name: trigger-reload
type: call
call: "qlik.reload-app"
with:
app_id: "{{app_id}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "retail-analytics"
text: "Qlik dashboard {{app_id}} reloaded. ID: {{trigger-reload.reloadId}}."
consumes:
- type: http
namespace: qlik
baseUri: "https://hm.us.qlikcloud.com/api/v1"
authentication:
type: bearer
token: "$secrets.qlik_token"
resources:
- name: reloads
path: "/reloads"
operations:
- name: reload-app
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves a customer account from Salesforce.
naftiko: "0.5"
info:
label: "Salesforce Customer Account Lookup"
description: "Retrieves a customer account from Salesforce."
tags:
- crm
- salesforce
capability:
exposes:
- type: mcp
namespace: crm-accounts
port: 8080
tools:
- name: get-customer-account
description: "Look up a Salesforce customer account."
inputParameters:
- name: account_id
in: body
type: string
description: "Salesforce account ID."
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
outputParameters:
- name: name
type: string
mapping: "$.Name"
- name: segment
type: string
mapping: "$.Customer_Segment__c"
consumes:
- type: http
namespace: salesforce
baseUri: "https://hm.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
Retrieves a Salesforce customer order by ID, returning order status, total, and shipping details.
naftiko: "0.5"
info:
label: "Salesforce Customer Order Lookup"
description: "Retrieves a Salesforce customer order by ID, returning order status, total, and shipping details."
tags:
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: sf-orders
port: 8080
tools:
- name: get-data
description: "Retrieves a Salesforce customer order by ID, returning order status, total, and shipping details."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "sf-orders.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: sf-orders
baseUri: "https://hm.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 procurement request status from SAP Ariba by request ID.
naftiko: "0.5"
info:
label: "SAP Ariba Procurement Lookup"
description: "Retrieves procurement request status from SAP Ariba by request ID."
tags:
- procurement
- sap-ariba
capability:
exposes:
- type: mcp
namespace: sap-ariba
port: 8080
tools:
- name: get-data
description: "Retrieves procurement request status from SAP Ariba by request ID."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "sap-ariba.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: sap-ariba
baseUri: "https://api.ariba.com/v2"
authentication:
type: bearer
token: "$secrets.ariba_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Retrieves supplier sourcing data from SAP Ariba for garment manufacturing partners.
naftiko: "0.5"
info:
label: "SAP Ariba Supplier Sourcing"
description: "Retrieves supplier sourcing data from SAP Ariba for garment manufacturing partners."
tags:
- procurement
- supply-chain
- sap-ariba
capability:
exposes:
- type: mcp
namespace: supplier-sourcing
port: 8080
tools:
- name: get-supplier-sourcing
description: "Get supplier sourcing data from Ariba."
inputParameters:
- name: supplier_id
in: body
type: string
description: "SAP Ariba supplier ID."
call: "ariba.get-supplier"
with:
supplier_id: "{{supplier_id}}"
outputParameters:
- name: name
type: string
mapping: "$.supplierName"
- name: country
type: string
mapping: "$.country"
- name: sustainability_cert
type: string
mapping: "$.sustainabilityCertification"
- name: capacity_utilization
type: string
mapping: "$.capacityUtilization"
consumes:
- type: http
namespace: ariba
baseUri: "https://openapi.ariba.com/api/supplier-management/v2"
authentication:
type: bearer
token: "$secrets.ariba_token"
resources:
- name: suppliers
path: "/suppliers/{{supplier_id}}"
inputParameters:
- name: supplier_id
in: path
operations:
- name: get-supplier
method: GET
Queries SAP BW for sales analytics by region and product category.
naftiko: "0.5"
info:
label: "SAP BW Sales Analytics"
description: "Queries SAP BW for sales analytics by region and product category."
tags:
- analytics
- sap-bw
- sales
capability:
exposes:
- type: mcp
namespace: sales-analytics
port: 8080
tools:
- name: get-sales-analytics
description: "Get sales analytics from SAP BW."
inputParameters:
- name: region
in: body
type: string
description: "Sales region."
- name: category
in: body
type: string
description: "Product category."
call: "sapbw.get-sales"
with:
region: "{{region}}"
category: "{{category}}"
outputParameters:
- name: revenue
type: string
mapping: "$.d.Revenue"
- name: units_sold
type: integer
mapping: "$.d.UnitsSold"
- name: yoy_growth
type: string
mapping: "$.d.YoYGrowth"
consumes:
- type: http
namespace: sapbw
baseUri: "https://hm-bw.sap.com/sap/opu/odata/sap/ZRT_SALES_BW_SRV"
authentication:
type: basic
username: "$secrets.sap_bw_user"
password: "$secrets.sap_bw_password"
resources:
- name: sales
path: "/SalesAnalyticsSet(Region='{{region}}',Category='{{category}}')"
inputParameters:
- name: region
in: path
- name: category
in: path
operations:
- name: get-sales
method: GET
Retrieves a Concur expense report and creates a Jira approval task.
naftiko: "0.5"
info:
label: "SAP Concur Travel Expense Processor"
description: "Retrieves a Concur expense report and creates a Jira approval task."
tags:
- finance
- travel
- sap-concur
- jira
capability:
exposes:
- type: mcp
namespace: travel-expenses
port: 8080
tools:
- name: process-expense-report
description: "Validate Concur expense report."
inputParameters:
- name: report_id
in: body
type: string
description: "Concur report ID."
steps:
- name: get-report
type: call
call: "concur.get-expense-report"
with:
report_id: "{{report_id}}"
- name: create-approval
type: call
call: "jira.create-issue"
with:
project_key: "FIN"
summary: "Expense: {{get-report.employee_name}} - {{get-report.total_amount}}"
issue_type: "Task"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-expense-report
method: GET
- type: http
namespace: jira
baseUri: "https://hm.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Retrieves real-time inventory data from SAP HANA for H&M stores.
naftiko: "0.5"
info:
label: "SAP HANA Inventory Lookup"
description: "Retrieves real-time inventory data from SAP HANA for H&M stores."
tags:
- inventory
- sap-hana
capability:
exposes:
- type: mcp
namespace: sap-hana-inv
port: 8080
tools:
- name: get-data
description: "Retrieves real-time inventory data from SAP HANA for H&M stores."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "sap-hana-inv.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: sap-hana-inv
baseUri: "https://hm-hana.sap.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_hana_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Queries SAP HANA for retail analytics by store and category.
naftiko: "0.5"
info:
label: "SAP HANA Retail Analytics"
description: "Queries SAP HANA for retail analytics by store and category."
tags:
- analytics
- sap-hana
- retail
capability:
exposes:
- type: mcp
namespace: retail-analytics
port: 8080
tools:
- name: query-retail-analytics
description: "Query SAP HANA for retail performance."
inputParameters:
- name: store_code
in: body
type: string
description: "Store code."
- name: category
in: body
type: string
description: "Product category."
call: "saphana.query-retail"
with:
store: "{{store_code}}"
category: "{{category}}"
outputParameters:
- name: revenue
type: string
mapping: "$.d.Revenue"
- name: units_sold
type: integer
mapping: "$.d.UnitsSold"
- name: avg_basket_size
type: string
mapping: "$.d.AvgBasketSize"
consumes:
- type: http
namespace: saphana
baseUri: "https://hm-hana.sap.com/sap/opu/odata/sap/ZRT_ANALYTICS_SRV"
authentication:
type: basic
username: "$secrets.sap_hana_user"
password: "$secrets.sap_hana_password"
resources:
- name: retail
path: "/RetailAnalyticsSet(Store='{{store}}',Category='{{category}}')"
inputParameters:
- name: store
in: path
- name: category
in: path
operations:
- name: query-retail
method: GET
Looks up a SAP purchase order and returns status, vendor, total value, and delivery date.
naftiko: "0.5"
info:
label: "SAP Purchase Order Status"
description: "Looks up a SAP purchase order and returns status, vendor, total value, and delivery date."
tags:
- procurement
- sap
- supply-chain
capability:
exposes:
- type: mcp
namespace: erp-procurement
port: 8080
tools:
- name: get-purchase-order
description: "Look up a SAP purchase order."
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://hm-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
Calculates markdowns in Snowflake, updates pricing in SAP, syncs to BigCommerce, and notifies stores via Slack.
naftiko: "0.5"
info:
label: "Seasonal Markdown Pipeline"
description: "Calculates markdowns in Snowflake, updates pricing in SAP, syncs to BigCommerce, and notifies stores via Slack."
tags:
- pricing
- snowflake
- sap
- bigcommerce
- slack
capability:
exposes:
- type: mcp
namespace: seasonal-markdown-pipeline
port: 8080
tools:
- name: execute
description: "Calculates markdowns in Snowflake, updates pricing in SAP, syncs to BigCommerce, and notifies stores 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: "bigcommerce.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: bigcommerce
baseUri: "https://api.bigcommerce.com/v1"
authentication:
type: bearer
token: "$secrets.bigcommerce_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
Detects issues via Cloudflare, creates Jira tickets, alerts security team via Slack, and triggers Azure DevOps patches.
naftiko: "0.5"
info:
label: "Security Vulnerability Pipeline"
description: "Detects issues via Cloudflare, creates Jira tickets, alerts security team via Slack, and triggers Azure DevOps patches."
tags:
- security
- cloudflare
- jira
- slack
- azure-devops
capability:
exposes:
- type: mcp
namespace: security-vulnerability-pipeline
port: 8080
tools:
- name: execute
description: "Detects issues via Cloudflare, creates Jira tickets, alerts security 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: "cloudflare.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: cloudflare
baseUri: "https://api.cloudflare.com/v1"
authentication:
type: bearer
token: "$secrets.cloudflare_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 BigCommerce, and reports via Google Sheets.
naftiko: "0.5"
info:
label: "SEO Optimization Pipeline"
description: "Pulls search data from Google Search Console, identifies opportunities, updates BigCommerce, and reports via Google Sheets."
tags:
- seo
- google-search-console
- bigcommerce
- google-sheets
capability:
exposes:
- type: mcp
namespace: seo-optimization-pipeline
port: 8080
tools:
- name: execute
description: "Pulls search data from Google Search Console, identifies opportunities, updates BigCommerce, 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: "bigcommerce.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: 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: bigcommerce
baseUri: "https://api.bigcommerce.com/v1"
authentication:
type: bearer
token: "$secrets.bigcommerce_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.
naftiko: "0.5"
info:
label: "ServiceNow Ticket Status"
description: "Retrieves a ServiceNow incident by number."
tags:
- it-service
- servicenow
capability:
exposes:
- type: mcp
namespace: itsm-tickets
port: 8080
tools:
- name: get-ticket-status
description: "Look up a ServiceNow incident."
inputParameters:
- name: incident_number
in: body
type: string
description: "ServiceNow incident number."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result[0].state"
- name: priority
type: string
mapping: "$.result[0].priority"
consumes:
- type: http
namespace: servicenow
baseUri: "https://hm.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: path
operations:
- name: get-incident
method: GET
Retrieves a document from SharePoint.
naftiko: "0.5"
info:
label: "SharePoint Document Retrieval"
description: "Retrieves a document from SharePoint."
tags:
- document-management
- sharepoint
capability:
exposes:
- type: mcp
namespace: doc-management
port: 8080
tools:
- name: get-document
description: "Retrieve a SharePoint document."
inputParameters:
- name: site_id
in: body
type: string
description: "SharePoint site ID."
- name: file_path
in: body
type: string
description: "File path."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
file_path: "{{file_path}}"
outputParameters:
- name: download_url
type: string
mapping: "$.['@microsoft.graph.downloadUrl']"
consumes:
- 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:/{{file_path}}"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file
method: GET
Sends a message to a Slack store operations channel.
naftiko: "0.5"
info:
label: "Slack Store Ops Message Sender"
description: "Sends a message to a Slack store operations channel."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: slack-storeops
port: 8080
tools:
- name: get-data
description: "Sends a message to a Slack store operations channel."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "slack-storeops.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: slack-storeops
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
Executes a query against Snowflake to retrieve retail sales analytics by region and product category.
naftiko: "0.5"
info:
label: "Snowflake Retail Analytics Query"
description: "Executes a query against Snowflake to retrieve retail sales analytics by region and product category."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: snowflake-retail
port: 8080
tools:
- name: get-data
description: "Executes a query against Snowflake to retrieve retail sales analytics by region and product category."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "snowflake-retail.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: snowflake-retail
baseUri: "https://hm.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 a social media campaign across Instagram, Facebook, and LinkedIn via HubSpot with product assets from SharePoint.
naftiko: "0.5"
info:
label: "Social Media Campaign Publisher"
description: "Creates a social media campaign across Instagram, Facebook, and LinkedIn via HubSpot with product assets from SharePoint."
tags:
- marketing
- social-media
- hubspot
- sharepoint
- instagram
- facebook
- linkedin
capability:
exposes:
- type: mcp
namespace: social-campaigns
port: 8080
tools:
- name: publish-social-campaign
description: "Publish a social media campaign with product assets."
inputParameters:
- name: article_number
in: body
type: string
description: "Product article number."
- name: campaign_message
in: body
type: string
description: "Campaign message."
steps:
- name: get-assets
type: call
call: "sharepoint.get-folder"
with:
site_id: "marketing_site"
folder_path: "ProductAssets/{{article_number}}"
- name: create-broadcast
type: call
call: "hubspot.create-broadcast"
with:
content: "{{campaign_message}}"
channels: ["instagram", "facebook", "linkedin"]
media_url: "{{get-assets.items[0].webUrl}}"
consumes:
- 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}}:/children"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: get-folder
method: GET
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: broadcasts
path: "/broadcast/v1/broadcasts"
operations:
- name: create-broadcast
method: POST
Syncs calendar from Airtable, creates posts in HubSpot, schedules on Instagram and Facebook, and tracks in Google Sheets.
naftiko: "0.5"
info:
label: "Social Media Content Calendar Pipeline"
description: "Syncs calendar from Airtable, creates posts in HubSpot, schedules on Instagram and Facebook, and tracks in Google Sheets."
tags:
- social-media
- airtable
- hubspot
- instagram
- facebook
- google-sheets
capability:
exposes:
- type: mcp
namespace: social-media-content-calendar-pipeline
port: 8080
tools:
- name: execute
description: "Syncs calendar from Airtable, creates posts in HubSpot, schedules on Instagram and Facebook, and tracks 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: "airtable.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "hubspot.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: 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: 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: 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: 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-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
Pulls real-time inventory from SAP for a store, pushes to Power BI, and alerts the merchandising team if stock is low.
naftiko: "0.5"
info:
label: "Store Inventory Monitor"
description: "Pulls real-time inventory from SAP for a store, pushes to Power BI, and alerts the merchandising team if stock is low."
tags:
- retail
- inventory
- sap
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: store-inventory
port: 8080
tools:
- name: monitor-store-inventory
description: "Monitor store inventory and alert on low stock."
inputParameters:
- name: store_code
in: body
type: string
description: "The store code."
steps:
- name: get-inventory
type: call
call: "sap.get-store-inventory"
with:
store: "{{store_code}}"
- name: push-to-bi
type: call
call: "powerbi.push-rows"
with:
dataset_id: "store_inventory_ds"
table_name: "Inventory"
rows:
- store: "{{store_code}}"
total_skus: "{{get-inventory.total_skus}}"
low_stock_count: "{{get-inventory.low_stock_count}}"
- name: alert-merch
type: call
call: "msteams.send-message"
with:
channel_id: "merchandising"
text: "Store {{store_code}}: {{get-inventory.low_stock_count}} SKUs below threshold."
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZRT_STORE_INV_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: inventory
path: "/StoreInventorySet('{{store}}')"
inputParameters:
- name: store
in: path
operations:
- name: get-store-inventory
method: GET
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/tables/{{table_name}}/rows"
inputParameters:
- name: dataset_id
in: path
- name: table_name
in: path
operations:
- name: push-rows
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Checks store stock in SAP, creates replenishment order, notifies logistics via Slack, and updates Google Sheets tracker.
naftiko: "0.5"
info:
label: "Store Inventory Replenishment Pipeline"
description: "Checks store stock in SAP, creates replenishment order, notifies logistics via Slack, and updates Google Sheets tracker."
tags:
- inventory
- sap
- slack
- google-sheets
capability:
exposes:
- type: mcp
namespace: store-inventory-replenishment-pipeline
port: 8080
tools:
- name: execute
description: "Checks store stock in SAP, creates replenishment order, notifies logistics 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
Creates store record in SAP, provisions POS systems via ServiceNow, publishes on Google Maps, and notifies regional managers via Microsoft Teams.
naftiko: "0.5"
info:
label: "Store Opening Orchestrator"
description: "Creates store record in SAP, provisions POS systems via ServiceNow, publishes on Google Maps, and notifies regional managers via Microsoft Teams."
tags:
- retail
- sap
- servicenow
- google-maps
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: store-opening-orchestrator
port: 8080
tools:
- name: execute
description: "Creates store record in SAP, provisions POS systems via ServiceNow, publishes on Google Maps, and notifies regional managers 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: "servicenow.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-maps.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: 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: google-maps
baseUri: "https://api.googlemaps.com/v1"
authentication:
type: bearer
token: "$secrets.google_maps_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
Pulls store data from SAP, analyzes in Snowflake, generates Power BI reports, and shares via Microsoft Teams.
naftiko: "0.5"
info:
label: "Store Performance Review Pipeline"
description: "Pulls store data from SAP, analyzes in Snowflake, generates Power BI reports, and shares via Microsoft Teams."
tags:
- retail
- sap
- snowflake
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: store-performance-review-pipeline
port: 8080
tools:
- name: execute
description: "Pulls store data from SAP, analyzes in Snowflake, generates Power BI reports, 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: "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: "power-bi.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: 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
Retrieves a Stripe payment intent by ID for H&M online orders.
naftiko: "0.5"
info:
label: "Stripe E-Commerce Payment Lookup"
description: "Retrieves a Stripe payment intent by ID for H&M online orders."
tags:
- payments
- stripe
capability:
exposes:
- type: mcp
namespace: stripe-payments
port: 8080
tools:
- name: get-data
description: "Retrieves a Stripe payment intent by ID for H&M online orders."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "stripe-payments.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: stripe-payments
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
Matches a SAP invoice against a PO, creates a Jira approval task, and notifies finance in Teams.
naftiko: "0.5"
info:
label: "Supplier Invoice Processor"
description: "Matches a SAP invoice against a PO, creates a Jira approval task, and notifies finance in Teams."
tags:
- finance
- invoicing
- sap
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: invoice-processing
port: 8080
tools:
- name: process-invoice
description: "Match invoice to PO and route for approval."
inputParameters:
- name: invoice_number
in: body
type: string
description: "SAP invoice number."
- name: po_number
in: body
type: string
description: "Related PO number."
steps:
- name: get-invoice
type: call
call: "sap.get-invoice"
with:
invoice_number: "{{invoice_number}}"
- name: create-approval
type: call
call: "jira.create-issue"
with:
project_key: "FIN"
summary: "Invoice variance: {{invoice_number}} vs PO {{po_number}}"
issue_type: "Task"
- name: notify-finance
type: call
call: "msteams.send-message"
with:
channel_id: "finance-approvals"
text: "Invoice {{invoice_number}} requires approval. Jira: {{create-approval.key}}."
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/API_SUPPLIER_INVOICE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: invoices
path: "/A_SupplierInvoice('{{invoice_number}}')"
inputParameters:
- name: invoice_number
in: path
operations:
- name: get-invoice
method: GET
- type: http
namespace: jira
baseUri: "https://hm.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Aggregates delivery data from SAP, calculates scores in Snowflake, generates scorecards in Google Sheets, and distributes via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Supplier Performance Pipeline"
description: "Aggregates delivery data from SAP, calculates scores in Snowflake, generates scorecards in Google Sheets, and distributes via Microsoft Outlook."
tags:
- procurement
- sap
- snowflake
- google-sheets
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: supplier-performance-pipeline
port: 8080
tools:
- name: execute
description: "Aggregates delivery data from SAP, calculates scores in Snowflake, generates scorecards in Google Sheets, and distributes 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: "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-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: 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-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
Detects disruption in SAP, creates ServiceNow incident, notifies procurement via Slack, and updates risk tracker in Google Sheets.
naftiko: "0.5"
info:
label: "Supply Chain Disruption Pipeline"
description: "Detects disruption in SAP, creates ServiceNow incident, notifies procurement via Slack, and updates risk tracker in Google Sheets."
tags:
- supply-chain
- sap
- servicenow
- slack
- google-sheets
capability:
exposes:
- type: mcp
namespace: supply-chain-disruption-pipeline
port: 8080
tools:
- name: execute
description: "Detects disruption in SAP, creates ServiceNow incident, notifies procurement via Slack, and updates risk tracker 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: "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: "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: 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: 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
Tracks garment shipments from factory to distribution center using SAP, updates delivery status, and alerts logistics in Microsoft Teams.
naftiko: "0.5"
info:
label: "Supply Chain Shipment Tracker"
description: "Tracks garment shipments from factory to distribution center using SAP, updates delivery status, and alerts logistics in Microsoft Teams."
tags:
- supply-chain
- logistics
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: shipment-tracking
port: 8080
tools:
- name: track-shipment
description: "Track a garment shipment and notify logistics."
inputParameters:
- name: shipment_id
in: body
type: string
description: "SAP shipment ID."
steps:
- name: get-shipment
type: call
call: "sap.get-shipment"
with:
shipment_id: "{{shipment_id}}"
- name: notify-logistics
type: call
call: "msteams.send-message"
with:
channel_id: "logistics-tracking"
text: "Shipment {{shipment_id}}: Status {{get-shipment.status}}. ETA: {{get-shipment.eta}}. Origin: {{get-shipment.origin}}. Destination: {{get-shipment.destination}}."
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZSC_SHIPMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: shipments
path: "/ShipmentSet('{{shipment_id}}')"
inputParameters:
- name: shipment_id
in: path
operations:
- name: get-shipment
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Collects supplier sustainability data from SAP Ariba, stores in Snowflake, generates reports in Google Sheets, and publishes to Confluence.
naftiko: "0.5"
info:
label: "Sustainability Audit Pipeline"
description: "Collects supplier sustainability data from SAP Ariba, stores in Snowflake, generates reports in Google Sheets, and publishes to Confluence."
tags:
- sustainability
- sap-ariba
- snowflake
- google-sheets
- confluence
capability:
exposes:
- type: mcp
namespace: sustainability-audit-pipeline
port: 8080
tools:
- name: execute
description: "Collects supplier sustainability data from SAP Ariba, stores in Snowflake, generates reports in Google Sheets, 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: "sap-ariba.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: "confluence.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: sap-ariba
baseUri: "https://api.sapariba.com/v1"
authentication:
type: bearer
token: "$secrets.sap_ariba_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: confluence
baseUri: "https://api.confluence.com/v1"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Pulls supplier sustainability scores from SAP, validates against H&M standards, and publishes a compliance report to Confluence.
naftiko: "0.5"
info:
label: "Sustainability Supply Chain Tracker"
description: "Pulls supplier sustainability scores from SAP, validates against H&M standards, and publishes a compliance report to Confluence."
tags:
- sustainability
- supply-chain
- sap
- confluence
capability:
exposes:
- type: mcp
namespace: sustainability-tracking
port: 8080
tools:
- name: track-supplier-sustainability
description: "Track supplier sustainability compliance."
inputParameters:
- name: supplier_id
in: body
type: string
description: "The SAP supplier ID."
steps:
- name: get-scores
type: call
call: "sap.get-sustainability-scores"
with:
supplier_id: "{{supplier_id}}"
- name: publish-report
type: call
call: "confluence.create-page"
with:
space_key: "ESG"
title: "Sustainability: {{get-scores.supplier_name}}"
body: "Overall score: {{get-scores.overall_score}}. Water: {{get-scores.water_score}}. Carbon: {{get-scores.carbon_score}}. Labor: {{get-scores.labor_score}}. Chemicals: {{get-scores.chemical_score}}."
consumes:
- type: http
namespace: sap
baseUri: "https://hm-s4.sap.com/sap/opu/odata/sap/ZSC_SUSTAINABILITY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: scores
path: "/SustainabilityScoreSet('{{supplier_id}}')"
inputParameters:
- name: supplier_id
in: path
operations:
- name: get-sustainability-scores
method: GET
- type: http
namespace: confluence
baseUri: "https://hm.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Retrieves a Tableau store performance dashboard view.
naftiko: "0.5"
info:
label: "Tableau Store Performance Lookup"
description: "Retrieves a Tableau store performance dashboard view."
tags:
- analytics
- tableau
capability:
exposes:
- type: mcp
namespace: tableau-stores
port: 8080
tools:
- name: get-data
description: "Retrieves a Tableau store performance dashboard view."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "tableau-stores.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: tableau-stores
baseUri: "https://tableau.hm.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
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
Queries the Teradata data warehouse for historical retail sales by region.
naftiko: "0.5"
info:
label: "Teradata Retail Data Warehouse Query"
description: "Queries the Teradata data warehouse for historical retail sales by region."
tags:
- analytics
- data-warehouse
- teradata
capability:
exposes:
- type: mcp
namespace: retail-dwh
port: 8080
tools:
- name: query-retail-history
description: "Query Teradata for historical retail data."
inputParameters:
- name: region
in: body
type: string
description: "Sales region."
- name: period
in: body
type: string
description: "Analysis period."
call: "teradata.query-retail"
with:
region: "{{region}}"
period: "{{period}}"
outputParameters:
- name: total_revenue
type: string
mapping: "$.results.total_revenue"
- name: store_count
type: integer
mapping: "$.results.store_count"
consumes:
- type: http
namespace: teradata
baseUri: "https://hm-td.teradata.com/api/query/v1"
authentication:
type: bearer
token: "$secrets.teradata_token"
resources:
- name: queries
path: "/execute"
operations:
- name: query-retail
method: POST
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
Creates vendor in SAP, sets up shared folder in Box, creates Salesforce account, and sends welcome via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Vendor Onboarding Pipeline"
description: "Creates vendor in SAP, sets up shared folder in Box, creates Salesforce account, and sends welcome via Microsoft Outlook."
tags:
- procurement
- sap
- box
- salesforce
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: vendor-onboarding-pipeline
port: 8080
tools:
- name: execute
description: "Creates vendor in SAP, sets up shared folder in Box, creates Salesforce account, 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: "sap.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "box.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: 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: 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
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 headcount data from Workday by department.
naftiko: "0.5"
info:
label: "Workday Headcount Report"
description: "Retrieves headcount data from Workday by department."
tags:
- hr
- workforce
- workday
capability:
exposes:
- type: mcp
namespace: hr-reporting
port: 8080
tools:
- name: get-headcount
description: "Get headcount metrics from Workday."
inputParameters:
- name: department_id
in: body
type: string
description: "Workday department ID."
call: "workday.get-headcount"
with:
department_id: "{{department_id}}"
outputParameters:
- name: employee_count
type: integer
mapping: "$.total_count"
- name: open_positions
type: integer
mapping: "$.open_positions"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: headcount
path: "/departments/{{department_id}}/headcount"
inputParameters:
- name: department_id
in: path
operations:
- name: get-headcount
method: GET
Retrieves retail employee details from Workday by employee ID.
naftiko: "0.5"
info:
label: "Workday Retail Employee Lookup"
description: "Retrieves retail employee details from Workday by employee ID."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: workday-retail
port: 8080
tools:
- name: get-data
description: "Retrieves retail employee details from Workday by employee ID."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "workday-retail.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: workday-retail
baseUri: "https://wd5-impl-services1.workday.com/ccx/service/hm"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Retrieves a Zendesk customer support ticket by ID, returning status and resolution.
naftiko: "0.5"
info:
label: "Zendesk Customer Support Lookup"
description: "Retrieves a Zendesk customer support ticket by ID, returning status and resolution."
tags:
- support
- zendesk
capability:
exposes:
- type: mcp
namespace: zendesk-support
port: 8080
tools:
- name: get-data
description: "Retrieves a Zendesk customer support ticket by ID, returning status and resolution."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "zendesk-support.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: zendesk-support
baseUri: "https://hm.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Creates a Zoom meeting and sends invites via Outlook.
naftiko: "0.5"
info:
label: "Zoom Meeting Scheduler"
description: "Creates a Zoom meeting and sends invites via Outlook."
tags:
- communications
- meetings
- zoom
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: meeting-scheduler
port: 8080
tools:
- name: schedule-meeting
description: "Create Zoom meeting and send invites."
inputParameters:
- name: topic
in: body
type: string
description: "Meeting topic."
- name: start_time
in: body
type: string
description: "Start time."
- name: attendee_emails
in: body
type: array
description: "Attendee emails."
steps:
- name: create-meeting
type: call
call: "zoom.create-meeting"
with:
topic: "{{topic}}"
start_time: "{{start_time}}"
- name: send-invite
type: call
call: "outlook.send-email"
with:
to: "{{attendee_emails}}"
subject: "Meeting: {{topic}}"
body: "Join: {{create-meeting.join_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_token"
resources:
- name: meetings
path: "/users/me/meetings"
operations:
- name: create-meeting
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0/me"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/sendMail"
operations:
- name: send-email
method: POST