Sephora Capabilities
Naftiko 0.5 capability definitions for Sephora - 100 capabilities showing integration workflows and service orchestrations.
Detects abandoned carts in SAP Commerce Cloud, enriches with customer data from Salesforce, and sends a personalized recovery email via Salesforce Marketing Cloud.
naftiko: "0.5"
info:
label: "Abandoned Cart Recovery Pipeline"
description: "Detects abandoned carts in SAP Commerce Cloud, enriches with customer data from Salesforce, and sends a personalized recovery email via Salesforce Marketing Cloud."
tags:
- e-commerce
- marketing
- sap-commerce-cloud
- salesforce
- salesforce-marketing-cloud
capability:
exposes:
- type: mcp
namespace: cart-recovery
port: 8080
tools:
- name: recover-abandoned-cart
description: "Given a cart ID and customer ID, enrich and send recovery email."
inputParameters:
- name: cart_id
in: body
type: string
description: "The abandoned cart ID."
- name: customer_id
in: body
type: string
description: "The Salesforce customer ID."
steps:
- name: get-cart
type: call
call: "sapcc.get-cart"
with:
cart_id: "{{cart_id}}"
- name: get-customer
type: call
call: "salesforce.get-customer"
with:
customer_id: "{{customer_id}}"
- name: send-recovery-email
type: call
call: "sfmc.send-triggered-email"
with:
template_id: "abandoned_cart_recovery"
subscriber_key: "{{customer_id}}"
data: "customer_name={{get-customer.name}},cart_total={{get-cart.total}},top_item={{get-cart.items[0].name}},loyalty_tier={{get-customer.loyalty_tier}}"
consumes:
- type: http
namespace: sapcc
baseUri: "https://api.sephora.com/sap-commerce/v2"
authentication:
type: bearer
token: "$secrets.sapcc_token"
resources:
- name: carts
path: "/carts/{{cart_id}}"
inputParameters:
- name: cart_id
in: path
operations:
- name: get-cart
method: GET
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: customers
path: "/sobjects/Account/{{customer_id}}"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-customer
method: GET
- type: http
namespace: sfmc
baseUri: "https://sephora.rest.marketingcloudapis.com/messaging/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: triggered-emails
path: "/messageDefinitionSends/{{template_id}}/send"
inputParameters:
- name: template_id
in: path
operations:
- name: send-triggered-email
method: POST
Retrieves latest build status for an Azure DevOps pipeline.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status"
description: "Retrieves latest build status for an Azure DevOps pipeline."
tags:
- ci-cd
- engineering
- azure-devops
capability:
exposes:
- type: mcp
namespace: devops-ci
port: 8080
tools:
- name: get-build-status
description: "Look up latest Azure DevOps build."
inputParameters:
- name: project
in: body
type: string
description: "Project name."
- name: pipeline_id
in: body
type: string
description: "Pipeline ID."
call: "azdevops.get-latest-build"
with:
project: "{{project}}"
pipeline_id: "{{pipeline_id}}"
consumes:
- type: http
namespace: azdevops
baseUri: "https://dev.azure.com/sephora"
authentication:
type: basic
username: "$secrets.azdevops_user"
password: "$secrets.azdevops_pat"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
inputParameters:
- name: project
in: path
- name: pipeline_id
in: path
operations:
- name: get-latest-build
method: GET
Retrieves a secret from Azure Key Vault.
naftiko: "0.5"
info:
label: "Azure Key Vault Secret Retrieval"
description: "Retrieves a secret from Azure Key Vault."
tags: [security, credentials, azure-key-vault]
capability:
exposes:
- type: mcp
namespace: secret-mgmt
port: 8080
tools:
- name: get-secret
description: "Retrieve a secret from Azure Key Vault."
inputParameters:
- name: secret_name
in: body
type: string
description: "Secret name."
call: "keyvault.get-secret"
with:
secret_name: "{{secret_name}}"
consumes:
- type: http
namespace: keyvault
baseUri: "https://sephora-vault.vault.azure.net"
authentication:
type: bearer
token: "$secrets.azure_keyvault_token"
resources:
- name: secrets
path: "/secrets/{{secret_name}}?api-version=7.4"
inputParameters:
- name: secret_name
in: path
operations:
- name: get-secret
method: GET
Orchestrates beauty advisor performance pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Beauty Advisor Performance Pipeline"
description: "Orchestrates beauty advisor performance pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- beauty
- sephora
- jira
- teams
- sendgrid
capability:
exposes:
- type: mcp
namespace: beauty
port: 8080
tools:
- name: beauty-advisor-performance-pipeline
description: "Orchestrates beauty advisor performance pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "teams.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sendgrid.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/beauty"
operations:
- name: execute-1
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/beauty"
operations:
- name: execute-2
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/beauty"
operations:
- name: execute-3
method: POST
Orchestrates beauty box subscription pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Beauty Box Subscription Pipeline"
description: "Orchestrates beauty box subscription pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- beauty
- sephora
- jira
- teams
- sendgrid
capability:
exposes:
- type: mcp
namespace: beauty
port: 8080
tools:
- name: beauty-box-subscription-pipeline
description: "Orchestrates beauty box subscription pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "teams.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sendgrid.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/beauty"
operations:
- name: execute-1
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/beauty"
operations:
- name: execute-2
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/beauty"
operations:
- name: execute-3
method: POST
Orchestrates beauty class enrollment pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Beauty Class Enrollment Pipeline"
description: "Orchestrates beauty class enrollment pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- beauty
- sephora
- sephora
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: beauty
port: 8080
tools:
- name: beauty-class-enrollment-pipeline
description: "Orchestrates beauty class enrollment pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sephora.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: sephora-resource
path: "/api/beauty"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/beauty"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/beauty"
operations:
- name: execute-3
method: POST
Retrieves beauty class schedule lookup data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Beauty Class Schedule Lookup"
description: "Retrieves beauty class schedule lookup data from the Sephora beauty retail systems."
tags:
- beauty
- sephora
- lookup
capability:
exposes:
- type: mcp
namespace: beauty
port: 8080
tools:
- name: beauty-class-schedule-lookup
description: "Retrieves beauty class schedule lookup data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.beauty-class-schedule-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/beauty/class/schedule/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: beauty-class-schedule-lookup
method: GET
Retrieves beauty insider points lookup data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Beauty Insider Points Lookup"
description: "Retrieves beauty insider points lookup data from the Sephora beauty retail systems."
tags:
- beauty
- sephora
- lookup
capability:
exposes:
- type: mcp
namespace: beauty
port: 8080
tools:
- name: beauty-insider-points-lookup
description: "Retrieves beauty insider points lookup data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.beauty-insider-points-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/beauty/insider/points/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: beauty-insider-points-lookup
method: GET
Orchestrates beauty insider tier evaluation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Beauty Insider Tier Evaluation Pipeline"
description: "Orchestrates beauty insider tier evaluation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- beauty
- sephora
- sephora
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: beauty
port: 8080
tools:
- name: beauty-insider-tier-evaluation-pipeline
description: "Orchestrates beauty insider tier evaluation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sephora.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: sephora-resource
path: "/api/beauty"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/beauty"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/beauty"
operations:
- name: execute-3
method: POST
Orchestrates beauty tech innovation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Beauty Tech Innovation Pipeline"
description: "Orchestrates beauty tech innovation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- beauty
- sephora
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: beauty
port: 8080
tools:
- name: beauty-tech-innovation-pipeline
description: "Orchestrates beauty tech innovation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/beauty"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/beauty"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/beauty"
operations:
- name: execute-3
method: POST
Orchestrates beauty trend analysis pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Beauty Trend Analysis Pipeline"
description: "Orchestrates beauty trend analysis pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- beauty
- sephora
- jira
- teams
- sendgrid
capability:
exposes:
- type: mcp
namespace: beauty
port: 8080
tools:
- name: beauty-trend-analysis-pipeline
description: "Orchestrates beauty trend analysis pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "teams.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sendgrid.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/beauty"
operations:
- name: execute-1
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/beauty"
operations:
- name: execute-2
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/beauty"
operations:
- name: execute-3
method: POST
Orchestrates brand launch coordination pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Brand Launch Coordination Pipeline"
description: "Orchestrates brand launch coordination pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- brand
- sephora
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: brand
port: 8080
tools:
- name: brand-launch-coordination-pipeline
description: "Orchestrates brand launch coordination pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/brand"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/brand"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/brand"
operations:
- name: execute-3
method: POST
Retrieves brand page catalog lookup data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Brand Page Catalog Lookup"
description: "Retrieves brand page catalog lookup data from the Sephora beauty retail systems."
tags:
- brand
- sephora
- lookup
capability:
exposes:
- type: mcp
namespace: brand
port: 8080
tools:
- name: brand-page-catalog-lookup
description: "Retrieves brand page catalog lookup data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.brand-page-catalog-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/brand/page/catalog/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: brand-page-catalog-lookup
method: GET
Orchestrates brand performance reporting pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Brand Performance Reporting Pipeline"
description: "Orchestrates brand performance reporting pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- brand
- sephora
- datadog
- sephora
- salesforce
capability:
exposes:
- type: mcp
namespace: brand
port: 8080
tools:
- name: brand-performance-reporting-pipeline
description: "Orchestrates brand performance reporting pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sephora.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "salesforce.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/brand"
operations:
- name: execute-1
method: POST
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: sephora-resource
path: "/api/brand"
operations:
- name: execute-2
method: POST
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/brand"
operations:
- name: execute-3
method: POST
Queries Cloudflare CDN performance for Sephora web properties.
naftiko: "0.5"
info:
label: "Cloudflare CDN Performance"
description: "Queries Cloudflare CDN performance for Sephora web properties."
tags: [infrastructure, cdn, cloudflare]
capability:
exposes:
- type: mcp
namespace: cdn
port: 8080
tools:
- name: get-cdn-performance
description: "Retrieve Cloudflare zone analytics."
inputParameters:
- name: zone_id
in: body
type: string
description: "Cloudflare zone ID."
call: "cloudflare.get-zone-analytics"
with:
zone_id: "{{zone_id}}"
consumes:
- type: http
namespace: cloudflare
baseUri: "https://api.cloudflare.com/client/v4"
authentication:
type: bearer
token: "$secrets.cloudflare_token"
resources:
- name: analytics
path: "/zones/{{zone_id}}/analytics/dashboard"
inputParameters:
- name: zone_id
in: path
operations:
- name: get-zone-analytics
method: GET
Searches Confluence for retail operations and brand documentation.
naftiko: "0.5"
info:
label: "Confluence Documentation Search"
description: "Searches Confluence for retail operations and brand documentation."
tags:
- documentation
- knowledge-management
- confluence
capability:
exposes:
- type: mcp
namespace: knowledge
port: 8080
tools:
- name: search-docs
description: "Search Confluence for documentation."
inputParameters:
- name: query
in: body
type: string
description: "The search keyword."
call: "confluence.search"
with:
query: "{{query}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://sephora.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: search
path: "/search?cql=type=page AND text~\"{{query}}\""
inputParameters:
- name: query
in: path
operations:
- name: search
method: GET
Orchestrates customer accessibility pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Accessibility Pipeline"
description: "Orchestrates customer accessibility pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- sephora
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-accessibility-pipeline
description: "Orchestrates customer accessibility pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Retrieves customer beauty profile lookup data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Customer Beauty Profile Lookup"
description: "Retrieves customer beauty profile lookup data from the Sephora beauty retail systems."
tags:
- customer
- sephora
- lookup
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-beauty-profile-lookup
description: "Retrieves customer beauty profile lookup data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.customer-beauty-profile-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/customer/beauty/profile/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: customer-beauty-profile-lookup
method: GET
Orchestrates customer birthday reward pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Birthday Reward Pipeline"
description: "Orchestrates customer birthday reward pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- sephora
- slack
- jira
- teams
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-birthday-reward-pipeline
description: "Orchestrates customer birthday reward pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Orchestrates customer cross sell pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Cross Sell Pipeline"
description: "Orchestrates customer cross sell pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- sephora
- sendgrid
- shopify
- datadog
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-cross-sell-pipeline
description: "Orchestrates customer cross sell pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sendgrid.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "shopify.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: shopify
baseUri: "https://sephora.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_token"
resources:
- name: shopify-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Orchestrates customer data enrichment pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Data Enrichment Pipeline"
description: "Orchestrates customer data enrichment pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- sephora
- sephora
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-data-enrichment-pipeline
description: "Orchestrates customer data enrichment pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sephora.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: sephora-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Orchestrates customer gifting experience pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Gifting Experience Pipeline"
description: "Orchestrates customer gifting experience pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- sephora
- slack
- jira
- teams
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-gifting-experience-pipeline
description: "Orchestrates customer gifting experience pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Orchestrates customer loyalty program analytics pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Loyalty Program Analytics Pipeline"
description: "Orchestrates customer loyalty program analytics pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- sephora
- sendgrid
- shopify
- datadog
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-loyalty-program-analytics-pipeline
description: "Orchestrates customer loyalty program analytics pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sendgrid.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "shopify.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: shopify
baseUri: "https://sephora.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_token"
resources:
- name: shopify-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
When a Beauty Insider member reaches a reward threshold in Salesforce, updates their tier, sends a personalized reward email via Salesforce Marketing Cloud, and notifies the loyalty program team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Customer Loyalty Reward Orchestrator"
description: "When a Beauty Insider member reaches a reward threshold in Salesforce, updates their tier, sends a personalized reward email via Salesforce Marketing Cloud, and notifies the loyalty program team via Microsoft Teams."
tags:
- loyalty
- customer-engagement
- salesforce
- salesforce-marketing-cloud
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: loyalty-rewards
port: 8080
tools:
- name: process-loyalty-reward
description: "Given a customer ID and new tier, update Salesforce, send reward email, and notify the team."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Salesforce customer record ID."
- name: new_tier
in: body
type: string
description: "The new Beauty Insider tier (Insider, VIB, Rouge)."
- name: points_balance
in: body
type: number
description: "Current points balance."
steps:
- name: get-customer
type: call
call: "salesforce.get-customer"
with:
customer_id: "{{customer_id}}"
- name: update-tier
type: call
call: "salesforce.update-customer-tier"
with:
customer_id: "{{customer_id}}"
new_tier: "{{new_tier}}"
- name: send-reward-email
type: call
call: "sfmc.send-triggered-email"
with:
template_id: "loyalty_tier_upgrade"
subscriber_key: "{{customer_id}}"
data: "customer_name={{get-customer.name}},old_tier={{get-customer.loyalty_tier}},new_tier={{new_tier}},points={{points_balance}}"
- name: notify-loyalty-team
type: call
call: "msteams.send-message"
with:
channel_id: "loyalty_program"
text: "Loyalty Upgrade: {{get-customer.name}} moved from {{get-customer.loyalty_tier}} to {{new_tier}}. Points: {{points_balance}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: customers
path: "/sobjects/Account/{{customer_id}}"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-customer
method: GET
- name: update-customer-tier
method: PATCH
- type: http
namespace: sfmc
baseUri: "https://sephora.rest.marketingcloudapis.com/messaging/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: triggered-emails
path: "/messageDefinitionSends/{{template_id}}/send"
inputParameters:
- name: template_id
in: path
operations:
- name: send-triggered-email
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
Orchestrates customer replenishment reminder pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Replenishment Reminder Pipeline"
description: "Orchestrates customer replenishment reminder pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- sephora
- slack
- jira
- teams
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-replenishment-reminder-pipeline
description: "Orchestrates customer replenishment reminder pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
When a product return is initiated in SAP Commerce Cloud, updates the customer record in Salesforce, creates a ServiceNow logistics task, and sends a return confirmation email via Salesforce Marketing Cloud.
naftiko: "0.5"
info:
label: "Customer Return Processing Pipeline"
description: "When a product return is initiated in SAP Commerce Cloud, updates the customer record in Salesforce, creates a ServiceNow logistics task, and sends a return confirmation email via Salesforce Marketing Cloud."
tags:
- e-commerce
- returns
- sap-commerce-cloud
- salesforce
- servicenow
- salesforce-marketing-cloud
capability:
exposes:
- type: mcp
namespace: returns
port: 8080
tools:
- name: process-return
description: "Given an order ID and return reason, process the return across systems."
inputParameters:
- name: order_id
in: body
type: string
description: "The order ID."
- name: customer_id
in: body
type: string
description: "The Salesforce customer ID."
- name: return_reason
in: body
type: string
description: "The return reason."
steps:
- name: get-order
type: call
call: "sapcc.get-order"
with:
order_id: "{{order_id}}"
- name: update-customer
type: call
call: "salesforce.log-return"
with:
customer_id: "{{customer_id}}"
order_id: "{{order_id}}"
reason: "{{return_reason}}"
amount: "{{get-order.total}}"
- name: create-logistics-task
type: call
call: "servicenow.create-task"
with:
short_description: "Return Processing: Order {{order_id}}"
assigned_group: "Returns_Logistics"
description: "Order {{order_id}}. Amount: {{get-order.total}}. Reason: {{return_reason}}."
- name: send-confirmation
type: call
call: "sfmc.send-triggered-email"
with:
template_id: "return_confirmation"
subscriber_key: "{{customer_id}}"
data: "order_id={{order_id}},return_reason={{return_reason}},refund_amount={{get-order.total}}"
consumes:
- type: http
namespace: sapcc
baseUri: "https://api.sephora.com/sap-commerce/v2"
authentication:
type: bearer
token: "$secrets.sapcc_token"
resources:
- name: orders
path: "/orders/{{order_id}}"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: returns
path: "/sobjects/Return__c"
operations:
- name: log-return
method: POST
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
operations:
- name: create-task
method: POST
- type: http
namespace: sfmc
baseUri: "https://sephora.rest.marketingcloudapis.com/messaging/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: triggered-emails
path: "/messageDefinitionSends/{{template_id}}/send"
inputParameters:
- name: template_id
in: path
operations:
- name: send-triggered-email
method: POST
Orchestrates customer review moderation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Review Moderation Pipeline"
description: "Orchestrates customer review moderation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- sephora
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-review-moderation-pipeline
description: "Orchestrates customer review moderation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Orchestrates customer skincare consultation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Skincare Consultation Pipeline"
description: "Orchestrates customer skincare consultation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- sephora
- shopify
- datadog
- sephora
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-skincare-consultation-pipeline
description: "Orchestrates customer skincare consultation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "shopify.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sephora.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: shopify
baseUri: "https://sephora.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_token"
resources:
- name: shopify-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: sephora-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Orchestrates customer win back pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Win Back Pipeline"
description: "Orchestrates customer win back pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- sephora
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-win-back-pipeline
description: "Orchestrates customer win back pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Queries Datadog for e-commerce application performance metrics.
naftiko: "0.5"
info:
label: "Datadog Application Performance Monitor"
description: "Queries Datadog for e-commerce application performance metrics."
tags:
- monitoring
- performance
- datadog
capability:
exposes:
- type: mcp
namespace: apm
port: 8080
tools:
- name: get-app-performance
description: "Query Datadog for app performance."
inputParameters:
- name: service_name
in: body
type: string
description: "The Datadog service name."
call: "datadog.get-service-metrics"
with:
service_name: "{{service_name}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: services
path: "/service_dependencies?service={{service_name}}"
inputParameters:
- name: service_name
in: path
operations:
- name: get-service-metrics
method: GET
Orchestrates digital content creation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Digital Content Creation Pipeline"
description: "Orchestrates digital content creation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- digital
- sephora
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: digital
port: 8080
tools:
- name: digital-content-creation-pipeline
description: "Orchestrates digital content creation pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/digital"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/digital"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/digital"
operations:
- name: execute-3
method: POST
Retrieves DocuSign envelope status for brand partnership agreements.
naftiko: "0.5"
info:
label: "DocuSign Agreement Status"
description: "Retrieves DocuSign envelope status for brand partnership agreements."
tags: [legal, document-signing, docusign]
capability:
exposes:
- type: mcp
namespace: doc-signing
port: 8080
tools:
- name: get-envelope-status
description: "Look up a DocuSign envelope."
inputParameters:
- name: envelope_id
in: body
type: string
description: "DocuSign envelope ID."
call: "docusign.get-envelope"
with:
envelope_id: "{{envelope_id}}"
consumes:
- type: http
namespace: docusign
baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/$secrets.docusign_account_id"
authentication:
type: bearer
token: "$secrets.docusign_token"
resources:
- name: envelopes
path: "/envelopes/{{envelope_id}}"
inputParameters:
- name: envelope_id
in: path
operations:
- name: get-envelope
method: GET
Retrieves an e-commerce order status from SAP Commerce Cloud, returning order state, shipping status, and estimated delivery date.
naftiko: "0.5"
info:
label: "E-Commerce Order Status Lookup"
description: "Retrieves an e-commerce order status from SAP Commerce Cloud, returning order state, shipping status, and estimated delivery date."
tags:
- e-commerce
- orders
- sap-commerce-cloud
capability:
exposes:
- type: mcp
namespace: ecommerce-orders
port: 8080
tools:
- name: get-order-status
description: "Look up an order in SAP Commerce Cloud."
inputParameters:
- name: order_id
in: body
type: string
description: "The order ID."
call: "sapcc.get-order"
with:
order_id: "{{order_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: shipping_status
type: string
mapping: "$.deliveryStatus"
- name: estimated_delivery
type: string
mapping: "$.estimatedDeliveryDate"
- name: total
type: number
mapping: "$.totalPrice.value"
consumes:
- type: http
namespace: sapcc
baseUri: "https://api.sephora.com/sap-commerce/v2"
authentication:
type: bearer
token: "$secrets.sapcc_token"
resources:
- name: orders
path: "/orders/{{order_id}}"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
Retrieves email campaign performance metrics from Salesforce Marketing Cloud, including open rates, click rates, and conversion metrics.
naftiko: "0.5"
info:
label: "Email Campaign Performance Tracker"
description: "Retrieves email campaign performance metrics from Salesforce Marketing Cloud, including open rates, click rates, and conversion metrics."
tags:
- marketing
- email
- salesforce-marketing-cloud
capability:
exposes:
- type: mcp
namespace: email-performance
port: 8080
tools:
- name: get-campaign-performance
description: "Retrieve SFMC email campaign performance metrics."
inputParameters:
- name: campaign_id
in: body
type: string
description: "The SFMC campaign ID."
call: "sfmc.get-campaign-metrics"
with:
campaign_id: "{{campaign_id}}"
consumes:
- type: http
namespace: sfmc
baseUri: "https://sephora.rest.marketingcloudapis.com/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: campaigns
path: "/campaigns/{{campaign_id}}/metrics"
inputParameters:
- name: campaign_id
in: path
operations:
- name: get-campaign-metrics
method: GET
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Given a Workday employee ID and start date, orchestrate onboarding."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD."
- 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"
assigned_group: "IT_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_site"
folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
channel_id: "new_hires"
text: "Welcome to Sephora, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. Documents: {{provision-folder.url}}."
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://sephora.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves expense reports from SAP Concur, validates against Workday cost center, and opens a ServiceNow task.
naftiko: "0.5"
info:
label: "Expense Report Review Pipeline"
description: "Retrieves expense reports from SAP Concur, validates against Workday cost center, and opens a ServiceNow task."
tags:
- finance
- expense
- sap-concur
- workday
- servicenow
capability:
exposes:
- type: mcp
namespace: expense-review
port: 8080
tools:
- name: review-expense-report
description: "Validate and flag expense exceptions."
inputParameters:
- name: expense_report_id
in: body
type: string
description: "Concur report ID."
- name: employee_id
in: body
type: string
description: "Workday employee ID."
steps:
- name: get-expense-report
type: call
call: "concur.get-expense-report"
with:
report_id: "{{expense_report_id}}"
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: open-review-task
type: call
call: "servicenow.create-task"
with:
short_description: "Expense review: {{get-expense-report.report_name}} — {{get-employee.full_name}}"
assigned_group: "Finance_Audit"
consumes:
- type: http
namespace: concur
baseUri: "https://www.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: expense-reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-expense-report
method: GET
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
operations:
- name: create-task
method: POST
Retrieves Facebook Ads campaign performance metrics for the Sephora marketing team.
naftiko: "0.5"
info:
label: "Facebook Ads Campaign Performance"
description: "Retrieves Facebook Ads campaign performance metrics for the Sephora marketing team."
tags:
- marketing
- advertising
- facebook
capability:
exposes:
- type: mcp
namespace: paid-media
port: 8080
tools:
- name: get-fb-campaign-performance
description: "Retrieve Facebook Ads campaign metrics."
inputParameters:
- name: campaign_id
in: body
type: string
description: "The Facebook campaign ID."
call: "facebook.get-campaign-insights"
with:
campaign_id: "{{campaign_id}}"
consumes:
- type: http
namespace: facebook
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.facebook_token"
resources:
- name: insights
path: "/{{campaign_id}}/insights?fields=impressions,clicks,spend,actions"
inputParameters:
- name: campaign_id
in: path
operations:
- name: get-campaign-insights
method: GET
Retrieves Figma file metadata for beauty product design assets.
naftiko: "0.5"
info:
label: "Figma Design File Viewer"
description: "Retrieves Figma file metadata for beauty product design assets."
tags: [design, ux, figma]
capability:
exposes:
- type: mcp
namespace: design
port: 8080
tools:
- name: get-figma-file
description: "Retrieve Figma file metadata."
inputParameters:
- name: file_key
in: body
type: string
description: "Figma file key."
call: "figma.get-file"
with:
file_key: "{{file_key}}"
consumes:
- type: http
namespace: figma
baseUri: "https://api.figma.com/v1"
authentication:
type: bearer
token: "$secrets.figma_token"
resources:
- name: files
path: "/files/{{file_key}}"
inputParameters:
- name: file_key
in: path
operations:
- name: get-file
method: GET
Retrieves fragrance profile matcher data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Fragrance Profile Matcher"
description: "Retrieves fragrance profile matcher data from the Sephora beauty retail systems."
tags:
- fragrance
- sephora
- matcher
capability:
exposes:
- type: mcp
namespace: fragrance
port: 8080
tools:
- name: fragrance-profile-matcher
description: "Retrieves fragrance profile matcher data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.fragrance-profile-matcher"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/fragrance/profile/matcher/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: fragrance-profile-matcher
method: GET
Retrieves gift set availability check data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Gift Set Availability Check"
description: "Retrieves gift set availability check data from the Sephora beauty retail systems."
tags:
- gift
- sephora
- check
capability:
exposes:
- type: mcp
namespace: gift
port: 8080
tools:
- name: gift-set-availability-check
description: "Retrieves gift set availability check data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.gift-set-availability-check"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/gift/set/availability/check/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: gift-set-availability-check
method: GET
Retrieves GitHub pull request status.
naftiko: "0.5"
info:
label: "GitHub Pull Request Status"
description: "Retrieves GitHub pull request status."
tags:
- engineering
- ci-cd
- github
capability:
exposes:
- type: mcp
namespace: engineering-ci
port: 8080
tools:
- name: get-pr-status
description: "Look up a GitHub pull request."
inputParameters:
- name: repo
in: body
type: string
description: "The repo in owner/repo format."
- name: pr_number
in: body
type: string
description: "The PR number."
call: "github.get-pull-request"
with:
repo: "{{repo}}"
pr_number: "{{pr_number}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com/repos"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: pull-requests
path: "/{{repo}}/pulls/{{pr_number}}"
inputParameters:
- name: repo
in: path
- name: pr_number
in: path
operations:
- name: get-pull-request
method: GET
Retrieves latest GitLab CI pipeline status.
naftiko: "0.5"
info:
label: "GitLab CI Pipeline Status"
description: "Retrieves latest GitLab CI pipeline status."
tags: [ci-cd, engineering, gitlab]
capability:
exposes:
- type: mcp
namespace: gitlab-ci
port: 8080
tools:
- name: get-pipeline-status
description: "Look up latest GitLab pipeline."
inputParameters:
- name: project_id
in: body
type: string
description: "GitLab project ID."
call: "gitlab.get-latest-pipeline"
with:
project_id: "{{project_id}}"
consumes:
- type: http
namespace: gitlab
baseUri: "https://gitlab.sephora.com/api/v4"
authentication:
type: bearer
token: "$secrets.gitlab_token"
resources:
- name: pipelines
path: "/projects/{{project_id}}/pipelines?per_page=1"
inputParameters:
- name: project_id
in: path
operations:
- name: get-latest-pipeline
method: GET
Retrieves Google Ads campaign performance metrics for the digital marketing team.
naftiko: "0.5"
info:
label: "Google Ads Campaign Performance"
description: "Retrieves Google Ads campaign performance metrics for the digital marketing team."
tags:
- marketing
- advertising
- google-ads
capability:
exposes:
- type: mcp
namespace: google-ads
port: 8080
tools:
- name: get-campaign-performance
description: "Retrieve Google Ads campaign metrics."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Google Ads customer ID."
- name: campaign_id
in: body
type: string
description: "The campaign ID."
call: "googleads.get-campaign-metrics"
with:
customer_id: "{{customer_id}}"
campaign_id: "{{campaign_id}}"
consumes:
- type: http
namespace: googleads
baseUri: "https://googleads.googleapis.com/v15"
authentication:
type: bearer
token: "$secrets.google_ads_token"
resources:
- name: campaigns
path: "/customers/{{customer_id}}/googleAds:searchStream"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-campaign-metrics
method: POST
Retrieves e-commerce funnel analytics from Google Analytics for the Sephora website.
naftiko: "0.5"
info:
label: "Google Analytics E-Commerce Funnel"
description: "Retrieves e-commerce funnel analytics from Google Analytics for the Sephora website."
tags:
- marketing
- analytics
- google-analytics
- e-commerce
capability:
exposes:
- type: mcp
namespace: web-analytics
port: 8080
tools:
- name: get-ecommerce-funnel
description: "Retrieve e-commerce funnel metrics."
inputParameters:
- name: property_id
in: body
type: string
description: "Google Analytics property ID."
- name: start_date
in: body
type: string
description: "Start date."
- name: end_date
in: body
type: string
description: "End date."
call: "ga.run-report"
with:
property_id: "{{property_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
consumes:
- type: http
namespace: ga
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: run-report
method: POST
Orchestrates influencer partnership pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Influencer Partnership Pipeline"
description: "Orchestrates influencer partnership pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- influencer
- sephora
- sendgrid
- shopify
- datadog
capability:
exposes:
- type: mcp
namespace: influencer
port: 8080
tools:
- name: influencer-partnership-pipeline
description: "Orchestrates influencer partnership pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sendgrid.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "shopify.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/influencer"
operations:
- name: execute-1
method: POST
- type: http
namespace: shopify
baseUri: "https://sephora.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_token"
resources:
- name: shopify-resource
path: "/api/influencer"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/influencer"
operations:
- name: execute-3
method: POST
Checks Informatica data integration job status for retail data pipelines.
naftiko: "0.5"
info:
label: "Informatica Data Integration Monitor"
description: "Checks Informatica data integration job status for retail data pipelines."
tags: [data-engineering, etl, informatica]
capability:
exposes:
- type: mcp
namespace: data-integration
port: 8080
tools:
- name: get-job-status
description: "Check Informatica job status."
inputParameters:
- name: job_id
in: body
type: string
description: "Informatica job ID."
call: "informatica.get-job"
with:
job_id: "{{job_id}}"
consumes:
- type: http
namespace: informatica
baseUri: "https://dm-us.informaticacloud.com/saas/api/v2"
authentication:
type: bearer
token: "$secrets.informatica_token"
resources:
- name: jobs
path: "/job/{{job_id}}"
inputParameters:
- name: job_id
in: path
operations:
- name: get-job
method: GET
Retrieves engagement metrics for Sephora Instagram posts.
naftiko: "0.5"
info:
label: "Instagram Beauty Content Tracker"
description: "Retrieves engagement metrics for Sephora Instagram posts."
tags:
- marketing
- social-media
- instagram
capability:
exposes:
- type: mcp
namespace: social-media
port: 8080
tools:
- name: get-instagram-engagement
description: "Retrieve engagement metrics for an Instagram post."
inputParameters:
- name: post_id
in: body
type: string
description: "The Instagram media ID."
call: "instagram.get-media-insights"
with:
post_id: "{{post_id}}"
consumes:
- type: http
namespace: instagram
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: media-insights
path: "/{{post_id}}/insights?metric=likes,comments,reach"
inputParameters:
- name: post_id
in: path
operations:
- name: get-media-insights
method: GET
Orchestrates inventory allocation optimization pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Inventory Allocation Optimization Pipeline"
description: "Orchestrates inventory allocation optimization pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- inventory
- sephora
- teams
- sendgrid
- shopify
capability:
exposes:
- type: mcp
namespace: inventory
port: 8080
tools:
- name: inventory-allocation-optimization-pipeline
description: "Orchestrates inventory allocation optimization pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "teams.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sendgrid.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "shopify.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/inventory"
operations:
- name: execute-1
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/inventory"
operations:
- name: execute-2
method: POST
- type: http
namespace: shopify
baseUri: "https://sephora.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_token"
resources:
- name: shopify-resource
path: "/api/inventory"
operations:
- name: execute-3
method: POST
Checks SAP inventory levels for beauty products, compares against reorder points, creates a SAP purchase requisition when stock is low, and notifies the supply chain team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Inventory Replenishment Alert Pipeline"
description: "Checks SAP inventory levels for beauty products, compares against reorder points, creates a SAP purchase requisition when stock is low, and notifies the supply chain team via Microsoft Teams."
tags:
- supply-chain
- inventory
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: inventory-replenish
port: 8080
tools:
- name: check-and-reorder
description: "Given a material number and plant, check stock levels and create a requisition if low."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
- name: plant
in: body
type: string
description: "The SAP plant (store or DC) code."
steps:
- name: get-stock
type: call
call: "sap.get-material-stock"
with:
material_number: "{{material_number}}"
plant: "{{plant}}"
- name: create-requisition
type: call
call: "sap.create-requisition"
with:
material_number: "{{material_number}}"
plant: "{{plant}}"
quantity: "{{get-stock.reorder_quantity}}"
- name: notify-supply-chain
type: call
call: "msteams.send-message"
with:
channel_id: "supply_chain_ops"
text: "Inventory Alert: {{material_number}} at {{plant}}. Current stock: {{get-stock.available_quantity}}. Reorder point: {{get-stock.reorder_point}}. Requisition: {{create-requisition.req_number}}."
consumes:
- type: http
namespace: sap
baseUri: "https://sephora-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: material-stock
path: "/A_MatlStkInAcctMod(Material='{{material_number}}',Plant='{{plant}}')"
inputParameters:
- name: material_number
in: path
- name: plant
in: path
operations:
- name: get-material-stock
method: GET
- name: requisitions
path: "/A_PurchaseRequisition"
operations:
- name: create-requisition
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
Fetches active sprint details from Jira.
naftiko: "0.5"
info:
label: "Jira Sprint Tracker"
description: "Fetches active sprint details from Jira."
tags:
- engineering
- project-management
- jira
capability:
exposes:
- type: mcp
namespace: engineering-pm
port: 8080
tools:
- name: get-sprint-status
description: "Retrieve active sprint for a Jira board."
inputParameters:
- name: board_id
in: body
type: string
description: "The Jira board ID."
call: "jira.get-active-sprint"
with:
board_id: "{{board_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://sephora.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
Generates release notes from Jira issues and publishes to Confluence.
naftiko: "0.5"
info:
label: "Jira to Confluence Release Notes"
description: "Generates release notes from Jira issues and publishes to Confluence."
tags:
- engineering
- release-management
- jira
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: release-mgmt
port: 8080
tools:
- name: generate-release-notes
description: "Fetch Jira issues and publish release notes."
inputParameters:
- name: project_key
in: body
type: string
description: "Jira project key."
- name: version_name
in: body
type: string
description: "Release version."
steps:
- name: get-issues
type: call
call: "jira.search-issues"
with:
jql: "project = {{project_key}} AND fixVersion = '{{version_name}}' AND status = Done"
- name: create-notes
type: call
call: "confluence.create-page"
with:
space_key: "ENG"
title: "Release Notes: {{project_key}} {{version_name}}"
body: "Release {{version_name}}. Issues: {{get-issues.total}}."
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "engineering_releases"
text: "Release notes: {{project_key}} {{version_name}}. URL: {{create-notes.url}}."
consumes:
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: search
path: "/search?jql={{jql}}"
inputParameters:
- name: jql
in: path
operations:
- name: search-issues
method: GET
- type: http
namespace: confluence
baseUri: "https://sephora.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: content
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves LinkedIn job posting status.
naftiko: "0.5"
info:
label: "LinkedIn Recruitment Status"
description: "Retrieves LinkedIn job posting status."
tags:
- recruitment
- linkedin
capability:
exposes:
- type: mcp
namespace: recruitment
port: 8080
tools:
- name: get-job-posting-status
description: "Look up a LinkedIn job posting."
inputParameters:
- name: job_posting_id
in: body
type: string
description: "The LinkedIn job posting ID."
call: "linkedin.get-job-posting"
with:
job_posting_id: "{{job_posting_id}}"
consumes:
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: job-postings
path: "/jobPostings/{{job_posting_id}}"
inputParameters:
- name: job_posting_id
in: path
operations:
- name: get-job-posting
method: GET
Retrieves a Looker dashboard for retail performance analytics.
naftiko: "0.5"
info:
label: "Looker Retail Analytics Dashboard"
description: "Retrieves a Looker dashboard for retail performance analytics."
tags: [analytics, retail, looker]
capability:
exposes:
- type: mcp
namespace: looker-analytics
port: 8080
tools:
- name: get-retail-dashboard
description: "Retrieve a Looker retail dashboard."
inputParameters:
- name: dashboard_id
in: body
type: string
description: "Looker dashboard ID."
call: "looker.get-dashboard"
with:
dashboard_id: "{{dashboard_id}}"
consumes:
- type: http
namespace: looker
baseUri: "https://sephora.looker.com/api/4.0"
authentication:
type: bearer
token: "$secrets.looker_token"
resources:
- name: dashboards
path: "/dashboards/{{dashboard_id}}"
inputParameters:
- name: dashboard_id
in: path
operations:
- name: get-dashboard
method: GET
Creates a marketing campaign in Salesforce Marketing Cloud, sets up Google Analytics tracking, configures Google Tag Manager events, and notifies the marketing team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Marketing Campaign Launch Pipeline"
description: "Creates a marketing campaign in Salesforce Marketing Cloud, sets up Google Analytics tracking, configures Google Tag Manager events, and notifies the marketing team via Microsoft Teams."
tags:
- marketing
- campaigns
- salesforce-marketing-cloud
- google-analytics
- google-tag-manager
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: marketing-campaigns
port: 8080
tools:
- name: launch-campaign
description: "Given campaign details, create in SFMC, configure analytics, and notify the team."
inputParameters:
- name: campaign_name
in: body
type: string
description: "The campaign name."
- name: target_segment
in: body
type: string
description: "The target audience segment."
- name: launch_date
in: body
type: string
description: "The campaign launch date."
- name: utm_campaign
in: body
type: string
description: "The UTM campaign parameter."
steps:
- name: create-campaign
type: call
call: "sfmc.create-campaign"
with:
name: "{{campaign_name}}"
segment: "{{target_segment}}"
launch_date: "{{launch_date}}"
- name: setup-gtm-tag
type: call
call: "gtm.create-tag"
with:
tag_name: "campaign_{{utm_campaign}}"
trigger_type: "pageview"
utm_campaign: "{{utm_campaign}}"
- name: notify-marketing
type: call
call: "msteams.send-message"
with:
channel_id: "marketing_campaigns"
text: "Campaign Launched: {{campaign_name}} targeting {{target_segment}}. Launch: {{launch_date}}. UTM: {{utm_campaign}}. SFMC ID: {{create-campaign.campaign_id}}."
consumes:
- type: http
namespace: sfmc
baseUri: "https://sephora.rest.marketingcloudapis.com/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: create-campaign
method: POST
- type: http
namespace: gtm
baseUri: "https://www.googleapis.com/tagmanager/v2"
authentication:
type: bearer
token: "$secrets.google_tagmanager_token"
resources:
- name: tags
path: "/accounts/$secrets.gtm_account_id/containers/$secrets.gtm_container_id/workspaces/default/tags"
operations:
- name: create-tag
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
Sends a message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notifier"
description: "Sends a message to a Microsoft Teams channel."
tags:
- communications
- messaging
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: comms
port: 8080
tools:
- name: send-teams-notification
description: "Send a message to a Teams channel."
inputParameters:
- name: channel_id
in: body
type: string
description: "The Teams channel ID."
- 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
Queries New Relic for e-commerce application performance.
naftiko: "0.5"
info:
label: "New Relic Application Performance"
description: "Queries New Relic for e-commerce application performance."
tags: [monitoring, performance, new-relic]
capability:
exposes:
- type: mcp
namespace: apm-detailed
port: 8080
tools:
- name: get-app-performance
description: "Check New Relic APM metrics."
inputParameters:
- name: app_id
in: body
type: string
description: "New Relic app ID."
call: "newrelic.get-app"
with:
app_id: "{{app_id}}"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
key: "$secrets.newrelic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-app
method: GET
Retrieves Palo Alto firewall rules for security auditing.
naftiko: "0.5"
info:
label: "Palo Alto Firewall Audit"
description: "Retrieves Palo Alto firewall rules for security auditing."
tags: [security, firewall, palo-alto-networks]
capability:
exposes:
- type: mcp
namespace: security-audit
port: 8080
tools:
- name: audit-firewall-rules
description: "Query Palo Alto for firewall rules."
inputParameters:
- name: device_group
in: body
type: string
description: "Device group."
call: "paloalto.get-security-rules"
with:
device_group: "{{device_group}}"
consumes:
- type: http
namespace: paloalto
baseUri: "https://panorama.sephora.com/restapi/v10.2"
authentication:
type: apiKey
key: "$secrets.paloalto_api_key"
resources:
- name: security-rules
path: "/Policies/SecurityRules?location=device-group&device-group={{device_group}}"
inputParameters:
- name: device_group
in: path
operations:
- name: get-security-rules
method: GET
Orchestrates personalized product discovery pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Personalized Product Discovery Pipeline"
description: "Orchestrates personalized product discovery pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- personalized
- sephora
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: personalized
port: 8080
tools:
- name: personalized-product-discovery-pipeline
description: "Orchestrates personalized product discovery pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/personalized"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/personalized"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/personalized"
operations:
- name: execute-3
method: POST
Fetches customer purchase history from Salesforce, runs a recommendation model in Azure Machine Learning, and delivers personalized recommendations via Salesforce Marketing Cloud email.
naftiko: "0.5"
info:
label: "Personalized Product Recommendation Pipeline"
description: "Fetches customer purchase history from Salesforce, runs a recommendation model in Azure Machine Learning, and delivers personalized recommendations via Salesforce Marketing Cloud email."
tags:
- personalization
- machine-learning
- salesforce
- azure-machine-learning
- salesforce-marketing-cloud
capability:
exposes:
- type: mcp
namespace: recommendations
port: 8080
tools:
- name: send-personalized-recs
description: "Given a customer ID, fetch history, run recommendations, and send personalized email."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Salesforce customer ID."
steps:
- name: get-purchase-history
type: call
call: "salesforce.get-purchase-history"
with:
customer_id: "{{customer_id}}"
- name: get-recommendations
type: call
call: "azureml.recommend"
with:
customer_id: "{{customer_id}}"
recent_products: "{{get-purchase-history.recent_skus}}"
- name: send-rec-email
type: call
call: "sfmc.send-triggered-email"
with:
template_id: "personalized_recommendations"
subscriber_key: "{{customer_id}}"
data: "product_1={{get-recommendations.items[0].name}},product_2={{get-recommendations.items[1].name}},product_3={{get-recommendations.items[2].name}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: purchase-history
path: "/sobjects/Account/{{customer_id}}/Purchase_History__r"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-purchase-history
method: GET
- type: http
namespace: azureml
baseUri: "https://sephora-recs.inference.ml.azure.com"
authentication:
type: bearer
token: "$secrets.azure_ml_token"
resources:
- name: scoring
path: "/score"
operations:
- name: recommend
method: POST
- type: http
namespace: sfmc
baseUri: "https://sephora.rest.marketingcloudapis.com/messaging/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: triggered-emails
path: "/messageDefinitionSends/{{template_id}}/send"
inputParameters:
- name: template_id
in: path
operations:
- name: send-triggered-email
method: POST
Triggers Postman collection test runs for e-commerce API testing.
naftiko: "0.5"
info:
label: "Postman API Test Runner"
description: "Triggers Postman collection test runs for e-commerce API testing."
tags: [engineering, testing, postman]
capability:
exposes:
- type: mcp
namespace: api-testing
port: 8080
tools:
- name: run-api-tests
description: "Trigger a Postman collection run."
inputParameters:
- name: collection_id
in: body
type: string
description: "Postman collection ID."
call: "postman.run-collection"
with:
collection_id: "{{collection_id}}"
consumes:
- type: http
namespace: postman
baseUri: "https://api.getpostman.com"
authentication:
type: apiKey
key: "$secrets.postman_api_key"
resources:
- name: monitors
path: "/monitors/{{collection_id}}/run"
inputParameters:
- name: collection_id
in: path
operations:
- name: run-collection
method: POST
Triggers a Power BI dataset refresh for the retail operations dashboard.
naftiko: "0.5"
info:
label: "Power BI Retail Dashboard Refresh"
description: "Triggers a Power BI dataset refresh for the retail operations dashboard."
tags:
- analytics
- retail
- power-bi
capability:
exposes:
- type: mcp
namespace: retail-analytics
port: 8080
tools:
- name: refresh-retail-dashboard
description: "Trigger a Power BI dataset refresh."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
When a purchase requisition exceeds threshold, routes for approval via Workday and notifies via Microsoft Teams.
naftiko: "0.5"
info:
label: "Procurement Approval Pipeline"
description: "When a purchase requisition exceeds threshold, routes for approval via Workday and notifies via Microsoft Teams."
tags:
- procurement
- approval
- workday
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: procurement-approval
port: 8080
tools:
- name: route-requisition-approval
description: "Route a requisition for manager approval."
inputParameters:
- name: requisition_id
in: body
type: string
description: "The requisition ID."
- name: requestor_employee_id
in: body
type: string
description: "Workday employee ID."
- name: spend_amount
in: body
type: number
description: "The spend amount."
steps:
- name: get-requestor
type: call
call: "workday.get-worker"
with:
worker_id: "{{requestor_employee_id}}"
- name: get-manager
type: call
call: "workday.get-worker"
with:
worker_id: "{{get-requestor.manager_id}}"
- name: notify-approver
type: call
call: "msteams.send-message"
with:
channel_id: "procurement_approvals"
text: "Approval Required: Requisition {{requisition_id}} from {{get-requestor.full_name}} for ${{spend_amount}}."
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: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves product allergen check data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Product Allergen Check"
description: "Retrieves product allergen check data from the Sephora beauty retail systems."
tags:
- product
- sephora
- check
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-allergen-check
description: "Retrieves product allergen check data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.product-allergen-check"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/product/allergen/check/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: product-allergen-check
method: GET
Retrieves product clean beauty certification data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Product Clean Beauty Certification"
description: "Retrieves product clean beauty certification data from the Sephora beauty retail systems."
tags:
- product
- sephora
- certification
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-clean-beauty-certification
description: "Retrieves product clean beauty certification data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.product-clean-beauty-certification"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/product/clean/beauty/certification/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: product-clean-beauty-certification
method: GET
Orchestrates product exclusivity management pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Product Exclusivity Management Pipeline"
description: "Orchestrates product exclusivity management pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- product
- sephora
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-exclusivity-management-pipeline
description: "Orchestrates product exclusivity management pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/product"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/product"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/product"
operations:
- name: execute-3
method: POST
Retrieves product ingredient list data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Product Ingredient List"
description: "Retrieves product ingredient list data from the Sephora beauty retail systems."
tags:
- product
- sephora
- list
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-ingredient-list
description: "Retrieves product ingredient list data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.product-ingredient-list"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/product/ingredient/list/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: product-ingredient-list
method: GET
Orchestrates product lifecycle management pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Product Lifecycle Management Pipeline"
description: "Orchestrates product lifecycle management pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- product
- sephora
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-lifecycle-management-pipeline
description: "Orchestrates product lifecycle management pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/product"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/product"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/product"
operations:
- name: execute-3
method: POST
Fetches new product reviews from SAP Commerce Cloud, runs sentiment analysis via Azure Machine Learning, updates Salesforce product ratings, and alerts the brand team via Microsoft Teams for negative sentiment spikes.
naftiko: "0.5"
info:
label: "Product Review Sentiment Pipeline"
description: "Fetches new product reviews from SAP Commerce Cloud, runs sentiment analysis via Azure Machine Learning, updates Salesforce product ratings, and alerts the brand team via Microsoft Teams for negative sentiment spikes."
tags:
- marketing
- sentiment-analysis
- sap-commerce-cloud
- azure-machine-learning
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: review-sentiment
port: 8080
tools:
- name: analyze-product-reviews
description: "Given a product ID, fetch reviews, run sentiment analysis, update ratings, and alert on negative trends."
inputParameters:
- name: product_id
in: body
type: string
description: "The product ID."
- name: brand_name
in: body
type: string
description: "The brand name."
steps:
- name: get-reviews
type: call
call: "sapcc.get-product-reviews"
with:
product_id: "{{product_id}}"
- name: analyze-sentiment
type: call
call: "azureml.score-sentiment"
with:
reviews: "{{get-reviews.review_texts}}"
- name: update-ratings
type: call
call: "salesforce.update-product-sentiment"
with:
product_id: "{{product_id}}"
avg_sentiment: "{{analyze-sentiment.avg_score}}"
negative_pct: "{{analyze-sentiment.negative_pct}}"
- name: alert-brand-team
type: call
call: "msteams.send-message"
with:
channel_id: "brand_management"
text: "Review Sentiment Alert: {{brand_name}} product {{product_id}}. Avg sentiment: {{analyze-sentiment.avg_score}}. Negative: {{analyze-sentiment.negative_pct}}%. Reviews analyzed: {{get-reviews.count}}."
consumes:
- type: http
namespace: sapcc
baseUri: "https://api.sephora.com/sap-commerce/v2"
authentication:
type: bearer
token: "$secrets.sapcc_token"
resources:
- name: reviews
path: "/products/{{product_id}}/reviews"
inputParameters:
- name: product_id
in: path
operations:
- name: get-product-reviews
method: GET
- type: http
namespace: azureml
baseUri: "https://sephora-sentiment.inference.ml.azure.com"
authentication:
type: bearer
token: "$secrets.azure_ml_token"
resources:
- name: scoring
path: "/score"
operations:
- name: score-sentiment
method: POST
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: products
path: "/sobjects/Product__c/{{product_id}}"
inputParameters:
- name: product_id
in: path
operations:
- name: update-product-sentiment
method: PATCH
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Orchestrates product safety compliance pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Product Safety Compliance Pipeline"
description: "Orchestrates product safety compliance pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- product
- sephora
- slack
- jira
- teams
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-safety-compliance-pipeline
description: "Orchestrates product safety compliance pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/product"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://sephora.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/product"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/product"
operations:
- name: execute-3
method: POST
Retrieves product sample availability data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Product Sample Availability"
description: "Retrieves product sample availability data from the Sephora beauty retail systems."
tags:
- product
- sephora
- availability
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-sample-availability
description: "Retrieves product sample availability data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.product-sample-availability"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/product/sample/availability/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: product-sample-availability
method: GET
Orchestrates product sustainability audit pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Product Sustainability Audit Pipeline"
description: "Orchestrates product sustainability audit pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- product
- sephora
- shopify
- datadog
- sephora
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-sustainability-audit-pipeline
description: "Orchestrates product sustainability audit pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "shopify.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sephora.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: shopify
baseUri: "https://sephora.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_token"
resources:
- name: shopify-resource
path: "/api/product"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/product"
operations:
- name: execute-2
method: POST
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: sephora-resource
path: "/api/product"
operations:
- name: execute-3
method: POST
Retrieves product sustainability score data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Product Sustainability Score"
description: "Retrieves product sustainability score data from the Sephora beauty retail systems."
tags:
- product
- sephora
- score
capability:
exposes:
- type: mcp
namespace: product
port: 8080
tools:
- name: product-sustainability-score
description: "Retrieves product sustainability score data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.product-sustainability-score"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/product/sustainability/score/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: product-sustainability-score
method: GET
Retrieves a Salesforce customer profile by ID, returning name, Beauty Insider tier, purchase history count, and preferred store.
naftiko: "0.5"
info:
label: "Salesforce Customer Profile Lookup"
description: "Retrieves a Salesforce customer profile by ID, returning name, Beauty Insider tier, purchase history count, and preferred store."
tags:
- customer-data
- crm
- salesforce
capability:
exposes:
- type: mcp
namespace: customer-crm
port: 8080
tools:
- name: get-customer-profile
description: "Look up a Sephora customer profile in Salesforce."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Salesforce customer record ID."
call: "salesforce.get-customer"
with:
customer_id: "{{customer_id}}"
outputParameters:
- name: name
type: string
mapping: "$.Name"
- name: loyalty_tier
type: string
mapping: "$.Beauty_Insider_Tier__c"
- name: purchase_count
type: number
mapping: "$.Total_Purchases__c"
- name: preferred_store
type: string
mapping: "$.Preferred_Store__c"
consumes:
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: customers
path: "/sobjects/Account/{{customer_id}}"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-customer
method: GET
Retrieves a Salesforce opportunity for B2B brand partnerships.
naftiko: "0.5"
info:
label: "Salesforce Opportunity Lookup"
description: "Retrieves a Salesforce opportunity for B2B brand partnerships."
tags:
- sales
- crm
- salesforce
capability:
exposes:
- type: mcp
namespace: sales-crm
port: 8080
tools:
- name: get-opportunity
description: "Look up a Salesforce opportunity."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "The opportunity ID."
call: "salesforce.get-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: get-opportunity
method: GET
Retrieves a SAP Concur expense report.
naftiko: "0.5"
info:
label: "SAP Concur Expense Report Lookup"
description: "Retrieves a SAP Concur expense report."
tags:
- finance
- expense
- sap-concur
capability:
exposes:
- type: mcp
namespace: finance-expense
port: 8080
tools:
- name: get-expense-report
description: "Look up a SAP Concur expense report."
inputParameters:
- name: report_id
in: body
type: string
description: "The expense report ID."
call: "concur.get-expense-report"
with:
report_id: "{{report_id}}"
consumes:
- type: http
namespace: concur
baseUri: "https://www.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: expense-reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-expense-report
method: GET
Looks up a SAP purchase order by number.
naftiko: "0.5"
info:
label: "SAP Purchase Order Status"
description: "Looks up a SAP purchase order by number."
tags:
- procurement
- erp
- sap
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-purchase-order
description: "Look up a SAP purchase order."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP PO number."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: status
type: string
mapping: "$.d.OverallStatus"
- name: vendor
type: string
mapping: "$.d.Supplier.CompanyName"
- name: total_value
type: string
mapping: "$.d.TotalAmount"
consumes:
- type: http
namespace: sap
baseUri: "https://sephora-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
Orchestrates seasonal collection planning pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Seasonal Collection Planning Pipeline"
description: "Orchestrates seasonal collection planning pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- seasonal
- sephora
- datadog
- sephora
- salesforce
capability:
exposes:
- type: mcp
namespace: seasonal
port: 8080
tools:
- name: seasonal-collection-planning-pipeline
description: "Orchestrates seasonal collection planning pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sephora.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "salesforce.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/seasonal"
operations:
- name: execute-1
method: POST
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: sephora-resource
path: "/api/seasonal"
operations:
- name: execute-2
method: POST
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/seasonal"
operations:
- name: execute-3
method: POST
Retrieves a ServiceNow incident by number.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves a ServiceNow incident by number."
tags:
- it-operations
- itsm
- servicenow
capability:
exposes:
- type: mcp
namespace: itsm
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident."
inputParameters:
- name: incident_number
in: body
type: string
description: "The 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"
consumes:
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: path
operations:
- name: get-incident
method: GET
Retrieves shade finder recommendation data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Shade Finder Recommendation"
description: "Retrieves shade finder recommendation data from the Sephora beauty retail systems."
tags:
- shade
- sephora
- recommendation
capability:
exposes:
- type: mcp
namespace: shade
port: 8080
tools:
- name: shade-finder-recommendation
description: "Retrieves shade finder recommendation data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.shade-finder-recommendation"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/shade/finder/recommendation/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: shade-finder-recommendation
method: GET
Searches SharePoint for brand and operations documents.
naftiko: "0.5"
info:
label: "SharePoint Document Search"
description: "Searches SharePoint for brand and operations documents."
tags:
- documentation
- sharepoint
capability:
exposes:
- type: mcp
namespace: doc-search
port: 8080
tools:
- name: search-documents
description: "Search SharePoint for documents."
inputParameters:
- name: site_id
in: body
type: string
description: "SharePoint site ID."
- name: query
in: body
type: string
description: "Search keyword."
call: "sharepoint.search"
with:
site_id: "{{site_id}}"
query: "{{query}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: search
path: "/{{site_id}}/drive/root/search(q='{{query}}')"
inputParameters:
- name: site_id
in: path
- name: query
in: path
operations:
- name: search
method: GET
Retrieves skincare routine recommendation data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Skincare Routine Recommendation"
description: "Retrieves skincare routine recommendation data from the Sephora beauty retail systems."
tags:
- skincare
- sephora
- recommendation
capability:
exposes:
- type: mcp
namespace: skincare
port: 8080
tools:
- name: skincare-routine-recommendation
description: "Retrieves skincare routine recommendation data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.skincare-routine-recommendation"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/skincare/routine/recommendation/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: skincare-routine-recommendation
method: GET
Orchestrates social commerce pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Social Commerce Pipeline"
description: "Orchestrates social commerce pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- social
- sephora
- datadog
- sephora
- salesforce
capability:
exposes:
- type: mcp
namespace: social
port: 8080
tools:
- name: social-commerce-pipeline
description: "Orchestrates social commerce pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sephora.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "salesforce.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/social"
operations:
- name: execute-1
method: POST
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: sephora-resource
path: "/api/social"
operations:
- name: execute-2
method: POST
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/social"
operations:
- name: execute-3
method: POST
Queries SolarWinds for store network health.
naftiko: "0.5"
info:
label: "SolarWinds Network Health"
description: "Queries SolarWinds for store network health."
tags: [networking, infrastructure, solarwinds]
capability:
exposes:
- type: mcp
namespace: network-health
port: 8080
tools:
- name: get-network-health
description: "Query SolarWinds network nodes."
inputParameters:
- name: store_id
in: body
type: string
description: "Store ID."
call: "solarwinds.query-nodes"
with:
store_id: "{{store_id}}"
consumes:
- type: http
namespace: solarwinds
baseUri: "https://solarwinds.sephora.com:17778/SolarWinds/InformationService/v3/Json"
authentication:
type: basic
username: "$secrets.solarwinds_user"
password: "$secrets.solarwinds_password"
resources:
- name: nodes
path: "/Query?query=SELECT+NodeID,Caption,Status+FROM+Orion.Nodes+WHERE+Location='{{store_id}}'"
inputParameters:
- name: store_id
in: path
operations:
- name: query-nodes
method: GET
Queries Splunk for security-related events.
naftiko: "0.5"
info:
label: "Splunk Security Log Search"
description: "Queries Splunk for security-related events."
tags: [security, logging, splunk]
capability:
exposes:
- type: mcp
namespace: security-logs
port: 8080
tools:
- name: search-security-logs
description: "Search Splunk for security events."
inputParameters:
- name: search_query
in: body
type: string
description: "Splunk search query."
call: "splunk.search"
with:
search: "{{search_query}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://splunk.sephora.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search
path: "/search/jobs"
operations:
- name: search
method: POST
Queries SAP for product allocation data, checks store-level inventory, and creates allocation adjustments when distribution is unbalanced, notifying the merchandising team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Store Allocation Planning Pipeline"
description: "Queries SAP for product allocation data, checks store-level inventory, and creates allocation adjustments when distribution is unbalanced, notifying the merchandising team via Microsoft Teams."
tags:
- retail
- supply-chain
- allocation
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: store-allocation
port: 8080
tools:
- name: rebalance-allocation
description: "Given a material number and region, check allocation balance and adjust."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
- name: region
in: body
type: string
description: "The store region."
steps:
- name: get-allocation
type: call
call: "sap.get-allocation"
with:
material_number: "{{material_number}}"
region: "{{region}}"
- name: adjust-allocation
type: call
call: "sap.adjust-allocation"
with:
material_number: "{{material_number}}"
region: "{{region}}"
adjustment: "{{get-allocation.recommended_adjustment}}"
- name: notify-merchandising
type: call
call: "msteams.send-message"
with:
channel_id: "merchandising"
text: "Allocation Adjustment: {{material_number}} in {{region}}. Current imbalance: {{get-allocation.imbalance_pct}}%. Adjustment: {{adjust-allocation.units_moved}} units."
consumes:
- type: http
namespace: sap
baseUri: "https://sephora-s4.sap.com/sap/opu/odata/sap/ALLOCATION_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: allocation
path: "/Allocations?$filter=Material eq '{{material_number}}' and Region eq '{{region}}'"
inputParameters:
- name: material_number
in: path
- name: region
in: path
operations:
- name: get-allocation
method: GET
- name: adjustments
path: "/AllocationAdjustments"
operations:
- name: adjust-allocation
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
Orchestrates store associate training pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Store Associate Training Pipeline"
description: "Orchestrates store associate training pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- store
- sephora
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: store
port: 8080
tools:
- name: store-associate-training-pipeline
description: "Orchestrates store associate training pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/store"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/store"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/store"
operations:
- name: execute-3
method: POST
Retrieves store beauty advisor schedule data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Store Beauty Advisor Schedule"
description: "Retrieves store beauty advisor schedule data from the Sephora beauty retail systems."
tags:
- store
- sephora
- schedule
capability:
exposes:
- type: mcp
namespace: store
port: 8080
tools:
- name: store-beauty-advisor-schedule
description: "Retrieves store beauty advisor schedule data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.store-beauty-advisor-schedule"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/store/beauty/advisor/schedule/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: store-beauty-advisor-schedule
method: GET
Orchestrates store event coordination pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Store Event Coordination Pipeline"
description: "Orchestrates store event coordination pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- store
- sephora
- teams
- sendgrid
- shopify
capability:
exposes:
- type: mcp
namespace: store
port: 8080
tools:
- name: store-event-coordination-pipeline
description: "Orchestrates store event coordination pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "teams.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sendgrid.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "shopify.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/store"
operations:
- name: execute-1
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/store"
operations:
- name: execute-2
method: POST
- type: http
namespace: shopify
baseUri: "https://sephora.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_token"
resources:
- name: shopify-resource
path: "/api/store"
operations:
- name: execute-3
method: POST
Orchestrates store experience enhancement pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Store Experience Enhancement Pipeline"
description: "Orchestrates store experience enhancement pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- store
- sephora
- teams
- sendgrid
- shopify
capability:
exposes:
- type: mcp
namespace: store
port: 8080
tools:
- name: store-experience-enhancement-pipeline
description: "Orchestrates store experience enhancement pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "teams.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sendgrid.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "shopify.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/store"
operations:
- name: execute-1
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/store"
operations:
- name: execute-2
method: POST
- type: http
namespace: shopify
baseUri: "https://sephora.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_token"
resources:
- name: shopify-resource
path: "/api/store"
operations:
- name: execute-3
method: POST
Orchestrates store loss prevention pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Store Loss Prevention Pipeline"
description: "Orchestrates store loss prevention pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- store
- sephora
- sephora
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: store
port: 8080
tools:
- name: store-loss-prevention-pipeline
description: "Orchestrates store loss prevention pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sephora.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: sephora-resource
path: "/api/store"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/store"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/store"
operations:
- name: execute-3
method: POST
Orchestrates store staffing optimization pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Store Staffing Optimization Pipeline"
description: "Orchestrates store staffing optimization pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- store
- sephora
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: store
port: 8080
tools:
- name: store-staffing-optimization-pipeline
description: "Orchestrates store staffing optimization pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/store"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/store"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/store"
operations:
- name: execute-3
method: POST
Creates a beauty consultation appointment in Salesforce, sends a confirmation to the customer via Salesforce Marketing Cloud, and notifies the store beauty advisor via Microsoft Teams.
naftiko: "0.5"
info:
label: "Store Visit Appointment Scheduler"
description: "Creates a beauty consultation appointment in Salesforce, sends a confirmation to the customer via Salesforce Marketing Cloud, and notifies the store beauty advisor via Microsoft Teams."
tags:
- retail
- appointments
- salesforce
- salesforce-marketing-cloud
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: appointments
port: 8080
tools:
- name: book-consultation
description: "Given customer and store details, create an appointment, send confirmation, and notify the advisor."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Salesforce customer ID."
- name: store_id
in: body
type: string
description: "The store ID."
- name: appointment_date
in: body
type: string
description: "The appointment date and time."
- name: service_type
in: body
type: string
description: "The consultation type (e.g., skincare, makeup, fragrance)."
steps:
- name: get-customer
type: call
call: "salesforce.get-customer"
with:
customer_id: "{{customer_id}}"
- name: create-appointment
type: call
call: "salesforce.create-appointment"
with:
customer_id: "{{customer_id}}"
store_id: "{{store_id}}"
datetime: "{{appointment_date}}"
type: "{{service_type}}"
- name: send-confirmation
type: call
call: "sfmc.send-triggered-email"
with:
template_id: "appointment_confirmation"
subscriber_key: "{{customer_id}}"
data: "customer_name={{get-customer.name}},date={{appointment_date}},service={{service_type}},store={{store_id}}"
- name: notify-advisor
type: call
call: "msteams.send-message"
with:
channel_id: "store_{{store_id}}"
text: "New {{service_type}} consultation: {{get-customer.name}} ({{get-customer.loyalty_tier}}) on {{appointment_date}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://sephora.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: customers
path: "/sobjects/Account/{{customer_id}}"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-customer
method: GET
- name: appointments
path: "/sobjects/Appointment__c"
operations:
- name: create-appointment
method: POST
- type: http
namespace: sfmc
baseUri: "https://sephora.rest.marketingcloudapis.com/messaging/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: triggered-emails
path: "/messageDefinitionSends/{{template_id}}/send"
inputParameters:
- name: template_id
in: path
operations:
- name: send-triggered-email
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
Orchestrates store visual merchandising pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Store Visual Merchandising Pipeline"
description: "Orchestrates store visual merchandising pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- store
- sephora
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: store
port: 8080
tools:
- name: store-visual-merchandising-pipeline
description: "Orchestrates store visual merchandising pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/store"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://sephora.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/store"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/store"
operations:
- name: execute-3
method: POST
When a new beauty brand supplier is onboarded, validates compliance documents in SAP, runs a background check via ServiceNow, and notifies the procurement team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Supplier Compliance Review Pipeline"
description: "When a new beauty brand supplier is onboarded, validates compliance documents in SAP, runs a background check via ServiceNow, and notifies the procurement team via Microsoft Teams."
tags:
- procurement
- supplier-management
- compliance
- sap
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: supplier-compliance
port: 8080
tools:
- name: review-supplier-compliance
description: "Given a supplier ID, validate compliance docs, open review task, and notify procurement."
inputParameters:
- name: supplier_id
in: body
type: string
description: "The SAP supplier ID."
- name: brand_name
in: body
type: string
description: "The beauty brand name."
steps:
- name: get-supplier
type: call
call: "sap.get-supplier"
with:
supplier_id: "{{supplier_id}}"
- name: create-compliance-task
type: call
call: "servicenow.create-task"
with:
short_description: "Supplier Compliance Review: {{brand_name}} ({{supplier_id}})"
assigned_group: "Procurement_Compliance"
description: "Supplier {{get-supplier.name}} ({{supplier_id}}). Brand: {{brand_name}}. Country: {{get-supplier.country}}. Review required certifications and ingredient safety docs."
- name: notify-procurement
type: call
call: "msteams.send-message"
with:
channel_id: "procurement_team"
text: "Supplier Compliance Review: {{brand_name}} ({{get-supplier.name}}). Task: {{create-compliance-task.number}}."
consumes:
- type: http
namespace: sap
baseUri: "https://sephora-s4.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: suppliers
path: "/A_Supplier('{{supplier_id}}')"
inputParameters:
- name: supplier_id
in: path
operations:
- name: get-supplier
method: GET
- type: http
namespace: servicenow
baseUri: "https://sephora.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
operations:
- name: create-task
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves a Tableau view for retail analytics and posts to Microsoft Teams.
naftiko: "0.5"
info:
label: "Tableau Retail Analytics Dashboard"
description: "Retrieves a Tableau view for retail analytics and posts to Microsoft Teams."
tags:
- analytics
- retail
- tableau
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail-dashboards
port: 8080
tools:
- name: share-retail-dashboard
description: "Fetch a Tableau retail view and share to Teams."
inputParameters:
- name: workbook_id
in: body
type: string
description: "Tableau workbook ID."
- name: view_id
in: body
type: string
description: "Tableau view ID."
steps:
- name: get-view
type: call
call: "tableau.get-view"
with:
workbook_id: "{{workbook_id}}"
view_id: "{{view_id}}"
- name: post-to-teams
type: call
call: "msteams.send-message"
with:
channel_id: "retail_analytics"
text: "Retail Analytics Dashboard: {{get-view.url}}"
consumes:
- type: http
namespace: tableau
baseUri: "https://tableau.sephora.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: views
path: "/sites/$secrets.tableau_site_id/workbooks/{{workbook_id}}/views/{{view_id}}"
inputParameters:
- name: workbook_id
in: path
- name: view_id
in: path
operations:
- name: get-view
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
Orchestrates vendor compliance audit pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Vendor Compliance Audit Pipeline"
description: "Orchestrates vendor compliance audit pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
tags:
- vendor
- sephora
- shopify
- datadog
- sephora
capability:
exposes:
- type: mcp
namespace: vendor
port: 8080
tools:
- name: vendor-compliance-audit-pipeline
description: "Orchestrates vendor compliance audit pipeline across beauty retail systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "shopify.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sephora.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: shopify
baseUri: "https://sephora.myshopify.com/admin/api/2024-01"
authentication:
type: bearer
token: "$secrets.shopify_token"
resources:
- name: shopify-resource
path: "/api/vendor"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/vendor"
operations:
- name: execute-2
method: POST
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: sephora-resource
path: "/api/vendor"
operations:
- name: execute-3
method: POST
Retrieves virtual try on session status data from the Sephora beauty retail systems.
naftiko: "0.5"
info:
label: "Virtual Try On Session Status"
description: "Retrieves virtual try on session status data from the Sephora beauty retail systems."
tags:
- virtual
- sephora
- status
capability:
exposes:
- type: mcp
namespace: virtual
port: 8080
tools:
- name: virtual-try-on-session-status
description: "Retrieves virtual try on session status data from the Sephora beauty retail systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "sephora.virtual-try-on-session-status"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: sephora
baseUri: "https://api.sephora.com/v2"
authentication:
type: bearer
token: "$secrets.sephora_api_token"
resources:
- name: resource
path: "/virtual/try/on/session/status/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: virtual-try-on-session-status
method: GET
Retrieves compensation data from Workday and sends a review to the manager via Outlook.
naftiko: "0.5"
info:
label: "Workday Compensation Review"
description: "Retrieves compensation data from Workday and sends a review to the manager via Outlook."
tags:
- hr
- compensation
- workday
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: hr-compensation
port: 8080
tools:
- name: generate-comp-review
description: "Generate a compensation review."
inputParameters:
- name: employee_id
in: body
type: string
description: "Workday employee ID."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: get-compensation
type: call
call: "workday.get-compensation"
with:
worker_id: "{{employee_id}}"
- name: send-review
type: call
call: "outlook.send-mail"
with:
recipient: "{{get-employee.manager_email}}"
subject: "Compensation Review: {{get-employee.full_name}}"
body: "Employee: {{get-employee.full_name}}. Base: {{get-compensation.base_pay}}. Performance: {{get-compensation.performance_rating}}."
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
- name: compensation
path: "/workers/{{worker_id}}/compensation"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-compensation
method: GET
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST
Retrieves a Workday worker profile by employee ID.
naftiko: "0.5"
info:
label: "Workday Employee Profile Lookup"
description: "Retrieves a Workday worker profile by employee ID."
tags:
- hr
- employee-data
- workday
capability:
exposes:
- type: mcp
namespace: hr-data
port: 8080
tools:
- name: get-employee-profile
description: "Look up a Workday employee."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.descriptor"
- name: department
type: string
mapping: "$.primaryPosition.department"
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
Creates a Zoom meeting and notifies via Microsoft Teams.
naftiko: "0.5"
info:
label: "Zoom Meeting Scheduler"
description: "Creates a Zoom meeting and notifies via Microsoft Teams."
tags:
- collaboration
- meetings
- zoom
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: schedule-zoom-meeting
description: "Create a Zoom meeting and notify via Teams."
inputParameters:
- name: topic
in: body
type: string
description: "Meeting topic."
- name: start_time
in: body
type: string
description: "Start time ISO 8601."
- name: duration
in: body
type: number
description: "Duration in minutes."
- name: teams_channel_id
in: body
type: string
description: "Teams channel."
steps:
- name: create-meeting
type: call
call: "zoom.create-meeting"
with:
topic: "{{topic}}"
start_time: "{{start_time}}"
duration: "{{duration}}"
- name: notify-teams
type: call
call: "msteams.send-message"
with:
channel_id: "{{teams_channel_id}}"
text: "Zoom meeting scheduled: {{topic}} at {{start_time}}. Join: {{create-meeting.join_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_token"
resources:
- name: meetings
path: "/users/me/meetings"
operations:
- name: create-meeting
method: POST
- type: http
namespace: 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