Petco Capabilities
Naftiko 0.5 capability definitions for Petco - 100 capabilities showing integration workflows and service orchestrations.
Coordinates pet adoption events by scheduling partners, promoting on social media, and tracking adoption outcomes.
naftiko: "0.5"
info:
label: "Adoption Event Coordinator Pipeline"
description: "Coordinates pet adoption events by scheduling partners, promoting on social media, and tracking adoption outcomes."
tags:
- adoption
- petco
- salesforce
- facebook
capability:
exposes:
- type: mcp
namespace: adoption
port: 8080
tools:
- name: adoption-event-coordinator-pipeline
description: "Coordinates pet adoption events by scheduling partners, promoting on social media, and tracking adoption outcomes."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: create-event
type: call
call: "petco.create-event"
with:
input: "{{input_id}}"
- name: promote-event
type: call
call: "facebook.create-post"
with:
input: "{{input_id}}"
- name: track-outcomes
type: call
call: "salesforce.create-campaign"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/events"
operations:
- name: create-event
method: POST
- type: http
namespace: facebook
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.facebook_token"
resources:
- name: facebook-resource
path: "/feed"
operations:
- name: create-post
method: POST
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/sobjects/Campaign"
operations:
- name: create-campaign
method: POST
Creates an adoption event in the store events system, promotes it via SendGrid to local subscribers, and posts an announcement to the store's Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Adoption Event Coordinator"
description: "Creates an adoption event in the store events system, promotes it via SendGrid to local subscribers, and posts an announcement to the store's Microsoft Teams channel."
tags:
- retail
- community
- sendgrid
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: events-ops
port: 8080
tools:
- name: create-adoption-event
description: "Create and promote a pet adoption event at a store location."
inputParameters:
- name: store_id
in: body
type: string
description: "The store identifier."
- name: event_date
in: body
type: string
description: "The event date."
- name: partner_org
in: body
type: string
description: "The adoption partner organization name."
steps:
- name: create-event
type: call
call: "events-api.create-event"
with:
store_id: "{{store_id}}"
date: "{{event_date}}"
type: "adoption"
partner: "{{partner_org}}"
- name: send-promotion
type: call
call: "sendgrid.send-batch"
with:
template_id: "adoption_event"
data:
store_id: "{{store_id}}"
date: "{{event_date}}"
partner: "{{partner_org}}"
- name: notify-store
type: call
call: "msteams.send-message"
with:
channel_id: "store-{{store_id}}-events"
text: "Adoption event scheduled for {{event_date}} with {{partner_org}}. Event ID: {{create-event.event_id}}"
consumes:
- type: http
namespace: events-api
baseUri: "https://api.petco.com/events/v1"
authentication:
type: bearer
token: "$secrets.petco_events_token"
resources:
- name: events
path: "/events"
operations:
- name: create-event
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-batch
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Handles failed auto-ship payments by retrying charges, updating customer records in Salesforce, and sending payment update requests.
naftiko: "0.5"
info:
label: "Auto-Ship Payment Failure Handler"
description: "Handles failed auto-ship payments by retrying charges, updating customer records in Salesforce, and sending payment update requests."
tags:
- billing
- petco
- salesforce
- sendgrid
capability:
exposes:
- type: mcp
namespace: auto
port: 8080
tools:
- name: auto-ship-payment-failure-handler
description: "Handles failed auto-ship payments by retrying charges, updating customer records in Salesforce, and sending payment update requests."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-subscription
type: call
call: "petco.get-autoship"
with:
input: "{{input_id}}"
- name: update-customer
type: call
call: "salesforce.update-contact"
with:
input: "{{input_id}}"
- name: send-notice
type: call
call: "sendgrid.send-email"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/autoship/{{input_id}}"
operations:
- name: get-autoship
method: GET
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/sobjects/Contact"
operations:
- name: update-contact
method: PATCH
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/mail/send"
operations:
- name: send-email
method: POST
Processes Buy Online Pick Up In Store orders by reserving inventory at the selected store, notifying store associates via Microsoft Teams, and sending a ready-for-pickup email.
naftiko: "0.5"
info:
label: "BOPIS Order Processor"
description: "Processes Buy Online Pick Up In Store orders by reserving inventory at the selected store, notifying store associates via Microsoft Teams, and sending a ready-for-pickup email."
tags:
- e-commerce
- retail
- microsoft-teams
- sendgrid
capability:
exposes:
- type: mcp
namespace: bopis-ops
port: 8080
tools:
- name: process-bopis-order
description: "Process a BOPIS order with inventory reservation, store notification, and customer alert."
inputParameters:
- name: order_id
in: body
type: string
description: "The order identifier."
- name: store_id
in: body
type: string
description: "The pickup store identifier."
- name: customer_email
in: body
type: string
description: "The customer email."
steps:
- name: reserve-inventory
type: call
call: "inventory-api.reserve-items"
with:
order_id: "{{order_id}}"
store_id: "{{store_id}}"
- name: notify-store
type: call
call: "msteams.send-message"
with:
channel_id: "store-{{store_id}}-bopis"
text: "New BOPIS order {{order_id}} ready for picking. Items: {{reserve-inventory.item_count}}"
- name: notify-customer
type: call
call: "sendgrid.send-email"
with:
to: "{{customer_email}}"
subject: "Your Petco Order is Ready for Pickup!"
body: "Order {{order_id}} is being prepared at store {{store_id}}. We'll email again when it's ready."
consumes:
- type: http
namespace: inventory-api
baseUri: "https://api.petco.com/inventory/v1"
authentication:
type: bearer
token: "$secrets.petco_inventory_token"
resources:
- name: reservations
path: "/stores/{{store_id}}/reserve"
inputParameters:
- name: store_id
in: path
operations:
- name: reserve-items
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
- type: http
namespace: 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
Audits companion animal welfare standards across stores, documents compliance, and generates corrective action plans.
naftiko: "0.5"
info:
label: "Companion Animal Welfare Audit"
description: "Audits companion animal welfare standards across stores, documents compliance, and generates corrective action plans."
tags:
- welfare
- petco
- servicenow
- confluence
capability:
exposes:
- type: mcp
namespace: companion
port: 8080
tools:
- name: companion-animal-welfare-audit
description: "Audits companion animal welfare standards across stores, documents compliance, and generates corrective action plans."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-audit-data
type: call
call: "petco.get-welfare-audit"
with:
input: "{{input_id}}"
- name: log-findings
type: call
call: "servicenow.create-record"
with:
input: "{{input_id}}"
- name: publish-report
type: call
call: "confluence.create-page"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/stores/{{input_id}}/welfare-audit"
operations:
- name: get-welfare-audit
method: GET
- type: http
namespace: servicenow
baseUri: "https://petco.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/table/u_welfare_audit"
operations:
- name: create-record
method: POST
- type: http
namespace: confluence
baseUri: "https://petco.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: confluence-resource
path: "/content"
operations:
- name: create-page
method: POST
Enriches customer profiles by aggregating purchase history, pet data, and loyalty status into a unified view.
naftiko: "0.5"
info:
label: "Customer 360 Profile Enrichment"
description: "Enriches customer profiles by aggregating purchase history, pet data, and loyalty status into a unified view."
tags:
- customer
- petco
- snowflake
- salesforce
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-360-profile-enrichment
description: "Enriches customer profiles by aggregating purchase history, pet data, and loyalty status into a unified view."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: aggregate-data
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: enrich-crm
type: call
call: "salesforce.update-account"
with:
input: "{{input_id}}"
- name: notify
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/sobjects/Account"
operations:
- name: update-account
method: PATCH
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Collects customer feedback from the website and app, runs sentiment analysis in Snowflake, and creates Salesforce cases for negative feedback requiring follow-up.
naftiko: "0.5"
info:
label: "Customer Feedback Aggregator"
description: "Collects customer feedback from the website and app, runs sentiment analysis in Snowflake, and creates Salesforce cases for negative feedback requiring follow-up."
tags:
- e-commerce
- member-engagement
- snowflake
- salesforce
capability:
exposes:
- type: mcp
namespace: feedback-ops
port: 8080
tools:
- name: process-customer-feedback
description: "Process customer feedback with sentiment analysis and case escalation."
inputParameters:
- name: feedback_id
in: body
type: string
description: "The feedback submission identifier."
- name: customer_email
in: body
type: string
description: "The customer email."
steps:
- name: get-feedback
type: call
call: "feedback-api.get-submission"
with:
feedback_id: "{{feedback_id}}"
- name: analyze-sentiment
type: call
call: "snowflake.execute-query"
with:
query: "SELECT analyze_sentiment('{{get-feedback.text}}')"
- name: escalate-negative
type: call
call: "salesforce.create-case"
with:
subject: "Negative feedback: {{feedback_id}}"
description: "Sentiment: {{analyze-sentiment.score}}. Feedback: {{get-feedback.text}}"
contact_email: "{{customer_email}}"
consumes:
- type: http
namespace: feedback-api
baseUri: "https://api.petco.com/feedback/v1"
authentication:
type: bearer
token: "$secrets.petco_feedback_token"
resources:
- name: submissions
path: "/submissions/{{feedback_id}}"
inputParameters:
- name: feedback_id
in: path
operations:
- name: get-submission
method: GET
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
Calculates customer lifetime value scores, segments by profitability tiers, and updates CRM records for targeted marketing.
naftiko: "0.5"
info:
label: "Customer Lifetime Value Pipeline"
description: "Calculates customer lifetime value scores, segments by profitability tiers, and updates CRM records for targeted marketing."
tags:
- analytics
- petco
- snowflake
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: customer-lifetime-value-pipeline
description: "Calculate CLV and segment customers by profitability."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: calculate-clv
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: update-crm
type: call
call: "salesforce.update-contact"
with:
input: "{{input_id}}"
- name: notify-marketing
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/sobjects/Contact"
operations:
- name: update-contact
method: PATCH
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Handles escalated customer service cases by pulling order history, assessing priority, and routing to specialist teams.
naftiko: "0.5"
info:
label: "Customer Service Escalation Orchestrator"
description: "Handles escalated customer service cases by pulling order history, assessing priority, and routing to specialist teams."
tags:
- support
- petco
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-service-escalation-orchestrator
description: "Handles escalated customer service cases by pulling order history, assessing priority, and routing to specialist teams."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-history
type: call
call: "petco.get-customer-history"
with:
input: "{{input_id}}"
- name: assess-priority
type: call
call: "salesforce.get-case"
with:
input: "{{input_id}}"
- name: escalate
type: call
call: "servicenow.create-incident"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/customers/{{input_id}}/orders"
operations:
- name: get-customer-history
method: GET
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/sobjects/Case"
operations:
- name: get-case
method: GET
- type: http
namespace: servicenow
baseUri: "https://petco.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/table/incident"
operations:
- name: create-incident
method: POST
Pulls daily POS sales data from all store locations, aggregates by region in Snowflake, and refreshes the revenue dashboard in Tableau for the leadership team.
naftiko: "0.5"
info:
label: "Daily Sales Revenue Aggregator"
description: "Pulls daily POS sales data from all store locations, aggregates by region in Snowflake, and refreshes the revenue dashboard in Tableau for the leadership team."
tags:
- retail
- revenue
- snowflake
- tableau
capability:
exposes:
- type: mcp
namespace: sales-analytics
port: 8080
tools:
- name: aggregate-daily-sales
description: "Aggregate daily sales data from all stores and update the revenue dashboard."
inputParameters:
- name: date
in: body
type: string
description: "The sales date in YYYY-MM-DD format."
steps:
- name: pull-pos-data
type: call
call: "pos-api.get-daily-sales"
with:
date: "{{date}}"
- name: aggregate-in-snowflake
type: call
call: "snowflake.execute-query"
with:
query: "CALL aggregate_daily_sales('{{date}}')"
- name: refresh-dashboard
type: call
call: "tableau.refresh-extract"
with:
datasource_id: "daily_sales_ds"
consumes:
- type: http
namespace: pos-api
baseUri: "https://api.petco.com/pos/v1"
authentication:
type: bearer
token: "$secrets.petco_pos_token"
resources:
- name: sales
path: "/sales/daily/{{date}}"
inputParameters:
- name: date
in: path
operations:
- name: get-daily-sales
method: GET
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: tableau
baseUri: "https://tableau.petco.com/api/3.21"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/sites/petco/datasources/{{datasource_id}}/refresh"
inputParameters:
- name: datasource_id
in: path
operations:
- name: refresh-extract
method: POST
Retrieves Datadog monitor status for Petco's digital infrastructure. Returns monitor name, state, and last triggered time.
naftiko: "0.5"
info:
label: "Datadog Monitor Status Lookup"
description: "Retrieves Datadog monitor status for Petco's digital infrastructure. Returns monitor name, state, and last triggered time."
tags:
- operations
- monitoring
- datadog
capability:
exposes:
- type: mcp
namespace: infra-monitoring
port: 8080
tools:
- name: get-monitor-status
description: "Check Datadog monitor status."
inputParameters:
- name: monitor_id
in: body
type: string
description: "The Datadog monitor identifier."
call: "datadog.get-monitor"
with:
monitor_id: "{{monitor_id}}"
outputParameters:
- name: name
type: string
mapping: "$.name"
- name: status
type: string
mapping: "$.overall_state"
- name: last_triggered
type: string
mapping: "$.state.last_triggered_ts"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: monitors
path: "/monitor/{{monitor_id}}"
inputParameters:
- name: monitor_id
in: path
operations:
- name: get-monitor
method: GET
Tracks digital marketing campaign ROI by correlating ad spend with conversions and generating performance reports.
naftiko: "0.5"
info:
label: "Digital Marketing ROI Tracker"
description: "Tracks digital marketing campaign ROI by correlating ad spend with conversions and generating performance reports."
tags:
- marketing
- petco
- google-analytics
- tableau
capability:
exposes:
- type: mcp
namespace: digital
port: 8080
tools:
- name: digital-marketing-roi-tracker
description: "Tracks digital marketing campaign ROI by correlating ad spend with conversions and generating performance reports."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-ad-data
type: call
call: "google-analytics.run-report"
with:
input: "{{input_id}}"
- name: correlate-sales
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: refresh-dashboard
type: call
call: "tableau.refresh-workbook"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: google-analytics
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: google-analytics-resource
path: "/properties/runReport"
operations:
- name: run-report
method: POST
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: tableau
baseUri: "https://tableau.petco.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: tableau-resource
path: "/sites/default/workbooks/refresh"
operations:
- name: refresh-workbook
method: POST
When a new online order is placed, validates inventory in the warehouse management system, creates a fulfillment request, sends confirmation via SendGrid, and logs the order in Snowflake.
naftiko: "0.5"
info:
label: "E-Commerce Order Fulfillment Orchestrator"
description: "When a new online order is placed, validates inventory in the warehouse management system, creates a fulfillment request, sends confirmation via SendGrid, and logs the order in Snowflake."
tags:
- e-commerce
- supply-chain
- sendgrid
- snowflake
capability:
exposes:
- type: mcp
namespace: order-fulfillment
port: 8080
tools:
- name: process-online-order
description: "Orchestrate e-commerce order fulfillment across inventory, shipping, and notification systems."
inputParameters:
- name: order_id
in: body
type: string
description: "The e-commerce order identifier."
- name: customer_email
in: body
type: string
description: "The customer email address."
steps:
- name: get-order-details
type: call
call: "ecommerce-api.get-order"
with:
order_id: "{{order_id}}"
- name: check-inventory
type: call
call: "wms-api.check-availability"
with:
items: "{{get-order-details.line_items}}"
- name: create-fulfillment
type: call
call: "wms-api.create-fulfillment"
with:
order_id: "{{order_id}}"
warehouse_id: "{{check-inventory.optimal_warehouse}}"
- name: send-confirmation
type: call
call: "sendgrid.send-email"
with:
to: "{{customer_email}}"
subject: "Petco Order Confirmed - {{order_id}}"
body: "Your order is being prepared. Estimated delivery: {{create-fulfillment.estimated_delivery}}"
- name: log-order
type: call
call: "snowflake.insert-record"
with:
table: "ecommerce_orders"
data:
order_id: "{{order_id}}"
warehouse: "{{check-inventory.optimal_warehouse}}"
total: "{{get-order-details.total}}"
consumes:
- type: http
namespace: ecommerce-api
baseUri: "https://api.petco.com/ecommerce/v1"
authentication:
type: bearer
token: "$secrets.petco_ecommerce_token"
resources:
- name: orders
path: "/orders/{{order_id}}"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- type: http
namespace: wms-api
baseUri: "https://api.petco.com/warehouse/v1"
authentication:
type: bearer
token: "$secrets.petco_wms_token"
resources:
- name: inventory
path: "/inventory/check"
operations:
- name: check-availability
method: POST
- name: fulfillment
path: "/fulfillment"
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: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: insert-record
method: POST
Analyzes return patterns for potential fraud, flags suspicious returns, and creates investigation cases.
naftiko: "0.5"
info:
label: "E-Commerce Return Fraud Detector"
description: "Analyzes return patterns for potential fraud, flags suspicious returns, and creates investigation cases."
tags:
- fraud
- petco
- snowflake
- jira
capability:
exposes:
- type: mcp
namespace: e
port: 8080
tools:
- name: e-commerce-return-fraud-detector
description: "Analyzes return patterns for potential fraud, flags suspicious returns, and creates investigation cases."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: analyze-returns
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: flag-fraud
type: call
call: "jira.create-issue"
with:
input: "{{input_id}}"
- name: alert-team
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: jira
baseUri: "https://petco.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Optimizes e-commerce search results by analyzing search patterns, adjusting relevance algorithms, and testing improvements.
naftiko: "0.5"
info:
label: "E-Commerce Search Optimization Pipeline"
description: "Optimizes e-commerce search results by analyzing search patterns, adjusting relevance algorithms, and testing improvements."
tags:
- search
- petco
- snowflake
capability:
exposes:
- type: mcp
namespace: search
port: 8080
tools:
- name: e-commerce-search-optimization-pipeline
description: "Optimize e-commerce search relevance based on user behavior."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: analyze-patterns
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: update-config
type: call
call: "petco.update-search-config"
with:
input: "{{input_id}}"
- name: notify-team
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/search/config"
operations:
- name: update-search-config
method: PATCH
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves a customer segment from Salesforce Marketing Cloud, sends personalized email campaigns via SendGrid, and logs delivery metrics.
naftiko: "0.5"
info:
label: "Email Campaign Dispatcher"
description: "Retrieves a customer segment from Salesforce Marketing Cloud, sends personalized email campaigns via SendGrid, and logs delivery metrics."
tags:
- marketing
- email
- salesforce-marketing-cloud
- sendgrid
capability:
exposes:
- type: mcp
namespace: email-campaigns
port: 8080
tools:
- name: dispatch-email-campaign
description: "Dispatch a personalized email campaign to a customer segment."
inputParameters:
- name: segment_id
in: body
type: string
description: "The SFMC audience segment identifier."
- name: template_id
in: body
type: string
description: "The SendGrid email template identifier."
steps:
- name: get-segment
type: call
call: "sfmc.get-data-extension"
with:
data_extension: "{{segment_id}}"
- name: send-emails
type: call
call: "sendgrid.send-batch"
with:
recipients: "{{get-segment.rows}}"
template_id: "{{template_id}}"
consumes:
- type: http
namespace: sfmc
baseUri: "https://petco.rest.marketingcloudapis.com/data/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: data-extensions
path: "/customobjectdata/key/{{data_extension}}/rowset"
inputParameters:
- name: data_extension
in: path
operations:
- name: get-data-extension
method: GET
- 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-batch
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Orchestrate new hire onboarding across Workday, ServiceNow, SharePoint, and Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID."
- name: start_date
in: body
type: string
description: "The start date."
- name: department
in: body
type: string
description: "The department."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding"
folder_path: "NewHires/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
channel_id: "new-hires"
text: "Welcome to Petco, {{get-employee.first_name}}! Onboarding ticket: {{open-ticket.number}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://petco.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Optimizes employee schedules by analyzing foot traffic patterns, staff availability, and labor budget constraints.
naftiko: "0.5"
info:
label: "Employee Scheduling Optimizer"
description: "Optimizes employee schedules by analyzing foot traffic patterns, staff availability, and labor budget constraints."
tags:
- hr
- petco
- workday
- slack
capability:
exposes:
- type: mcp
namespace: employee
port: 8080
tools:
- name: employee-scheduling-optimizer
description: "Optimizes employee schedules by analyzing foot traffic patterns, staff availability, and labor budget constraints."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-traffic-data
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: optimize-schedule
type: call
call: "workday.create-schedule"
with:
input: "{{input_id}}"
- name: notify-managers
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/petco/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/scheduling"
operations:
- name: create-schedule
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Reconciles end-of-day store transactions against POS data, identifies discrepancies, and generates closing reports.
naftiko: "0.5"
info:
label: "End of Day Store Reconciliation"
description: "Reconciles end-of-day store transactions against POS data, identifies discrepancies, and generates closing reports."
tags:
- finance
- petco
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: end
port: 8080
tools:
- name: end-of-day-store-reconciliation
description: "Reconciles end-of-day store transactions against POS data, identifies discrepancies, and generates closing reports."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-pos-data
type: call
call: "petco.get-daily-transactions"
with:
input: "{{input_id}}"
- name: reconcile
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: report-discrepancies
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/stores/{{input_id}}/transactions"
operations:
- name: get-daily-transactions
method: GET
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves available animals for adoption at a Petco location.
naftiko: "0.5"
info:
label: "Get Adoption Animal Listing"
description: "Retrieves available animals for adoption at a Petco location."
tags:
- adoption
- petco
- animals
capability:
exposes:
- type: mcp
namespace: adoption
port: 8080
tools:
- name: get-adoption-animal-listing
description: "Retrieves available animals for adoption at a Petco location."
inputParameters:
- name: location_id
in: body
type: string
description: "The location id."
call: "petco.get-listings"
with:
location_id: "{{location_id}}"
outputParameters:
- name: animals
type: array
mapping: "$.animals"
- name: count
type: integer
mapping: "$.total"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/adoption/{{location_id}}/animals"
inputParameters:
- name: location_id
in: path
operations:
- name: get-listings
method: GET
Retrieves aquarium products from the Petco specialty catalog.
naftiko: "0.5"
info:
label: "Get Aquarium Product Catalog"
description: "Retrieves aquarium products from the Petco specialty catalog."
tags:
- aquatics
- petco
- catalog
capability:
exposes:
- type: mcp
namespace: aquatics
port: 8080
tools:
- name: get-aquarium-product-catalog
description: "Browse aquarium products in the Petco catalog."
inputParameters:
- name: category
in: body
type: string
description: "The aquarium category."
call: "petco.get-aquarium-products"
with:
category: "{{category}}"
outputParameters:
- name: products
type: array
mapping: "$.products"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: aquarium
path: "/products/aquarium"
inputParameters:
- name: category
in: query
operations:
- name: get-aquarium-products
method: GET
Retrieves details for a Petco auto-ship recurring order subscription.
naftiko: "0.5"
info:
label: "Get Auto-Ship Subscription Details"
description: "Retrieves details for a Petco auto-ship recurring order subscription."
tags:
- subscriptions
- petco
- auto-ship
capability:
exposes:
- type: mcp
namespace: subscriptions
port: 8080
tools:
- name: get-auto-ship-subscription-details
description: "Retrieves details for a Petco auto-ship recurring order subscription."
inputParameters:
- name: subscription_id
in: body
type: string
description: "The subscription id."
call: "petco.get-autoship"
with:
subscription_id: "{{subscription_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: next_delivery
type: string
mapping: "$.next_delivery_date"
- name: items
type: array
mapping: "$.items"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/autoship/{{subscription_id}}"
inputParameters:
- name: subscription_id
in: path
operations:
- name: get-autoship
method: GET
Checks the status of a curbside pickup order at a Petco store.
naftiko: "0.5"
info:
label: "Get Curbside Pickup Status"
description: "Checks the status of a curbside pickup order at a Petco store."
tags:
- orders
- petco
- curbside
capability:
exposes:
- type: mcp
namespace: orders
port: 8080
tools:
- name: get-curbside-pickup-status
description: "Checks the status of a curbside pickup order at a Petco store."
inputParameters:
- name: order_id
in: body
type: string
description: "The order id."
call: "petco.get-pickup"
with:
order_id: "{{order_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: ready_time
type: string
mapping: "$.ready_at"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/orders/{{order_id}}/pickup"
inputParameters:
- name: order_id
in: path
operations:
- name: get-pickup
method: GET
Retrieves pet profile details including breed, age, and health records.
naftiko: "0.5"
info:
label: "Get Customer Pet Profile"
description: "Retrieves pet profile details including breed, age, and health records."
tags:
- pets
- petco
- profiles
capability:
exposes:
- type: mcp
namespace: pets
port: 8080
tools:
- name: get-customer-pet-profile
description: "Retrieves pet profile details including breed, age, and health records."
inputParameters:
- name: pet_id
in: body
type: string
description: "The pet id."
call: "petco.get-pet"
with:
pet_id: "{{pet_id}}"
outputParameters:
- name: name
type: string
mapping: "$.name"
- name: breed
type: string
mapping: "$.breed"
- name: age
type: integer
mapping: "$.age"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/pets/{{pet_id}}"
inputParameters:
- name: pet_id
in: path
operations:
- name: get-pet
method: GET
Retrieves shipping and tracking information for a Petco online order.
naftiko: "0.5"
info:
label: "Get Delivery Tracking Info"
description: "Retrieves shipping and tracking information for a Petco online order."
tags:
- shipping
- petco
- tracking
capability:
exposes:
- type: mcp
namespace: shipping
port: 8080
tools:
- name: get-delivery-tracking-info
description: "Retrieves shipping and tracking information for a Petco online order."
inputParameters:
- name: order_id
in: body
type: string
description: "The order id."
call: "petco.get-tracking"
with:
order_id: "{{order_id}}"
outputParameters:
- name: carrier
type: string
mapping: "$.carrier"
- name: tracking_number
type: string
mapping: "$.tracking_number"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/orders/{{order_id}}/tracking"
inputParameters:
- name: order_id
in: path
operations:
- name: get-tracking
method: GET
Retrieves nearby dog park locations from Petco community services.
naftiko: "0.5"
info:
label: "Get Dog Park Location"
description: "Retrieves nearby dog park locations from Petco community services."
tags:
- community
- petco
- locations
capability:
exposes:
- type: mcp
namespace: community
port: 8080
tools:
- name: get-dog-park-location
description: "Find nearby dog parks."
inputParameters:
- name: zip_code
in: body
type: string
description: "The zip code."
call: "petco.get-dog-parks"
with:
zip_code: "{{zip_code}}"
outputParameters:
- name: parks
type: array
mapping: "$.parks"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: parks
path: "/community/dog-parks"
inputParameters:
- name: zip_code
in: query
operations:
- name: get-dog-parks
method: GET
Checks the balance of a Petco gift card.
naftiko: "0.5"
info:
label: "Get Gift Card Balance"
description: "Checks the balance of a Petco gift card."
tags:
- payments
- petco
- gift-cards
capability:
exposes:
- type: mcp
namespace: payments
port: 8080
tools:
- name: get-gift-card-balance
description: "Checks the balance of a Petco gift card."
inputParameters:
- name: card_number
in: body
type: string
description: "The card number."
call: "petco.get-balance"
with:
card_number: "{{card_number}}"
outputParameters:
- name: balance
type: string
mapping: "$.balance"
- name: currency
type: string
mapping: "$.currency"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/gift-cards/{{card_number}}/balance"
inputParameters:
- name: card_number
in: path
operations:
- name: get-balance
method: GET
Retrieves grooming service pricing by service type and pet size.
naftiko: "0.5"
info:
label: "Get Grooming Service Pricing"
description: "Retrieves grooming service pricing by service type and pet size."
tags:
- grooming
- petco
- pricing
capability:
exposes:
- type: mcp
namespace: grooming
port: 8080
tools:
- name: get-grooming-service-pricing
description: "Retrieves grooming service pricing by service type and pet size."
inputParameters:
- name: service_type
in: body
type: string
description: "The service type."
call: "petco.get-pricing"
with:
service_type: "{{service_type}}"
outputParameters:
- name: price
type: string
mapping: "$.price"
- name: duration_minutes
type: integer
mapping: "$.duration_minutes"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/grooming/pricing/{{service_type}}"
inputParameters:
- name: service_type
in: path
operations:
- name: get-pricing
method: GET
Retrieves Vital Care loyalty program membership status and points balance.
naftiko: "0.5"
info:
label: "Get Loyalty Member Status"
description: "Retrieves Vital Care loyalty program membership status and points balance."
tags:
- loyalty
- petco
- vital-care
capability:
exposes:
- type: mcp
namespace: loyalty
port: 8080
tools:
- name: get-loyalty-member-status
description: "Retrieves Vital Care loyalty program membership status and points balance."
inputParameters:
- name: member_id
in: body
type: string
description: "The member id."
call: "petco.get-member"
with:
member_id: "{{member_id}}"
outputParameters:
- name: tier
type: string
mapping: "$.tier"
- name: points_balance
type: integer
mapping: "$.points"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/loyalty/{{member_id}}"
inputParameters:
- name: member_id
in: path
operations:
- name: get-member
method: GET
Retrieves personalized pet food recommendations based on pet profile.
naftiko: "0.5"
info:
label: "Get Nutrition Recommendation"
description: "Retrieves personalized pet food recommendations based on pet profile."
tags:
- nutrition
- petco
- recommendations
capability:
exposes:
- type: mcp
namespace: nutrition
port: 8080
tools:
- name: get-nutrition-recommendation
description: "Retrieves personalized pet food recommendations based on pet profile."
inputParameters:
- name: pet_id
in: body
type: string
description: "The pet id."
call: "petco.get-recommendations"
with:
pet_id: "{{pet_id}}"
outputParameters:
- name: recommendations
type: array
mapping: "$.products"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/nutrition/recommendations/{{pet_id}}"
inputParameters:
- name: pet_id
in: path
operations:
- name: get-recommendations
method: GET
Checks whether a pet food product is subject to any active recalls.
naftiko: "0.5"
info:
label: "Get Pet Food Recall Status"
description: "Checks whether a pet food product is subject to any active recalls."
tags:
- safety
- petco
- recalls
capability:
exposes:
- type: mcp
namespace: safety
port: 8080
tools:
- name: get-pet-food-recall-status
description: "Check recall status for a pet food product."
inputParameters:
- name: product_id
in: body
type: string
description: "The product ID."
call: "petco.check-recall"
with:
product_id: "{{product_id}}"
outputParameters:
- name: recalled
type: boolean
mapping: "$.recalled"
- name: recall_date
type: string
mapping: "$.recall_date"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: recalls
path: "/products/{{product_id}}/recall-status"
inputParameters:
- name: product_id
in: path
operations:
- name: check-recall
method: GET
Retrieves a pet insurance quote based on pet profile and coverage options.
naftiko: "0.5"
info:
label: "Get Pet Insurance Quote"
description: "Retrieves a pet insurance quote based on pet profile and coverage options."
tags:
- insurance
- petco
- quotes
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: get-pet-insurance-quote
description: "Retrieves a pet insurance quote based on pet profile and coverage options."
inputParameters:
- name: pet_id
in: body
type: string
description: "The pet id."
call: "petco.get-quote"
with:
pet_id: "{{pet_id}}"
outputParameters:
- name: monthly_premium
type: string
mapping: "$.monthly_premium"
- name: coverage_type
type: string
mapping: "$.coverage"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/insurance/quotes/{{pet_id}}"
inputParameters:
- name: pet_id
in: path
operations:
- name: get-quote
method: GET
Retrieves pet microchip registration details from Petco systems.
naftiko: "0.5"
info:
label: "Get Pet Microchip Registry"
description: "Retrieves pet microchip registration details from Petco systems."
tags:
- pets
- petco
- microchip
capability:
exposes:
- type: mcp
namespace: pets
port: 8080
tools:
- name: get-pet-microchip-registry
description: "Look up pet microchip registration details."
inputParameters:
- name: chip_id
in: body
type: string
description: "The microchip ID."
call: "petco.get-microchip"
with:
chip_id: "{{chip_id}}"
outputParameters:
- name: pet_name
type: string
mapping: "$.pet_name"
- name: owner_name
type: string
mapping: "$.owner_name"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: microchips
path: "/microchips/{{chip_id}}"
inputParameters:
- name: chip_id
in: path
operations:
- name: get-microchip
method: GET
Retrieves the status of a pet prescription order.
naftiko: "0.5"
info:
label: "Get Pet Prescription Status"
description: "Retrieves the status of a pet prescription order."
tags:
- pharmacy
- petco
- prescriptions
capability:
exposes:
- type: mcp
namespace: pharmacy
port: 8080
tools:
- name: get-pet-prescription-status
description: "Retrieves the status of a pet prescription order."
inputParameters:
- name: prescription_id
in: body
type: string
description: "The prescription id."
call: "petco.get-prescription"
with:
prescription_id: "{{prescription_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: medication
type: string
mapping: "$.medication_name"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/prescriptions/{{prescription_id}}"
inputParameters:
- name: prescription_id
in: path
operations:
- name: get-prescription
method: GET
Retrieves customer reviews and ratings for a Petco product.
naftiko: "0.5"
info:
label: "Get Product Reviews"
description: "Retrieves customer reviews and ratings for a Petco product."
tags:
- reviews
- petco
- products
capability:
exposes:
- type: mcp
namespace: reviews
port: 8080
tools:
- name: get-product-reviews
description: "Retrieves customer reviews and ratings for a Petco product."
inputParameters:
- name: product_id
in: body
type: string
description: "The product id."
call: "petco.get-reviews"
with:
product_id: "{{product_id}}"
outputParameters:
- name: average_rating
type: number
mapping: "$.average_rating"
- name: reviews
type: array
mapping: "$.reviews"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/products/{{product_id}}/reviews"
inputParameters:
- name: product_id
in: path
operations:
- name: get-reviews
method: GET
Retrieves details for an active Petco promotion or coupon.
naftiko: "0.5"
info:
label: "Get Promotion Details"
description: "Retrieves details for an active Petco promotion or coupon."
tags:
- marketing
- petco
- promotions
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: get-promotion-details
description: "Retrieves details for an active Petco promotion or coupon."
inputParameters:
- name: promo_code
in: body
type: string
description: "The promo code."
call: "petco.get-promotion"
with:
promo_code: "{{promo_code}}"
outputParameters:
- name: discount_type
type: string
mapping: "$.type"
- name: discount_value
type: string
mapping: "$.value"
- name: valid_until
type: string
mapping: "$.expiration"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/promotions/{{promo_code}}"
inputParameters:
- name: promo_code
in: path
operations:
- name: get-promotion
method: GET
Retrieves reptile care guides and husbandry information from Petco content.
naftiko: "0.5"
info:
label: "Get Reptile Care Guide"
description: "Retrieves reptile care guides and husbandry information from Petco content."
tags:
- content
- petco
- reptiles
capability:
exposes:
- type: mcp
namespace: content
port: 8080
tools:
- name: get-reptile-care-guide
description: "Look up reptile care guides."
inputParameters:
- name: species
in: body
type: string
description: "The reptile species."
call: "petco.get-care-guide"
with:
species: "{{species}}"
outputParameters:
- name: guide
type: object
mapping: "$.care_guide"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: guides
path: "/content/care-guides/reptiles"
inputParameters:
- name: species
in: query
operations:
- name: get-care-guide
method: GET
Checks same-day delivery availability for a given zip code.
naftiko: "0.5"
info:
label: "Get Same Day Delivery Availability"
description: "Checks same-day delivery availability for a given zip code."
tags:
- delivery
- petco
- logistics
capability:
exposes:
- type: mcp
namespace: delivery
port: 8080
tools:
- name: get-same-day-delivery-availability
description: "Checks same-day delivery availability for a given zip code."
inputParameters:
- name: zip_code
in: body
type: string
description: "The zip code."
call: "petco.check-availability"
with:
zip_code: "{{zip_code}}"
outputParameters:
- name: available
type: boolean
mapping: "$.available"
- name: cutoff_time
type: string
mapping: "$.cutoff_time"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/delivery/availability/{{zip_code}}"
inputParameters:
- name: zip_code
in: path
operations:
- name: check-availability
method: GET
Retrieves upcoming events and activities at a Petco store.
naftiko: "0.5"
info:
label: "Get Store Event Calendar"
description: "Retrieves upcoming events and activities at a Petco store."
tags:
- events
- petco
- stores
capability:
exposes:
- type: mcp
namespace: events
port: 8080
tools:
- name: get-store-event-calendar
description: "Retrieves upcoming events and activities at a Petco store."
inputParameters:
- name: store_id
in: body
type: string
description: "The store id."
call: "petco.get-events"
with:
store_id: "{{store_id}}"
outputParameters:
- name: events
type: array
mapping: "$.events"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/stores/{{store_id}}/events"
inputParameters:
- name: store_id
in: path
operations:
- name: get-events
method: GET
Retrieves operating hours for a Petco store location.
naftiko: "0.5"
info:
label: "Get Store Hours"
description: "Retrieves operating hours for a Petco store location."
tags:
- stores
- petco
- hours
capability:
exposes:
- type: mcp
namespace: stores
port: 8080
tools:
- name: get-store-hours
description: "Look up operating hours for a Petco store."
inputParameters:
- name: store_id
in: body
type: string
description: "The store ID."
call: "petco.get-store-hours"
with:
store_id: "{{store_id}}"
outputParameters:
- name: hours
type: object
mapping: "$.operating_hours"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: stores
path: "/stores/{{store_id}}/hours"
inputParameters:
- name: store_id
in: path
operations:
- name: get-store-hours
method: GET
Lists available services at a Petco store including grooming, vet, and training.
naftiko: "0.5"
info:
label: "Get Store Services List"
description: "Lists available services at a Petco store including grooming, vet, and training."
tags:
- stores
- petco
- services
capability:
exposes:
- type: mcp
namespace: stores
port: 8080
tools:
- name: get-store-services-list
description: "Lists available services at a Petco store including grooming, vet, and training."
inputParameters:
- name: store_id
in: body
type: string
description: "The store id."
call: "petco.get-services"
with:
store_id: "{{store_id}}"
outputParameters:
- name: services
type: array
mapping: "$.services"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/stores/{{store_id}}/services"
inputParameters:
- name: store_id
in: path
operations:
- name: get-services
method: GET
Retrieves the pet training class schedule for a Petco store.
naftiko: "0.5"
info:
label: "Get Training Class Schedule"
description: "Retrieves the pet training class schedule for a Petco store."
tags:
- training
- petco
- classes
capability:
exposes:
- type: mcp
namespace: training
port: 8080
tools:
- name: get-training-class-schedule
description: "Retrieves the pet training class schedule for a Petco store."
inputParameters:
- name: store_id
in: body
type: string
description: "The store id."
call: "petco.get-schedule"
with:
store_id: "{{store_id}}"
outputParameters:
- name: classes
type: array
mapping: "$.classes"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/stores/{{store_id}}/training"
inputParameters:
- name: store_id
in: path
operations:
- name: get-schedule
method: GET
Retrieves vaccination records for a pet from Petco Vet clinics.
naftiko: "0.5"
info:
label: "Get Vaccination Record"
description: "Retrieves vaccination records for a pet from Petco Vet clinics."
tags:
- vet
- petco
- vaccinations
capability:
exposes:
- type: mcp
namespace: vet
port: 8080
tools:
- name: get-vaccination-record
description: "Retrieves vaccination records for a pet from Petco Vet clinics."
inputParameters:
- name: pet_id
in: body
type: string
description: "The pet id."
call: "petco.get-vaccinations"
with:
pet_id: "{{pet_id}}"
outputParameters:
- name: vaccinations
type: array
mapping: "$.vaccinations"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/vet/pets/{{pet_id}}/vaccinations"
inputParameters:
- name: pet_id
in: path
operations:
- name: get-vaccinations
method: GET
Retrieves a vendor product catalog listing from the Petco supply chain system.
naftiko: "0.5"
info:
label: "Get Vendor Product Catalog"
description: "Retrieves a vendor product catalog listing from the Petco supply chain system."
tags:
- supply-chain
- petco
- vendors
capability:
exposes:
- type: mcp
namespace: supply-chain
port: 8080
tools:
- name: get-vendor-product-catalog
description: "Retrieves a vendor product catalog listing from the Petco supply chain system."
inputParameters:
- name: vendor_id
in: body
type: string
description: "The vendor id."
call: "petco.get-vendor-catalog"
with:
vendor_id: "{{vendor_id}}"
outputParameters:
- name: products
type: array
mapping: "$.products"
- name: total
type: integer
mapping: "$.total"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/vendors/{{vendor_id}}/products"
inputParameters:
- name: vendor_id
in: path
operations:
- name: get-vendor-catalog
method: GET
Checks veterinary appointment availability at a Petco Vetco clinic.
naftiko: "0.5"
info:
label: "Get Vet Appointment Availability"
description: "Checks veterinary appointment availability at a Petco Vetco clinic."
tags:
- vet
- petco
- appointments
capability:
exposes:
- type: mcp
namespace: vet
port: 8080
tools:
- name: get-vet-appointment-availability
description: "Checks veterinary appointment availability at a Petco Vetco clinic."
inputParameters:
- name: clinic_id
in: body
type: string
description: "The clinic id."
call: "petco.get-availability"
with:
clinic_id: "{{clinic_id}}"
outputParameters:
- name: slots
type: array
mapping: "$.available_slots"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: resource
path: "/vet/clinics/{{clinic_id}}/availability"
inputParameters:
- name: clinic_id
in: path
operations:
- name: get-availability
method: GET
Retrieves Petco.com traffic metrics from Google Analytics. Returns sessions, bounce rate, and e-commerce conversion rate.
naftiko: "0.5"
info:
label: "Google Analytics Web Traffic Report"
description: "Retrieves Petco.com traffic metrics from Google Analytics. Returns sessions, bounce rate, and e-commerce conversion rate."
tags:
- marketing
- analytics
- google-analytics
capability:
exposes:
- type: mcp
namespace: web-analytics
port: 8080
tools:
- name: get-web-traffic
description: "Get Petco.com web traffic metrics from Google Analytics."
inputParameters:
- name: start_date
in: body
type: string
description: "Report start date."
- name: end_date
in: body
type: string
description: "Report end date."
call: "google-analytics.run-report"
with:
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: sessions
type: integer
mapping: "$.rows[0].metricValues[0].value"
- name: bounce_rate
type: number
mapping: "$.rows[0].metricValues[1].value"
- name: conversion_rate
type: number
mapping: "$.rows[0].metricValues[2].value"
consumes:
- type: http
namespace: google-analytics
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/petco/runReport"
operations:
- name: run-report
method: POST
Retrieves grooming appointment details from the scheduling system by appointment ID. Returns service type, pet info, groomer, and time.
naftiko: "0.5"
info:
label: "Grooming Appointment Lookup"
description: "Retrieves grooming appointment details from the scheduling system by appointment ID. Returns service type, pet info, groomer, and time."
tags:
- retail
- grooming
capability:
exposes:
- type: mcp
namespace: grooming-ops
port: 8080
tools:
- name: get-grooming-appointment
description: "Look up a grooming appointment by ID."
inputParameters:
- name: appointment_id
in: body
type: string
description: "The grooming appointment identifier."
call: "grooming-api.get-appointment"
with:
appointment_id: "{{appointment_id}}"
outputParameters:
- name: pet_name
type: string
mapping: "$.data.pet_name"
- name: service_type
type: string
mapping: "$.data.service_type"
- name: groomer
type: string
mapping: "$.data.groomer_name"
- name: appointment_time
type: string
mapping: "$.data.scheduled_time"
consumes:
- type: http
namespace: grooming-api
baseUri: "https://api.petco.com/grooming/v1"
authentication:
type: bearer
token: "$secrets.petco_grooming_token"
resources:
- name: appointments
path: "/appointments/{{appointment_id}}"
inputParameters:
- name: appointment_id
in: path
operations:
- name: get-appointment
method: GET
Sends grooming appointment reminders to customers, checks pet health requirements, and updates the appointment system.
naftiko: "0.5"
info:
label: "Grooming Appointment Reminder Workflow"
description: "Sends grooming appointment reminders to customers, checks pet health requirements, and updates the appointment system."
tags:
- grooming
- petco
- twilio
- sendgrid
capability:
exposes:
- type: mcp
namespace: grooming
port: 8080
tools:
- name: grooming-appointment-reminder-workflow
description: "Sends grooming appointment reminders to customers, checks pet health requirements, and updates the appointment system."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-appointment
type: call
call: "petco.get-appointment"
with:
input: "{{input_id}}"
- name: send-reminder-sms
type: call
call: "twilio.send-message"
with:
input: "{{input_id}}"
- name: send-reminder-email
type: call
call: "sendgrid.send-email"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/grooming/appointments/{{input_id}}"
operations:
- name: get-appointment
method: GET
- type: http
namespace: twilio
baseUri: "https://api.twilio.com/2010-04-01"
authentication:
type: bearer
token: "$secrets.twilio_auth_token"
resources:
- name: twilio-resource
path: "/Messages.json"
operations:
- name: send-message
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: "/mail/send"
operations:
- name: send-email
method: POST
When inventory falls below minimum threshold, creates a replenishment purchase order in SAP, notifies the supply chain team via Microsoft Teams, and logs the event in Snowflake.
naftiko: "0.5"
info:
label: "Inventory Replenishment Orchestrator"
description: "When inventory falls below minimum threshold, creates a replenishment purchase order in SAP, notifies the supply chain team via Microsoft Teams, and logs the event in Snowflake."
tags:
- supply-chain
- retail
- sap
- microsoft-teams
- snowflake
capability:
exposes:
- type: mcp
namespace: replenishment-ops
port: 8080
tools:
- name: trigger-replenishment
description: "Trigger inventory replenishment when stock falls below threshold."
inputParameters:
- name: store_id
in: body
type: string
description: "The store identifier."
- name: sku
in: body
type: string
description: "The product SKU."
- name: reorder_quantity
in: body
type: integer
description: "The quantity to reorder."
steps:
- name: create-po
type: call
call: "sap.create-purchase-order"
with:
store_id: "{{store_id}}"
sku: "{{sku}}"
quantity: "{{reorder_quantity}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "supply-chain-ops"
text: "Auto-replenishment PO {{create-po.po_number}} created for SKU {{sku}} at store {{store_id}}. Qty: {{reorder_quantity}}"
- name: log-event
type: call
call: "snowflake.insert-record"
with:
table: "replenishment_events"
data:
store_id: "{{store_id}}"
sku: "{{sku}}"
po_number: "{{create-po.po_number}}"
quantity: "{{reorder_quantity}}"
consumes:
- type: http
namespace: sap
baseUri: "https://petco.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder"
operations:
- name: create-purchase-order
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: insert-record
method: POST
Detects inventory shrinkage by comparing expected vs actual counts, flagging anomalies, and creating investigation cases.
naftiko: "0.5"
info:
label: "Inventory Shrinkage Detection Pipeline"
description: "Detects inventory shrinkage by comparing expected vs actual counts, flagging anomalies, and creating investigation cases."
tags:
- loss-prevention
- petco
- snowflake
capability:
exposes:
- type: mcp
namespace: loss
port: 8080
tools:
- name: inventory-shrinkage-detection-pipeline
description: "Detect inventory shrinkage and flag anomalies for investigation."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: analyze-shrinkage
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: create-case
type: call
call: "servicenow.create-incident"
with:
input: "{{input_id}}"
- name: notify-lp
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: servicenow
baseUri: "https://petco.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
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: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Pulls sprint progress from Jira and posts a summary to a Microsoft Teams channel for the technology team.
naftiko: "0.5"
info:
label: "Jira Sprint Status Reporter"
description: "Pulls sprint progress from Jira and posts a summary to a Microsoft Teams channel for the technology team."
tags:
- development
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: dev-reporting
port: 8080
tools:
- name: report-sprint-status
description: "Generate and post a Jira sprint status report to Teams."
inputParameters:
- name: board_id
in: body
type: string
description: "The Jira board identifier."
steps:
- name: get-sprint
type: call
call: "jira.get-active-sprint"
with:
board_id: "{{board_id}}"
- name: get-issues
type: call
call: "jira.get-sprint-issues"
with:
sprint_id: "{{get-sprint.id}}"
- name: post-report
type: call
call: "msteams.send-message"
with:
channel_id: "engineering"
text: "Sprint {{get-sprint.name}}: {{get-issues.done_count}}/{{get-issues.total_count}} done. {{get-issues.in_progress_count}} in progress."
consumes:
- type: http
namespace: jira
baseUri: "https://petco.atlassian.net/rest/agile/1.0"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: sprints
path: "/board/{{board_id}}/sprint?state=active"
inputParameters:
- name: board_id
in: path
operations:
- name: get-active-sprint
method: GET
- name: sprint-issues
path: "/sprint/{{sprint_id}}/issue"
inputParameters:
- name: sprint_id
in: path
operations:
- name: get-sprint-issues
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
After a purchase, calculates Pals Rewards points, updates the member profile in Salesforce, and sends a points summary via SendGrid.
naftiko: "0.5"
info:
label: "Loyalty Program Points Calculator"
description: "After a purchase, calculates Pals Rewards points, updates the member profile in Salesforce, and sends a points summary via SendGrid."
tags:
- retail
- member-engagement
- salesforce
- sendgrid
capability:
exposes:
- type: mcp
namespace: loyalty-ops
port: 8080
tools:
- name: process-loyalty-points
description: "Calculate and award Pals Rewards points after a purchase."
inputParameters:
- name: member_id
in: body
type: string
description: "The Pals Rewards member identifier."
- name: transaction_id
in: body
type: string
description: "The purchase transaction identifier."
- name: amount
in: body
type: number
description: "The purchase amount."
steps:
- name: calculate-points
type: call
call: "loyalty-api.calculate-points"
with:
member_id: "{{member_id}}"
amount: "{{amount}}"
- name: update-salesforce
type: call
call: "salesforce.update-contact"
with:
member_id: "{{member_id}}"
points_balance: "{{calculate-points.new_balance}}"
tier: "{{calculate-points.tier}}"
- name: send-summary
type: call
call: "sendgrid.send-email"
with:
to: "{{calculate-points.email}}"
subject: "You Earned Pals Rewards Points!"
body: "You earned {{calculate-points.points_earned}} points! Balance: {{calculate-points.new_balance}}. Tier: {{calculate-points.tier}}"
consumes:
- type: http
namespace: loyalty-api
baseUri: "https://api.petco.com/loyalty/v1"
authentication:
type: bearer
token: "$secrets.petco_loyalty_token"
resources:
- name: points
path: "/members/{{member_id}}/calculate"
inputParameters:
- name: member_id
in: path
operations:
- name: calculate-points
method: POST
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact"
operations:
- name: update-contact
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
Evaluates loyalty members for tier upgrades or downgrades based on spending patterns and engagement metrics.
naftiko: "0.5"
info:
label: "Loyalty Program Tier Evaluation"
description: "Evaluates loyalty members for tier upgrades or downgrades based on spending patterns and engagement metrics."
tags:
- loyalty
- petco
- salesforce
- sendgrid
capability:
exposes:
- type: mcp
namespace: loyalty
port: 8080
tools:
- name: loyalty-program-tier-evaluation
description: "Evaluates loyalty members for tier upgrades or downgrades based on spending patterns and engagement metrics."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: evaluate-spending
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: update-tier
type: call
call: "petco.update-member"
with:
input: "{{input_id}}"
- name: notify-member
type: call
call: "sendgrid.send-email"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/loyalty/members/{{input_id}}"
operations:
- name: update-member
method: PATCH
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/mail/send"
operations:
- name: send-email
method: POST
Pulls campaign metrics from Google Ads and Google Analytics, correlates with e-commerce conversions in Snowflake, and refreshes the marketing dashboard in Tableau.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Reporter"
description: "Pulls campaign metrics from Google Ads and Google Analytics, correlates with e-commerce conversions in Snowflake, and refreshes the marketing dashboard in Tableau."
tags:
- marketing
- e-commerce
- google-ads
- google-analytics
- snowflake
- tableau
capability:
exposes:
- type: mcp
namespace: marketing-analytics
port: 8080
tools:
- name: report-campaign-performance
description: "Generate a marketing campaign report correlating ad spend with e-commerce conversions."
inputParameters:
- name: campaign_id
in: body
type: string
description: "The campaign identifier."
- name: date_start
in: body
type: string
description: "Report start date."
- name: date_end
in: body
type: string
description: "Report end date."
steps:
- name: get-ads-metrics
type: call
call: "google-ads.get-campaign-stats"
with:
campaign_id: "{{campaign_id}}"
start_date: "{{date_start}}"
end_date: "{{date_end}}"
- name: get-ga-metrics
type: call
call: "google-analytics.get-report"
with:
campaign_id: "{{campaign_id}}"
start_date: "{{date_start}}"
end_date: "{{date_end}}"
- name: correlate-conversions
type: call
call: "snowflake.execute-query"
with:
query: "CALL correlate_campaign_conversions('{{campaign_id}}', '{{date_start}}', '{{date_end}}')"
- name: refresh-dashboard
type: call
call: "tableau.refresh-extract"
with:
datasource_id: "marketing_performance_ds"
consumes:
- type: http
namespace: google-ads
baseUri: "https://googleads.googleapis.com/v14"
authentication:
type: bearer
token: "$secrets.google_ads_token"
resources:
- name: campaigns
path: "/customers/petco/campaigns/{{campaign_id}}/stats"
inputParameters:
- name: campaign_id
in: path
operations:
- name: get-campaign-stats
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/petco/runReport"
operations:
- name: get-report
method: POST
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: tableau
baseUri: "https://tableau.petco.com/api/3.21"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/sites/petco/datasources/{{datasource_id}}/refresh"
inputParameters:
- name: datasource_id
in: path
operations:
- name: refresh-extract
method: POST
Sends a message to a Microsoft Teams channel. Reusable notification primitive for Petco workflows.
naftiko: "0.5"
info:
label: "Microsoft Teams Notifier"
description: "Sends a message to a Microsoft Teams channel. Reusable notification primitive for Petco workflows."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: teams-notifications
port: 8080
tools:
- name: send-teams-notification
description: "Send a message to a Microsoft Teams channel."
inputParameters:
- name: channel_id
in: body
type: string
description: "The Teams channel identifier."
- name: message
in: body
type: string
description: "The message text."
call: "msteams.send-message"
with:
channel_id: "{{channel_id}}"
text: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Analyzes mobile app engagement metrics, segments users by behavior, and triggers targeted push notification campaigns.
naftiko: "0.5"
info:
label: "Mobile App Engagement Pipeline"
description: "Analyzes mobile app engagement metrics, segments users by behavior, and triggers targeted push notification campaigns."
tags:
- mobile
- petco
- snowflake
capability:
exposes:
- type: mcp
namespace: mobile
port: 8080
tools:
- name: mobile-app-engagement-pipeline
description: "Analyze mobile engagement and trigger targeted campaigns."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: analyze-engagement
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: segment-users
type: call
call: "petco.create-segment"
with:
input: "{{input_id}}"
- name: notify-marketing
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/marketing/segments"
operations:
- name: create-segment
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Coordinates new product launches by setting up catalog entries, pricing, marketing materials, and store planograms.
naftiko: "0.5"
info:
label: "New Product Launch Pipeline"
description: "Coordinates new product launches by setting up catalog entries, pricing, marketing materials, and store planograms."
tags:
- products
- petco
- sap
- salesforce
capability:
exposes:
- type: mcp
namespace: new
port: 8080
tools:
- name: new-product-launch-pipeline
description: "Coordinates new product launches by setting up catalog entries, pricing, marketing materials, and store planograms."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: create-product
type: call
call: "petco.create-product"
with:
input: "{{input_id}}"
- name: setup-pricing
type: call
call: "sap.create-material"
with:
input: "{{input_id}}"
- name: setup-campaign
type: call
call: "salesforce.create-campaign"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/products"
operations:
- name: create-product
method: POST
- type: http
namespace: sap
baseUri: "https://petco-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/materials"
operations:
- name: create-material
method: POST
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/sobjects/Campaign"
operations:
- name: create-campaign
method: POST
Routes online orders to the optimal fulfillment location based on inventory, proximity, and delivery method.
naftiko: "0.5"
info:
label: "Omnichannel Order Routing Pipeline"
description: "Routes online orders to the optimal fulfillment location based on inventory, proximity, and delivery method."
tags:
- fulfillment
- petco
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: omnichannel
port: 8080
tools:
- name: omnichannel-order-routing-pipeline
description: "Routes online orders to the optimal fulfillment location based on inventory, proximity, and delivery method."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: check-inventory
type: call
call: "petco.check-inventory"
with:
input: "{{input_id}}"
- name: determine-routing
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: assign-fulfillment
type: call
call: "petco.assign-fulfillment"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/inventory/availability"
operations:
- name: check-inventory
method: GET
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
Checks a pet's profile for known food allergies and cross-references against recent auto-ship orders, alerting the customer if a potential allergen is detected in a pending shipment.
naftiko: "0.5"
info:
label: "Pet Allergy Alert Pipeline"
description: "Checks a pet's profile for known food allergies and cross-references against recent auto-ship orders, alerting the customer if a potential allergen is detected in a pending shipment."
tags:
- pet-health
- auto-ship
- customer-safety
capability:
exposes:
- type: mcp
namespace: pet-allergy-alert
port: 8080
tools:
- name: check-pet-allergy-conflict
description: "Cross-reference a pet's known allergies with items in their upcoming auto-ship order."
inputParameters:
- name: pet_id
in: body
type: string
description: "Unique pet profile identifier."
- name: customer_id
in: body
type: string
description: "Customer account identifier."
call: "petco-api.get-pet-allergies"
with:
pet_id: "{{pet_id}}"
customer_id: "{{customer_id}}"
outputParameters:
- name: allergy_conflicts
type: array
mapping: "$.conflicts"
- name: alert_sent
type: boolean
mapping: "$.alertDispatched"
consumes:
- type: http
namespace: petco-api
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: pet-allergies
path: "/pets/{{pet_id}}/allergy-check?customerId={{customer_id}}"
inputParameters:
- name: pet_id
in: path
- name: customer_id
in: query
operations:
- name: get-pet-allergies
method: GET
Identifies pets with upcoming birthdays, generates personalized offers, and sends celebration emails to pet parents.
naftiko: "0.5"
info:
label: "Pet Birthday Celebration Pipeline"
description: "Identifies pets with upcoming birthdays, generates personalized offers, and sends celebration emails to pet parents."
tags:
- celebrations
- petco
- sendgrid
capability:
exposes:
- type: mcp
namespace: celebrations
port: 8080
tools:
- name: pet-birthday-celebration-pipeline
description: "Send pet birthday celebration offers and emails."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: find-birthdays
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: generate-offers
type: call
call: "petco.create-offer"
with:
input: "{{input_id}}"
- name: send-email
type: call
call: "sendgrid.send-email"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/offers"
operations:
- name: create-offer
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: "/mail/send"
operations:
- name: send-email
method: POST
Monitors product expiration dates across stores, generates markdown recommendations, and alerts store managers.
naftiko: "0.5"
info:
label: "Pet Food Expiration Monitoring"
description: "Monitors product expiration dates across stores, generates markdown recommendations, and alerts store managers."
tags:
- quality
- petco
- snowflake
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: pet
port: 8080
tools:
- name: pet-food-expiration-monitoring
description: "Monitors product expiration dates across stores, generates markdown recommendations, and alerts store managers."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: check-expirations
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: update-pricing
type: call
call: "petco.update-price"
with:
input: "{{input_id}}"
- name: alert-managers
type: call
call: "teams.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/products/pricing"
operations:
- name: update-price
method: PATCH
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/teams/channels/messages"
operations:
- name: post-message
method: POST
Sends prescription refill reminders to pet parents based on medication schedules and remaining doses.
naftiko: "0.5"
info:
label: "Pet Pharmacy Refill Reminder Pipeline"
description: "Sends prescription refill reminders to pet parents based on medication schedules and remaining doses."
tags:
- pharmacy
- petco
- twilio
capability:
exposes:
- type: mcp
namespace: pharmacy
port: 8080
tools:
- name: pet-pharmacy-refill-reminder-pipeline
description: "Send prescription refill reminders based on medication schedules."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: check-refills
type: call
call: "petco.check-refill-schedule"
with:
input: "{{input_id}}"
- name: send-sms
type: call
call: "twilio.send-message"
with:
input: "{{input_id}}"
- name: log-reminder
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/pharmacy/refill-schedule"
operations:
- name: check-refill-schedule
method: GET
- type: http
namespace: twilio
baseUri: "https://api.twilio.com/2010-04-01"
authentication:
type: basic
username: "$secrets.twilio_account_sid"
password: "$secrets.twilio_auth_token"
resources:
- name: twilio-resource
path: "/Messages.json"
operations:
- name: send-message
method: POST
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
Processes veterinary prescription orders by verifying the prescription with the vet system, checking pharmacy inventory, and dispatching fulfillment with customer notification.
naftiko: "0.5"
info:
label: "Pet Prescription Fulfillment"
description: "Processes veterinary prescription orders by verifying the prescription with the vet system, checking pharmacy inventory, and dispatching fulfillment with customer notification."
tags:
- vet-services
- e-commerce
- sendgrid
capability:
exposes:
- type: mcp
namespace: rx-fulfillment
port: 8080
tools:
- name: fulfill-prescription
description: "Process and fulfill a pet prescription order."
inputParameters:
- name: prescription_id
in: body
type: string
description: "The prescription identifier."
- name: customer_email
in: body
type: string
description: "The customer email address."
steps:
- name: verify-prescription
type: call
call: "vet-api.verify-prescription"
with:
prescription_id: "{{prescription_id}}"
- name: check-pharmacy-stock
type: call
call: "pharmacy-api.check-stock"
with:
medication: "{{verify-prescription.medication}}"
dosage: "{{verify-prescription.dosage}}"
- name: create-fulfillment
type: call
call: "pharmacy-api.create-order"
with:
prescription_id: "{{prescription_id}}"
pharmacy_location: "{{check-pharmacy-stock.location}}"
- name: notify-customer
type: call
call: "sendgrid.send-email"
with:
to: "{{customer_email}}"
subject: "Petco Prescription Order Confirmed"
body: "Prescription for {{verify-prescription.pet_name}} is being fulfilled. Medication: {{verify-prescription.medication}}."
consumes:
- type: http
namespace: vet-api
baseUri: "https://api.petco.com/vetco/v1"
authentication:
type: bearer
token: "$secrets.petco_vet_token"
resources:
- name: prescriptions
path: "/prescriptions/{{prescription_id}}/verify"
inputParameters:
- name: prescription_id
in: path
operations:
- name: verify-prescription
method: GET
- type: http
namespace: pharmacy-api
baseUri: "https://api.petco.com/pharmacy/v1"
authentication:
type: bearer
token: "$secrets.petco_pharmacy_token"
resources:
- name: stock
path: "/stock/check"
operations:
- name: check-stock
method: GET
- name: orders
path: "/orders"
operations:
- name: create-order
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
Processes pet training course completions, generates graduation certificates, and sends congratulatory communications.
naftiko: "0.5"
info:
label: "Pet Training Graduation Pipeline"
description: "Processes pet training course completions, generates graduation certificates, and sends congratulatory communications."
tags:
- training
- petco
- sendgrid
capability:
exposes:
- type: mcp
namespace: training
port: 8080
tools:
- name: pet-training-graduation-pipeline
description: "Process training graduations and send certificates."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-completion
type: call
call: "petco.get-training-completion"
with:
input: "{{input_id}}"
- name: generate-certificate
type: call
call: "petco.create-certificate"
with:
input: "{{input_id}}"
- name: send-congratulations
type: call
call: "sendgrid.send-email"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/training/completions"
operations:
- name: get-training-completion
method: GET
- name: create-certificate
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: "/mail/send"
operations:
- name: send-email
method: POST
Checks pet vaccination schedules, generates wellness reminders, and sends personalized notifications via email and SMS.
naftiko: "0.5"
info:
label: "Pet Wellness Reminder Pipeline"
description: "Checks pet vaccination schedules, generates wellness reminders, and sends personalized notifications via email and SMS."
tags:
- wellness
- petco
- sendgrid
- twilio
capability:
exposes:
- type: mcp
namespace: pet
port: 8080
tools:
- name: pet-wellness-reminder-pipeline
description: "Checks pet vaccination schedules, generates wellness reminders, and sends personalized notifications via email and SMS."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: check-schedule
type: call
call: "petco.get-pet-schedule"
with:
input: "{{input_id}}"
- name: send-email
type: call
call: "sendgrid.send-email"
with:
input: "{{input_id}}"
- name: send-sms
type: call
call: "twilio.send-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/vet/pets/{{input_id}}/schedule"
operations:
- name: get-pet-schedule
method: GET
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/mail/send"
operations:
- name: send-email
method: POST
- type: http
namespace: twilio
baseUri: "https://api.twilio.com/2010-04-01"
authentication:
type: bearer
token: "$secrets.twilio_auth_token"
resources:
- name: twilio-resource
path: "/Messages.json"
operations:
- name: send-message
method: POST
Verifies competitor pricing claims for price match requests, validates eligibility, and processes adjustments.
naftiko: "0.5"
info:
label: "Price Matching Verification Pipeline"
description: "Verifies competitor pricing claims for price match requests, validates eligibility, and processes adjustments."
tags:
- pricing
- petco
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: price
port: 8080
tools:
- name: price-matching-verification-pipeline
description: "Verifies competitor pricing claims for price match requests, validates eligibility, and processes adjustments."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: verify-price
type: call
call: "petco.check-competitor-price"
with:
input: "{{input_id}}"
- name: process-adjustment
type: call
call: "salesforce.create-case"
with:
input: "{{input_id}}"
- name: notify-cs
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/pricing/price-match"
operations:
- name: check-competitor-price
method: POST
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves product details from the Petco product catalog by SKU. Returns product name, price, category, and availability status.
naftiko: "0.5"
info:
label: "Product Catalog Lookup"
description: "Retrieves product details from the Petco product catalog by SKU. Returns product name, price, category, and availability status."
tags:
- retail
- e-commerce
- catalog
capability:
exposes:
- type: mcp
namespace: product-catalog
port: 8080
tools:
- name: get-product-details
description: "Look up product details by SKU from the Petco catalog."
inputParameters:
- name: sku
in: body
type: string
description: "The product SKU."
call: "catalog-api.get-product"
with:
sku: "{{sku}}"
outputParameters:
- name: name
type: string
mapping: "$.data.name"
- name: price
type: number
mapping: "$.data.price"
- name: category
type: string
mapping: "$.data.category"
- name: availability
type: string
mapping: "$.data.availability_status"
consumes:
- type: http
namespace: catalog-api
baseUri: "https://api.petco.com/catalog/v1"
authentication:
type: bearer
token: "$secrets.petco_catalog_token"
resources:
- name: products
path: "/products/{{sku}}"
inputParameters:
- name: sku
in: path
operations:
- name: get-product
method: GET
When prices are updated in SAP, syncs the new prices to the e-commerce platform and POS system, then logs changes in Snowflake for pricing analytics.
naftiko: "0.5"
info:
label: "Product Price Update Sync"
description: "When prices are updated in SAP, syncs the new prices to the e-commerce platform and POS system, then logs changes in Snowflake for pricing analytics."
tags:
- retail
- e-commerce
- sap
- snowflake
capability:
exposes:
- type: mcp
namespace: pricing-ops
port: 8080
tools:
- name: sync-price-update
description: "Sync product price changes from SAP to e-commerce and POS systems."
inputParameters:
- name: sku
in: body
type: string
description: "The product SKU."
- name: new_price
in: body
type: number
description: "The new price."
steps:
- name: update-ecommerce
type: call
call: "ecommerce-api.update-price"
with:
sku: "{{sku}}"
price: "{{new_price}}"
- name: update-pos
type: call
call: "pos-api.update-price"
with:
sku: "{{sku}}"
price: "{{new_price}}"
- name: log-change
type: call
call: "snowflake.insert-record"
with:
table: "price_changes"
data:
sku: "{{sku}}"
new_price: "{{new_price}}"
consumes:
- type: http
namespace: ecommerce-api
baseUri: "https://api.petco.com/ecommerce/v1"
authentication:
type: bearer
token: "$secrets.petco_ecommerce_token"
resources:
- name: products
path: "/products/{{sku}}/price"
inputParameters:
- name: sku
in: path
operations:
- name: update-price
method: PUT
- type: http
namespace: pos-api
baseUri: "https://api.petco.com/pos/v1"
authentication:
type: bearer
token: "$secrets.petco_pos_token"
resources:
- name: products
path: "/products/{{sku}}/price"
inputParameters:
- name: sku
in: path
operations:
- name: update-price
method: PUT
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: insert-record
method: POST
Identifies customers who purchased recalled products, generates refund credits, and sends recall notifications.
naftiko: "0.5"
info:
label: "Product Recall Customer Notification"
description: "Identifies customers who purchased recalled products, generates refund credits, and sends recall notifications."
tags:
- safety
- petco
- salesforce
- sendgrid
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-recall-customer-notification
description: "Identifies customers who purchased recalled products, generates refund credits, and sends recall notifications."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: find-affected
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: update-crm
type: call
call: "salesforce.update-contact"
with:
input: "{{input_id}}"
- name: send-notification
type: call
call: "sendgrid.send-email"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/sobjects/Contact"
operations:
- name: update-contact
method: PATCH
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/mail/send"
operations:
- name: send-email
method: POST
Processes a product return, updates inventory in the warehouse system, refunds via the payment gateway, and sends confirmation to the customer via SendGrid.
naftiko: "0.5"
info:
label: "Return and Exchange Processor"
description: "Processes a product return, updates inventory in the warehouse system, refunds via the payment gateway, and sends confirmation to the customer via SendGrid."
tags:
- e-commerce
- retail
- sendgrid
capability:
exposes:
- type: mcp
namespace: returns-ops
port: 8080
tools:
- name: process-return
description: "Process a product return with inventory update, refund, and customer notification."
inputParameters:
- name: order_id
in: body
type: string
description: "The original order identifier."
- name: sku
in: body
type: string
description: "The product SKU being returned."
- name: reason
in: body
type: string
description: "Return reason."
- name: customer_email
in: body
type: string
description: "The customer email."
steps:
- name: create-return
type: call
call: "ecommerce-api.create-return"
with:
order_id: "{{order_id}}"
sku: "{{sku}}"
reason: "{{reason}}"
- name: update-inventory
type: call
call: "wms-api.receive-return"
with:
sku: "{{sku}}"
quantity: 1
- name: process-refund
type: call
call: "payment-api.issue-refund"
with:
order_id: "{{order_id}}"
amount: "{{create-return.refund_amount}}"
- name: notify-customer
type: call
call: "sendgrid.send-email"
with:
to: "{{customer_email}}"
subject: "Petco Return Confirmed"
body: "Your return for order {{order_id}} has been processed. Refund of ${{create-return.refund_amount}} will be issued."
consumes:
- type: http
namespace: ecommerce-api
baseUri: "https://api.petco.com/ecommerce/v1"
authentication:
type: bearer
token: "$secrets.petco_ecommerce_token"
resources:
- name: returns
path: "/returns"
operations:
- name: create-return
method: POST
- type: http
namespace: wms-api
baseUri: "https://api.petco.com/warehouse/v1"
authentication:
type: bearer
token: "$secrets.petco_wms_token"
resources:
- name: returns
path: "/returns/receive"
operations:
- name: receive-return
method: POST
- type: http
namespace: payment-api
baseUri: "https://api.petco.com/payments/v1"
authentication:
type: bearer
token: "$secrets.petco_payment_token"
resources:
- name: refunds
path: "/refunds"
operations:
- name: issue-refund
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
Looks up a Salesforce customer contact by email. Returns contact details, loyalty tier, and recent case history.
naftiko: "0.5"
info:
label: "Salesforce Customer Lookup"
description: "Looks up a Salesforce customer contact by email. Returns contact details, loyalty tier, and recent case history."
tags:
- retail
- salesforce
capability:
exposes:
- type: mcp
namespace: customer-ops
port: 8080
tools:
- name: get-customer-by-email
description: "Look up a customer by email in Salesforce."
inputParameters:
- name: email
in: body
type: string
description: "The customer email address."
call: "salesforce.query-contact"
with:
email: "{{email}}"
outputParameters:
- name: name
type: string
mapping: "$.records[0].Name"
- name: loyalty_tier
type: string
mapping: "$.records[0].Loyalty_Tier__c"
- name: account_id
type: string
mapping: "$.records[0].AccountId"
consumes:
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/query?q=SELECT+Name,Loyalty_Tier__c,AccountId+FROM+Contact+WHERE+Email='{{email}}'"
inputParameters:
- name: email
in: query
operations:
- name: query-contact
method: GET
Plans seasonal merchandise by analyzing sales trends, generating demand forecasts, and creating purchase orders.
naftiko: "0.5"
info:
label: "Seasonal Merchandise Planning Pipeline"
description: "Plans seasonal merchandise by analyzing sales trends, generating demand forecasts, and creating purchase orders."
tags:
- merchandising
- petco
- snowflake
- sap
capability:
exposes:
- type: mcp
namespace: seasonal
port: 8080
tools:
- name: seasonal-merchandise-planning-pipeline
description: "Plans seasonal merchandise by analyzing sales trends, generating demand forecasts, and creating purchase orders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: analyze-trends
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: create-po
type: call
call: "sap.create-purchase-order"
with:
input: "{{input_id}}"
- name: notify-buyers
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: sap
baseUri: "https://petco-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/purchase-orders"
operations:
- name: create-purchase-order
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Generates seasonal pet safety alerts based on weather conditions and holiday hazards, distributing to customers via email and app notifications.
naftiko: "0.5"
info:
label: "Seasonal Pet Safety Alert Pipeline"
description: "Generates seasonal pet safety alerts based on weather conditions and holiday hazards, distributing to customers via email and app notifications."
tags:
- safety
- petco
- sendgrid
capability:
exposes:
- type: mcp
namespace: safety
port: 8080
tools:
- name: seasonal-pet-safety-alert-pipeline
description: "Generate and distribute seasonal pet safety alerts."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-alerts
type: call
call: "petco.get-safety-alerts"
with:
input: "{{input_id}}"
- name: segment-customers
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: send-alerts
type: call
call: "sendgrid.send-email"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/safety/alerts"
operations:
- name: get-safety-alerts
method: GET
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
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: "/mail/send"
operations:
- name: send-email
method: POST
Looks up a ServiceNow incident by number. Returns state, priority, assigned group, and description.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Looks up a ServiceNow incident by number. Returns state, priority, assigned group, and description."
tags:
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: itsm-ops
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result.state"
- name: priority
type: string
mapping: "$.result.priority"
- name: assigned_group
type: string
mapping: "$.result.assignment_group.display_value"
consumes:
- type: http
namespace: servicenow
baseUri: "https://petco.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: query
operations:
- name: get-incident
method: GET
Executes a SQL query against Petco's Snowflake data warehouse. Returns result rows and metadata.
naftiko: "0.5"
info:
label: "Snowflake Query Runner"
description: "Executes a SQL query against Petco's Snowflake data warehouse. Returns result rows and metadata."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: data-warehouse
port: 8080
tools:
- name: run-snowflake-query
description: "Execute a SQL query against the Petco Snowflake warehouse."
inputParameters:
- name: query
in: body
type: string
description: "The SQL query to execute."
call: "snowflake.execute-query"
with:
statement: "{{query}}"
outputParameters:
- name: rows
type: array
mapping: "$.data"
- name: row_count
type: integer
mapping: "$.resultSetMetaData.numRows"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Pulls brand engagement from Instagram and Facebook, stores metrics in Snowflake, and refreshes the social media dashboard in Tableau.
naftiko: "0.5"
info:
label: "Social Media Engagement Monitor"
description: "Pulls brand engagement from Instagram and Facebook, stores metrics in Snowflake, and refreshes the social media dashboard in Tableau."
tags:
- marketing
- social-media
- instagram
- facebook
- snowflake
- tableau
capability:
exposes:
- type: mcp
namespace: social-analytics
port: 8080
tools:
- name: monitor-social-engagement
description: "Monitor social media engagement across platforms and update dashboards."
inputParameters:
- name: date
in: body
type: string
description: "The reporting date."
steps:
- name: get-meta-metrics
type: call
call: "meta-api.get-page-insights"
with:
date: "{{date}}"
- name: store-metrics
type: call
call: "snowflake.insert-record"
with:
table: "social_engagement"
data:
date: "{{date}}"
ig_engagement: "{{get-meta-metrics.instagram_engagement}}"
fb_engagement: "{{get-meta-metrics.facebook_engagement}}"
- name: refresh-dashboard
type: call
call: "tableau.refresh-extract"
with:
datasource_id: "social_engagement_ds"
consumes:
- type: http
namespace: meta-api
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.meta_access_token"
resources:
- name: insights
path: "/petco/insights"
operations:
- name: get-page-insights
method: GET
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: insert-record
method: POST
- type: http
namespace: tableau
baseUri: "https://tableau.petco.com/api/3.21"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/sites/petco/datasources/{{datasource_id}}/refresh"
inputParameters:
- name: datasource_id
in: path
operations:
- name: refresh-extract
method: POST
Evaluates store associate performance using sales metrics, customer feedback, and training completion data.
naftiko: "0.5"
info:
label: "Store Associate Performance Pipeline"
description: "Evaluates store associate performance using sales metrics, customer feedback, and training completion data."
tags:
- hr
- petco
- workday
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: store-associate-performance-pipeline
description: "Evaluate store associate performance across multiple metrics."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-metrics
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: update-hr
type: call
call: "workday.update-worker"
with:
input: "{{input_id}}"
- name: notify-manager
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/petco/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/workers"
operations:
- name: update-worker
method: PATCH
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Analyzes store foot traffic patterns, correlates with sales data, and generates staffing recommendations.
naftiko: "0.5"
info:
label: "Store Foot Traffic Analysis Pipeline"
description: "Analyzes store foot traffic patterns, correlates with sales data, and generates staffing recommendations."
tags:
- operations
- petco
- google-analytics
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: store-foot-traffic-analysis-pipeline
description: "Analyze foot traffic and generate staffing recommendations."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-traffic
type: call
call: "google-analytics.run-report"
with:
input: "{{input_id}}"
- name: correlate-sales
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: notify-ops
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: google-analytics
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: ga-resource
path: "/properties/runReport"
operations:
- name: run-report
method: POST
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Queries real-time inventory levels for a product at a specific store location. Returns on-hand quantity, reserved quantity, and reorder status.
naftiko: "0.5"
info:
label: "Store Inventory Level Lookup"
description: "Queries real-time inventory levels for a product at a specific store location. Returns on-hand quantity, reserved quantity, and reorder status."
tags:
- retail
- inventory
capability:
exposes:
- type: mcp
namespace: store-inventory
port: 8080
tools:
- name: get-store-inventory
description: "Look up inventory levels for a product at a store location."
inputParameters:
- name: store_id
in: body
type: string
description: "The store location identifier."
- name: sku
in: body
type: string
description: "The product SKU."
call: "inventory-api.get-level"
with:
store_id: "{{store_id}}"
sku: "{{sku}}"
outputParameters:
- name: on_hand
type: integer
mapping: "$.data.on_hand_qty"
- name: reserved
type: integer
mapping: "$.data.reserved_qty"
- name: reorder_status
type: string
mapping: "$.data.reorder_status"
consumes:
- type: http
namespace: inventory-api
baseUri: "https://api.petco.com/inventory/v1"
authentication:
type: bearer
token: "$secrets.petco_inventory_token"
resources:
- name: levels
path: "/stores/{{store_id}}/products/{{sku}}"
inputParameters:
- name: store_id
in: path
- name: sku
in: path
operations:
- name: get-level
method: GET
Analyzes inventory levels across stores, identifies imbalances, and triggers inter-store transfer orders.
naftiko: "0.5"
info:
label: "Store Inventory Rebalancing Pipeline"
description: "Analyzes inventory levels across stores, identifies imbalances, and triggers inter-store transfer orders."
tags:
- inventory
- petco
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: store
port: 8080
tools:
- name: store-inventory-rebalancing-pipeline
description: "Analyzes inventory levels across stores, identifies imbalances, and triggers inter-store transfer orders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: analyze-levels
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: create-transfer
type: call
call: "petco.create-transfer"
with:
input: "{{input_id}}"
- name: notify-ops
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/inventory/transfers"
operations:
- name: create-transfer
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Finds nearby Petco store locations by coordinates or zip code. Returns store details including services offered, hours, and distance.
naftiko: "0.5"
info:
label: "Store Location Finder"
description: "Finds nearby Petco store locations by coordinates or zip code. Returns store details including services offered, hours, and distance."
tags:
- retail
- store-locator
capability:
exposes:
- type: mcp
namespace: store-locator
port: 8080
tools:
- name: find-nearby-stores
description: "Find nearby Petco stores by location."
inputParameters:
- name: zip_code
in: body
type: string
description: "The zip code to search near."
- name: radius_miles
in: body
type: integer
description: "Search radius in miles."
call: "store-api.search-locations"
with:
zip_code: "{{zip_code}}"
radius: "{{radius_miles}}"
outputParameters:
- name: stores
type: array
mapping: "$.data.locations"
- name: total_found
type: integer
mapping: "$.data.total_count"
consumes:
- type: http
namespace: store-api
baseUri: "https://api.petco.com/stores/v1"
authentication:
type: bearer
token: "$secrets.petco_store_token"
resources:
- name: locations
path: "/search?zip={{zip_code}}&radius={{radius}}"
inputParameters:
- name: zip_code
in: query
- name: radius
in: query
operations:
- name: search-locations
method: GET
Coordinates new store openings by provisioning systems, scheduling staff, and setting up inventory.
naftiko: "0.5"
info:
label: "Store Opening Checklist Orchestrator"
description: "Coordinates new store openings by provisioning systems, scheduling staff, and setting up inventory."
tags:
- operations
- petco
- servicenow
- workday
capability:
exposes:
- type: mcp
namespace: store
port: 8080
tools:
- name: store-opening-checklist-orchestrator
description: "Coordinates new store openings by provisioning systems, scheduling staff, and setting up inventory."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: provision-store
type: call
call: "petco.create-store"
with:
input: "{{input_id}}"
- name: create-tasks
type: call
call: "servicenow.create-task"
with:
input: "{{input_id}}"
- name: schedule-staff
type: call
call: "workday.create-schedule"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/stores"
operations:
- name: create-store
method: POST
- type: http
namespace: servicenow
baseUri: "https://petco.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/table/sc_task"
operations:
- name: create-task
method: POST
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/petco/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/scheduling"
operations:
- name: create-schedule
method: POST
Audits store planogram compliance, identifies deviations, and creates corrective action tasks.
naftiko: "0.5"
info:
label: "Store Planogram Compliance Pipeline"
description: "Audits store planogram compliance, identifies deviations, and creates corrective action tasks."
tags:
- merchandising
- petco
- jira
capability:
exposes:
- type: mcp
namespace: merchandising
port: 8080
tools:
- name: store-planogram-compliance-pipeline
description: "Audit planogram compliance and create corrective actions."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: check-compliance
type: call
call: "petco.audit-planogram"
with:
input: "{{input_id}}"
- name: create-tasks
type: call
call: "jira.create-issue"
with:
input: "{{input_id}}"
- name: notify
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/stores/planogram-audit"
operations:
- name: audit-planogram
method: POST
- type: http
namespace: jira
baseUri: "https://petco.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Manages store safety inspections by scheduling audits, recording findings, and tracking corrective actions.
naftiko: "0.5"
info:
label: "Store Safety Inspection Pipeline"
description: "Manages store safety inspections by scheduling audits, recording findings, and tracking corrective actions."
tags:
- safety
- petco
- servicenow
- sharepoint
capability:
exposes:
- type: mcp
namespace: store
port: 8080
tools:
- name: store-safety-inspection-pipeline
description: "Manages store safety inspections by scheduling audits, recording findings, and tracking corrective actions."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: schedule-audit
type: call
call: "servicenow.create-task"
with:
input: "{{input_id}}"
- name: record-findings
type: call
call: "sharepoint.upload-file"
with:
input: "{{input_id}}"
- name: track-actions
type: call
call: "jira.create-issue"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://petco.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/table/sc_task"
operations:
- name: create-task
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: sharepoint-resource
path: "/sites/drives/root/children"
operations:
- name: upload-file
method: PUT
- type: http
namespace: jira
baseUri: "https://petco.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/issue"
operations:
- name: create-issue
method: POST
Curates personalized pet subscription boxes based on pet profiles, preferences, and seasonal themes.
naftiko: "0.5"
info:
label: "Subscription Box Curation Pipeline"
description: "Curates personalized pet subscription boxes based on pet profiles, preferences, and seasonal themes."
tags:
- subscriptions
- petco
- snowflake
- sendgrid
capability:
exposes:
- type: mcp
namespace: subscription
port: 8080
tools:
- name: subscription-box-curation-pipeline
description: "Curates personalized pet subscription boxes based on pet profiles, preferences, and seasonal themes."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-preferences
type: call
call: "petco.get-preferences"
with:
input: "{{input_id}}"
- name: curate-box
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: send-preview
type: call
call: "sendgrid.send-email"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/customers/{{input_id}}/preferences"
operations:
- name: get-preferences
method: GET
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
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: "/mail/send"
operations:
- name: send-email
method: POST
Audits supplier sustainability practices, scores environmental compliance, and tracks remediation actions.
naftiko: "0.5"
info:
label: "Supplier Sustainability Audit Pipeline"
description: "Audits supplier sustainability practices, scores environmental compliance, and tracks remediation actions."
tags:
- sustainability
- petco
- jira
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: supplier-sustainability-audit-pipeline
description: "Audit supplier sustainability and track remediation."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-audit-data
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: create-actions
type: call
call: "jira.create-issue"
with:
input: "{{input_id}}"
- name: notify-procurement
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: jira
baseUri: "https://petco.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Responds to supply chain disruptions by identifying affected products, finding alternatives, and notifying stakeholders.
naftiko: "0.5"
info:
label: "Supply Chain Disruption Response"
description: "Responds to supply chain disruptions by identifying affected products, finding alternatives, and notifying stakeholders."
tags:
- supply-chain
- petco
- slack
- jira
capability:
exposes:
- type: mcp
namespace: supply
port: 8080
tools:
- name: supply-chain-disruption-response
description: "Responds to supply chain disruptions by identifying affected products, finding alternatives, and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: identify-impact
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: find-alternatives
type: call
call: "petco.search-alternatives"
with:
input: "{{input_id}}"
- name: create-incident
type: call
call: "jira.create-issue"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/products/alternatives"
operations:
- name: search-alternatives
method: POST
- type: http
namespace: jira
baseUri: "https://petco.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/issue"
operations:
- name: create-issue
method: POST
Looks up a SAP purchase order for supply chain replenishment. Returns order status, vendor, expected delivery, and line items.
naftiko: "0.5"
info:
label: "Supply Chain Purchase Order Status"
description: "Looks up a SAP purchase order for supply chain replenishment. Returns order status, vendor, expected delivery, and line items."
tags:
- supply-chain
- sap
capability:
exposes:
- type: mcp
namespace: supply-chain-ops
port: 8080
tools:
- name: get-po-status
description: "Look up a supply chain purchase order status from SAP."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: status
type: string
mapping: "$.d.OverallStatus"
- name: vendor
type: string
mapping: "$.d.Supplier.CompanyName"
- name: delivery_date
type: string
mapping: "$.d.DeliveryDate"
- name: total_value
type: string
mapping: "$.d.TotalAmount"
consumes:
- type: http
namespace: sap
baseUri: "https://petco.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
Triggers a Tableau datasource extract refresh. Used to update dashboards after data pipeline completions.
naftiko: "0.5"
info:
label: "Tableau Dashboard Refresh"
description: "Triggers a Tableau datasource extract refresh. Used to update dashboards after data pipeline completions."
tags:
- analytics
- tableau
capability:
exposes:
- type: mcp
namespace: dashboard-ops
port: 8080
tools:
- name: refresh-tableau-dashboard
description: "Trigger a Tableau datasource extract refresh."
inputParameters:
- name: datasource_id
in: body
type: string
description: "The Tableau datasource identifier."
call: "tableau.refresh-extract"
with:
datasource_id: "{{datasource_id}}"
consumes:
- type: http
namespace: tableau
baseUri: "https://tableau.petco.com/api/3.21"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/sites/petco/datasources/{{datasource_id}}/refresh"
inputParameters:
- name: datasource_id
in: path
operations:
- name: refresh-extract
method: POST
Validates vendor invoices against SAP purchase orders, creates payment requests in Oracle, and notifies the accounts payable team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Vendor Invoice Processor"
description: "Validates vendor invoices against SAP purchase orders, creates payment requests in Oracle, and notifies the accounts payable team in Microsoft Teams."
tags:
- supply-chain
- finance
- sap
- oracle
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: vendor-payments
port: 8080
tools:
- name: process-vendor-invoice
description: "Validate and process a vendor invoice against the purchase order."
inputParameters:
- name: invoice_number
in: body
type: string
description: "The vendor invoice number."
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
- name: amount
in: body
type: number
description: "The invoice amount."
steps:
- name: validate-po
type: call
call: "sap.get-po"
with:
po_number: "{{po_number}}"
- name: create-payment
type: call
call: "oracle.create-payment-request"
with:
invoice_number: "{{invoice_number}}"
po_number: "{{po_number}}"
amount: "{{amount}}"
- name: notify-ap
type: call
call: "msteams.send-message"
with:
channel_id: "accounts-payable"
text: "Invoice {{invoice_number}} for ${{amount}} validated against PO {{po_number}}. Payment: {{create-payment.request_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://petco.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
- type: http
namespace: oracle
baseUri: "https://petco.oraclecloud.com/fscmRestApi/resources/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: payments
path: "/payablesInvoices"
operations:
- name: create-payment-request
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Optimizes product markdowns by analyzing sales velocity, inventory aging, and margin targets.
naftiko: "0.5"
info:
label: "Vendor Markdown Optimization Pipeline"
description: "Optimizes product markdowns by analyzing sales velocity, inventory aging, and margin targets."
tags:
- pricing
- petco
- snowflake
capability:
exposes:
- type: mcp
namespace: pricing
port: 8080
tools:
- name: vendor-markdown-optimization-pipeline
description: "Optimize product markdowns based on sales velocity and inventory aging."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: analyze-inventory
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: apply-markdowns
type: call
call: "petco.update-pricing"
with:
input: "{{input_id}}"
- name: notify-merch
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/products/pricing"
operations:
- name: update-pricing
method: PATCH
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Onboards new vendors by collecting certifications, running compliance checks, and provisioning supply chain access.
naftiko: "0.5"
info:
label: "Vendor Onboarding Compliance Pipeline"
description: "Onboards new vendors by collecting certifications, running compliance checks, and provisioning supply chain access."
tags:
- vendors
- petco
- docusign
- servicenow
capability:
exposes:
- type: mcp
namespace: vendor
port: 8080
tools:
- name: vendor-onboarding-compliance-pipeline
description: "Onboards new vendors by collecting certifications, running compliance checks, and provisioning supply chain access."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: send-documents
type: call
call: "docusign.create-envelope"
with:
input: "{{input_id}}"
- name: check-compliance
type: call
call: "petco.check-vendor-compliance"
with:
input: "{{input_id}}"
- name: create-access
type: call
call: "servicenow.create-request"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: docusign
baseUri: "https://na4.docusign.net/restapi/v2.1"
authentication:
type: bearer
token: "$secrets.docusign_token"
resources:
- name: docusign-resource
path: "/accounts/envelopes"
operations:
- name: create-envelope
method: POST
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/vendors/compliance"
operations:
- name: check-vendor-compliance
method: POST
- type: http
namespace: servicenow
baseUri: "https://petco.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/table/sc_request"
operations:
- name: create-request
method: POST
Reviews vendor performance metrics, generates scorecards, and distributes to procurement team.
naftiko: "0.5"
info:
label: "Vendor Performance Review Pipeline"
description: "Reviews vendor performance metrics, generates scorecards, and distributes to procurement team."
tags:
- vendors
- petco
- snowflake
- tableau
capability:
exposes:
- type: mcp
namespace: vendor
port: 8080
tools:
- name: vendor-performance-review-pipeline
description: "Reviews vendor performance metrics, generates scorecards, and distributes to procurement team."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-metrics
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: refresh-scorecard
type: call
call: "tableau.refresh-workbook"
with:
input: "{{input_id}}"
- name: notify-procurement
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: tableau
baseUri: "https://tableau.petco.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: tableau-resource
path: "/sites/default/workbooks/refresh"
operations:
- name: refresh-workbook
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Tracks inbound vendor shipments from the supply chain system, updates receiving status in the warehouse management system, and notifies the distribution team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Vendor Shipment Tracker"
description: "Tracks inbound vendor shipments from the supply chain system, updates receiving status in the warehouse management system, and notifies the distribution team via Microsoft Teams."
tags:
- supply-chain
- logistics
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: shipment-tracking
port: 8080
tools:
- name: track-vendor-shipment
description: "Track an inbound vendor shipment and update receiving systems."
inputParameters:
- name: shipment_id
in: body
type: string
description: "The vendor shipment identifier."
- name: warehouse_id
in: body
type: string
description: "The destination warehouse identifier."
steps:
- name: get-shipment-status
type: call
call: "logistics-api.get-shipment"
with:
shipment_id: "{{shipment_id}}"
- name: update-receiving
type: call
call: "wms-api.update-inbound"
with:
shipment_id: "{{shipment_id}}"
warehouse_id: "{{warehouse_id}}"
eta: "{{get-shipment-status.eta}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "distribution-ops"
text: "Shipment {{shipment_id}} status: {{get-shipment-status.status}}. ETA to warehouse {{warehouse_id}}: {{get-shipment-status.eta}}"
consumes:
- type: http
namespace: logistics-api
baseUri: "https://api.petco.com/logistics/v1"
authentication:
type: bearer
token: "$secrets.petco_logistics_token"
resources:
- name: shipments
path: "/shipments/{{shipment_id}}"
inputParameters:
- name: shipment_id
in: path
operations:
- name: get-shipment
method: GET
- type: http
namespace: wms-api
baseUri: "https://api.petco.com/warehouse/v1"
authentication:
type: bearer
token: "$secrets.petco_wms_token"
resources:
- name: inbound
path: "/inbound/{{shipment_id}}"
inputParameters:
- name: shipment_id
in: path
operations:
- name: update-inbound
method: PUT
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Books a veterinary appointment at a Petco Vetco clinic, creates a patient record if needed, sends confirmation via SendGrid, and logs the appointment in Salesforce.
naftiko: "0.5"
info:
label: "Vet Appointment Scheduler"
description: "Books a veterinary appointment at a Petco Vetco clinic, creates a patient record if needed, sends confirmation via SendGrid, and logs the appointment in Salesforce."
tags:
- vet-services
- salesforce
- sendgrid
capability:
exposes:
- type: mcp
namespace: vet-scheduling
port: 8080
tools:
- name: book-vet-appointment
description: "Book a vet appointment with patient record creation and confirmation."
inputParameters:
- name: clinic_id
in: body
type: string
description: "The Vetco clinic identifier."
- name: pet_name
in: body
type: string
description: "The pet name."
- name: pet_type
in: body
type: string
description: "Type of pet (dog, cat, bird, reptile)."
- name: owner_email
in: body
type: string
description: "The pet owner email."
- name: service_type
in: body
type: string
description: "Type of vet service (wellness-exam, vaccination, dental, grooming)."
- name: preferred_date
in: body
type: string
description: "Preferred appointment date."
steps:
- name: check-availability
type: call
call: "vet-api.get-availability"
with:
clinic_id: "{{clinic_id}}"
date: "{{preferred_date}}"
service_type: "{{service_type}}"
- name: create-appointment
type: call
call: "vet-api.book-appointment"
with:
clinic_id: "{{clinic_id}}"
slot_id: "{{check-availability.next_available_slot}}"
pet_name: "{{pet_name}}"
pet_type: "{{pet_type}}"
service: "{{service_type}}"
- name: log-in-salesforce
type: call
call: "salesforce.create-record"
with:
object: "Vet_Appointment__c"
data:
clinic: "{{clinic_id}}"
pet_name: "{{pet_name}}"
service: "{{service_type}}"
appointment_id: "{{create-appointment.appointment_id}}"
- name: send-confirmation
type: call
call: "sendgrid.send-email"
with:
to: "{{owner_email}}"
subject: "Petco Vet Appointment Confirmed"
body: "Appointment for {{pet_name}} ({{service_type}}) at clinic {{clinic_id}} on {{create-appointment.date}} at {{create-appointment.time}}."
consumes:
- type: http
namespace: vet-api
baseUri: "https://api.petco.com/vetco/v1"
authentication:
type: bearer
token: "$secrets.petco_vet_token"
resources:
- name: availability
path: "/clinics/{{clinic_id}}/availability"
inputParameters:
- name: clinic_id
in: path
operations:
- name: get-availability
method: GET
- name: appointments
path: "/appointments"
operations:
- name: book-appointment
method: POST
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: records
path: "/sobjects/{{object}}"
inputParameters:
- name: object
in: path
operations:
- name: create-record
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
Processes veterinary referrals between Petco Vetco clinics and specialist hospitals, tracking referral outcomes.
naftiko: "0.5"
info:
label: "Vet Clinic Referral Pipeline"
description: "Processes veterinary referrals between Petco Vetco clinics and specialist hospitals, tracking referral outcomes."
tags:
- vet
- petco
- servicenow
- sendgrid
capability:
exposes:
- type: mcp
namespace: vet
port: 8080
tools:
- name: vet-clinic-referral-pipeline
description: "Processes veterinary referrals between Petco Vetco clinics and specialist hospitals, tracking referral outcomes."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: create-referral
type: call
call: "petco.create-referral"
with:
input: "{{input_id}}"
- name: track-referral
type: call
call: "servicenow.create-case"
with:
input: "{{input_id}}"
- name: notify-pet-parent
type: call
call: "sendgrid.send-email"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/vet/referrals"
operations:
- name: create-referral
method: POST
- type: http
namespace: servicenow
baseUri: "https://petco.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/table/sn_customerservice_case"
operations:
- name: create-case
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: "/mail/send"
operations:
- name: send-email
method: POST
Retrieves the daily appointment schedule for a Vetco clinic. Returns booked appointments, available slots, and service types.
naftiko: "0.5"
info:
label: "Vet Clinic Schedule Lookup"
description: "Retrieves the daily appointment schedule for a Vetco clinic. Returns booked appointments, available slots, and service types."
tags:
- vet-services
- scheduling
capability:
exposes:
- type: mcp
namespace: clinic-scheduling
port: 8080
tools:
- name: get-clinic-schedule
description: "Look up the daily appointment schedule for a Vetco clinic."
inputParameters:
- name: clinic_id
in: body
type: string
description: "The Vetco clinic identifier."
- name: date
in: body
type: string
description: "The schedule date."
call: "vet-api.get-schedule"
with:
clinic_id: "{{clinic_id}}"
date: "{{date}}"
outputParameters:
- name: booked_appointments
type: array
mapping: "$.data.appointments"
- name: available_slots
type: integer
mapping: "$.data.available_slots"
consumes:
- type: http
namespace: vet-api
baseUri: "https://api.petco.com/vetco/v1"
authentication:
type: bearer
token: "$secrets.petco_vet_token"
resources:
- name: schedules
path: "/clinics/{{clinic_id}}/schedule/{{date}}"
inputParameters:
- name: clinic_id
in: path
- name: date
in: path
operations:
- name: get-schedule
method: GET
Processes Vital Care loyalty program enrollments, provisions membership benefits, and sends welcome packages.
naftiko: "0.5"
info:
label: "Vital Care Enrollment Orchestrator"
description: "Processes Vital Care loyalty program enrollments, provisions membership benefits, and sends welcome packages."
tags:
- loyalty
- petco
- salesforce
- sendgrid
capability:
exposes:
- type: mcp
namespace: vital
port: 8080
tools:
- name: vital-care-enrollment-orchestrator
description: "Processes Vital Care loyalty program enrollments, provisions membership benefits, and sends welcome packages."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: create-membership
type: call
call: "petco.create-member"
with:
input: "{{input_id}}"
- name: sync-crm
type: call
call: "salesforce.create-contact"
with:
input: "{{input_id}}"
- name: send-welcome
type: call
call: "sendgrid.send-email"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/loyalty/members"
operations:
- name: create-member
method: POST
- type: http
namespace: salesforce
baseUri: "https://petco.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/sobjects/Contact"
operations:
- name: create-contact
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: "/mail/send"
operations:
- name: send-email
method: POST
Forecasts warehouse capacity needs by analyzing seasonal demand, current utilization, and planned promotions.
naftiko: "0.5"
info:
label: "Warehouse Capacity Forecast Pipeline"
description: "Forecasts warehouse capacity needs by analyzing seasonal demand, current utilization, and planned promotions."
tags:
- supply-chain
- petco
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: warehouse
port: 8080
tools:
- name: warehouse-capacity-forecast-pipeline
description: "Forecasts warehouse capacity needs by analyzing seasonal demand, current utilization, and planned promotions."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: get-utilization
type: call
call: "snowflake.run-query"
with:
input: "{{input_id}}"
- name: forecast-demand
type: call
call: "petco.run-forecast"
with:
input: "{{input_id}}"
- name: notify-logistics
type: call
call: "slack.post-message"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: petco
baseUri: "https://api.petco.com/v2"
authentication:
type: bearer
token: "$secrets.petco_api_token"
resources:
- name: petco-resource
path: "/supply-chain/forecast"
operations:
- name: run-forecast
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Queries warehouse capacity and utilization from the WMS, stores daily snapshots in Snowflake, and refreshes the supply chain dashboard in Tableau.
naftiko: "0.5"
info:
label: "Warehouse Capacity Report"
description: "Queries warehouse capacity and utilization from the WMS, stores daily snapshots in Snowflake, and refreshes the supply chain dashboard in Tableau."
tags:
- supply-chain
- snowflake
- tableau
capability:
exposes:
- type: mcp
namespace: warehouse-analytics
port: 8080
tools:
- name: report-warehouse-capacity
description: "Generate a warehouse capacity and utilization report."
inputParameters:
- name: warehouse_id
in: body
type: string
description: "The warehouse identifier."
steps:
- name: get-capacity
type: call
call: "wms-api.get-capacity"
with:
warehouse_id: "{{warehouse_id}}"
- name: store-snapshot
type: call
call: "snowflake.insert-record"
with:
table: "warehouse_capacity"
data:
warehouse_id: "{{warehouse_id}}"
utilization_pct: "{{get-capacity.utilization_pct}}"
available_slots: "{{get-capacity.available_slots}}"
- name: refresh-dashboard
type: call
call: "tableau.refresh-extract"
with:
datasource_id: "warehouse_capacity_ds"
consumes:
- type: http
namespace: wms-api
baseUri: "https://api.petco.com/warehouse/v1"
authentication:
type: bearer
token: "$secrets.petco_wms_token"
resources:
- name: capacity
path: "/warehouses/{{warehouse_id}}/capacity"
inputParameters:
- name: warehouse_id
in: path
operations:
- name: get-capacity
method: GET
- type: http
namespace: snowflake
baseUri: "https://petco.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: insert-record
method: POST
- type: http
namespace: tableau
baseUri: "https://tableau.petco.com/api/3.21"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/sites/petco/datasources/{{datasource_id}}/refresh"
inputParameters:
- name: datasource_id
in: path
operations:
- name: refresh-extract
method: POST