Shopify Capabilities
Naftiko 0.5 capability definitions for Shopify - 100 capabilities showing integration workflows and service orchestrations.
Detects abandoned checkouts in Shopify, enriches the customer data, sends a personalized recovery email via MailChimp, and logs the outreach in a Google Sheet for marketing tracking.
naftiko: "0.5"
info:
label: "Abandoned Cart Recovery Orchestrator"
description: "Detects abandoned checkouts in Shopify, enriches the customer data, sends a personalized recovery email via MailChimp, and logs the outreach in a Google Sheet for marketing tracking."
tags:
- e-commerce
- marketing
- abandoned-cart
- mailchimp
- google-sheets
- shopify
capability:
exposes:
- type: mcp
namespace: cart-recovery
port: 8080
tools:
- name: recover-abandoned-cart
description: "Given an abandoned checkout ID, retrieve cart details from Shopify, send a recovery email via MailChimp, and log the outreach in Google Sheets."
inputParameters:
- name: checkout_id
in: body
type: string
description: "The Shopify abandoned checkout ID."
steps:
- name: get-checkout
type: call
call: "shopify-admin.get-checkout"
with:
checkout_id: "{{checkout_id}}"
- name: send-recovery-email
type: call
call: "mailchimp.send-campaign"
with:
email: "{{get-checkout.email}}"
template_id: "abandoned_cart_recovery"
merge_fields:
first_name: "{{get-checkout.billing_address.first_name}}"
cart_url: "{{get-checkout.abandoned_checkout_url}}"
cart_total: "{{get-checkout.total_price}}"
- name: log-outreach
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "{{marketing_sheet_id}}"
range: "AbandonedCarts!A:E"
values:
- "{{get-checkout.email}}"
- "{{get-checkout.total_price}}"
- "{{get-checkout.created_at}}"
- "recovery_sent"
- "{{checkout_id}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: checkouts
path: "/checkouts/{{checkout_id}}.json"
inputParameters:
- name: checkout_id
in: path
operations:
- name: get-checkout
method: GET
- type: http
namespace: mailchimp
baseUri: "https://{{mailchimp_dc}}.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: send-campaign
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: values
path: "/{{spreadsheet_id}}/values/{{range}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-row
method: POST
Retrieves abandoned checkout listing data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Abandoned Checkout Listing"
description: "Retrieves abandoned checkout listing data from the Shopify e-commerce platform systems."
tags:
- abandoned
- shopify
- listing
capability:
exposes:
- type: mcp
namespace: abandoned
port: 8080
tools:
- name: abandoned-checkout-listing
description: "Retrieves abandoned checkout listing data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.abandoned-checkout-listing"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/abandoned/checkout/listing/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: abandoned-checkout-listing
method: GET
Fetches a customer's purchase history from Shopify, generates personalized product recommendations using Claude, and sends the recommendations via a personalized email through SendGrid.
naftiko: "0.5"
info:
label: "AI Product Recommendation Engine"
description: "Fetches a customer's purchase history from Shopify, generates personalized product recommendations using Claude, and sends the recommendations via a personalized email through SendGrid."
tags:
- e-commerce
- ai-ml
- recommendations
- claude
- sendgrid
- shopify
capability:
exposes:
- type: mcp
namespace: recommendations
port: 8080
tools:
- name: generate-recommendations
description: "Given a customer ID, analyze purchase history with Claude and send personalized product recommendations via email."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Shopify customer ID."
- name: max_recommendations
in: body
type: number
description: "Maximum number of product recommendations to generate."
steps:
- name: get-customer
type: call
call: "shopify-admin.get-customer"
with:
customer_id: "{{customer_id}}"
- name: get-order-history
type: call
call: "shopify-admin.list-customer-orders"
with:
customer_id: "{{customer_id}}"
status: "any"
- name: get-all-products
type: call
call: "shopify-admin.list-products"
with:
status: "active"
limit: "50"
- name: generate-recs
type: call
call: "claude.create-message"
with:
model: "claude-sonnet-4-20250514"
prompt: "Based on this customer's purchase history, recommend up to {{max_recommendations}} products they would likely enjoy. Purchase history: {{get-order-history.orders}}. Available products: {{get-all-products.products}}. Return JSON array of product IDs with reasoning."
- name: send-email
type: call
call: "sendgrid.send-email"
with:
to: "{{get-customer.email}}"
subject: "Products picked just for you, {{get-customer.first_name}}!"
body: "Hi {{get-customer.first_name}}, based on your recent purchases, we think you will love these: {{generate-recs.content}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: customers
path: "/customers/{{customer_id}}.json"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-customer
method: GET
- name: customer-orders
path: "/customers/{{customer_id}}/orders.json"
inputParameters:
- name: customer_id
in: path
- name: status
in: query
operations:
- name: list-customer-orders
method: GET
- name: products
path: "/products.json"
inputParameters:
- name: status
in: query
- name: limit
in: query
operations:
- name: list-products
method: GET
- type: http
namespace: claude
baseUri: "https://api.anthropic.com/v1"
authentication:
type: bearer
token: "$secrets.anthropic_api_key"
inputParameters:
- name: anthropic-version
in: header
value: "2023-06-01"
resources:
- name: messages
path: "/messages"
operations:
- name: create-message
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
Orchestrates app ecosystem integration pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "App Ecosystem Integration Pipeline"
description: "Orchestrates app ecosystem integration pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- app
- shopify
- jira
- datadog
- hubspot
capability:
exposes:
- type: mcp
namespace: app
port: 8080
tools:
- name: app-ecosystem-integration-pipeline
description: "Orchestrates app ecosystem integration pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "hubspot.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://shopify.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/app"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/app"
operations:
- name: execute-2
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: hubspot-resource
path: "/api/app"
operations:
- name: execute-3
method: POST
Lists all installed Shopify apps on the store, returning app name, API key, and access scopes. Used by platform engineering for audit and compliance.
naftiko: "0.5"
info:
label: "App Installation Listing"
description: "Lists all installed Shopify apps on the store, returning app name, API key, and access scopes. Used by platform engineering for audit and compliance."
tags:
- e-commerce
- platform-engineering
- app-ecosystem
- shopify
capability:
exposes:
- type: mcp
namespace: app-management
port: 8080
tools:
- name: list-installed-apps
description: "List all installed apps on the Shopify store. Returns app title, API key, and access scopes."
inputParameters: []
call: "shopify-admin.list-apps"
with: {}
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: apps
path: "/installed_apps.json"
operations:
- name: list-apps
method: GET
Retrieves app reviews from the Shopify App Store Partner API, analyzes common themes using Claude, and posts a weekly summary to Confluence and Slack for the product team.
naftiko: "0.5"
info:
label: "App Review and Rating Collector"
description: "Retrieves app reviews from the Shopify App Store Partner API, analyzes common themes using Claude, and posts a weekly summary to Confluence and Slack for the product team."
tags:
- e-commerce
- app-ecosystem
- ai-ml
- claude
- confluence
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: app-reviews
port: 8080
tools:
- name: analyze-app-reviews
description: "Given an app ID, fetch recent reviews from the Partner API, analyze themes with Claude, post a summary to Confluence, and notify Slack."
inputParameters:
- name: app_id
in: body
type: string
description: "The Shopify Partner app ID."
- name: days_back
in: body
type: number
description: "Number of days of reviews to analyze."
steps:
- name: get-reviews
type: call
call: "shopify-partner.get-app-reviews"
with:
app_id: "{{app_id}}"
days_back: "{{days_back}}"
- name: analyze-themes
type: call
call: "claude.create-message"
with:
model: "claude-sonnet-4-20250514"
prompt: "Analyze these Shopify app reviews. Identify the top 5 feature requests, top 5 complaints, and overall sentiment trend. Reviews: {{get-reviews.reviews}}"
- name: post-to-confluence
type: call
call: "confluence.create-page"
with:
space_key: "PRODUCT"
title: "App Review Analysis - {{app_id}} - Week of {{current_date}}"
body: "{{analyze-themes.content}}"
- name: notify-product
type: call
call: "slack.post-message"
with:
channel: "#product-feedback"
text: "Weekly app review analysis posted for app {{app_id}}. Confluence: {{post-to-confluence.url}}. Summary: {{analyze-themes.content}}"
consumes:
- type: http
namespace: shopify-partner
baseUri: "https://partners.shopify.com/api/v1"
authentication:
type: bearer
token: "$secrets.shopify_partner_token"
resources:
- name: app-reviews
path: "/apps/{{app_id}}/reviews.json"
inputParameters:
- name: app_id
in: path
- name: days_back
in: query
operations:
- name: get-app-reviews
method: GET
- type: http
namespace: claude
baseUri: "https://api.anthropic.com/v1"
authentication:
type: bearer
token: "$secrets.anthropic_api_key"
inputParameters:
- name: anthropic-version
in: header
value: "2023-06-01"
resources:
- name: messages
path: "/messages"
operations:
- name: create-message
method: POST
- type: http
namespace: confluence
baseUri: "https://{{confluence_domain}}.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: content
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Orchestrates app store review response pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "App Store Review Response Pipeline"
description: "Orchestrates app store review response pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- app
- shopify
- jira
- datadog
- hubspot
capability:
exposes:
- type: mcp
namespace: app
port: 8080
tools:
- name: app-store-review-response-pipeline
description: "Orchestrates app store review response pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "hubspot.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://shopify.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/app"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/app"
operations:
- name: execute-2
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: hubspot-resource
path: "/api/app"
operations:
- name: execute-3
method: POST
Handles a customer return request by verifying the order in Shopify, creating a return shipping label via ShipStation, initiating the Shopify refund, and updating the Zendesk ticket with resolution details.
naftiko: "0.5"
info:
label: "Automated Returns Processing"
description: "Handles a customer return request by verifying the order in Shopify, creating a return shipping label via ShipStation, initiating the Shopify refund, and updating the Zendesk ticket with resolution details."
tags:
- e-commerce
- returns
- refunds
- shipstation
- zendesk
- shopify
capability:
exposes:
- type: mcp
namespace: returns-management
port: 8080
tools:
- name: process-return
description: "Given an order ID and Zendesk ticket ID, verify the order, create a return label, initiate a refund, and update the support ticket."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID."
- name: ticket_id
in: body
type: string
description: "The Zendesk ticket ID for the return request."
- name: return_reason
in: body
type: string
description: "The reason for the return."
steps:
- name: get-order
type: call
call: "shopify-admin.get-order"
with:
order_id: "{{order_id}}"
- name: create-return-label
type: call
call: "shipstation.create-label"
with:
carrier_code: "stamps_com"
service_code: "usps_priority_mail"
to_name: "Returns Department"
to_address1: "{{warehouse_address}}"
to_city: "{{warehouse_city}}"
to_state: "{{warehouse_state}}"
to_postal_code: "{{warehouse_postal_code}}"
to_country: "US"
from_name: "{{get-order.shipping_address.name}}"
from_address1: "{{get-order.shipping_address.address1}}"
from_city: "{{get-order.shipping_address.city}}"
from_state: "{{get-order.shipping_address.province_code}}"
from_postal_code: "{{get-order.shipping_address.zip}}"
- name: initiate-refund
type: call
call: "shopify-admin.create-refund"
with:
order_id: "{{order_id}}"
amount: "{{get-order.total_price}}"
reason: "{{return_reason}}"
- name: update-ticket
type: call
call: "zendesk.update-ticket"
with:
ticket_id: "{{ticket_id}}"
status: "solved"
comment: "Return processed. Return label: {{create-return-label.tracking_number}}. Refund of {{get-order.total_price}} {{get-order.currency}} initiated. Reason: {{return_reason}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: orders
path: "/orders/{{order_id}}.json"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- name: refunds
path: "/orders/{{order_id}}/refunds.json"
inputParameters:
- name: order_id
in: path
operations:
- name: create-refund
method: POST
- type: http
namespace: shipstation
baseUri: "https://ssapi.shipstation.com"
authentication:
type: basic
username: "$secrets.shipstation_api_key"
password: "$secrets.shipstation_api_secret"
resources:
- name: labels
path: "/shipments/createlabel"
operations:
- name: create-label
method: POST
- type: http
namespace: zendesk
baseUri: "https://{{zendesk_subdomain}}.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_api_token"
resources:
- name: tickets
path: "/tickets/{{ticket_id}}.json"
inputParameters:
- name: ticket_id
in: path
operations:
- name: update-ticket
method: PUT
Orchestrates b2b wholesale pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "B2B Wholesale Pipeline"
description: "Orchestrates b2b wholesale pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- b2b
- shopify
- zendesk
- github
- shopify
capability:
exposes:
- type: mcp
namespace: b2b
port: 8080
tools:
- name: b2b-wholesale-pipeline
description: "Orchestrates b2b wholesale pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "zendesk.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "github.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "shopify.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: zendesk
baseUri: "https://shopify.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: zendesk-resource
path: "/api/b2b"
operations:
- name: execute-1
method: POST
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: github-resource
path: "/api/b2b"
operations:
- name: execute-2
method: POST
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: shopify-resource
path: "/api/b2b"
operations:
- name: execute-3
method: POST
Retrieves blog article listing data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Blog Article Listing"
description: "Retrieves blog article listing data from the Shopify e-commerce platform systems."
tags:
- blog
- shopify
- listing
capability:
exposes:
- type: mcp
namespace: blog
port: 8080
tools:
- name: blog-article-listing
description: "Retrieves blog article listing data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.blog-article-listing"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/blog/article/listing/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: blog-article-listing
method: GET
Fetches competitor pricing data from a pricing intelligence API, compares against current Shopify product prices, applies bulk price adjustments via the Shopify Admin API, and logs all changes in a Google Sheet.
naftiko: "0.5"
info:
label: "Bulk Price Update with Competitor Monitoring"
description: "Fetches competitor pricing data from a pricing intelligence API, compares against current Shopify product prices, applies bulk price adjustments via the Shopify Admin API, and logs all changes in a Google Sheet."
tags:
- e-commerce
- pricing
- products
- google-sheets
- competitive-analysis
- shopify
capability:
exposes:
- type: mcp
namespace: price-intelligence
port: 8080
tools:
- name: adjust-prices-from-competitors
description: "Given a product ID and competitor data source, compare pricing and apply adjustments in Shopify, then log changes."
inputParameters:
- name: product_id
in: body
type: string
description: "The Shopify product ID."
- name: competitor_sku
in: body
type: string
description: "The SKU to look up in the competitor pricing system."
- name: adjustment_strategy
in: body
type: string
description: "Pricing strategy: match, undercut_5_percent, or premium_10_percent."
steps:
- name: get-product
type: call
call: "shopify-admin.get-product"
with:
product_id: "{{product_id}}"
- name: get-competitor-price
type: call
call: "pricing-api.get-competitor-price"
with:
sku: "{{competitor_sku}}"
- name: update-price
type: call
call: "shopify-admin.update-product-variant"
with:
product_id: "{{product_id}}"
variant_id: "{{get-product.variants[0].id}}"
price: "{{get-competitor-price.adjusted_price}}"
- name: log-change
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "{{pricing_sheet_id}}"
range: "PriceChanges!A:F"
values:
- "{{product_id}}"
- "{{get-product.title}}"
- "{{get-product.variants[0].price}}"
- "{{get-competitor-price.adjusted_price}}"
- "{{adjustment_strategy}}"
- "{{get-competitor-price.competitor_name}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: products
path: "/products/{{product_id}}.json"
inputParameters:
- name: product_id
in: path
operations:
- name: get-product
method: GET
- name: variants
path: "/products/{{product_id}}/variants/{{variant_id}}.json"
inputParameters:
- name: product_id
in: path
- name: variant_id
in: path
operations:
- name: update-product-variant
method: PUT
- type: http
namespace: pricing-api
baseUri: "https://api.prisync.com/api/v2"
authentication:
type: bearer
token: "$secrets.prisync_api_key"
resources:
- name: competitor-prices
path: "/products/{{sku}}/competitor-prices"
inputParameters:
- name: sku
in: path
operations:
- name: get-competitor-price
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}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-row
method: POST
Retrieves carrier service listing data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Carrier Service Listing"
description: "Retrieves carrier service listing data from the Shopify e-commerce platform systems."
tags:
- carrier
- shopify
- listing
capability:
exposes:
- type: mcp
namespace: carrier
port: 8080
tools:
- name: carrier-service-listing
description: "Retrieves carrier service listing data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.carrier-service-listing"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/carrier/service/listing/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: carrier-service-listing
method: GET
Orchestrates checkout conversion optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Checkout Conversion Optimization Pipeline"
description: "Orchestrates checkout conversion optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- checkout
- shopify
- hubspot
- zendesk
- github
capability:
exposes:
- type: mcp
namespace: checkout
port: 8080
tools:
- name: checkout-conversion-optimization-pipeline
description: "Orchestrates checkout conversion optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "hubspot.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "zendesk.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "github.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: hubspot-resource
path: "/api/checkout"
operations:
- name: execute-1
method: POST
- type: http
namespace: zendesk
baseUri: "https://shopify.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: zendesk-resource
path: "/api/checkout"
operations:
- name: execute-2
method: POST
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: github-resource
path: "/api/checkout"
operations:
- name: execute-3
method: POST
Retrieves collection smart rules lookup data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Collection Smart Rules Lookup"
description: "Retrieves collection smart rules lookup data from the Shopify e-commerce platform systems."
tags:
- collection
- shopify
- lookup
capability:
exposes:
- type: mcp
namespace: collection
port: 8080
tools:
- name: collection-smart-rules-lookup
description: "Retrieves collection smart rules lookup data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.collection-smart-rules-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/collection/smart/rules/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: collection-smart-rules-lookup
method: GET
Retrieves custom collection products data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Custom Collection Products"
description: "Retrieves custom collection products data from the Shopify e-commerce platform systems."
tags:
- custom
- shopify
- products
capability:
exposes:
- type: mcp
namespace: custom
port: 8080
tools:
- name: custom-collection-products
description: "Retrieves custom collection products data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.custom-collection-products"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/custom/collection/products/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: custom-collection-products
method: GET
Orchestrates customer feedback loop pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Feedback Loop Pipeline"
description: "Orchestrates customer feedback loop pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- shopify
- sendgrid
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-feedback-loop-pipeline
description: "Orchestrates customer feedback loop pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sendgrid.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Orchestrates customer lifetime value pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Lifetime Value Pipeline"
description: "Orchestrates customer lifetime value pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- shopify
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-lifetime-value-pipeline
description: "Orchestrates customer lifetime value pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://shopify.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Retrieves a Shopify customer's order history, calculates loyalty points based on spend tiers, updates the customer's loyalty metafield, and emails the points statement via SendGrid.
naftiko: "0.5"
info:
label: "Customer Loyalty Points Calculator"
description: "Retrieves a Shopify customer's order history, calculates loyalty points based on spend tiers, updates the customer's loyalty metafield, and emails the points statement via SendGrid."
tags:
- e-commerce
- customers
- loyalty
- sendgrid
- shopify
capability:
exposes:
- type: mcp
namespace: loyalty-program
port: 8080
tools:
- name: calculate-loyalty-points
description: "Given a customer ID, tally order history, compute loyalty points, update the customer metafield, and send a points statement email."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Shopify customer ID."
- name: points_per_dollar
in: body
type: number
description: "Points awarded per dollar spent."
steps:
- name: get-customer
type: call
call: "shopify-admin.get-customer"
with:
customer_id: "{{customer_id}}"
- name: get-orders
type: call
call: "shopify-admin.list-customer-orders"
with:
customer_id: "{{customer_id}}"
status: "any"
- name: update-points
type: call
call: "shopify-admin.create-customer-metafield"
with:
customer_id: "{{customer_id}}"
namespace: "loyalty"
key: "points_balance"
value: "{{calculated_points}}"
type: "number_integer"
- name: send-statement
type: call
call: "sendgrid.send-email"
with:
to: "{{get-customer.email}}"
subject: "Your loyalty points statement"
body: "Hi {{get-customer.first_name}}, you have earned loyalty points from {{get-orders.count}} orders. Your current balance has been updated. Keep shopping to earn more rewards!"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: customers
path: "/customers/{{customer_id}}.json"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-customer
method: GET
- name: customer-orders
path: "/customers/{{customer_id}}/orders.json"
inputParameters:
- name: customer_id
in: path
- name: status
in: query
operations:
- name: list-customer-orders
method: GET
- name: customer-metafields
path: "/customers/{{customer_id}}/metafields.json"
inputParameters:
- name: customer_id
in: path
operations:
- name: create-customer-metafield
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
Retrieves a Shopify customer record by customer ID, returning contact details, order count, total spend, and tags. Used by support agents and marketing teams.
naftiko: "0.5"
info:
label: "Customer Profile Lookup"
description: "Retrieves a Shopify customer record by customer ID, returning contact details, order count, total spend, and tags. Used by support agents and marketing teams."
tags:
- e-commerce
- customers
- shopify
capability:
exposes:
- type: mcp
namespace: customer-management
port: 8080
tools:
- name: get-customer
description: "Look up a Shopify customer by ID. Returns name, email, order count, total spent, and customer tags."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Shopify customer ID."
call: "shopify-admin.get-customer"
with:
customer_id: "{{customer_id}}"
outputParameters:
- name: email
type: string
mapping: "$.customer.email"
- name: first_name
type: string
mapping: "$.customer.first_name"
- name: orders_count
type: number
mapping: "$.customer.orders_count"
- name: total_spent
type: string
mapping: "$.customer.total_spent"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: customers
path: "/customers/{{customer_id}}.json"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-customer
method: GET
Retrieves customer saved search listing data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Customer Saved Search Listing"
description: "Retrieves customer saved search listing data from the Shopify e-commerce platform systems."
tags:
- customer
- shopify
- listing
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-saved-search-listing
description: "Retrieves customer saved search listing data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.customer-saved-search-listing"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/customer/saved/search/listing/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: customer-saved-search-listing
method: GET
Orchestrates customer segmentation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Segmentation Pipeline"
description: "Orchestrates customer segmentation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- shopify
- slack
- jira
- datadog
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-segmentation-pipeline
description: "Orchestrates customer segmentation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://shopify.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
When a Shopify order has a complaint, retrieves order and customer data, creates a Zendesk ticket with full context, assigns it to the right team based on issue type, and notifies the support lead in Slack.
naftiko: "0.5"
info:
label: "Customer Support Escalation Pipeline"
description: "When a Shopify order has a complaint, retrieves order and customer data, creates a Zendesk ticket with full context, assigns it to the right team based on issue type, and notifies the support lead in Slack."
tags:
- e-commerce
- customer-service
- zendesk
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: support-escalation
port: 8080
tools:
- name: escalate-order-issue
description: "Given an order ID and issue description, gather order context, create a Zendesk ticket, and notify support in Slack."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID."
- name: issue_type
in: body
type: string
description: "The issue category: damaged, missing, wrong_item, delayed, other."
- name: issue_description
in: body
type: string
description: "Detailed description of the customer complaint."
steps:
- name: get-order
type: call
call: "shopify-admin.get-order"
with:
order_id: "{{order_id}}"
- name: get-customer
type: call
call: "shopify-admin.get-customer"
with:
customer_id: "{{get-order.customer.id}}"
- name: create-ticket
type: call
call: "zendesk.create-ticket"
with:
subject: "[{{issue_type}}] Order #{{get-order.order_number}} - {{get-customer.first_name}} {{get-customer.last_name}}"
description: "Issue: {{issue_description}}\n\nOrder: #{{get-order.order_number}}\nTotal: {{get-order.total_price}} {{get-order.currency}}\nFulfillment: {{get-order.fulfillment_status}}\nCustomer: {{get-customer.email}} ({{get-customer.orders_count}} orders, {{get-customer.total_spent}} lifetime)"
requester_email: "{{get-customer.email}}"
priority: "high"
tags: "shopify,{{issue_type}}"
- name: notify-support
type: call
call: "slack.post-message"
with:
channel: "#support-escalations"
text: "Escalation: {{issue_type}} for order #{{get-order.order_number}}. Customer: {{get-customer.email}} ({{get-customer.orders_count}} orders). Zendesk ticket: {{create-ticket.id}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: orders
path: "/orders/{{order_id}}.json"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- name: customers
path: "/customers/{{customer_id}}.json"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-customer
method: GET
- type: http
namespace: zendesk
baseUri: "https://{{zendesk_subdomain}}.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_api_token"
resources:
- name: tickets
path: "/tickets.json"
operations:
- name: create-ticket
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Pulls the previous day's Shopify orders, aggregates revenue by product and channel, generates a formatted summary with Claude, posts it to Slack, and archives the report in Google Drive.
naftiko: "0.5"
info:
label: "Daily Sales Report Generator"
description: "Pulls the previous day's Shopify orders, aggregates revenue by product and channel, generates a formatted summary with Claude, posts it to Slack, and archives the report in Google Drive."
tags:
- e-commerce
- analytics
- reporting
- claude
- slack
- google-drive
- shopify
capability:
exposes:
- type: mcp
namespace: sales-reporting
port: 8080
tools:
- name: generate-daily-report
description: "Generate a daily sales report from Shopify orders, format with Claude, post to Slack, and archive in Google Drive."
inputParameters:
- name: report_date
in: body
type: string
description: "The date to report on in YYYY-MM-DD format."
steps:
- name: get-orders
type: call
call: "shopify-admin.list-orders"
with:
created_at_min: "{{report_date}}T00:00:00Z"
created_at_max: "{{report_date}}T23:59:59Z"
status: "any"
- name: format-report
type: call
call: "claude.create-message"
with:
model: "claude-sonnet-4-20250514"
prompt: "Generate a daily sales report summary for {{report_date}}. Orders data: {{get-orders.orders}}. Include: total revenue, order count, average order value, top 5 products by revenue, breakdown by payment gateway. Format for Slack markdown."
- name: post-to-slack
type: call
call: "slack.post-message"
with:
channel: "#daily-sales"
text: "Daily Sales Report - {{report_date}}\n\n{{format-report.content}}"
- name: archive-to-drive
type: call
call: "gdrive.create-file"
with:
name: "Sales_Report_{{report_date}}.txt"
parents: "{{reports_folder_id}}"
content: "{{format-report.content}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: orders
path: "/orders.json"
inputParameters:
- name: created_at_min
in: query
- name: created_at_max
in: query
- name: status
in: query
operations:
- name: list-orders
method: GET
- type: http
namespace: claude
baseUri: "https://api.anthropic.com/v1"
authentication:
type: bearer
token: "$secrets.anthropic_api_key"
inputParameters:
- name: anthropic-version
in: header
value: "2023-06-01"
resources:
- name: messages
path: "/messages"
operations:
- name: create-message
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- 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"
operations:
- name: create-file
method: POST
Queries Datadog for Shopify storefront latency metrics, compares against SLO thresholds, and if degraded, creates a ServiceNow incident and alerts the engineering team in Slack.
naftiko: "0.5"
info:
label: "Datadog Performance Monitoring for Storefront"
description: "Queries Datadog for Shopify storefront latency metrics, compares against SLO thresholds, and if degraded, creates a ServiceNow incident and alerts the engineering team in Slack."
tags:
- e-commerce
- platform-engineering
- monitoring
- datadog
- servicenow
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: storefront-monitoring
port: 8080
tools:
- name: check-storefront-health
description: "Query Datadog for storefront latency metrics. If above threshold, create a ServiceNow incident and alert the engineering Slack channel."
inputParameters:
- name: metric_query
in: body
type: string
description: "The Datadog metric query, e.g. avg:shopify.storefront.latency{env:production}."
- name: threshold_ms
in: body
type: number
description: "Latency threshold in milliseconds."
- name: time_range_seconds
in: body
type: number
description: "Look-back window in seconds."
steps:
- name: query-metrics
type: call
call: "datadog.query-metrics"
with:
query: "{{metric_query}}"
from: "{{time_range_seconds}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Storefront latency degradation detected"
category: "performance"
description: "Shopify storefront latency exceeded {{threshold_ms}}ms. Current avg: {{query-metrics.series[0].pointlist[-1][1]}}ms. Metric: {{metric_query}}"
urgency: "2"
- name: alert-engineering
type: call
call: "slack.post-message"
with:
channel: "#platform-engineering"
text: "Storefront latency alert: {{metric_query}} exceeded {{threshold_ms}}ms. ServiceNow incident: {{create-incident.number}}. Investigate immediately."
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: metrics
path: "/query"
operations:
- name: query-metrics
method: GET
- type: http
namespace: servicenow
baseUri: "https://{{servicenow_instance}}.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: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves details for a specific Shopify discount code including usage count, value, and expiration. Used by marketing and support teams.
naftiko: "0.5"
info:
label: "Discount Code Lookup"
description: "Retrieves details for a specific Shopify discount code including usage count, value, and expiration. Used by marketing and support teams."
tags:
- e-commerce
- discounts
- marketing
- shopify
capability:
exposes:
- type: mcp
namespace: promotions
port: 8080
tools:
- name: get-discount-code
description: "Look up a Shopify price rule discount code by price rule ID and discount code ID. Returns code string, usage count, and creation date."
inputParameters:
- name: price_rule_id
in: body
type: string
description: "The Shopify price rule ID."
- name: discount_code_id
in: body
type: string
description: "The Shopify discount code ID."
call: "shopify-admin.get-discount"
with:
price_rule_id: "{{price_rule_id}}"
discount_code_id: "{{discount_code_id}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: discount-codes
path: "/price_rules/{{price_rule_id}}/discount_codes/{{discount_code_id}}.json"
inputParameters:
- name: price_rule_id
in: path
- name: discount_code_id
in: path
operations:
- name: get-discount
method: GET
Creates a wholesale agreement envelope in DocuSign using Shopify customer and draft order data, sends it for signature, and updates the draft order note with the envelope status.
naftiko: "0.5"
info:
label: "DocuSign Contract for B2B Wholesale Agreement"
description: "Creates a wholesale agreement envelope in DocuSign using Shopify customer and draft order data, sends it for signature, and updates the draft order note with the envelope status."
tags:
- e-commerce
- b2b
- legal
- docusign
- shopify
capability:
exposes:
- type: mcp
namespace: b2b-contracts
port: 8080
tools:
- name: send-wholesale-agreement
description: "Given a Shopify customer ID and draft order ID, create a DocuSign envelope for the wholesale agreement and track signature status."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Shopify customer ID."
- name: draft_order_id
in: body
type: string
description: "The Shopify draft order ID."
- name: template_id
in: body
type: string
description: "The DocuSign template ID for the wholesale agreement."
steps:
- name: get-customer
type: call
call: "shopify-admin.get-customer"
with:
customer_id: "{{customer_id}}"
- name: get-draft-order
type: call
call: "shopify-admin.get-draft-order"
with:
draft_order_id: "{{draft_order_id}}"
- name: create-envelope
type: call
call: "docusign.create-envelope"
with:
template_id: "{{template_id}}"
signer_email: "{{get-customer.email}}"
signer_name: "{{get-customer.first_name}} {{get-customer.last_name}}"
order_total: "{{get-draft-order.total_price}}"
- name: update-draft-note
type: call
call: "shopify-admin.update-draft-order"
with:
draft_order_id: "{{draft_order_id}}"
note: "DocuSign envelope {{create-envelope.envelopeId}} sent to {{get-customer.email}} for signature."
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: customers
path: "/customers/{{customer_id}}.json"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-customer
method: GET
- name: draft-orders
path: "/draft_orders/{{draft_order_id}}.json"
inputParameters:
- name: draft_order_id
in: path
operations:
- name: get-draft-order
method: GET
- name: update-draft-order
method: PUT
- type: http
namespace: docusign
baseUri: "https://{{docusign_base_url}}/restapi/v2.1/accounts/{{docusign_account_id}}"
authentication:
type: bearer
token: "$secrets.docusign_access_token"
resources:
- name: envelopes
path: "/envelopes"
operations:
- name: create-envelope
method: POST
Retrieves draft order details lookup data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Draft Order Details Lookup"
description: "Retrieves draft order details lookup data from the Shopify e-commerce platform systems."
tags:
- draft
- shopify
- lookup
capability:
exposes:
- type: mcp
namespace: draft
port: 8080
tools:
- name: draft-order-details-lookup
description: "Retrieves draft order details lookup data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.draft-order-details-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/draft/order/details/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: draft-order-details-lookup
method: GET
Orchestrates dropshipping supplier pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Dropshipping Supplier Pipeline"
description: "Orchestrates dropshipping supplier pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- dropshipping
- shopify
- zendesk
- github
- shopify
capability:
exposes:
- type: mcp
namespace: dropshipping
port: 8080
tools:
- name: dropshipping-supplier-pipeline
description: "Orchestrates dropshipping supplier pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "zendesk.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "github.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "shopify.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: zendesk
baseUri: "https://shopify.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: zendesk-resource
path: "/api/dropshipping"
operations:
- name: execute-1
method: POST
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: github-resource
path: "/api/dropshipping"
operations:
- name: execute-2
method: POST
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: shopify-resource
path: "/api/dropshipping"
operations:
- name: execute-3
method: POST
Segments Shopify customers by purchase behavior, syncs the segment to MailChimp as a tagged audience list, and triggers a targeted email campaign for the segment.
naftiko: "0.5"
info:
label: "Email Marketing Segment Sync"
description: "Segments Shopify customers by purchase behavior, syncs the segment to MailChimp as a tagged audience list, and triggers a targeted email campaign for the segment."
tags:
- e-commerce
- marketing
- customers
- mailchimp
- shopify
capability:
exposes:
- type: mcp
namespace: email-segmentation
port: 8080
tools:
- name: sync-segment-to-mailchimp
description: "Given Shopify customer search parameters, retrieve matching customers, add them to a MailChimp audience with tags, and trigger a campaign."
inputParameters:
- name: customer_query
in: body
type: string
description: "The Shopify customer search query, e.g. orders_count:>5."
- name: mailchimp_list_id
in: body
type: string
description: "The MailChimp audience list ID."
- name: segment_tag
in: body
type: string
description: "The tag to apply to synced members."
- name: campaign_template_id
in: body
type: string
description: "The MailChimp campaign template ID."
steps:
- name: search-customers
type: call
call: "shopify-admin.search-customers"
with:
query: "{{customer_query}}"
- name: add-to-audience
type: call
call: "mailchimp.batch-add-members"
with:
list_id: "{{mailchimp_list_id}}"
members: "{{search-customers.customers}}"
tag: "{{segment_tag}}"
- name: create-campaign
type: call
call: "mailchimp.create-campaign"
with:
list_id: "{{mailchimp_list_id}}"
template_id: "{{campaign_template_id}}"
segment_tag: "{{segment_tag}}"
subject: "Special offer for our loyal customers"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: customer-search
path: "/customers/search.json"
inputParameters:
- name: query
in: query
operations:
- name: search-customers
method: GET
- type: http
namespace: mailchimp
baseUri: "https://{{mailchimp_dc}}.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: list-members
path: "/lists/{{list_id}}/members"
inputParameters:
- name: list_id
in: path
operations:
- name: batch-add-members
method: POST
- name: campaigns
path: "/campaigns"
operations:
- name: create-campaign
method: POST
On new Shopify order creation, runs fraud analysis using order risk data, checks the customer against an internal blocklist, and if flagged, places the order on hold, creates a Zendesk investigation ticket, and alerts the fraud team in Slack.
naftiko: "0.5"
info:
label: "Fraud Detection and Order Hold Pipeline"
description: "On new Shopify order creation, runs fraud analysis using order risk data, checks the customer against an internal blocklist, and if flagged, places the order on hold, creates a Zendesk investigation ticket, and alerts the fraud team in Slack."
tags:
- e-commerce
- fraud-detection
- security
- zendesk
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: fraud-prevention
port: 8080
tools:
- name: check-and-hold-fraud-order
description: "Given an order ID, check Shopify order risks and internal blocklist. If high risk, hold the order, create a Zendesk ticket, and alert Slack."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID to evaluate."
steps:
- name: get-order
type: call
call: "shopify-admin.get-order"
with:
order_id: "{{order_id}}"
- name: get-risks
type: call
call: "shopify-admin.get-order-risks"
with:
order_id: "{{order_id}}"
- name: create-investigation
type: call
call: "zendesk.create-ticket"
with:
subject: "Fraud investigation: Order #{{get-order.order_number}}"
description: "High-risk order detected.\n\nOrder: #{{get-order.order_number}}\nAmount: {{get-order.total_price}} {{get-order.currency}}\nCustomer: {{get-order.customer.email}}\nRisk assessment: {{get-risks.risks[0].message}}\nRecommendation: {{get-risks.risks[0].recommendation}}"
priority: "urgent"
tags: "fraud,shopify,investigation"
- name: alert-fraud-team
type: call
call: "slack.post-message"
with:
channel: "#fraud-alerts"
text: "FRAUD ALERT: Order #{{get-order.order_number}} flagged. Amount: {{get-order.total_price}} {{get-order.currency}}. Customer: {{get-order.customer.email}}. Risk: {{get-risks.risks[0].recommendation}}. Zendesk: {{create-investigation.id}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: orders
path: "/orders/{{order_id}}.json"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- name: order-risks
path: "/orders/{{order_id}}/risks.json"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order-risks
method: GET
- type: http
namespace: zendesk
baseUri: "https://{{zendesk_subdomain}}.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_api_token"
resources:
- name: tickets
path: "/tickets.json"
operations:
- name: create-ticket
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves the fulfillment record for a specific order, returning tracking number, carrier, status, and shipment timestamps.
naftiko: "0.5"
info:
label: "Fulfillment Status Check"
description: "Retrieves the fulfillment record for a specific order, returning tracking number, carrier, status, and shipment timestamps."
tags:
- e-commerce
- fulfillment
- shipping
- shopify
capability:
exposes:
- type: mcp
namespace: fulfillment
port: 8080
tools:
- name: get-fulfillment
description: "Retrieve fulfillment details for an order. Returns tracking number, carrier, status, and timestamps."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID."
- name: fulfillment_id
in: body
type: string
description: "The Shopify fulfillment ID."
call: "shopify-admin.get-fulfillment"
with:
order_id: "{{order_id}}"
fulfillment_id: "{{fulfillment_id}}"
outputParameters:
- name: tracking_number
type: string
mapping: "$.fulfillment.tracking_number"
- name: tracking_company
type: string
mapping: "$.fulfillment.tracking_company"
- name: status
type: string
mapping: "$.fulfillment.status"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: fulfillments
path: "/orders/{{order_id}}/fulfillments/{{fulfillment_id}}.json"
inputParameters:
- name: order_id
in: path
- name: fulfillment_id
in: path
operations:
- name: get-fulfillment
method: GET
Retrieves a Shopify gift card by ID and returns the current balance, initial value, currency, status, and expiration date. Used by support agents to verify gift card validity.
naftiko: "0.5"
info:
label: "Gift Card Balance Check"
description: "Retrieves a Shopify gift card by ID and returns the current balance, initial value, currency, status, and expiration date. Used by support agents to verify gift card validity."
tags:
- e-commerce
- gift-cards
- payments
- shopify
capability:
exposes:
- type: mcp
namespace: gift-cards
port: 8080
tools:
- name: check-gift-card-balance
description: "Look up a Shopify gift card by ID. Returns balance, initial value, currency, status, and expiration."
inputParameters:
- name: gift_card_id
in: body
type: string
description: "The Shopify gift card ID."
call: "shopify-admin.get-gift-card"
with:
gift_card_id: "{{gift_card_id}}"
outputParameters:
- name: balance
type: string
mapping: "$.gift_card.balance"
- name: initial_value
type: string
mapping: "$.gift_card.initial_value"
- name: currency
type: string
mapping: "$.gift_card.currency"
- name: status
type: string
mapping: "$.gift_card.disabled_at"
- name: expires_on
type: string
mapping: "$.gift_card.expires_on"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: gift-cards
path: "/gift_cards/{{gift_card_id}}.json"
inputParameters:
- name: gift_card_id
in: path
operations:
- name: get-gift-card
method: GET
Triggers a GitHub Actions workflow to deploy a Shopify theme, monitors the workflow run status, updates the theme in Shopify, and notifies the engineering Slack channel with deployment results.
naftiko: "0.5"
info:
label: "GitHub Actions Deployment Pipeline for Shopify Theme"
description: "Triggers a GitHub Actions workflow to deploy a Shopify theme, monitors the workflow run status, updates the theme in Shopify, and notifies the engineering Slack channel with deployment results."
tags:
- e-commerce
- platform-engineering
- ci-cd
- github-actions
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: theme-deployment
port: 8080
tools:
- name: deploy-theme
description: "Trigger a GitHub Actions workflow to build and deploy a Shopify theme, then notify the team."
inputParameters:
- name: repo
in: body
type: string
description: "The GitHub repository in owner/repo format."
- name: branch
in: body
type: string
description: "The branch to deploy from."
- name: theme_id
in: body
type: string
description: "The Shopify theme ID to update."
steps:
- name: trigger-workflow
type: call
call: "github.dispatch-workflow"
with:
repo: "{{repo}}"
workflow_id: "deploy-theme.yml"
ref: "{{branch}}"
- name: get-run-status
type: call
call: "github.get-workflow-run"
with:
repo: "{{repo}}"
run_id: "{{trigger-workflow.id}}"
- name: notify-engineering
type: call
call: "slack.post-message"
with:
channel: "#theme-deployments"
text: "Theme deployment for {{repo}}@{{branch}} to theme {{theme_id}}: {{get-run-status.conclusion}}. Run: {{get-run-status.html_url}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: workflow-dispatches
path: "/repos/{{repo}}/actions/workflows/{{workflow_id}}/dispatches"
inputParameters:
- name: repo
in: path
- name: workflow_id
in: path
operations:
- name: dispatch-workflow
method: POST
- name: workflow-runs
path: "/repos/{{repo}}/actions/runs/{{run_id}}"
inputParameters:
- name: repo
in: path
- name: run_id
in: path
operations:
- name: get-workflow-run
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Pulls Shopify order data and Google Analytics campaign attribution for a given date range, cross-references revenue by UTM source, and logs the attribution report in Google Sheets.
naftiko: "0.5"
info:
label: "Google Analytics Sales Attribution Reporter"
description: "Pulls Shopify order data and Google Analytics campaign attribution for a given date range, cross-references revenue by UTM source, and logs the attribution report in Google Sheets."
tags:
- e-commerce
- analytics
- google-analytics
- google-sheets
- marketing
- shopify
capability:
exposes:
- type: mcp
namespace: sales-attribution
port: 8080
tools:
- name: generate-attribution-report
description: "Given a date range, pull Shopify orders and Google Analytics campaign data, then log an attribution report in Google Sheets."
inputParameters:
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
steps:
- name: get-orders
type: call
call: "shopify-admin.list-orders"
with:
created_at_min: "{{start_date}}"
created_at_max: "{{end_date}}"
status: "any"
- name: get-ga-data
type: call
call: "google-analytics.run-report"
with:
property_id: "{{ga_property_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
dimensions: "sessionSource,sessionMedium,sessionCampaignName"
metrics: "transactions,totalRevenue"
- name: log-report
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "{{attribution_sheet_id}}"
range: "Attribution!A:D"
values:
- "{{start_date}} - {{end_date}}"
- "{{get-orders.count}}"
- "{{get-ga-data.rows}}"
- "generated"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: orders
path: "/orders.json"
inputParameters:
- name: created_at_min
in: query
- name: created_at_max
in: query
- name: status
in: query
operations:
- name: list-orders
method: GET
- type: http
namespace: google-analytics
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: run-report
method: POST
- 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}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-row
method: POST
When a new Shopify customer is created, syncs the customer profile to HubSpot CRM as a contact, including order history summary and lifetime value, then sends a welcome drip campaign trigger.
naftiko: "0.5"
info:
label: "HubSpot CRM Customer Sync"
description: "When a new Shopify customer is created, syncs the customer profile to HubSpot CRM as a contact, including order history summary and lifetime value, then sends a welcome drip campaign trigger."
tags:
- e-commerce
- customers
- crm
- hubspot
- shopify
capability:
exposes:
- type: mcp
namespace: crm-sync
port: 8080
tools:
- name: sync-customer-to-hubspot
description: "Given a Shopify customer ID, create or update the contact in HubSpot CRM with order stats and trigger a welcome campaign."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Shopify customer ID."
steps:
- name: get-customer
type: call
call: "shopify-admin.get-customer"
with:
customer_id: "{{customer_id}}"
- name: create-hubspot-contact
type: call
call: "hubspot.create-contact"
with:
email: "{{get-customer.email}}"
firstname: "{{get-customer.first_name}}"
lastname: "{{get-customer.last_name}}"
phone: "{{get-customer.phone}}"
shopify_orders_count: "{{get-customer.orders_count}}"
shopify_total_spent: "{{get-customer.total_spent}}"
shopify_customer_id: "{{customer_id}}"
- name: enroll-in-workflow
type: call
call: "hubspot.enroll-in-workflow"
with:
contact_id: "{{create-hubspot-contact.id}}"
workflow_id: "{{welcome_workflow_id}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: customers
path: "/customers/{{customer_id}}.json"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-customer
method: GET
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_api_key"
resources:
- name: contacts
path: "/crm/v3/objects/contacts"
operations:
- name: create-contact
method: POST
- name: workflows
path: "/automation/v4/flows/{{workflow_id}}/enrollments"
inputParameters:
- name: workflow_id
in: path
operations:
- name: enroll-in-workflow
method: POST
Processes an international Shopify order by fetching live exchange rates, calculating the converted total, updating the order note with conversion details, and notifying the finance team in Slack.
naftiko: "0.5"
info:
label: "International Order with Currency Conversion"
description: "Processes an international Shopify order by fetching live exchange rates, calculating the converted total, updating the order note with conversion details, and notifying the finance team in Slack."
tags:
- e-commerce
- orders
- payments
- currencies
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: intl-orders
port: 8080
tools:
- name: process-international-order
description: "Given an order ID and target currency, fetch exchange rate, calculate conversion, annotate the order, and notify finance."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID."
- name: target_currency
in: body
type: string
description: "The target currency code, e.g. EUR, GBP."
steps:
- name: get-order
type: call
call: "shopify-admin.get-order"
with:
order_id: "{{order_id}}"
- name: get-exchange-rate
type: call
call: "exchange-rate.get-rate"
with:
from: "{{get-order.currency}}"
to: "{{target_currency}}"
- name: update-order-note
type: call
call: "shopify-admin.update-order"
with:
order_id: "{{order_id}}"
note: "Currency conversion: {{get-order.total_price}} {{get-order.currency}} = {{converted_amount}} {{target_currency}} at rate {{get-exchange-rate.rate}}"
- name: notify-finance
type: call
call: "slack.post-message"
with:
channel: "#finance-intl"
text: "International order #{{get-order.order_number}}: {{get-order.total_price}} {{get-order.currency}} ({{target_currency}} equivalent at {{get-exchange-rate.rate}}). Customer: {{get-order.customer.email}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: orders
path: "/orders/{{order_id}}.json"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- name: update-order
method: PUT
- type: http
namespace: exchange-rate
baseUri: "https://api.exchangerate-api.com/v4"
authentication:
type: bearer
token: "$secrets.exchange_rate_api_key"
resources:
- name: rates
path: "/latest/{{from}}"
inputParameters:
- name: from
in: path
operations:
- name: get-rate
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves inventory location listing data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Inventory Location Listing"
description: "Retrieves inventory location listing data from the Shopify e-commerce platform systems."
tags:
- inventory
- shopify
- listing
capability:
exposes:
- type: mcp
namespace: inventory
port: 8080
tools:
- name: inventory-location-listing
description: "Retrieves inventory location listing data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.inventory-location-listing"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/inventory/location/listing/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: inventory-location-listing
method: GET
When a product variant inventory drops below threshold, adjusts the Shopify inventory level based on warehouse system data, and sends a low-stock alert to the procurement Slack channel.
naftiko: "0.5"
info:
label: "Inventory Sync with Warehouse and Slack Alert"
description: "When a product variant inventory drops below threshold, adjusts the Shopify inventory level based on warehouse system data, and sends a low-stock alert to the procurement Slack channel."
tags:
- e-commerce
- inventory
- warehouse
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: inventory-sync
port: 8080
tools:
- name: sync-inventory-and-alert
description: "Given an inventory item ID and location ID, fetch the warehouse quantity, update Shopify inventory, and alert Slack if below threshold."
inputParameters:
- name: inventory_item_id
in: body
type: string
description: "The Shopify inventory item ID."
- name: location_id
in: body
type: string
description: "The Shopify location ID."
- name: sku
in: body
type: string
description: "The product SKU for warehouse lookup."
- name: low_stock_threshold
in: body
type: number
description: "The threshold below which a low-stock alert is triggered."
steps:
- name: get-warehouse-stock
type: call
call: "warehouse-api.get-stock"
with:
sku: "{{sku}}"
- name: update-inventory
type: call
call: "shopify-admin.set-inventory-level"
with:
inventory_item_id: "{{inventory_item_id}}"
location_id: "{{location_id}}"
available: "{{get-warehouse-stock.quantity}}"
- name: alert-slack
type: call
call: "slack.post-message"
with:
channel: "#procurement-alerts"
text: "Low stock alert: SKU {{sku}} has {{get-warehouse-stock.quantity}} units in warehouse. Threshold: {{low_stock_threshold}}."
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: inventory-levels
path: "/inventory_levels/set.json"
operations:
- name: set-inventory-level
method: POST
- type: http
namespace: warehouse-api
baseUri: "https://wms.{{company_domain}}/api/v1"
authentication:
type: bearer
token: "$secrets.warehouse_api_token"
resources:
- name: stock
path: "/stock/{{sku}}"
inputParameters:
- name: sku
in: path
operations:
- name: get-stock
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves marketing event listing data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Marketing Event Listing"
description: "Retrieves marketing event listing data from the Shopify e-commerce platform systems."
tags:
- marketing
- shopify
- listing
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: marketing-event-listing
description: "Retrieves marketing event listing data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.marketing-event-listing"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/marketing/event/listing/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: marketing-event-listing
method: GET
Orchestrates merchant accessibility compliance pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Merchant Accessibility Compliance Pipeline"
description: "Orchestrates merchant accessibility compliance pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- merchant
- shopify
- hubspot
- zendesk
- github
capability:
exposes:
- type: mcp
namespace: merchant
port: 8080
tools:
- name: merchant-accessibility-compliance-pipeline
description: "Orchestrates merchant accessibility compliance pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "hubspot.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "zendesk.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "github.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: hubspot-resource
path: "/api/merchant"
operations:
- name: execute-1
method: POST
- type: http
namespace: zendesk
baseUri: "https://shopify.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: zendesk-resource
path: "/api/merchant"
operations:
- name: execute-2
method: POST
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: github-resource
path: "/api/merchant"
operations:
- name: execute-3
method: POST
Orchestrates merchant churn prediction pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Merchant Churn Prediction Pipeline"
description: "Orchestrates merchant churn prediction pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- merchant
- shopify
- datadog
- hubspot
- zendesk
capability:
exposes:
- type: mcp
namespace: merchant
port: 8080
tools:
- name: merchant-churn-prediction-pipeline
description: "Orchestrates merchant churn prediction pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "hubspot.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "zendesk.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/merchant"
operations:
- name: execute-1
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: hubspot-resource
path: "/api/merchant"
operations:
- name: execute-2
method: POST
- type: http
namespace: zendesk
baseUri: "https://shopify.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: zendesk-resource
path: "/api/merchant"
operations:
- name: execute-3
method: POST
Orchestrates merchant data export pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Merchant Data Export Pipeline"
description: "Orchestrates merchant data export pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- merchant
- shopify
- stripe
- sendgrid
- snowflake
capability:
exposes:
- type: mcp
namespace: merchant
port: 8080
tools:
- name: merchant-data-export-pipeline
description: "Orchestrates merchant data export pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "stripe.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sendgrid.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: stripe-resource
path: "/api/merchant"
operations:
- name: execute-1
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/merchant"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/merchant"
operations:
- name: execute-3
method: POST
Orchestrates merchant financial reporting pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Merchant Financial Reporting Pipeline"
description: "Orchestrates merchant financial reporting pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- merchant
- shopify
- slack
- jira
- datadog
capability:
exposes:
- type: mcp
namespace: merchant
port: 8080
tools:
- name: merchant-financial-reporting-pipeline
description: "Orchestrates merchant financial reporting pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/merchant"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://shopify.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/merchant"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/merchant"
operations:
- name: execute-3
method: POST
Orchestrates merchant growth advisory pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Merchant Growth Advisory Pipeline"
description: "Orchestrates merchant growth advisory pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- merchant
- shopify
- zendesk
- github
- shopify
capability:
exposes:
- type: mcp
namespace: merchant
port: 8080
tools:
- name: merchant-growth-advisory-pipeline
description: "Orchestrates merchant growth advisory pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "zendesk.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "github.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "shopify.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: zendesk
baseUri: "https://shopify.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: zendesk-resource
path: "/api/merchant"
operations:
- name: execute-1
method: POST
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: github-resource
path: "/api/merchant"
operations:
- name: execute-2
method: POST
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: shopify-resource
path: "/api/merchant"
operations:
- name: execute-3
method: POST
Orchestrates merchant marketing automation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Merchant Marketing Automation Pipeline"
description: "Orchestrates merchant marketing automation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- merchant
- shopify
- shopify
- stripe
- sendgrid
capability:
exposes:
- type: mcp
namespace: merchant
port: 8080
tools:
- name: merchant-marketing-automation-pipeline
description: "Orchestrates merchant marketing automation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "shopify.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "stripe.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sendgrid.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: shopify-resource
path: "/api/merchant"
operations:
- name: execute-1
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: stripe-resource
path: "/api/merchant"
operations:
- name: execute-2
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/merchant"
operations:
- name: execute-3
method: POST
Orchestrates merchant migration pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Merchant Migration Pipeline"
description: "Orchestrates merchant migration pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- merchant
- shopify
- github
- shopify
- stripe
capability:
exposes:
- type: mcp
namespace: merchant
port: 8080
tools:
- name: merchant-migration-pipeline
description: "Orchestrates merchant migration pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "github.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "shopify.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "stripe.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: github-resource
path: "/api/merchant"
operations:
- name: execute-1
method: POST
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: shopify-resource
path: "/api/merchant"
operations:
- name: execute-2
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: stripe-resource
path: "/api/merchant"
operations:
- name: execute-3
method: POST
Orchestrates merchant onboarding pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Merchant Onboarding Pipeline"
description: "Orchestrates merchant onboarding pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- merchant
- shopify
- shopify
- stripe
- sendgrid
capability:
exposes:
- type: mcp
namespace: merchant
port: 8080
tools:
- name: merchant-onboarding-pipeline
description: "Orchestrates merchant onboarding pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "shopify.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "stripe.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sendgrid.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: shopify-resource
path: "/api/merchant"
operations:
- name: execute-1
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: stripe-resource
path: "/api/merchant"
operations:
- name: execute-2
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/merchant"
operations:
- name: execute-3
method: POST
Orchestrates merchant security review pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Merchant Security Review Pipeline"
description: "Orchestrates merchant security review pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- merchant
- shopify
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: merchant
port: 8080
tools:
- name: merchant-security-review-pipeline
description: "Orchestrates merchant security review pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/merchant"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/merchant"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://shopify.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/merchant"
operations:
- name: execute-3
method: POST
Orchestrates merchant support escalation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Merchant Support Escalation Pipeline"
description: "Orchestrates merchant support escalation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- merchant
- shopify
- jira
- datadog
- hubspot
capability:
exposes:
- type: mcp
namespace: merchant
port: 8080
tools:
- name: merchant-support-escalation-pipeline
description: "Orchestrates merchant support escalation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "hubspot.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://shopify.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/merchant"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/merchant"
operations:
- name: execute-2
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: hubspot-resource
path: "/api/merchant"
operations:
- name: execute-3
method: POST
Orchestrates merchant tax compliance pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Merchant Tax Compliance Pipeline"
description: "Orchestrates merchant tax compliance pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- merchant
- shopify
- sendgrid
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: merchant
port: 8080
tools:
- name: merchant-tax-compliance-pipeline
description: "Orchestrates merchant tax compliance pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sendgrid.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/merchant"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/merchant"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/merchant"
operations:
- name: execute-3
method: POST
When Shopify inventory changes, broadcasts the updated quantity to Amazon Seller Central and BigCommerce to keep all sales channels in sync, then posts a summary to Slack.
naftiko: "0.5"
info:
label: "Multi-Channel Inventory Broadcaster"
description: "When Shopify inventory changes, broadcasts the updated quantity to Amazon Seller Central and BigCommerce to keep all sales channels in sync, then posts a summary to Slack."
tags:
- e-commerce
- inventory
- multi-channel
- amazon-web-services
- bigcommerce
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: inventory-broadcast
port: 8080
tools:
- name: broadcast-inventory
description: "Given a SKU and new quantity, update inventory on Shopify, Amazon, and BigCommerce, then notify Slack."
inputParameters:
- name: sku
in: body
type: string
description: "The product SKU."
- name: quantity
in: body
type: number
description: "The new available quantity."
- name: inventory_item_id
in: body
type: string
description: "The Shopify inventory item ID."
- name: location_id
in: body
type: string
description: "The Shopify location ID."
steps:
- name: update-shopify
type: call
call: "shopify-admin.set-inventory-level"
with:
inventory_item_id: "{{inventory_item_id}}"
location_id: "{{location_id}}"
available: "{{quantity}}"
- name: update-amazon
type: call
call: "amazon-sp.update-inventory"
with:
sku: "{{sku}}"
quantity: "{{quantity}}"
- name: update-bigcommerce
type: call
call: "bigcommerce.update-variant-inventory"
with:
sku: "{{sku}}"
inventory_level: "{{quantity}}"
- name: notify-slack
type: call
call: "slack.post-message"
with:
channel: "#inventory-sync"
text: "Inventory broadcast complete for SKU {{sku}}: {{quantity}} units synced to Shopify, Amazon, and BigCommerce."
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: inventory-levels
path: "/inventory_levels/set.json"
operations:
- name: set-inventory-level
method: POST
- type: http
namespace: amazon-sp
baseUri: "https://sellingpartnerapi-na.amazon.com"
authentication:
type: bearer
token: "$secrets.amazon_sp_token"
resources:
- name: inventory
path: "/fba/inventory/v1/items/{{sku}}"
inputParameters:
- name: sku
in: path
operations:
- name: update-inventory
method: PUT
- type: http
namespace: bigcommerce
baseUri: "https://api.bigcommerce.com/stores/{{bigcommerce_store_hash}}/v3"
authentication:
type: bearer
token: "$secrets.bigcommerce_api_token"
resources:
- name: variants
path: "/catalog/variants"
operations:
- name: update-variant-inventory
method: PUT
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Orchestrates multi currency pricing pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Multi Currency Pricing Pipeline"
description: "Orchestrates multi currency pricing pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- multi
- shopify
- slack
- jira
- datadog
capability:
exposes:
- type: mcp
namespace: multi
port: 8080
tools:
- name: multi-currency-pricing-pipeline
description: "Orchestrates multi currency pricing pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/multi"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://shopify.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/multi"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/multi"
operations:
- name: execute-3
method: POST
Orchestrates multi location inventory sync pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Multi Location Inventory Sync Pipeline"
description: "Orchestrates multi location inventory sync pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- multi
- shopify
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: multi
port: 8080
tools:
- name: multi-location-inventory-sync-pipeline
description: "Orchestrates multi location inventory sync pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/multi"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/multi"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://shopify.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/multi"
operations:
- name: execute-3
method: POST
Creates a new product in Shopify, publishes it to a specified sales channel, generates a promotional image description via Claude, creates a Facebook Ads draft campaign, and notifies the marketing team in Slack.
naftiko: "0.5"
info:
label: "New Product Launch Pipeline"
description: "Creates a new product in Shopify, publishes it to a specified sales channel, generates a promotional image description via Claude, creates a Facebook Ads draft campaign, and notifies the marketing team in Slack."
tags:
- e-commerce
- products
- marketing
- claude
- facebook-ads
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: product-launch
port: 8080
tools:
- name: launch-product
description: "Given product details, create the product in Shopify, generate AI marketing copy, draft a Facebook ad, and notify the marketing Slack channel."
inputParameters:
- name: title
in: body
type: string
description: "The product title."
- name: body_html
in: body
type: string
description: "The product description in HTML."
- name: vendor
in: body
type: string
description: "The product vendor."
- name: product_type
in: body
type: string
description: "The product type."
- name: price
in: body
type: string
description: "The variant price."
- name: image_url
in: body
type: string
description: "The product image URL."
steps:
- name: create-product
type: call
call: "shopify-admin.create-product"
with:
title: "{{title}}"
body_html: "{{body_html}}"
vendor: "{{vendor}}"
product_type: "{{product_type}}"
price: "{{price}}"
image_url: "{{image_url}}"
- name: generate-ad-copy
type: call
call: "claude.create-message"
with:
model: "claude-sonnet-4-20250514"
prompt: "Write a compelling Facebook ad headline and body for this product: {{title}}. Description: {{body_html}}. Price: {{price}}. Keep it under 90 characters for headline and 250 for body."
- name: create-ad-draft
type: call
call: "facebook-ads.create-ad"
with:
campaign_name: "Launch: {{title}}"
headline: "{{generate-ad-copy.headline}}"
body: "{{generate-ad-copy.body}}"
image_url: "{{image_url}}"
link: "https://{{shop_domain}}/products/{{create-product.handle}}"
- name: notify-marketing
type: call
call: "slack.post-message"
with:
channel: "#marketing"
text: "New product launched: {{title}} ({{price}}). Shopify ID: {{create-product.id}}. Facebook ad draft created: {{create-ad-draft.id}}."
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: products
path: "/products.json"
operations:
- name: create-product
method: POST
- type: http
namespace: claude
baseUri: "https://api.anthropic.com/v1"
authentication:
type: bearer
token: "$secrets.anthropic_api_key"
inputParameters:
- name: anthropic-version
in: header
value: "2023-06-01"
resources:
- name: messages
path: "/messages"
operations:
- name: create-message
method: POST
- type: http
namespace: facebook-ads
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.facebook_ads_token"
resources:
- name: ads
path: "/act_{{ad_account_id}}/ads"
inputParameters:
- name: ad_account_id
in: path
operations:
- name: create-ad
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Monitors New Relic for error rate spikes on the Shopify storefront app, creates a PagerDuty incident if the threshold is breached, and posts diagnostic context to the engineering Slack channel.
naftiko: "0.5"
info:
label: "New Relic Error Spike Responder"
description: "Monitors New Relic for error rate spikes on the Shopify storefront app, creates a PagerDuty incident if the threshold is breached, and posts diagnostic context to the engineering Slack channel."
tags:
- e-commerce
- platform-engineering
- monitoring
- new-relic
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: error-monitoring
port: 8080
tools:
- name: respond-to-error-spike
description: "Query New Relic for error rates. If above threshold, create a PagerDuty incident and alert Slack."
inputParameters:
- name: app_id
in: body
type: string
description: "The New Relic application ID."
- name: error_rate_threshold
in: body
type: number
description: "The error rate percentage threshold."
steps:
- name: query-error-rate
type: call
call: "newrelic.get-error-rate"
with:
app_id: "{{app_id}}"
- name: create-pagerduty-incident
type: call
call: "pagerduty.create-incident"
with:
service_id: "{{pagerduty_service_id}}"
title: "Shopify storefront error rate spike: {{query-error-rate.error_rate}}%"
urgency: "high"
body: "Error rate {{query-error-rate.error_rate}}% exceeds threshold {{error_rate_threshold}}%. App: {{app_id}}"
- name: alert-engineering
type: call
call: "slack.post-message"
with:
channel: "#platform-engineering"
text: "ERROR SPIKE: Storefront app {{app_id}} error rate at {{query-error-rate.error_rate}}% (threshold: {{error_rate_threshold}}%). PagerDuty incident created. Top error: {{query-error-rate.top_error}}"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: bearer
token: "$secrets.newrelic_api_key"
resources:
- name: error-rate
path: "/applications/{{app_id}}/metrics/data.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-error-rate
method: GET
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_api_key"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Orchestrates order fraud review pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Order Fraud Review Pipeline"
description: "Orchestrates order fraud review pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- order
- shopify
- sendgrid
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: order
port: 8080
tools:
- name: order-fraud-review-pipeline
description: "Orchestrates order fraud review pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sendgrid.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/order"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/order"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/order"
operations:
- name: execute-3
method: POST
When an order is marked as fulfilled in Shopify, creates the fulfillment record, then sends shipping confirmation with tracking details to the customer via SendGrid and posts a notification to the operations Slack channel.
naftiko: "0.5"
info:
label: "Order Fulfillment and Tracking Notifier"
description: "When an order is marked as fulfilled in Shopify, creates the fulfillment record, then sends shipping confirmation with tracking details to the customer via SendGrid and posts a notification to the operations Slack channel."
tags:
- e-commerce
- fulfillment
- shipping
- sendgrid
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: fulfillment-ops
port: 8080
tools:
- name: fulfill-and-notify
description: "Given an order ID, tracking number, and carrier, create a fulfillment in Shopify, email the customer via SendGrid, and notify the ops Slack channel."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID to fulfill."
- name: tracking_number
in: body
type: string
description: "The carrier tracking number."
- name: tracking_company
in: body
type: string
description: "The shipping carrier name."
- name: location_id
in: body
type: string
description: "The Shopify location ID fulfilling the order."
steps:
- name: get-order
type: call
call: "shopify-admin.get-order"
with:
order_id: "{{order_id}}"
- name: create-fulfillment
type: call
call: "shopify-admin.create-fulfillment"
with:
order_id: "{{order_id}}"
tracking_number: "{{tracking_number}}"
tracking_company: "{{tracking_company}}"
location_id: "{{location_id}}"
- name: email-customer
type: call
call: "sendgrid.send-email"
with:
to: "{{get-order.customer.email}}"
subject: "Your order #{{get-order.order_number}} has shipped!"
body: "Hi {{get-order.customer.first_name}}, your order has been shipped via {{tracking_company}}. Tracking number: {{tracking_number}}"
- name: notify-ops
type: call
call: "slack.post-message"
with:
channel: "#fulfillment-ops"
text: "Order #{{get-order.order_number}} fulfilled. Tracking: {{tracking_number}} ({{tracking_company}}). Customer: {{get-order.customer.email}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: orders
path: "/orders/{{order_id}}.json"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- name: fulfillments
path: "/orders/{{order_id}}/fulfillments.json"
inputParameters:
- name: order_id
in: path
operations:
- name: create-fulfillment
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Orchestrates order fulfillment optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Order Fulfillment Optimization Pipeline"
description: "Orchestrates order fulfillment optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- order
- shopify
- shopify
- stripe
- sendgrid
capability:
exposes:
- type: mcp
namespace: order
port: 8080
tools:
- name: order-fulfillment-optimization-pipeline
description: "Orchestrates order fulfillment optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "shopify.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "stripe.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sendgrid.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: shopify-resource
path: "/api/order"
operations:
- name: execute-1
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: stripe-resource
path: "/api/order"
operations:
- name: execute-2
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/order"
operations:
- name: execute-3
method: POST
Retrieves a Shopify order by order ID and returns order status, line items, fulfillment state, and customer details. Used by support and operations teams to quickly inspect order health.
naftiko: "0.5"
info:
label: "Order Lookup"
description: "Retrieves a Shopify order by order ID and returns order status, line items, fulfillment state, and customer details. Used by support and operations teams to quickly inspect order health."
tags:
- e-commerce
- orders
- shopify
capability:
exposes:
- type: mcp
namespace: order-management
port: 8080
tools:
- name: get-order
description: "Look up a Shopify order by ID. Returns status, line items, fulfillment state, total price, and customer email."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID."
call: "shopify-admin.get-order"
with:
order_id: "{{order_id}}"
outputParameters:
- name: status
type: string
mapping: "$.order.financial_status"
- name: fulfillment_status
type: string
mapping: "$.order.fulfillment_status"
- name: total_price
type: string
mapping: "$.order.total_price"
- name: customer_email
type: string
mapping: "$.order.customer.email"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: orders
path: "/orders/{{order_id}}.json"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
Retrieves order risk assessment lookup data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Order Risk Assessment Lookup"
description: "Retrieves order risk assessment lookup data from the Shopify e-commerce platform systems."
tags:
- order
- shopify
- lookup
capability:
exposes:
- type: mcp
namespace: order
port: 8080
tools:
- name: order-risk-assessment-lookup
description: "Retrieves order risk assessment lookup data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.order-risk-assessment-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/order/risk/assessment/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: order-risk-assessment-lookup
method: GET
Calculates sales tax for a Shopify draft order using Avalara AvaTax, updates the draft order with computed tax lines, and logs the tax calculation in a Google Sheet for compliance.
naftiko: "0.5"
info:
label: "Order Tax Calculation with Avalara"
description: "Calculates sales tax for a Shopify draft order using Avalara AvaTax, updates the draft order with computed tax lines, and logs the tax calculation in a Google Sheet for compliance."
tags:
- e-commerce
- taxes
- avalara
- google-sheets
- shopify
capability:
exposes:
- type: mcp
namespace: tax-compliance
port: 8080
tools:
- name: calculate-and-apply-tax
description: "Given a draft order ID, calculate tax via Avalara AvaTax, apply it to the draft order, and log the result."
inputParameters:
- name: draft_order_id
in: body
type: string
description: "The Shopify draft order ID."
steps:
- name: get-draft-order
type: call
call: "shopify-admin.get-draft-order"
with:
draft_order_id: "{{draft_order_id}}"
- name: calculate-tax
type: call
call: "avalara.create-transaction"
with:
type: "SalesOrder"
customerCode: "{{get-draft-order.customer.id}}"
addresses:
shipTo:
line1: "{{get-draft-order.shipping_address.address1}}"
city: "{{get-draft-order.shipping_address.city}}"
region: "{{get-draft-order.shipping_address.province_code}}"
postalCode: "{{get-draft-order.shipping_address.zip}}"
country: "{{get-draft-order.shipping_address.country_code}}"
amount: "{{get-draft-order.subtotal_price}}"
- name: update-draft-order
type: call
call: "shopify-admin.update-draft-order"
with:
draft_order_id: "{{draft_order_id}}"
tax_amount: "{{calculate-tax.totalTax}}"
- name: log-tax
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "{{tax_log_sheet_id}}"
range: "TaxLog!A:F"
values:
- "{{draft_order_id}}"
- "{{get-draft-order.subtotal_price}}"
- "{{calculate-tax.totalTax}}"
- "{{get-draft-order.shipping_address.province_code}}"
- "{{calculate-tax.id}}"
- "{{get-draft-order.created_at}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: draft-orders
path: "/draft_orders/{{draft_order_id}}.json"
inputParameters:
- name: draft_order_id
in: path
operations:
- name: get-draft-order
method: GET
- name: update-draft-order
method: PUT
- type: http
namespace: avalara
baseUri: "https://rest.avatax.com/api/v2"
authentication:
type: basic
username: "$secrets.avalara_account_id"
password: "$secrets.avalara_license_key"
resources:
- name: transactions
path: "/transactions/create"
operations:
- name: create-transaction
method: POST
- 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}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-row
method: POST
Retrieves Shopify payment transaction details for an order including gateway, amount, currency, authorization code, and error codes.
naftiko: "0.5"
info:
label: "Payment Transaction Lookup"
description: "Retrieves Shopify payment transaction details for an order including gateway, amount, currency, authorization code, and error codes."
tags:
- e-commerce
- payments
- shopify
capability:
exposes:
- type: mcp
namespace: payments
port: 8080
tools:
- name: get-transactions
description: "Retrieve payment transactions for a Shopify order. Returns gateway, amount, kind, status, and authorization."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID."
call: "shopify-admin.list-transactions"
with:
order_id: "{{order_id}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: transactions
path: "/orders/{{order_id}}/transactions.json"
inputParameters:
- name: order_id
in: path
operations:
- name: list-transactions
method: GET
Orchestrates pos inventory sync pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Pos Inventory Sync Pipeline"
description: "Orchestrates pos inventory sync pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- pos
- shopify
- github
- shopify
- stripe
capability:
exposes:
- type: mcp
namespace: pos
port: 8080
tools:
- name: pos-inventory-sync-pipeline
description: "Orchestrates pos inventory sync pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "github.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "shopify.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "stripe.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: github-resource
path: "/api/pos"
operations:
- name: execute-1
method: POST
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: shopify-resource
path: "/api/pos"
operations:
- name: execute-2
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: stripe-resource
path: "/api/pos"
operations:
- name: execute-3
method: POST
Retrieves price rule details check data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Price Rule Details Check"
description: "Retrieves price rule details check data from the Shopify e-commerce platform systems."
tags:
- price
- shopify
- check
capability:
exposes:
- type: mcp
namespace: price
port: 8080
tools:
- name: price-rule-details-check
description: "Retrieves price rule details check data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.price-rule-details-check"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/price/rule/details/check/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: price-rule-details-check
method: GET
Orchestrates product bundling strategy pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Product Bundling Strategy Pipeline"
description: "Orchestrates product bundling strategy pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- product
- shopify
- datadog
- hubspot
- zendesk
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-bundling-strategy-pipeline
description: "Orchestrates product bundling strategy pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "hubspot.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "zendesk.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/product"
operations:
- name: execute-1
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: hubspot-resource
path: "/api/product"
operations:
- name: execute-2
method: POST
- type: http
namespace: zendesk
baseUri: "https://shopify.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: zendesk-resource
path: "/api/product"
operations:
- name: execute-3
method: POST
Exports Shopify product catalog data and submits it to Google Merchant Center for Google Shopping listings, then logs the sync status in a Google Sheet.
naftiko: "0.5"
info:
label: "Product Catalog Export to Google Merchant Center"
description: "Exports Shopify product catalog data and submits it to Google Merchant Center for Google Shopping listings, then logs the sync status in a Google Sheet."
tags:
- e-commerce
- products
- google
- marketing
- google-sheets
- shopify
capability:
exposes:
- type: mcp
namespace: merchant-feed
port: 8080
tools:
- name: export-to-merchant-center
description: "Given a product collection ID, fetch products from Shopify and submit them to Google Merchant Center, then log the result."
inputParameters:
- name: collection_id
in: body
type: string
description: "The Shopify collection ID to export."
- name: merchant_id
in: body
type: string
description: "The Google Merchant Center account ID."
steps:
- name: get-collection-products
type: call
call: "shopify-admin.get-collection-products"
with:
collection_id: "{{collection_id}}"
- name: submit-to-merchant
type: call
call: "google-merchant.insert-products"
with:
merchant_id: "{{merchant_id}}"
products: "{{get-collection-products.products}}"
- name: log-sync
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "{{merchant_sync_sheet_id}}"
range: "MerchantSync!A:D"
values:
- "{{collection_id}}"
- "{{get-collection-products.products.length}}"
- "{{submit-to-merchant.status}}"
- "synced"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: collection-products
path: "/collections/{{collection_id}}/products.json"
inputParameters:
- name: collection_id
in: path
operations:
- name: get-collection-products
method: GET
- type: http
namespace: google-merchant
baseUri: "https://shoppingcontent.googleapis.com/content/v2.1"
authentication:
type: bearer
token: "$secrets.google_merchant_token"
resources:
- name: products
path: "/{{merchant_id}}/products"
inputParameters:
- name: merchant_id
in: path
operations:
- name: insert-products
method: POST
- 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}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-row
method: POST
Fetches product images from Shopify, sends them to Cloudflare Images for optimization and resizing, updates the Shopify product with optimized image URLs, and logs the optimization results.
naftiko: "0.5"
info:
label: "Product Image Optimization Pipeline"
description: "Fetches product images from Shopify, sends them to Cloudflare Images for optimization and resizing, updates the Shopify product with optimized image URLs, and logs the optimization results."
tags:
- e-commerce
- products
- storefront
- cloudflare
- shopify
capability:
exposes:
- type: mcp
namespace: image-optimization
port: 8080
tools:
- name: optimize-product-images
description: "Given a product ID, fetch images, optimize them via Cloudflare Images, and update the Shopify product."
inputParameters:
- name: product_id
in: body
type: string
description: "The Shopify product ID."
steps:
- name: get-product
type: call
call: "shopify-admin.get-product"
with:
product_id: "{{product_id}}"
- name: upload-to-cloudflare
type: call
call: "cloudflare.upload-image"
with:
url: "{{get-product.images[0].src}}"
requireSignedURLs: false
- name: update-product-image
type: call
call: "shopify-admin.update-product-image"
with:
product_id: "{{product_id}}"
image_id: "{{get-product.images[0].id}}"
src: "{{upload-to-cloudflare.variants[0]}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: products
path: "/products/{{product_id}}.json"
inputParameters:
- name: product_id
in: path
operations:
- name: get-product
method: GET
- name: product-images
path: "/products/{{product_id}}/images/{{image_id}}.json"
inputParameters:
- name: product_id
in: path
- name: image_id
in: path
operations:
- name: update-product-image
method: PUT
- type: http
namespace: cloudflare
baseUri: "https://api.cloudflare.com/client/v4/accounts/{{cloudflare_account_id}}"
authentication:
type: bearer
token: "$secrets.cloudflare_api_token"
resources:
- name: images
path: "/images/v1"
operations:
- name: upload-image
method: POST
Queries the Shopify inventory level for a given product variant at a specific location. Returns available quantity and whether the item is in stock.
naftiko: "0.5"
info:
label: "Product Inventory Check"
description: "Queries the Shopify inventory level for a given product variant at a specific location. Returns available quantity and whether the item is in stock."
tags:
- e-commerce
- inventory
- shopify
capability:
exposes:
- type: mcp
namespace: inventory
port: 8080
tools:
- name: check-inventory
description: "Check inventory level for a product variant at a given location. Returns available quantity."
inputParameters:
- name: inventory_item_id
in: body
type: string
description: "The Shopify inventory item ID."
- name: location_id
in: body
type: string
description: "The Shopify location ID."
call: "shopify-admin.get-inventory-level"
with:
inventory_item_id: "{{inventory_item_id}}"
location_id: "{{location_id}}"
outputParameters:
- name: available
type: number
mapping: "$.inventory_levels[0].available"
- name: location_id
type: string
mapping: "$.inventory_levels[0].location_id"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: inventory-levels
path: "/inventory_levels.json"
inputParameters:
- name: inventory_item_id
in: query
- name: location_id
in: query
operations:
- name: get-inventory-level
method: GET
Fetches a single Shopify product by product ID, returning title, description, variants with pricing, images, and published status.
naftiko: "0.5"
info:
label: "Product Listing Retrieval"
description: "Fetches a single Shopify product by product ID, returning title, description, variants with pricing, images, and published status."
tags:
- e-commerce
- products
- shopify
capability:
exposes:
- type: mcp
namespace: product-catalog
port: 8080
tools:
- name: get-product
description: "Retrieve a Shopify product by ID. Returns title, body HTML, variants, images, and status."
inputParameters:
- name: product_id
in: body
type: string
description: "The Shopify product ID."
call: "shopify-admin.get-product"
with:
product_id: "{{product_id}}"
outputParameters:
- name: title
type: string
mapping: "$.product.title"
- name: status
type: string
mapping: "$.product.status"
- name: vendor
type: string
mapping: "$.product.vendor"
- name: product_type
type: string
mapping: "$.product.product_type"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: products
path: "/products/{{product_id}}.json"
inputParameters:
- name: product_id
in: path
operations:
- name: get-product
method: GET
Orchestrates product photography pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Product Photography Pipeline"
description: "Orchestrates product photography pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- product
- shopify
- sendgrid
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-photography-pipeline
description: "Orchestrates product photography pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sendgrid.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/product"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/product"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/product"
operations:
- name: execute-3
method: POST
Orchestrates product recommendation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Product Recommendation Pipeline"
description: "Orchestrates product recommendation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- product
- shopify
- datadog
- hubspot
- zendesk
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-recommendation-pipeline
description: "Orchestrates product recommendation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "hubspot.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "zendesk.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/product"
operations:
- name: execute-1
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: hubspot-resource
path: "/api/product"
operations:
- name: execute-2
method: POST
- type: http
namespace: zendesk
baseUri: "https://shopify.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: zendesk-resource
path: "/api/product"
operations:
- name: execute-3
method: POST
Fetches product reviews from Shopify product metafields, analyzes sentiment using Claude, updates the product description with a review summary, and posts insights to Slack.
naftiko: "0.5"
info:
label: "Product Review Aggregator and Sentiment Analyzer"
description: "Fetches product reviews from Shopify product metafields, analyzes sentiment using Claude, updates the product description with a review summary, and posts insights to Slack."
tags:
- e-commerce
- products
- ai-ml
- claude
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: review-analytics
port: 8080
tools:
- name: analyze-product-reviews
description: "Given a product ID, fetch reviews, analyze sentiment with Claude, update the product with a summary, and notify Slack."
inputParameters:
- name: product_id
in: body
type: string
description: "The Shopify product ID."
steps:
- name: get-product
type: call
call: "shopify-admin.get-product"
with:
product_id: "{{product_id}}"
- name: get-reviews
type: call
call: "shopify-admin.get-product-metafields"
with:
product_id: "{{product_id}}"
namespace: "reviews"
- name: analyze-sentiment
type: call
call: "claude.create-message"
with:
model: "claude-sonnet-4-20250514"
prompt: "Analyze the sentiment of these product reviews for '{{get-product.title}}'. Provide: average sentiment (positive/neutral/negative), top 3 praised features, top 3 complaints, and a 2-sentence summary. Reviews: {{get-reviews.metafields}}"
- name: notify-insights
type: call
call: "slack.post-message"
with:
channel: "#product-insights"
text: "Review analysis for {{get-product.title}}: {{analyze-sentiment.content}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: products
path: "/products/{{product_id}}.json"
inputParameters:
- name: product_id
in: path
operations:
- name: get-product
method: GET
- name: product-metafields
path: "/products/{{product_id}}/metafields.json"
inputParameters:
- name: product_id
in: path
- name: namespace
in: query
operations:
- name: get-product-metafields
method: GET
- type: http
namespace: claude
baseUri: "https://api.anthropic.com/v1"
authentication:
type: bearer
token: "$secrets.anthropic_api_key"
inputParameters:
- name: anthropic-version
in: header
value: "2023-06-01"
resources:
- name: messages
path: "/messages"
operations:
- name: create-message
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Orchestrates product seo optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Product Seo Optimization Pipeline"
description: "Orchestrates product seo optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- product
- shopify
- stripe
- sendgrid
- snowflake
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-seo-optimization-pipeline
description: "Orchestrates product seo optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "stripe.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sendgrid.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: stripe-resource
path: "/api/product"
operations:
- name: execute-1
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/product"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/product"
operations:
- name: execute-3
method: POST
Orchestrates product variant management pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Product Variant Management Pipeline"
description: "Orchestrates product variant management pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- product
- shopify
- stripe
- sendgrid
- snowflake
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-variant-management-pipeline
description: "Orchestrates product variant management pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "stripe.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sendgrid.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: stripe-resource
path: "/api/product"
operations:
- name: execute-1
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/product"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/product"
operations:
- name: execute-3
method: POST
Retrieves redirect url listing data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Redirect Url Listing"
description: "Retrieves redirect url listing data from the Shopify e-commerce platform systems."
tags:
- redirect
- shopify
- listing
capability:
exposes:
- type: mcp
namespace: redirect
port: 8080
tools:
- name: redirect-url-listing
description: "Retrieves redirect url listing data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.redirect-url-listing"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/redirect/url/listing/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: redirect-url-listing
method: GET
Processes a refund on a Shopify order, creates a Zendesk support ticket documenting the refund, and sends a refund confirmation email to the customer via SendGrid.
naftiko: "0.5"
info:
label: "Refund Processing with Zendesk Ticket"
description: "Processes a refund on a Shopify order, creates a Zendesk support ticket documenting the refund, and sends a refund confirmation email to the customer via SendGrid."
tags:
- e-commerce
- refunds
- payments
- zendesk
- sendgrid
- shopify
capability:
exposes:
- type: mcp
namespace: refund-ops
port: 8080
tools:
- name: process-refund
description: "Given an order ID and refund amount, process the refund in Shopify, create a Zendesk ticket, and email the customer confirmation."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID."
- name: refund_amount
in: body
type: string
description: "The amount to refund."
- name: reason
in: body
type: string
description: "The reason for the refund."
steps:
- name: get-order
type: call
call: "shopify-admin.get-order"
with:
order_id: "{{order_id}}"
- name: create-refund
type: call
call: "shopify-admin.create-refund"
with:
order_id: "{{order_id}}"
amount: "{{refund_amount}}"
reason: "{{reason}}"
- name: create-ticket
type: call
call: "zendesk.create-ticket"
with:
subject: "Refund processed for order #{{get-order.order_number}}"
description: "Refund of {{refund_amount}} {{get-order.currency}} processed for {{get-order.customer.email}}. Reason: {{reason}}"
requester_email: "{{get-order.customer.email}}"
priority: "normal"
- name: email-confirmation
type: call
call: "sendgrid.send-email"
with:
to: "{{get-order.customer.email}}"
subject: "Refund confirmation for order #{{get-order.order_number}}"
body: "Hi {{get-order.customer.first_name}}, your refund of {{refund_amount}} {{get-order.currency}} has been processed. Reason: {{reason}}. It may take 5-10 business days to appear on your statement."
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: orders
path: "/orders/{{order_id}}.json"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- name: refunds
path: "/orders/{{order_id}}/refunds.json"
inputParameters:
- name: order_id
in: path
operations:
- name: create-refund
method: POST
- type: http
namespace: zendesk
baseUri: "https://{{zendesk_subdomain}}.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_api_token"
resources:
- name: tickets
path: "/tickets.json"
operations:
- name: create-ticket
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
Retrieves script tag listing check data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Script Tag Listing Check"
description: "Retrieves script tag listing check data from the Shopify e-commerce platform systems."
tags:
- script
- shopify
- check
capability:
exposes:
- type: mcp
namespace: script
port: 8080
tools:
- name: script-tag-listing-check
description: "Retrieves script tag listing check data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.script-tag-listing-check"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/script/tag/listing/check/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: script-tag-listing-check
method: GET
Orchestrates seasonal sale preparation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Seasonal Sale Preparation Pipeline"
description: "Orchestrates seasonal sale preparation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- seasonal
- shopify
- slack
- jira
- datadog
capability:
exposes:
- type: mcp
namespace: seasonal
port: 8080
tools:
- name: seasonal-sale-preparation-pipeline
description: "Orchestrates seasonal sale preparation pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/seasonal"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://shopify.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/seasonal"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/seasonal"
operations:
- name: execute-3
method: POST
Fetches a Shopify product, generates SEO-optimized title and description using Claude, updates the product in Shopify, and submits the URL to Google Search Console for indexing.
naftiko: "0.5"
info:
label: "SEO Product Description Generator"
description: "Fetches a Shopify product, generates SEO-optimized title and description using Claude, updates the product in Shopify, and submits the URL to Google Search Console for indexing."
tags:
- e-commerce
- products
- seo
- ai-ml
- claude
- google-search-console
- shopify
capability:
exposes:
- type: mcp
namespace: seo-automation
port: 8080
tools:
- name: generate-seo-content
description: "Given a product ID, generate SEO-optimized content with Claude, update the Shopify product, and submit the URL for indexing."
inputParameters:
- name: product_id
in: body
type: string
description: "The Shopify product ID."
- name: target_keywords
in: body
type: string
description: "Comma-separated target keywords for SEO optimization."
steps:
- name: get-product
type: call
call: "shopify-admin.get-product"
with:
product_id: "{{product_id}}"
- name: generate-seo
type: call
call: "claude.create-message"
with:
model: "claude-sonnet-4-20250514"
prompt: "Generate an SEO-optimized product title (max 70 chars) and meta description (max 160 chars) and body HTML (300-500 words) for this product: {{get-product.title}}. Current description: {{get-product.body_html}}. Target keywords: {{target_keywords}}. Return JSON with keys: seo_title, meta_description, body_html."
- name: update-product
type: call
call: "shopify-admin.update-product"
with:
product_id: "{{product_id}}"
title: "{{generate-seo.seo_title}}"
body_html: "{{generate-seo.body_html}}"
metafields_global_title_tag: "{{generate-seo.seo_title}}"
metafields_global_description_tag: "{{generate-seo.meta_description}}"
- name: submit-for-indexing
type: call
call: "google-search-console.submit-url"
with:
site_url: "https://{{shop_domain}}"
url: "https://{{shop_domain}}/products/{{get-product.handle}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: products
path: "/products/{{product_id}}.json"
inputParameters:
- name: product_id
in: path
operations:
- name: get-product
method: GET
- name: update-product
method: PUT
- type: http
namespace: claude
baseUri: "https://api.anthropic.com/v1"
authentication:
type: bearer
token: "$secrets.anthropic_api_key"
inputParameters:
- name: anthropic-version
in: header
value: "2023-06-01"
resources:
- name: messages
path: "/messages"
operations:
- name: create-message
method: POST
- type: http
namespace: google-search-console
baseUri: "https://searchconsole.googleapis.com/v1"
authentication:
type: bearer
token: "$secrets.google_search_console_token"
resources:
- name: url-inspection
path: "/urlInspection/index:inspect"
operations:
- name: submit-url
method: POST
Retrieves a Shopify order, compares shipping rates from multiple carriers via ShipStation, selects the cheapest option, creates the shipping label, and updates the order fulfillment with tracking info.
naftiko: "0.5"
info:
label: "Shipping Label Generator with Carrier Selection"
description: "Retrieves a Shopify order, compares shipping rates from multiple carriers via ShipStation, selects the cheapest option, creates the shipping label, and updates the order fulfillment with tracking info."
tags:
- e-commerce
- shipping
- fulfillment
- shipstation
- shopify
capability:
exposes:
- type: mcp
namespace: shipping-automation
port: 8080
tools:
- name: generate-shipping-label
description: "Given an order ID, fetch rates from ShipStation, select the optimal carrier, create a label, and update the Shopify fulfillment."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID."
- name: location_id
in: body
type: string
description: "The Shopify fulfillment location ID."
steps:
- name: get-order
type: call
call: "shopify-admin.get-order"
with:
order_id: "{{order_id}}"
- name: get-rates
type: call
call: "shipstation.get-rates"
with:
from_postal_code: "{{warehouse_postal_code}}"
to_postal_code: "{{get-order.shipping_address.zip}}"
to_country: "{{get-order.shipping_address.country_code}}"
weight_oz: "{{get-order.total_weight}}"
- name: create-label
type: call
call: "shipstation.create-label"
with:
carrier_code: "{{get-rates.rates[0].carrier_code}}"
service_code: "{{get-rates.rates[0].service_code}}"
to_name: "{{get-order.shipping_address.name}}"
to_address1: "{{get-order.shipping_address.address1}}"
to_city: "{{get-order.shipping_address.city}}"
to_state: "{{get-order.shipping_address.province_code}}"
to_postal_code: "{{get-order.shipping_address.zip}}"
to_country: "{{get-order.shipping_address.country_code}}"
weight_oz: "{{get-order.total_weight}}"
- name: create-fulfillment
type: call
call: "shopify-admin.create-fulfillment"
with:
order_id: "{{order_id}}"
tracking_number: "{{create-label.tracking_number}}"
tracking_company: "{{create-label.carrier}}"
location_id: "{{location_id}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: orders
path: "/orders/{{order_id}}.json"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- name: fulfillments
path: "/orders/{{order_id}}/fulfillments.json"
inputParameters:
- name: order_id
in: path
operations:
- name: create-fulfillment
method: POST
- type: http
namespace: shipstation
baseUri: "https://ssapi.shipstation.com"
authentication:
type: basic
username: "$secrets.shipstation_api_key"
password: "$secrets.shipstation_api_secret"
resources:
- name: rates
path: "/shipments/getrates"
operations:
- name: get-rates
method: POST
- name: labels
path: "/shipments/createlabel"
operations:
- name: create-label
method: POST
Queries available shipping rates for a given checkout or draft order, returning carrier names, prices, and estimated delivery windows.
naftiko: "0.5"
info:
label: "Shipping Rate Lookup"
description: "Queries available shipping rates for a given checkout or draft order, returning carrier names, prices, and estimated delivery windows."
tags:
- e-commerce
- shipping
- shopify
capability:
exposes:
- type: mcp
namespace: shipping
port: 8080
tools:
- name: get-shipping-rates
description: "Retrieve available shipping rates for a Shopify draft order. Returns carrier service names, rates, and delivery estimates."
inputParameters:
- name: draft_order_id
in: body
type: string
description: "The Shopify draft order ID to retrieve shipping rates for."
call: "shopify-admin.get-draft-order-shipping"
with:
draft_order_id: "{{draft_order_id}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: draft-order-shipping
path: "/draft_orders/{{draft_order_id}}/shipping_rates.json"
inputParameters:
- name: draft_order_id
in: path
operations:
- name: get-draft-order-shipping
method: GET
Orchestrates shipping rate optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Shipping Rate Optimization Pipeline"
description: "Orchestrates shipping rate optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- shipping
- shopify
- hubspot
- zendesk
- github
capability:
exposes:
- type: mcp
namespace: shipping
port: 8080
tools:
- name: shipping-rate-optimization-pipeline
description: "Orchestrates shipping rate optimization pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "hubspot.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "zendesk.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "github.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: hubspot-resource
path: "/api/shipping"
operations:
- name: execute-1
method: POST
- type: http
namespace: zendesk
baseUri: "https://shopify.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: zendesk-resource
path: "/api/shipping"
operations:
- name: execute-2
method: POST
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: github-resource
path: "/api/shipping"
operations:
- name: execute-3
method: POST
Retrieves all active Shopify store locations including name, address, phone, and whether the location is active for fulfillment. Used by operations teams for warehouse and store planning.
naftiko: "0.5"
info:
label: "Shop Location Listing"
description: "Retrieves all active Shopify store locations including name, address, phone, and whether the location is active for fulfillment. Used by operations teams for warehouse and store planning."
tags:
- e-commerce
- logistics
- shopify
capability:
exposes:
- type: mcp
namespace: locations
port: 8080
tools:
- name: list-locations
description: "List all active locations for the Shopify store. Returns location name, address, and fulfillment status."
inputParameters: []
call: "shopify-admin.list-locations"
with: {}
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: locations
path: "/locations.json"
operations:
- name: list-locations
method: GET
Reads a metafield value for the shop resource by namespace and key. Used to retrieve custom configuration, feature flags, or store-level metadata.
naftiko: "0.5"
info:
label: "Shop Metafield Reader"
description: "Reads a metafield value for the shop resource by namespace and key. Used to retrieve custom configuration, feature flags, or store-level metadata."
tags:
- e-commerce
- configuration
- shopify
capability:
exposes:
- type: mcp
namespace: shop-config
port: 8080
tools:
- name: get-shop-metafield
description: "Retrieve a shop-level metafield by namespace and key."
inputParameters:
- name: namespace
in: body
type: string
description: "The metafield namespace."
- name: key
in: body
type: string
description: "The metafield key."
call: "shopify-admin.list-shop-metafields"
with:
namespace: "{{namespace}}"
key: "{{key}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: shop-metafields
path: "/metafields.json"
inputParameters:
- name: namespace
in: query
- name: key
in: query
operations:
- name: list-shop-metafields
method: GET
Orchestrates shop performance benchmark pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Shop Performance Benchmark Pipeline"
description: "Orchestrates shop performance benchmark pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- shop
- shopify
- shopify
- stripe
- sendgrid
capability:
exposes:
- type: mcp
namespace: shop
port: 8080
tools:
- name: shop-performance-benchmark-pipeline
description: "Orchestrates shop performance benchmark pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "shopify.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "stripe.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sendgrid.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: shopify-resource
path: "/api/shop"
operations:
- name: execute-1
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: stripe-resource
path: "/api/shop"
operations:
- name: execute-2
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/shop"
operations:
- name: execute-3
method: POST
Registers a new webhook subscription in Shopify for a specified topic, validates the endpoint availability, and logs the registration in Confluence for team documentation.
naftiko: "0.5"
info:
label: "Shopify Flow Trigger via Webhook Registration"
description: "Registers a new webhook subscription in Shopify for a specified topic, validates the endpoint availability, and logs the registration in Confluence for team documentation."
tags:
- e-commerce
- platform-engineering
- webhooks
- confluence
- shopify
capability:
exposes:
- type: mcp
namespace: webhook-management
port: 8080
tools:
- name: register-and-document-webhook
description: "Given a webhook topic and callback URL, register the webhook in Shopify and document it in Confluence."
inputParameters:
- name: topic
in: body
type: string
description: "The webhook topic, e.g. orders/create, products/update."
- name: address
in: body
type: string
description: "The callback URL for the webhook."
- name: format
in: body
type: string
description: "The webhook format: json or xml."
steps:
- name: create-webhook
type: call
call: "shopify-admin.create-webhook"
with:
topic: "{{topic}}"
address: "{{address}}"
format: "{{format}}"
- name: document-in-confluence
type: call
call: "confluence.create-page"
with:
space_key: "ENGINEERING"
title: "Webhook: {{topic}} -> {{address}}"
body: "Webhook registered on {{current_date}}.\n\nTopic: {{topic}}\nAddress: {{address}}\nFormat: {{format}}\nShopify Webhook ID: {{create-webhook.id}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: webhooks
path: "/webhooks.json"
operations:
- name: create-webhook
method: POST
- type: http
namespace: confluence
baseUri: "https://{{confluence_domain}}.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: content
path: "/content"
operations:
- name: create-page
method: POST
Allows warehouse staff to adjust Shopify inventory levels via a Slack slash command, validates the request, applies the adjustment, and confirms the change back in Slack.
naftiko: "0.5"
info:
label: "Slack-Triggered Inventory Adjustment"
description: "Allows warehouse staff to adjust Shopify inventory levels via a Slack slash command, validates the request, applies the adjustment, and confirms the change back in Slack."
tags:
- e-commerce
- inventory
- slack
- shopify
capability:
exposes:
- type: mcp
namespace: inventory-slack
port: 8080
tools:
- name: adjust-inventory-from-slack
description: "Given a SKU, location ID, and adjustment quantity from a Slack request, update the Shopify inventory and confirm in Slack."
inputParameters:
- name: sku
in: body
type: string
description: "The product SKU."
- name: location_id
in: body
type: string
description: "The Shopify location ID."
- name: adjustment
in: body
type: number
description: "The quantity adjustment (positive to add, negative to remove)."
- name: slack_channel
in: body
type: string
description: "The Slack channel to confirm the adjustment in."
- name: requester
in: body
type: string
description: "The Slack user who requested the adjustment."
steps:
- name: adjust-inventory
type: call
call: "shopify-admin.adjust-inventory-level"
with:
location_id: "{{location_id}}"
sku: "{{sku}}"
adjustment: "{{adjustment}}"
- name: confirm-in-slack
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Inventory adjusted by <@{{requester}}>: SKU {{sku}} at location {{location_id}} adjusted by {{adjustment}} units. New available: {{adjust-inventory.available}}."
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: inventory-levels
path: "/inventory_levels/adjust.json"
operations:
- name: adjust-inventory-level
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves smart collection listing data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Smart Collection Listing"
description: "Retrieves smart collection listing data from the Shopify e-commerce platform systems."
tags:
- smart
- shopify
- listing
capability:
exposes:
- type: mcp
namespace: smart
port: 8080
tools:
- name: smart-collection-listing
description: "Retrieves smart collection listing data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.smart-collection-listing"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/smart/collection/listing/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: smart-collection-listing
method: GET
Orchestrates social selling integration pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Social Selling Integration Pipeline"
description: "Orchestrates social selling integration pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- social
- shopify
- github
- shopify
- stripe
capability:
exposes:
- type: mcp
namespace: social
port: 8080
tools:
- name: social-selling-integration-pipeline
description: "Orchestrates social selling integration pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "github.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "shopify.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "stripe.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: github-resource
path: "/api/social"
operations:
- name: execute-1
method: POST
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: shopify-resource
path: "/api/social"
operations:
- name: execute-2
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: stripe-resource
path: "/api/social"
operations:
- name: execute-3
method: POST
Retrieves storefront access tokens for the shop, returning token, title, and creation date. Used for validating headless commerce API access.
naftiko: "0.5"
info:
label: "Storefront Access Token Check"
description: "Retrieves storefront access tokens for the shop, returning token, title, and creation date. Used for validating headless commerce API access."
tags:
- e-commerce
- storefront
- platform-engineering
- shopify
capability:
exposes:
- type: mcp
namespace: storefront-auth
port: 8080
tools:
- name: list-storefront-tokens
description: "List storefront access tokens for the Shopify store."
inputParameters: []
call: "shopify-admin.list-storefront-tokens"
with: {}
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: storefront-tokens
path: "/storefront_access_tokens.json"
operations:
- name: list-storefront-tokens
method: GET
Fetches a Shopify custom collection by ID, returning title, description, image, published status, and sort order.
naftiko: "0.5"
info:
label: "Storefront Collection Retrieval"
description: "Fetches a Shopify custom collection by ID, returning title, description, image, published status, and sort order."
tags:
- e-commerce
- collections
- shopify
capability:
exposes:
- type: mcp
namespace: product-catalog
port: 8080
tools:
- name: get-collection
description: "Retrieve a Shopify custom collection by ID. Returns title, body HTML, image, and sort order."
inputParameters:
- name: collection_id
in: body
type: string
description: "The Shopify custom collection ID."
call: "shopify-admin.get-collection"
with:
collection_id: "{{collection_id}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: custom-collections
path: "/custom_collections/{{collection_id}}.json"
inputParameters:
- name: collection_id
in: path
operations:
- name: get-collection
method: GET
Reconciles a Shopify order payment with Stripe by fetching the Shopify transaction, looking up the corresponding Stripe charge, comparing amounts, and logging discrepancies to a Google Sheet.
naftiko: "0.5"
info:
label: "Stripe Payment Reconciliation"
description: "Reconciles a Shopify order payment with Stripe by fetching the Shopify transaction, looking up the corresponding Stripe charge, comparing amounts, and logging discrepancies to a Google Sheet."
tags:
- e-commerce
- payments
- stripe
- google-sheets
- reconciliation
- shopify
capability:
exposes:
- type: mcp
namespace: payment-reconciliation
port: 8080
tools:
- name: reconcile-payment
description: "Given a Shopify order ID and Stripe charge ID, compare transaction amounts and log any discrepancies."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID."
- name: stripe_charge_id
in: body
type: string
description: "The Stripe charge ID."
steps:
- name: get-shopify-transactions
type: call
call: "shopify-admin.list-transactions"
with:
order_id: "{{order_id}}"
- name: get-stripe-charge
type: call
call: "stripe.get-charge"
with:
charge_id: "{{stripe_charge_id}}"
- name: log-reconciliation
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "{{reconciliation_sheet_id}}"
range: "Reconciliation!A:F"
values:
- "{{order_id}}"
- "{{stripe_charge_id}}"
- "{{get-shopify-transactions.transactions[0].amount}}"
- "{{get-stripe-charge.amount}}"
- "{{get-stripe-charge.currency}}"
- "{{get-stripe-charge.status}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: transactions
path: "/orders/{{order_id}}/transactions.json"
inputParameters:
- name: order_id
in: path
operations:
- name: list-transactions
method: GET
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: charges
path: "/charges/{{charge_id}}"
inputParameters:
- name: charge_id
in: path
operations:
- name: get-charge
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}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-row
method: POST
Orchestrates subscription billing pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Subscription Billing Pipeline"
description: "Orchestrates subscription billing pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- subscription
- shopify
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: subscription
port: 8080
tools:
- name: subscription-billing-pipeline
description: "Orchestrates subscription billing pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/subscription"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/subscription"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://shopify.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/subscription"
operations:
- name: execute-3
method: POST
Creates a recurring subscription for a Shopify customer using Stripe Billing, stores the subscription reference as a customer metafield in Shopify, and sends a welcome email via SendGrid.
naftiko: "0.5"
info:
label: "Subscription Order Creator via Stripe Billing"
description: "Creates a recurring subscription for a Shopify customer using Stripe Billing, stores the subscription reference as a customer metafield in Shopify, and sends a welcome email via SendGrid."
tags:
- e-commerce
- subscriptions
- payments
- stripe
- sendgrid
- shopify
capability:
exposes:
- type: mcp
namespace: subscriptions
port: 8080
tools:
- name: create-subscription
description: "Given a Shopify customer ID, Stripe price ID, and payment method, create a Stripe subscription, store the reference in Shopify, and send a confirmation email."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Shopify customer ID."
- name: stripe_customer_id
in: body
type: string
description: "The Stripe customer ID."
- name: stripe_price_id
in: body
type: string
description: "The Stripe recurring price ID."
steps:
- name: get-customer
type: call
call: "shopify-admin.get-customer"
with:
customer_id: "{{customer_id}}"
- name: create-stripe-sub
type: call
call: "stripe.create-subscription"
with:
customer: "{{stripe_customer_id}}"
price: "{{stripe_price_id}}"
- name: store-metafield
type: call
call: "shopify-admin.create-customer-metafield"
with:
customer_id: "{{customer_id}}"
namespace: "subscriptions"
key: "stripe_subscription_id"
value: "{{create-stripe-sub.id}}"
type: "single_line_text_field"
- name: send-welcome
type: call
call: "sendgrid.send-email"
with:
to: "{{get-customer.email}}"
subject: "Welcome to your subscription!"
body: "Hi {{get-customer.first_name}}, your subscription is now active. Subscription ID: {{create-stripe-sub.id}}. You will be billed automatically each cycle."
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: customers
path: "/customers/{{customer_id}}.json"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-customer
method: GET
- name: customer-metafields
path: "/customers/{{customer_id}}/metafields.json"
inputParameters:
- name: customer_id
in: path
operations:
- name: create-customer-metafield
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: subscriptions
path: "/subscriptions"
operations:
- name: create-subscription
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
Retrieves tender transaction listing data from the Shopify e-commerce platform systems.
naftiko: "0.5"
info:
label: "Tender Transaction Listing"
description: "Retrieves tender transaction listing data from the Shopify e-commerce platform systems."
tags:
- tender
- shopify
- listing
capability:
exposes:
- type: mcp
namespace: tender
port: 8080
tools:
- name: tender-transaction-listing
description: "Retrieves tender transaction listing data from the Shopify e-commerce platform systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "shopify.tender-transaction-listing"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: shopify
baseUri: "https://shopify.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_access_token"
resources:
- name: resource
path: "/tender/transaction/listing/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: tender-transaction-listing
method: GET
Retrieves a specific theme asset file by key from the active Shopify theme. Used by front-end teams to inspect liquid templates, CSS, and JavaScript assets.
naftiko: "0.5"
info:
label: "Theme Asset Reader"
description: "Retrieves a specific theme asset file by key from the active Shopify theme. Used by front-end teams to inspect liquid templates, CSS, and JavaScript assets."
tags:
- e-commerce
- storefront
- themes
- shopify
capability:
exposes:
- type: mcp
namespace: storefront-themes
port: 8080
tools:
- name: get-theme-asset
description: "Retrieve a single theme asset by theme ID and asset key."
inputParameters:
- name: theme_id
in: body
type: string
description: "The Shopify theme ID."
- name: asset_key
in: body
type: string
description: "The asset key path, e.g. templates/index.liquid."
call: "shopify-admin.get-asset"
with:
theme_id: "{{theme_id}}"
asset_key: "{{asset_key}}"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: theme-assets
path: "/themes/{{theme_id}}/assets.json"
inputParameters:
- name: theme_id
in: path
- name: asset_key
in: query
value: "{{asset_key}}"
operations:
- name: get-asset
method: GET
Orchestrates theme quality assurance pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Theme Quality Assurance Pipeline"
description: "Orchestrates theme quality assurance pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
tags:
- theme
- shopify
- stripe
- sendgrid
- snowflake
capability:
exposes:
- type: mcp
namespace: theme
port: 8080
tools:
- name: theme-quality-assurance-pipeline
description: "Orchestrates theme quality assurance pipeline across e-commerce platform systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "stripe.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sendgrid.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: stripe-resource
path: "/api/theme"
operations:
- name: execute-1
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/theme"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://shopify.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/theme"
operations:
- name: execute-3
method: POST
Sends an order confirmation SMS to the customer via Twilio after a Shopify order is placed, including order number, total, and estimated delivery date.
naftiko: "0.5"
info:
label: "Twilio SMS Order Confirmation"
description: "Sends an order confirmation SMS to the customer via Twilio after a Shopify order is placed, including order number, total, and estimated delivery date."
tags:
- e-commerce
- orders
- notifications
- twilio
- shopify
capability:
exposes:
- type: mcp
namespace: order-notifications
port: 8080
tools:
- name: send-order-sms
description: "Given a Shopify order ID, retrieve order details and send a confirmation SMS via Twilio."
inputParameters:
- name: order_id
in: body
type: string
description: "The Shopify order ID."
steps:
- name: get-order
type: call
call: "shopify-admin.get-order"
with:
order_id: "{{order_id}}"
- name: send-sms
type: call
call: "twilio.send-sms"
with:
to: "{{get-order.customer.phone}}"
from: "{{twilio_phone_number}}"
body: "Hi {{get-order.customer.first_name}}! Your order #{{get-order.order_number}} ({{get-order.total_price}} {{get-order.currency}}) has been confirmed. We will notify you when it ships!"
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: orders
path: "/orders/{{order_id}}.json"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- type: http
namespace: twilio
baseUri: "https://api.twilio.com/2010-04-01/Accounts/{{twilio_account_sid}}"
authentication:
type: basic
username: "$secrets.twilio_account_sid"
password: "$secrets.twilio_auth_token"
resources:
- name: messages
path: "/Messages.json"
operations:
- name: send-sms
method: POST
Lists all active webhook subscriptions for the Shopify store. Returns topic, address, and format for each registered webhook.
naftiko: "0.5"
info:
label: "Webhook Subscription Listing"
description: "Lists all active webhook subscriptions for the Shopify store. Returns topic, address, and format for each registered webhook."
tags:
- e-commerce
- platform-engineering
- webhooks
- shopify
capability:
exposes:
- type: mcp
namespace: platform-ops
port: 8080
tools:
- name: list-webhooks
description: "List all webhook subscriptions for the Shopify store. Returns topic, callback address, and format."
inputParameters: []
call: "shopify-admin.list-webhooks"
with: {}
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: webhooks
path: "/webhooks.json"
operations:
- name: list-webhooks
method: GET
Processes a wholesale draft order in Shopify with volume discounts, updates the corresponding Salesforce opportunity stage, and sends the B2B invoice details via email.
naftiko: "0.5"
info:
label: "Wholesale B2B Order with Salesforce Opportunity Update"
description: "Processes a wholesale draft order in Shopify with volume discounts, updates the corresponding Salesforce opportunity stage, and sends the B2B invoice details via email."
tags:
- e-commerce
- b2b
- wholesale
- salesforce
- sendgrid
- shopify
capability:
exposes:
- type: mcp
namespace: b2b-orders
port: 8080
tools:
- name: process-wholesale-order
description: "Given a Shopify draft order ID and Salesforce opportunity ID, complete the draft order, update the SF opportunity, and email the invoice."
inputParameters:
- name: draft_order_id
in: body
type: string
description: "The Shopify draft order ID."
- name: opportunity_id
in: body
type: string
description: "The Salesforce opportunity ID."
steps:
- name: get-draft-order
type: call
call: "shopify-admin.get-draft-order"
with:
draft_order_id: "{{draft_order_id}}"
- name: complete-draft
type: call
call: "shopify-admin.complete-draft-order"
with:
draft_order_id: "{{draft_order_id}}"
- name: update-opportunity
type: call
call: "salesforce.update-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
stage: "Closed Won"
amount: "{{get-draft-order.total_price}}"
close_date: "{{get-draft-order.created_at}}"
- name: send-invoice
type: call
call: "sendgrid.send-email"
with:
to: "{{get-draft-order.customer.email}}"
subject: "Your wholesale order #{{complete-draft.order_id}} has been confirmed"
body: "Thank you for your wholesale order. Total: {{get-draft-order.total_price}} {{get-draft-order.currency}}. Your invoice is attached to this order."
consumes:
- type: http
namespace: shopify-admin
baseUri: "https://{{shop_domain}}/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_admin_token"
resources:
- name: draft-orders
path: "/draft_orders/{{draft_order_id}}.json"
inputParameters:
- name: draft_order_id
in: path
operations:
- name: get-draft-order
method: GET
- name: draft-order-complete
path: "/draft_orders/{{draft_order_id}}/complete.json"
inputParameters:
- name: draft_order_id
in: path
operations:
- name: complete-draft-order
method: PUT
- type: http
namespace: salesforce
baseUri: "https://{{salesforce_instance}}.salesforce.com/services/data/v59.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: update-opportunity
method: PATCH
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST