Tiffany & Co. Capabilities

Naftiko 0.5 capability definitions for Tiffany & Co. - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.

naftiko: "0.5"
info:
  label: "Annual Compliance Certification Orchestrator"
  description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
  tags:
    - compliance
    - hr
    - legal
capability:
  exposes:
    - type: mcp
      namespace: compliance
      port: 8080
      tools:
        - name: run-annual-compliance-certification-orchestrator
          description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.

naftiko: "0.5"
info:
  label: "API Lifecycle Management Orchestrator"
  description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
  tags:
    - engineering
    - api
    - operations
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: run-api-lifecycle-management-orchestrator
          description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Checks capacity and queue status at an artisan workshop.

naftiko: "0.5"
info:
  label: "Artisan Workshop Capacity"
  description: "Checks capacity and queue status at an artisan workshop."
  tags:
    - manufacturing
    - operations
capability:
  exposes:
    - type: mcp
      namespace: manufacturing
      port: 8080
      tools:
        - name: get-artisan
          description: "Checks capacity and queue status at an artisan workshop."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The artisan workshop capacity identifier."
          call: "manufacturing-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: manufacturing-api
      baseUri: "https://api.tiffany-and-co.com/manufacturing/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: artisan
          path: "/artisan/workshop/capacity/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-artisan
              method: GET

Retrieves upcoming brand ambassador event schedule.

naftiko: "0.5"
info:
  label: "Brand Ambassador Event Schedule"
  description: "Retrieves upcoming brand ambassador event schedule."
  tags:
    - marketing
    - events
capability:
  exposes:
    - type: mcp
      namespace: marketing
      port: 8080
      tools:
        - name: get-brand
          description: "Retrieves upcoming brand ambassador event schedule."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The brand ambassador event schedule identifier."
          call: "marketing-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: marketing-api
      baseUri: "https://api.tiffany-and-co.com/marketing/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: brand
          path: "/brand/ambassador/event/schedule/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-brand
              method: GET

Retrieves a Confluence wiki page.

naftiko: "0.5"
info:
  label: "Confluence Page Viewer"
  description: "Retrieves a Confluence wiki page."
  tags:
    - collaboration
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: collaboration
      port: 8080
      tools:
        - name: get-confluence
          description: "Retrieves a Confluence wiki page."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The confluence page viewer identifier."
          call: "collaboration-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: collaboration-api
      baseUri: "https://api.tiffany-and-co.com/collaboration/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: confluence
          path: "/confluence/page/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-confluence
              method: GET

Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.

naftiko: "0.5"
info:
  label: "Cross-Functional Project Kickoff Orchestrator"
  description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
  tags:
    - project-management
    - collaboration
    - operations
capability:
  exposes:
    - type: mcp
      namespace: project-management
      port: 8080
      tools:
        - name: run-cross-functional-project-kickoff-orchestrator
          description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Queries customers with upcoming purchase anniversaries from Snowflake, generates personalized recommendations, creates Salesforce tasks for associates, and sends anniversary emails.

naftiko: "0.5"
info:
  label: "Customer Anniversary Outreach"
  description: "Queries customers with upcoming purchase anniversaries from Snowflake, generates personalized recommendations, creates Salesforce tasks for associates, and sends anniversary emails."
  tags:
    - crm
    - marketing
    - salesforce
    - snowflake
    - microsoft-outlook
    - personalization
capability:
  exposes:
    - type: mcp
      namespace: anniversary-outreach
      port: 8080
      tools:
        - name: send-anniversary-outreach
          description: "Identify anniversary customers and send personalized communications."
          inputParameters:
            - name: days_ahead
              in: body
              type: integer
              description: "Days ahead to look for anniversaries."
          steps:
            - name: find-anniversaries
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "SELECT customer_id, email, name, original_product, purchase_date FROM CRM.PURCHASE_ANNIVERSARIES WHERE anniversary_date BETWEEN CURRENT_DATE AND DATEADD(day, {{days_ahead}}, CURRENT_DATE)"
            - name: create-tasks
              type: call
              call: "salesforce.create-record"
              with:
                object: "Task"
                Subject: "Anniversary outreach - {{find-anniversaries.row_count}} customers"
                Description: "Customers with upcoming purchase anniversaries identified."
            - name: send-emails
              type: call
              call: "outlook.send-email"
              with:
                to: "{{find-anniversaries.data}}"
                subject: "Tiffany & Co. - Celebrating your special moment"
                body: "A year ago, you chose something beautiful from Tiffany. We would love to help you celebrate again. Visit us to discover new treasures."
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: records
          path: "/sobjects/{{object}}"
          inputParameters:
            - name: object
              in: path
          operations:
            - name: create-record
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.

naftiko: "0.5"
info:
  label: "Customer Data Privacy Request Handler"
  description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
  tags:
    - compliance
    - privacy
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: compliance
      port: 8080
      tools:
        - name: run-customer-data-privacy-request-handler
          description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Creates a post-purchase feedback survey in Salesforce and sends the survey link to the customer via email.

naftiko: "0.5"
info:
  label: "Customer Feedback Collector"
  description: "Creates a post-purchase feedback survey in Salesforce and sends the survey link to the customer via email."
  tags:
    - customer-service
    - feedback
    - salesforce
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: feedback
      port: 8080
      tools:
        - name: send-feedback-survey
          description: "Create feedback survey and send to customer."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "Order ID."
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
            - name: sf_contact_id
              in: body
              type: string
              description: "Salesforce contact ID."
          steps:
            - name: create-survey
              type: call
              call: "salesforce.create-record"
              with:
                object: "Survey__c"
                Contact__c: "{{sf_contact_id}}"
                Order__c: "{{order_id}}"
                Status__c: "Sent"
            - name: send-survey
              type: call
              call: "outlook.send-email"
              with:
                to: "{{customer_email}}"
                subject: "Tiffany & Co. - Tell us about your experience"
                body: "We hope you love your purchase. Please share your feedback: {{create-survey.survey_url}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: records
          path: "/sobjects/{{object}}"
          inputParameters:
            - name: object
              in: path
          operations:
            - name: create-record
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.

naftiko: "0.5"
info:
  label: "Customer Journey Mapping Orchestrator"
  description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
  tags:
    - customer-experience
    - analytics
    - product-management
capability:
  exposes:
    - type: mcp
      namespace: customer-experience
      port: 8080
      tools:
        - name: run-customer-journey-mapping-orchestrator
          description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves a customer's loyalty points balance and tier status from the CRM. Used by store associates for clienteling.

naftiko: "0.5"
info:
  label: "Customer Loyalty Points Lookup"
  description: "Retrieves a customer's loyalty points balance and tier status from the CRM. Used by store associates for clienteling."
  tags:
    - crm
    - loyalty
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: loyalty
      port: 8080
      tools:
        - name: get-loyalty-status
          description: "Retrieve loyalty points and tier for a customer."
          inputParameters:
            - name: contact_id
              in: body
              type: string
              description: "Salesforce Contact ID."
          call: "salesforce.get-loyalty"
          with:
            contact_id: "{{contact_id}}"
          outputParameters:
            - name: points_balance
              type: integer
              mapping: "$.Loyalty_Points__c"
            - name: tier
              type: string
              mapping: "$.Loyalty_Tier__c"
            - name: lifetime_spend
              type: number
              mapping: "$.Lifetime_Spend__c"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: contacts
          path: "/sobjects/Contact/{{contact_id}}"
          inputParameters:
            - name: contact_id
              in: path
          operations:
            - name: get-loyalty
              method: GET

When a new order is placed on the e-commerce platform, validates inventory in SAP, creates a fulfillment task in the warehouse system, updates Salesforce with the order, and sends a confirmation email to the customer.

naftiko: "0.5"
info:
  label: "Customer Order Fulfillment Pipeline"
  description: "When a new order is placed on the e-commerce platform, validates inventory in SAP, creates a fulfillment task in the warehouse system, updates Salesforce with the order, and sends a confirmation email to the customer."
  tags:
    - retail
    - e-commerce
    - sap
    - salesforce
    - microsoft-outlook
    - order-management
capability:
  exposes:
    - type: mcp
      namespace: order-fulfillment
      port: 8080
      tools:
        - name: fulfill-order
          description: "Orchestrate order fulfillment from inventory check through shipping and customer notification."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "E-commerce order ID."
            - name: sku
              in: body
              type: string
              description: "Product SKU."
            - name: quantity
              in: body
              type: integer
              description: "Order quantity."
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
            - name: sf_contact_id
              in: body
              type: string
              description: "Salesforce contact ID."
          steps:
            - name: check-inventory
              type: call
              call: "sap.check-inventory"
              with:
                material_number: "{{sku}}"
                plant: "TF01"
            - name: create-fulfillment
              type: call
              call: "warehouse.create-order"
              with:
                order_id: "{{order_id}}"
                sku: "{{sku}}"
                quantity: "{{quantity}}"
            - name: update-crm
              type: call
              call: "salesforce.create-record"
              with:
                object: "Order__c"
                Contact__c: "{{sf_contact_id}}"
                Order_Number__c: "{{order_id}}"
                Status__c: "Processing"
            - name: send-confirmation
              type: call
              call: "outlook.send-email"
              with:
                to: "{{customer_email}}"
                subject: "Tiffany & Co. - Order Confirmation #{{order_id}}"
                body: "Thank you for your order. Your order #{{order_id}} is being prepared. We will notify you when it ships."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tiffany-sap.s4hana.cloud/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: stock
          path: "/A_MatlStkInAcctMod"
          inputParameters:
            - name: $filter
              in: query
          operations:
            - name: check-inventory
              method: GET
    - type: http
      namespace: warehouse
      baseUri: "https://api.tiffany.com/warehouse/v1"
      authentication:
        type: bearer
        token: "$secrets.warehouse_token"
      resources:
        - name: orders
          path: "/fulfillment-orders"
          operations:
            - name: create-order
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: records
          path: "/sobjects/{{object}}"
          inputParameters:
            - name: object
              in: path
          operations:
            - name: create-record
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Creates a repair request for a Tiffany product: logs the request, generates a repair order in the workshop system, and sends instructions to the customer.

naftiko: "0.5"
info:
  label: "Customer Repair Request Handler"
  description: "Creates a repair request for a Tiffany product: logs the request, generates a repair order in the workshop system, and sends instructions to the customer."
  tags:
    - retail
    - repairs
    - customer-service
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: repairs
      port: 8080
      tools:
        - name: create-repair-request
          description: "Create a product repair request and notify the customer."
          inputParameters:
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
            - name: product_description
              in: body
              type: string
              description: "Product description."
            - name: issue
              in: body
              type: string
              description: "Description of the issue."
            - name: store_id
              in: body
              type: string
              description: "Store where item was dropped off."
          steps:
            - name: create-order
              type: call
              call: "workshop.create-repair-order"
              with:
                product: "{{product_description}}"
                issue: "{{issue}}"
                store_id: "{{store_id}}"
            - name: notify-customer
              type: call
              call: "outlook.send-email"
              with:
                to: "{{customer_email}}"
                subject: "Tiffany & Co. - Repair Request Received"
                body: "Your repair request has been created. Reference: {{create-order.repair_id}}. Estimated completion: {{create-order.estimated_completion}}."
  consumes:
    - type: http
      namespace: workshop
      baseUri: "https://api.tiffany.com/workshop/v1"
      authentication:
        type: bearer
        token: "$secrets.workshop_token"
      resources:
        - name: repairs
          path: "/repair-orders"
          operations:
            - name: create-repair-order
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Creates a Salesforce case for a customer inquiry, assigns to the appropriate queue, and sends an acknowledgement email.

naftiko: "0.5"
info:
  label: "Customer Service Case Creator"
  description: "Creates a Salesforce case for a customer inquiry, assigns to the appropriate queue, and sends an acknowledgement email."
  tags:
    - customer-service
    - salesforce
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: customer-service
      port: 8080
      tools:
        - name: create-service-case
          description: "Create a customer service case and send acknowledgement."
          inputParameters:
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
            - name: subject
              in: body
              type: string
              description: "Case subject."
            - name: description
              in: body
              type: string
              description: "Case description."
            - name: category
              in: body
              type: string
              description: "Case category."
          steps:
            - name: create-case
              type: call
              call: "salesforce.create-case"
              with:
                Subject: "{{subject}}"
                Description: "{{description}}"
                Origin: "Web"
                Type: "{{category}}"
            - name: send-ack
              type: call
              call: "outlook.send-email"
              with:
                to: "{{customer_email}}"
                subject: "Tiffany & Co. - We received your inquiry"
                body: "Thank you for reaching out. Your case #{{create-case.CaseNumber}} has been created. Our team will respond within 24 hours."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: cases
          path: "/sobjects/Case"
          operations:
            - name: create-case
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Retrieves a customer's wish list from the e-commerce platform and logs it in Salesforce for clienteling purposes.

naftiko: "0.5"
info:
  label: "Customer Wish List Manager"
  description: "Retrieves a customer's wish list from the e-commerce platform and logs it in Salesforce for clienteling purposes."
  tags:
    - e-commerce
    - crm
    - salesforce
    - personalization
capability:
  exposes:
    - type: mcp
      namespace: wish-list
      port: 8080
      tools:
        - name: sync-wish-list
          description: "Retrieve customer wish list and sync to Salesforce."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "E-commerce customer ID."
            - name: sf_contact_id
              in: body
              type: string
              description: "Salesforce contact ID."
          steps:
            - name: get-wishlist
              type: call
              call: "ecommerce.get-wishlist"
              with:
                customer_id: "{{customer_id}}"
            - name: update-crm
              type: call
              call: "salesforce.update-contact"
              with:
                contact_id: "{{sf_contact_id}}"
                Wish_List__c: "{{get-wishlist.items}}"
  consumes:
    - type: http
      namespace: ecommerce
      baseUri: "https://api.tiffany.com/ecommerce/v1"
      authentication:
        type: bearer
        token: "$secrets.ecommerce_token"
      resources:
        - name: wishlists
          path: "/customers/{{customer_id}}/wishlist"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: get-wishlist
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: contacts
          path: "/sobjects/Contact/{{contact_id}}"
          inputParameters:
            - name: contact_id
              in: path
          operations:
            - name: update-contact
              method: PATCH

Queries store foot traffic data from Snowflake and sends a daily summary to store managers via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Daily Store Traffic Report"
  description: "Queries store foot traffic data from Snowflake and sends a daily summary to store managers via Microsoft Teams."
  tags:
    - retail
    - analytics
    - snowflake
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: store-traffic
      port: 8080
      tools:
        - name: send-traffic-report
          description: "Query store traffic data and notify managers."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Store ID."
            - name: manager_email
              in: body
              type: string
              description: "Store manager email."
          steps:
            - name: query-traffic
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "SELECT hour, visitor_count, conversion_rate FROM RETAIL.STORE_TRAFFIC WHERE store_id = '{{store_id}}' AND date = CURRENT_DATE"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{manager_email}}"
                text: "Daily traffic for store {{store_id}}: {{query-traffic.data}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.

naftiko: "0.5"
info:
  label: "Data Governance Review Orchestrator"
  description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
  tags:
    - data-governance
    - compliance
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: data-governance
      port: 8080
      tools:
        - name: run-data-governance-review-orchestrator
          description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves diamond grading certificate by stone ID.

naftiko: "0.5"
info:
  label: "Diamond Grading Certificate Lookup"
  description: "Retrieves diamond grading certificate by stone ID."
  tags:
    - product-management
    - quality
capability:
  exposes:
    - type: mcp
      namespace: product-management
      port: 8080
      tools:
        - name: get-diamond
          description: "Retrieves diamond grading certificate by stone ID."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The diamond grading certificate lookup identifier."
          call: "product-management-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: product-management-api
      baseUri: "https://api.tiffany-and-co.com/product-management/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: diamond
          path: "/diamond/grading/certificate/lookup/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-diamond
              method: GET

Creates a marketing campaign in Salesforce Marketing Cloud, segments the audience from Snowflake, schedules email delivery, and tracks campaign metrics.

naftiko: "0.5"
info:
  label: "Digital Marketing Campaign Orchestrator"
  description: "Creates a marketing campaign in Salesforce Marketing Cloud, segments the audience from Snowflake, schedules email delivery, and tracks campaign metrics."
  tags:
    - marketing
    - salesforce
    - snowflake
    - e-commerce
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: marketing-campaigns
      port: 8080
      tools:
        - name: launch-marketing-campaign
          description: "Create campaign, segment audience, and schedule delivery."
          inputParameters:
            - name: campaign_name
              in: body
              type: string
              description: "Campaign name."
            - name: collection
              in: body
              type: string
              description: "Product collection to promote."
            - name: segment_query
              in: body
              type: string
              description: "SQL query for audience segmentation."
          steps:
            - name: segment-audience
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "{{segment_query}}"
            - name: create-campaign
              type: call
              call: "salesforce.create-record"
              with:
                object: "Campaign"
                Name: "{{campaign_name}}"
                Type: "Email"
                Status: "Planned"
                Collection__c: "{{collection}}"
            - name: schedule-send
              type: call
              call: "marketing-cloud.schedule-email"
              with:
                campaign_id: "{{create-campaign.id}}"
                audience: "{{segment-audience.data}}"
                collection: "{{collection}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: records
          path: "/sobjects/{{object}}"
          inputParameters:
            - name: object
              in: path
          operations:
            - name: create-record
              method: POST
    - type: http
      namespace: marketing-cloud
      baseUri: "https://tiffany.rest.marketingcloudapis.com"
      authentication:
        type: bearer
        token: "$secrets.marketing_cloud_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: schedule-email
              method: POST

Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.

naftiko: "0.5"
info:
  label: "Digital Transformation Progress Orchestrator"
  description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
  tags:
    - strategy
    - analytics
    - project-management
capability:
  exposes:
    - type: mcp
      namespace: strategy
      port: 8080
      tools:
        - name: run-digital-transformation-progress-orchestrator
          description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.

naftiko: "0.5"
info:
  label: "Disaster Recovery Test Orchestrator"
  description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
  tags:
    - infrastructure
    - operations
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: infrastructure
      port: 8080
      tools:
        - name: run-disaster-recovery-test-orchestrator
          description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Queries abandoned carts from Snowflake, creates Salesforce follow-up tasks, and sends personalized recovery emails to customers.

naftiko: "0.5"
info:
  label: "E-Commerce Abandoned Cart Recovery"
  description: "Queries abandoned carts from Snowflake, creates Salesforce follow-up tasks, and sends personalized recovery emails to customers."
  tags:
    - e-commerce
    - marketing
    - snowflake
    - salesforce
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: cart-recovery
      port: 8080
      tools:
        - name: recover-abandoned-carts
          description: "Identify abandoned carts and send recovery communications."
          inputParameters:
            - name: hours_threshold
              in: body
              type: integer
              description: "Hours since cart was last active."
          steps:
            - name: find-abandoned
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "SELECT cart_id, customer_email, product_names, cart_total FROM ECOMMERCE.ABANDONED_CARTS WHERE hours_since_active >= {{hours_threshold}} AND recovery_sent = false"
            - name: create-tasks
              type: call
              call: "salesforce.create-record"
              with:
                object: "Task"
                Subject: "Abandoned cart recovery - {{find-abandoned.row_count}} carts"
                Description: "Abandoned carts older than {{hours_threshold}} hours identified."
            - name: send-recovery
              type: call
              call: "outlook.send-email"
              with:
                to: "{{find-abandoned.data}}"
                subject: "Tiffany & Co. - You left something beautiful behind"
                body: "We noticed you were admiring some of our pieces. Your selections are still available. Complete your purchase and enjoy the Tiffany experience."
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: records
          path: "/sobjects/{{object}}"
          inputParameters:
            - name: object
              in: path
          operations:
            - name: create-record
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Validates a promotional code for an e-commerce order and returns discount details.

naftiko: "0.5"
info:
  label: "E-Commerce Promo Code Validator"
  description: "Validates a promotional code for an e-commerce order and returns discount details."
  tags:
    - e-commerce
    - promotions
    - retail
capability:
  exposes:
    - type: mcp
      namespace: promotions
      port: 8080
      tools:
        - name: validate-promo-code
          description: "Validate a promotional code."
          inputParameters:
            - name: promo_code
              in: body
              type: string
              description: "Promotional code."
            - name: order_total
              in: body
              type: number
              description: "Order total for validation."
          call: "ecommerce.validate-promo"
          with:
            code: "{{promo_code}}"
            total: "{{order_total}}"
          outputParameters:
            - name: valid
              type: boolean
              mapping: "$.isValid"
            - name: discount_amount
              type: number
              mapping: "$.discountAmount"
            - name: discount_type
              type: string
              mapping: "$.discountType"
  consumes:
    - type: http
      namespace: ecommerce
      baseUri: "https://api.tiffany.com/ecommerce/v1"
      authentication:
        type: bearer
        token: "$secrets.ecommerce_token"
      resources:
        - name: promotions
          path: "/promotions/validate"
          operations:
            - name: validate-promo
              method: POST

Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.

naftiko: "0.5"
info:
  label: "Employee Offboarding Orchestrator"
  description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
  tags:
    - hr
    - identity
    - operations
capability:
  exposes:
    - type: mcp
      namespace: hr
      port: 8080
      tools:
        - name: run-employee-offboarding-orchestrator
          description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

When a new Tiffany employee is created in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Teams welcome message.

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "When a new Tiffany employee is created in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Orchestrate new employee onboarding across ServiceNow, SharePoint, and Teams."
          inputParameters:
            - name: workday_employee_id
              in: body
              type: string
              description: "Workday worker ID."
            - name: start_date
              in: body
              type: string
              description: "Start date."
            - name: department
              in: body
              type: string
              description: "Department."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{workday_employee_id}}"
            - name: open-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "New hire onboarding: {{get-employee.full_name}}"
                category: "hr_onboarding"
                description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding_site"
                folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.work_email}}"
                text: "Welcome to Tiffany & Co., {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://tiffany.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Processes a custom engraving request: validates the product, creates the engraving work order, updates the order timeline, and notifies the customer of the expected completion.

naftiko: "0.5"
info:
  label: "Engraving Order Processor"
  description: "Processes a custom engraving request: validates the product, creates the engraving work order, updates the order timeline, and notifies the customer of the expected completion."
  tags:
    - retail
    - customization
    - engraving
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: engraving
      port: 8080
      tools:
        - name: process-engraving
          description: "Create an engraving work order and notify the customer."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "Parent order ID."
            - name: sku
              in: body
              type: string
              description: "Product SKU."
            - name: engraving_text
              in: body
              type: string
              description: "Text to engrave."
            - name: font
              in: body
              type: string
              description: "Engraving font style."
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
          steps:
            - name: create-work-order
              type: call
              call: "workshop.create-engraving-order"
              with:
                order_id: "{{order_id}}"
                sku: "{{sku}}"
                text: "{{engraving_text}}"
                font: "{{font}}"
            - name: update-order-timeline
              type: call
              call: "orders.update-timeline"
              with:
                order_id: "{{order_id}}"
                estimated_completion: "{{create-work-order.estimated_completion}}"
            - name: notify-customer
              type: call
              call: "outlook.send-email"
              with:
                to: "{{customer_email}}"
                subject: "Tiffany & Co. - Engraving in Progress"
                body: "Your engraving order is being prepared. Text: '{{engraving_text}}'. Estimated completion: {{create-work-order.estimated_completion}}."
  consumes:
    - type: http
      namespace: workshop
      baseUri: "https://api.tiffany.com/workshop/v1"
      authentication:
        type: bearer
        token: "$secrets.workshop_token"
      resources:
        - name: engraving
          path: "/engraving-orders"
          operations:
            - name: create-engraving-order
              method: POST
    - type: http
      namespace: orders
      baseUri: "https://api.tiffany.com/orders/v1"
      authentication:
        type: bearer
        token: "$secrets.orders_token"
      resources:
        - name: orders
          path: "/orders/{{order_id}}/timeline"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: update-timeline
              method: PATCH
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.

naftiko: "0.5"
info:
  label: "Executive Dashboard Refresh Orchestrator"
  description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
  tags:
    - analytics
    - power-bi
    - business
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: run-executive-dashboard-refresh-orchestrator
          description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves the GIA certification details for a diamond or gemstone by certificate number, logs the verification in Snowflake, and updates the product record in SAP.

naftiko: "0.5"
info:
  label: "Gemstone Certification Tracker"
  description: "Retrieves the GIA certification details for a diamond or gemstone by certificate number, logs the verification in Snowflake, and updates the product record in SAP."
  tags:
    - supply-chain
    - certification
    - quality
    - snowflake
    - sap
capability:
  exposes:
    - type: mcp
      namespace: certification
      port: 8080
      tools:
        - name: verify-gemstone-cert
          description: "Verify GIA gemstone certification and update product records."
          inputParameters:
            - name: certificate_number
              in: body
              type: string
              description: "GIA certificate number."
            - name: sku
              in: body
              type: string
              description: "Product SKU."
          steps:
            - name: get-cert
              type: call
              call: "certification.verify-gia"
              with:
                certificate_number: "{{certificate_number}}"
            - name: log-verification
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "INSERT INTO SUPPLY_CHAIN.CERT_VERIFICATIONS (sku, cert_number, carat, clarity, color, cut, verified_date) VALUES ('{{sku}}', '{{certificate_number}}', {{get-cert.carat}}, '{{get-cert.clarity}}', '{{get-cert.color}}', '{{get-cert.cut}}', CURRENT_TIMESTAMP)"
            - name: update-sap
              type: call
              call: "sap.update-material"
              with:
                material_number: "{{sku}}"
                cert_number: "{{certificate_number}}"
                cert_verified: "true"
  consumes:
    - type: http
      namespace: certification
      baseUri: "https://api.tiffany.com/certification/v1"
      authentication:
        type: bearer
        token: "$secrets.certification_token"
      resources:
        - name: gia
          path: "/gia/verify"
          inputParameters:
            - name: certificate_number
              in: query
          operations:
            - name: verify-gia
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://tiffany-sap.s4hana.cloud/sap/opu/odata/sap/API_PRODUCT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: materials
          path: "/A_Product('{{material_number}}')"
          inputParameters:
            - name: material_number
              in: path
          operations:
            - name: update-material
              method: PATCH

Checks the remaining balance on a Tiffany gift card.

naftiko: "0.5"
info:
  label: "Gift Card Balance Checker"
  description: "Checks the remaining balance on a Tiffany gift card."
  tags:
    - retail
    - gift-card
    - e-commerce
capability:
  exposes:
    - type: mcp
      namespace: gift-cards
      port: 8080
      tools:
        - name: check-gift-card-balance
          description: "Check gift card balance."
          inputParameters:
            - name: card_number
              in: body
              type: string
              description: "Gift card number."
          call: "payments.check-gift-card"
          with:
            card_number: "{{card_number}}"
          outputParameters:
            - name: balance
              type: number
              mapping: "$.balance"
            - name: currency
              type: string
              mapping: "$.currency"
            - name: expiration_date
              type: string
              mapping: "$.expirationDate"
  consumes:
    - type: http
      namespace: payments
      baseUri: "https://api.tiffany.com/payments/v1"
      authentication:
        type: bearer
        token: "$secrets.payments_token"
      resources:
        - name: gift-cards
          path: "/gift-cards/{{card_number}}/balance"
          inputParameters:
            - name: card_number
              in: path
          operations:
            - name: check-gift-card
              method: GET

Creates a new gift registry for a customer, adds selected items from the catalog, publishes to the website, and sends a share link to the customer.

naftiko: "0.5"
info:
  label: "Gift Registry Creator"
  description: "Creates a new gift registry for a customer, adds selected items from the catalog, publishes to the website, and sends a share link to the customer."
  tags:
    - retail
    - e-commerce
    - gift-registry
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: gift-registry
      port: 8080
      tools:
        - name: create-gift-registry
          description: "Create a gift registry, add items, and share with the customer."
          inputParameters:
            - name: customer_name
              in: body
              type: string
              description: "Customer name."
            - name: event_type
              in: body
              type: string
              description: "Event type (wedding, birthday, etc.)."
            - name: event_date
              in: body
              type: string
              description: "Event date."
            - name: items
              in: body
              type: array
              description: "List of product SKUs."
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
          steps:
            - name: create-registry
              type: call
              call: "registry.create"
              with:
                customer_name: "{{customer_name}}"
                event_type: "{{event_type}}"
                event_date: "{{event_date}}"
            - name: add-items
              type: call
              call: "registry.add-items"
              with:
                registry_id: "{{create-registry.registry_id}}"
                items: "{{items}}"
            - name: send-share-link
              type: call
              call: "outlook.send-email"
              with:
                to: "{{customer_email}}"
                subject: "Tiffany & Co. - Your Gift Registry is Ready"
                body: "Your {{event_type}} registry has been created. Share link: {{create-registry.share_url}}. {{add-items.item_count}} items added."
  consumes:
    - type: http
      namespace: registry
      baseUri: "https://api.tiffany.com/registry/v1"
      authentication:
        type: bearer
        token: "$secrets.registry_token"
      resources:
        - name: registries
          path: "/registries"
          operations:
            - name: create
              method: POST
        - name: items
          path: "/registries/{{registry_id}}/items"
          inputParameters:
            - name: registry_id
              in: path
          operations:
            - name: add-items
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Queries Google Analytics for website traffic metrics including page views, sessions, and bounce rate, and emails the report to the digital marketing team.

naftiko: "0.5"
info:
  label: "Google Analytics Website Report"
  description: "Queries Google Analytics for website traffic metrics including page views, sessions, and bounce rate, and emails the report to the digital marketing team."
  tags:
    - e-commerce
    - analytics
    - google-analytics
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: web-analytics
      port: 8080
      tools:
        - name: generate-web-report
          description: "Query website analytics and email the report."
          inputParameters:
            - name: date_range
              in: body
              type: string
              description: "Report date range."
            - name: team_email
              in: body
              type: string
              description: "Digital marketing team email."
          steps:
            - name: get-analytics
              type: call
              call: "ga.get-report"
              with:
                date_range: "{{date_range}}"
                metrics: "sessions,pageviews,bounceRate"
            - name: email-report
              type: call
              call: "outlook.send-email"
              with:
                to: "{{team_email}}"
                subject: "Tiffany.com Traffic Report - {{date_range}}"
                body: "Sessions: {{get-analytics.sessions}}, Page views: {{get-analytics.pageviews}}, Bounce rate: {{get-analytics.bounceRate}}%."
  consumes:
    - type: http
      namespace: ga
      baseUri: "https://analyticsdata.googleapis.com/v1beta"
      authentication:
        type: bearer
        token: "$secrets.ga_token"
      resources:
        - name: reports
          path: "/properties/{{property_id}}:runReport"
          operations:
            - name: get-report
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Retrieves a file from Google Drive.

naftiko: "0.5"
info:
  label: "Google Drive File Viewer"
  description: "Retrieves a file from Google Drive."
  tags:
    - collaboration
    - google-drive
capability:
  exposes:
    - type: mcp
      namespace: collaboration
      port: 8080
      tools:
        - name: get-google
          description: "Retrieves a file from Google Drive."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The google drive file viewer identifier."
          call: "collaboration-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: collaboration-api
      baseUri: "https://api.tiffany-and-co.com/collaboration/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: google
          path: "/google/drive/file/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-google
              method: GET

Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.

naftiko: "0.5"
info:
  label: "Infrastructure Capacity Planning Orchestrator"
  description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
  tags:
    - infrastructure
    - planning
    - finance
capability:
  exposes:
    - type: mcp
      namespace: infrastructure
      port: 8080
      tools:
        - name: run-infrastructure-capacity-planning-orchestrator
          description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Queries low-stock items from Snowflake, creates SAP purchase requisitions for replenishment, and notifies the supply chain team via Slack.

naftiko: "0.5"
info:
  label: "Inventory Replenishment Pipeline"
  description: "Queries low-stock items from Snowflake, creates SAP purchase requisitions for replenishment, and notifies the supply chain team via Slack."
  tags:
    - supply-chain
    - inventory
    - sap
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: replenishment
      port: 8080
      tools:
        - name: trigger-replenishment
          description: "Identify low-stock items, create purchase requisitions, and notify supply chain."
          inputParameters:
            - name: threshold
              in: body
              type: integer
              description: "Minimum stock threshold."
            - name: slack_channel
              in: body
              type: string
              description: "Slack channel for notifications."
          steps:
            - name: find-low-stock
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "SELECT sku, product_name, current_stock, reorder_quantity FROM RETAIL.INVENTORY WHERE current_stock < {{threshold}}"
            - name: create-requisitions
              type: call
              call: "sap.create-purchase-requisition"
              with:
                items: "{{find-low-stock.data}}"
            - name: notify-team
              type: call
              call: "slack.post-message"
              with:
                channel: "{{slack_channel}}"
                text: "Replenishment triggered for {{find-low-stock.row_count}} items below threshold of {{threshold}}. Purchase requisitions created."
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://tiffany-sap.s4hana.cloud/sap/opu/odata/sap/API_PURCHASEREQ_PROCESS_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: requisitions
          path: "/A_PurchaseRequisitionHeader"
          operations:
            - name: create-purchase-requisition
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.

naftiko: "0.5"
info:
  label: "IT Change Management Orchestrator"
  description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
  tags:
    - it
    - servicenow
    - operations
capability:
  exposes:
    - type: mcp
      namespace: it
      port: 8080
      tools:
        - name: run-it-change-management-orchestrator
          description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed IT Change Management Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves a Jira issue by key. Used by IT and project teams.

naftiko: "0.5"
info:
  label: "Jira Issue Viewer"
  description: "Retrieves a Jira issue by key. Used by IT and project teams."
  tags:
    - project-management
    - jira
capability:
  exposes:
    - type: mcp
      namespace: pm-lookup
      port: 8080
      tools:
        - name: get-jira-issue
          description: "Look up a Jira issue by key."
          inputParameters:
            - name: issue_key
              in: body
              type: string
              description: "Jira issue key."
          call: "jira.get-issue"
          with:
            issue_key: "{{issue_key}}"
          outputParameters:
            - name: summary
              type: string
              mapping: "$.fields.summary"
            - name: status
              type: string
              mapping: "$.fields.status.name"
            - name: assignee
              type: string
              mapping: "$.fields.assignee.displayName"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://tiffany.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: issues
          path: "/issue/{{issue_key}}"
          inputParameters:
            - name: issue_key
              in: path
          operations:
            - name: get-issue
              method: GET

Retrieves a Jira ticket by issue key.

naftiko: "0.5"
info:
  label: "Jira Ticket Viewer"
  description: "Retrieves a Jira ticket by issue key."
  tags:
    - engineering
    - jira
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: get-jira
          description: "Retrieves a Jira ticket by issue key."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The jira ticket viewer identifier."
          call: "engineering-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: engineering-api
      baseUri: "https://api.tiffany-and-co.com/engineering/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: jira
          path: "/jira/ticket/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-jira
              method: GET

Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.

naftiko: "0.5"
info:
  label: "Knowledge Base Refresh Orchestrator"
  description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
  tags:
    - knowledge-management
    - collaboration
    - operations
capability:
  exposes:
    - type: mcp
      namespace: knowledge-management
      port: 8080
      tools:
        - name: run-knowledge-base-refresh-orchestrator
          description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Creates a special luxury packaging request for a high-value order, assigns to the packaging team, and updates the order status.

naftiko: "0.5"
info:
  label: "Luxury Packaging Request"
  description: "Creates a special luxury packaging request for a high-value order, assigns to the packaging team, and updates the order status."
  tags:
    - retail
    - customization
    - packaging
capability:
  exposes:
    - type: mcp
      namespace: luxury-packaging
      port: 8080
      tools:
        - name: request-luxury-packaging
          description: "Create luxury packaging request for a high-value order."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "Order ID."
            - name: packaging_type
              in: body
              type: string
              description: "Packaging type (signature-blue, gift-wrap, presentation-box)."
            - name: gift_message
              in: body
              type: string
              description: "Optional gift message."
          steps:
            - name: create-request
              type: call
              call: "warehouse.create-packaging-request"
              with:
                order_id: "{{order_id}}"
                type: "{{packaging_type}}"
                message: "{{gift_message}}"
            - name: update-order
              type: call
              call: "orders.update-timeline"
              with:
                order_id: "{{order_id}}"
                packaging_status: "{{create-request.status}}"
  consumes:
    - type: http
      namespace: warehouse
      baseUri: "https://api.tiffany.com/warehouse/v1"
      authentication:
        type: bearer
        token: "$secrets.warehouse_token"
      resources:
        - name: packaging
          path: "/packaging-requests"
          operations:
            - name: create-packaging-request
              method: POST
    - type: http
      namespace: orders
      baseUri: "https://api.tiffany.com/orders/v1"
      authentication:
        type: bearer
        token: "$secrets.orders_token"
      resources:
        - name: orders
          path: "/orders/{{order_id}}/timeline"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: update-timeline
              method: PATCH

Orchestrates luxury retail workflow 1 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Luxury Retail Workflow 1"
  description: "Orchestrates luxury retail workflow 1 by coordinating across systems, validating data, and sending notifications."
  tags:
    - luxury
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: run-luxury-retail-workflow-001
          description: "Orchestrates luxury retail workflow 1 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Luxury Retail Workflow 1 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates luxury retail workflow 2 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Luxury Retail Workflow 2"
  description: "Orchestrates luxury retail workflow 2 by coordinating across systems, validating data, and sending notifications."
  tags:
    - luxury
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: run-luxury-retail-workflow-002
          description: "Orchestrates luxury retail workflow 2 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Luxury Retail Workflow 2 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves luxury retail operational data for workflow 3.

naftiko: "0.5"
info:
  label: "Luxury Retail Data Query 3"
  description: "Retrieves luxury retail operational data for workflow 3."
  tags:
    - luxury
    - operations
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: get-data-3
          description: "Query luxury retail data for workflow 3."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "luxury-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: luxury-api
      baseUri: "https://api.tiffany-and-co.com/luxury-retail/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-3
              method: GET

Orchestrates luxury retail workflow 4 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Luxury Retail Workflow 4"
  description: "Orchestrates luxury retail workflow 4 by coordinating across systems, validating data, and sending notifications."
  tags:
    - luxury
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: run-luxury-retail-workflow-004
          description: "Orchestrates luxury retail workflow 4 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Luxury Retail Workflow 4 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates luxury retail workflow 5 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Luxury Retail Workflow 5"
  description: "Orchestrates luxury retail workflow 5 by coordinating across systems, validating data, and sending notifications."
  tags:
    - luxury
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: run-luxury-retail-workflow-005
          description: "Orchestrates luxury retail workflow 5 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Luxury Retail Workflow 5 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves luxury retail operational data for workflow 6.

naftiko: "0.5"
info:
  label: "Luxury Retail Data Query 6"
  description: "Retrieves luxury retail operational data for workflow 6."
  tags:
    - luxury
    - operations
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: get-data-6
          description: "Query luxury retail data for workflow 6."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "luxury-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: luxury-api
      baseUri: "https://api.tiffany-and-co.com/luxury-retail/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-6
              method: GET

Orchestrates luxury retail workflow 7 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Luxury Retail Workflow 7"
  description: "Orchestrates luxury retail workflow 7 by coordinating across systems, validating data, and sending notifications."
  tags:
    - luxury
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: run-luxury-retail-workflow-007
          description: "Orchestrates luxury retail workflow 7 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Luxury Retail Workflow 7 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates luxury retail workflow 8 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Luxury Retail Workflow 8"
  description: "Orchestrates luxury retail workflow 8 by coordinating across systems, validating data, and sending notifications."
  tags:
    - luxury
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: run-luxury-retail-workflow-008
          description: "Orchestrates luxury retail workflow 8 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Luxury Retail Workflow 8 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves luxury retail operational data for workflow 9.

naftiko: "0.5"
info:
  label: "Luxury Retail Data Query 9"
  description: "Retrieves luxury retail operational data for workflow 9."
  tags:
    - luxury
    - operations
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: get-data-9
          description: "Query luxury retail data for workflow 9."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "luxury-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: luxury-api
      baseUri: "https://api.tiffany-and-co.com/luxury-retail/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-9
              method: GET

Orchestrates luxury retail workflow 10 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Luxury Retail Workflow 10"
  description: "Orchestrates luxury retail workflow 10 by coordinating across systems, validating data, and sending notifications."
  tags:
    - luxury
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: run-luxury-retail-workflow-010
          description: "Orchestrates luxury retail workflow 10 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Luxury Retail Workflow 10 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates luxury retail workflow 11 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Luxury Retail Workflow 11"
  description: "Orchestrates luxury retail workflow 11 by coordinating across systems, validating data, and sending notifications."
  tags:
    - luxury
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: run-luxury-retail-workflow-011
          description: "Orchestrates luxury retail workflow 11 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Luxury Retail Workflow 11 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves luxury retail operational data for workflow 12.

naftiko: "0.5"
info:
  label: "Luxury Retail Data Query 12"
  description: "Retrieves luxury retail operational data for workflow 12."
  tags:
    - luxury
    - operations
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: get-data-12
          description: "Query luxury retail data for workflow 12."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "luxury-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: luxury-api
      baseUri: "https://api.tiffany-and-co.com/luxury-retail/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-12
              method: GET

Orchestrates luxury retail workflow 13 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Luxury Retail Workflow 13"
  description: "Orchestrates luxury retail workflow 13 by coordinating across systems, validating data, and sending notifications."
  tags:
    - luxury
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: run-luxury-retail-workflow-013
          description: "Orchestrates luxury retail workflow 13 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Luxury Retail Workflow 13 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates luxury retail workflow 14 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Luxury Retail Workflow 14"
  description: "Orchestrates luxury retail workflow 14 by coordinating across systems, validating data, and sending notifications."
  tags:
    - luxury
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: run-luxury-retail-workflow-014
          description: "Orchestrates luxury retail workflow 14 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Luxury Retail Workflow 14 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves luxury retail operational data for workflow 15.

naftiko: "0.5"
info:
  label: "Luxury Retail Data Query 15"
  description: "Retrieves luxury retail operational data for workflow 15."
  tags:
    - luxury
    - operations
capability:
  exposes:
    - type: mcp
      namespace: luxury
      port: 8080
      tools:
        - name: get-data-15
          description: "Query luxury retail data for workflow 15."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "luxury-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: luxury-api
      baseUri: "https://api.tiffany-and-co.com/luxury-retail/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-15
              method: GET

Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.

naftiko: "0.5"
info:
  label: "Marketing Campaign Performance Orchestrator"
  description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
  tags:
    - marketing
    - analytics
    - finance
capability:
  exposes:
    - type: mcp
      namespace: marketing
      port: 8080
      tools:
        - name: run-marketing-campaign-performance-orchestrator
          description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Sends an email via Microsoft Outlook. Used for customer and internal notifications.

naftiko: "0.5"
info:
  label: "Microsoft Outlook Email Sender"
  description: "Sends an email via Microsoft Outlook. Used for customer and internal notifications."
  tags:
    - notification
    - microsoft-outlook
    - email
capability:
  exposes:
    - type: mcp
      namespace: email-sender
      port: 8080
      tools:
        - name: send-email
          description: "Send an email via Outlook."
          inputParameters:
            - name: to
              in: body
              type: string
              description: "Recipient."
            - name: subject
              in: body
              type: string
              description: "Subject."
            - name: body
              in: body
              type: string
              description: "Body."
          call: "outlook.send-email"
          with:
            to: "{{to}}"
            subject: "{{subject}}"
            body: "{{body}}"
          outputParameters:
            - name: message_id
              type: string
              mapping: "$.id"
  consumes:
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Sends a message to a Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Microsoft Teams Message Sender"
  description: "Sends a message to a Microsoft Teams channel."
  tags:
    - communications
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: communications
      port: 8080
      tools:
        - name: get-microsoft
          description: "Sends a message to a Microsoft Teams channel."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The microsoft teams message sender identifier."
          call: "communications-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: communications-api
      baseUri: "https://api.tiffany-and-co.com/communications/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: microsoft
          path: "/microsoft/teams/message/sender/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-microsoft
              method: GET

Retrieves the current status of a customer order including processing state, shipping details, and estimated delivery.

naftiko: "0.5"
info:
  label: "Order Status Lookup"
  description: "Retrieves the current status of a customer order including processing state, shipping details, and estimated delivery."
  tags:
    - retail
    - e-commerce
    - order-management
capability:
  exposes:
    - type: mcp
      namespace: order-inquiry
      port: 8080
      tools:
        - name: get-order-status
          description: "Look up current order status by order ID."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "Order ID."
          call: "orders.get-order"
          with:
            order_id: "{{order_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: tracking_number
              type: string
              mapping: "$.trackingNumber"
            - name: estimated_delivery
              type: string
              mapping: "$.estimatedDelivery"
            - name: total_amount
              type: number
              mapping: "$.totalAmount"
  consumes:
    - type: http
      namespace: orders
      baseUri: "https://api.tiffany.com/orders/v1"
      authentication:
        type: bearer
        token: "$secrets.orders_token"
      resources:
        - name: orders
          path: "/orders/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: get-order
              method: GET

Triggers a Power BI dataset refresh.

naftiko: "0.5"
info:
  label: "Power BI Dashboard Refresher"
  description: "Triggers a Power BI dataset refresh."
  tags:
    - analytics
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: get-power
          description: "Triggers a Power BI dataset refresh."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The power bi dashboard refresher identifier."
          call: "analytics-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://api.tiffany-and-co.com/analytics/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: power
          path: "/power/bi/dashboard/refresher/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-power
              method: GET

Triggers a refresh on a Power BI dataset. Used to keep dashboards current.

naftiko: "0.5"
info:
  label: "Power BI Dataset Refresher"
  description: "Triggers a refresh on a Power BI dataset. Used to keep dashboards current."
  tags:
    - analytics
    - power-bi
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: bi-refresh
      port: 8080
      tools:
        - name: refresh-pbi-dataset
          description: "Trigger a Power BI dataset refresh."
          inputParameters:
            - name: dataset_id
              in: body
              type: string
              description: "Power BI dataset ID."
          call: "powerbi.refresh-dataset"
          with:
            dataset_id: "{{dataset_id}}"
          outputParameters:
            - name: request_id
              type: string
              mapping: "$.requestId"
  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

Retrieves current spot prices for precious metals (gold, silver, platinum) from the commodity pricing service. Used by procurement and pricing teams.

naftiko: "0.5"
info:
  label: "Precious Metal Price Lookup"
  description: "Retrieves current spot prices for precious metals (gold, silver, platinum) from the commodity pricing service. Used by procurement and pricing teams."
  tags:
    - supply-chain
    - pricing
    - commodities
capability:
  exposes:
    - type: mcp
      namespace: commodity-prices
      port: 8080
      tools:
        - name: get-metal-price
          description: "Look up current spot price for a precious metal."
          inputParameters:
            - name: metal
              in: body
              type: string
              description: "Metal type (gold, silver, platinum)."
            - name: currency
              in: body
              type: string
              description: "Currency code."
          call: "pricing.get-spot-price"
          with:
            metal: "{{metal}}"
            currency: "{{currency}}"
          outputParameters:
            - name: spot_price
              type: number
              mapping: "$.spotPrice"
            - name: unit
              type: string
              mapping: "$.unit"
            - name: timestamp
              type: string
              mapping: "$.timestamp"
  consumes:
    - type: http
      namespace: pricing
      baseUri: "https://api.tiffany.com/pricing/v1"
      authentication:
        type: bearer
        token: "$secrets.pricing_token"
      resources:
        - name: spot-prices
          path: "/metals/spot"
          inputParameters:
            - name: metal
              in: query
            - name: currency
              in: query
          operations:
            - name: get-spot-price
              method: GET

Retrieves current precious metal spot prices.

naftiko: "0.5"
info:
  label: "Precious Metal Spot Price"
  description: "Retrieves current precious metal spot prices."
  tags:
    - pricing
    - finance
capability:
  exposes:
    - type: mcp
      namespace: pricing
      port: 8080
      tools:
        - name: get-precious
          description: "Retrieves current precious metal spot prices."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The precious metal spot price identifier."
          call: "pricing-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: pricing-api
      baseUri: "https://api.tiffany-and-co.com/pricing/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: precious
          path: "/precious/metal/spot/price/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-precious
              method: GET

Retrieves current pricing for a product by SKU and market from the pricing service.

naftiko: "0.5"
info:
  label: "Price List Viewer"
  description: "Retrieves current pricing for a product by SKU and market from the pricing service."
  tags:
    - retail
    - pricing
    - product-catalog
capability:
  exposes:
    - type: mcp
      namespace: pricing
      port: 8080
      tools:
        - name: get-product-price
          description: "Retrieve current pricing for a product by market."
          inputParameters:
            - name: sku
              in: body
              type: string
              description: "Product SKU."
            - name: market
              in: body
              type: string
              description: "Market code (US, EU, APAC)."
          call: "pricing.get-price"
          with:
            sku: "{{sku}}"
            market: "{{market}}"
          outputParameters:
            - name: retail_price
              type: number
              mapping: "$.retailPrice"
            - name: currency
              type: string
              mapping: "$.currency"
            - name: effective_date
              type: string
              mapping: "$.effectiveDate"
  consumes:
    - type: http
      namespace: pricing
      baseUri: "https://api.tiffany.com/pricing/v1"
      authentication:
        type: bearer
        token: "$secrets.pricing_token"
      resources:
        - name: prices
          path: "/products/{{sku}}/price"
          inputParameters:
            - name: sku
              in: path
            - name: market
              in: query
          operations:
            - name: get-price
              method: GET

Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.

naftiko: "0.5"
info:
  label: "Procurement Spend Analysis Orchestrator"
  description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
  tags:
    - procurement
    - analytics
    - finance
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: run-procurement-spend-analysis-orchestrator
          description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves product details from the product catalog including name, description, price, and available collections. Used by store associates and the e-commerce platform.

naftiko: "0.5"
info:
  label: "Product Catalog Viewer"
  description: "Retrieves product details from the product catalog including name, description, price, and available collections. Used by store associates and the e-commerce platform."
  tags:
    - retail
    - product-catalog
    - e-commerce
capability:
  exposes:
    - type: mcp
      namespace: product-catalog
      port: 8080
      tools:
        - name: get-product
          description: "Retrieve product details by SKU."
          inputParameters:
            - name: sku
              in: body
              type: string
              description: "Product SKU."
          call: "catalog.get-product"
          with:
            sku: "{{sku}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.productName"
            - name: description
              type: string
              mapping: "$.description"
            - name: price
              type: number
              mapping: "$.retailPrice"
            - name: collection
              type: string
              mapping: "$.collectionName"
            - name: material
              type: string
              mapping: "$.material"
  consumes:
    - type: http
      namespace: catalog
      baseUri: "https://api.tiffany.com/catalog/v1"
      authentication:
        type: bearer
        token: "$secrets.catalog_token"
      resources:
        - name: products
          path: "/products/{{sku}}"
          inputParameters:
            - name: sku
              in: path
          operations:
            - name: get-product
              method: GET

Lists products in a specific Tiffany collection with names, prices, and availability.

naftiko: "0.5"
info:
  label: "Product Collection Browser"
  description: "Lists products in a specific Tiffany collection with names, prices, and availability."
  tags:
    - retail
    - product-catalog
    - collections
capability:
  exposes:
    - type: mcp
      namespace: collection-browser
      port: 8080
      tools:
        - name: browse-collection
          description: "List products in a collection."
          inputParameters:
            - name: collection_name
              in: body
              type: string
              description: "Collection name."
          call: "catalog.get-collection"
          with:
            collection: "{{collection_name}}"
          outputParameters:
            - name: products
              type: array
              mapping: "$.products"
            - name: count
              type: integer
              mapping: "$.totalCount"
  consumes:
    - type: http
      namespace: catalog
      baseUri: "https://api.tiffany.com/catalog/v1"
      authentication:
        type: bearer
        token: "$secrets.catalog_token"
      resources:
        - name: collections
          path: "/collections/{{collection}}/products"
          inputParameters:
            - name: collection
              in: path
          operations:
            - name: get-collection
              method: GET

Checks the current inventory level for a product SKU across all locations in SAP. Used by store associates and e-commerce teams.

naftiko: "0.5"
info:
  label: "Product Inventory Lookup"
  description: "Checks the current inventory level for a product SKU across all locations in SAP. Used by store associates and e-commerce teams."
  tags:
    - retail
    - inventory
    - sap
capability:
  exposes:
    - type: mcp
      namespace: inventory-inquiry
      port: 8080
      tools:
        - name: check-inventory
          description: "Look up current inventory for a product SKU across locations."
          inputParameters:
            - name: sku
              in: body
              type: string
              description: "Product SKU."
          call: "sap.get-stock"
          with:
            material_number: "{{sku}}"
          outputParameters:
            - name: total_stock
              type: integer
              mapping: "$.totalStock"
            - name: available
              type: integer
              mapping: "$.availableStock"
            - name: locations
              type: array
              mapping: "$.stockByLocation"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tiffany-sap.s4hana.cloud/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: stock
          path: "/A_MatlStkInAcctMod"
          inputParameters:
            - name: $filter
              in: query
          operations:
            - name: get-stock
              method: GET

Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.

naftiko: "0.5"
info:
  label: "Quarterly Business Review Orchestrator"
  description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
  tags:
    - analytics
    - business
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: run-quarterly-business-review-orchestrator
          description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Queries supplier compliance data from Snowflake for Kimberley Process and Responsible Jewellery Council certifications, generates an audit report, and uploads to SharePoint.

naftiko: "0.5"
info:
  label: "Responsible Sourcing Compliance Tracker"
  description: "Queries supplier compliance data from Snowflake for Kimberley Process and Responsible Jewellery Council certifications, generates an audit report, and uploads to SharePoint."
  tags:
    - supply-chain
    - compliance
    - sustainability
    - snowflake
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: responsible-sourcing
      port: 8080
      tools:
        - name: generate-sourcing-report
          description: "Generate responsible sourcing compliance report."
          inputParameters:
            - name: report_period
              in: body
              type: string
              description: "Reporting period."
            - name: sharepoint_site
              in: body
              type: string
              description: "SharePoint site ID."
          steps:
            - name: query-compliance
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "SELECT supplier_id, supplier_name, kp_certified, rjc_certified, last_audit_date, compliance_status FROM SUPPLY_CHAIN.SUPPLIER_COMPLIANCE WHERE report_period = '{{report_period}}'"
            - name: upload-report
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "{{sharepoint_site}}"
                folder_path: "ResponsibleSourcing"
                file_name: "sourcing_compliance_{{report_period}}.json"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: 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}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT

Processes a customer return: validates the original order, creates a return authorization, updates inventory in SAP, refunds through the payment gateway, and sends confirmation to the customer.

naftiko: "0.5"
info:
  label: "Return and Exchange Processor"
  description: "Processes a customer return: validates the original order, creates a return authorization, updates inventory in SAP, refunds through the payment gateway, and sends confirmation to the customer."
  tags:
    - retail
    - returns
    - sap
    - payments
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: returns
      port: 8080
      tools:
        - name: process-return
          description: "Process a product return from authorization through refund and notification."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "Original order ID."
            - name: sku
              in: body
              type: string
              description: "Product SKU being returned."
            - name: reason
              in: body
              type: string
              description: "Return reason."
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
          steps:
            - name: validate-order
              type: call
              call: "orders.get-order"
              with:
                order_id: "{{order_id}}"
            - name: create-rma
              type: call
              call: "orders.create-return"
              with:
                order_id: "{{order_id}}"
                sku: "{{sku}}"
                reason: "{{reason}}"
            - name: update-inventory
              type: call
              call: "sap.post-goods-receipt"
              with:
                material_number: "{{sku}}"
                quantity: "1"
                movement_type: "651"
            - name: process-refund
              type: call
              call: "payments.process-refund"
              with:
                order_id: "{{order_id}}"
                amount: "{{validate-order.total_amount}}"
            - name: send-confirmation
              type: call
              call: "outlook.send-email"
              with:
                to: "{{customer_email}}"
                subject: "Tiffany & Co. - Return Confirmation"
                body: "Your return for order #{{order_id}} has been processed. RMA: {{create-rma.rma_number}}. Refund of ${{validate-order.total_amount}} will be processed within 5-7 business days."
  consumes:
    - type: http
      namespace: orders
      baseUri: "https://api.tiffany.com/orders/v1"
      authentication:
        type: bearer
        token: "$secrets.orders_token"
      resources:
        - name: orders
          path: "/orders/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: get-order
              method: GET
        - name: returns
          path: "/returns"
          operations:
            - name: create-return
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://tiffany-sap.s4hana.cloud/sap/opu/odata/sap/API_MATERIAL_DOCUMENT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: goods-receipt
          path: "/A_MaterialDocumentHeader"
          operations:
            - name: post-goods-receipt
              method: POST
    - type: http
      namespace: payments
      baseUri: "https://api.tiffany.com/payments/v1"
      authentication:
        type: bearer
        token: "$secrets.payments_token"
      resources:
        - name: refunds
          path: "/refunds"
          operations:
            - name: process-refund
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Retrieves a Salesforce account by account ID.

naftiko: "0.5"
info:
  label: "Salesforce Account Viewer"
  description: "Retrieves a Salesforce account by account ID."
  tags:
    - sales
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: sales
      port: 8080
      tools:
        - name: get-salesforce
          description: "Retrieves a Salesforce account by account ID."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The salesforce account viewer identifier."
          call: "sales-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: sales-api
      baseUri: "https://api.tiffany-and-co.com/sales/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: salesforce
          path: "/salesforce/account/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-salesforce
              method: GET

Retrieves a Salesforce marketing campaign by ID with status, budget, and response metrics.

naftiko: "0.5"
info:
  label: "Salesforce Campaign Viewer"
  description: "Retrieves a Salesforce marketing campaign by ID with status, budget, and response metrics."
  tags:
    - marketing
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: campaign-viewer
      port: 8080
      tools:
        - name: get-campaign
          description: "Retrieve a Salesforce campaign by ID."
          inputParameters:
            - name: campaign_id
              in: body
              type: string
              description: "Salesforce Campaign ID."
          call: "salesforce.get-campaign"
          with:
            campaign_id: "{{campaign_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.Name"
            - name: status
              type: string
              mapping: "$.Status"
            - name: budget
              type: number
              mapping: "$.BudgetedCost"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: campaigns
          path: "/sobjects/Campaign/{{campaign_id}}"
          inputParameters:
            - name: campaign_id
              in: path
          operations:
            - name: get-campaign
              method: GET

Retrieves a Salesforce contact record by ID. Used by store associates and customer service.

naftiko: "0.5"
info:
  label: "Salesforce Contact Viewer"
  description: "Retrieves a Salesforce contact record by ID. Used by store associates and customer service."
  tags:
    - crm
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: crm-viewer
      port: 8080
      tools:
        - name: get-contact
          description: "Retrieve a Salesforce contact by ID."
          inputParameters:
            - name: contact_id
              in: body
              type: string
              description: "Salesforce Contact ID."
          call: "salesforce.get-contact"
          with:
            contact_id: "{{contact_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.Name"
            - name: email
              type: string
              mapping: "$.Email"
            - name: phone
              type: string
              mapping: "$.Phone"
            - name: lifetime_spend
              type: number
              mapping: "$.Lifetime_Spend__c"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: contacts
          path: "/sobjects/Contact/{{contact_id}}"
          inputParameters:
            - name: contact_id
              in: path
          operations:
            - name: get-contact
              method: GET

Retrieves material master data from SAP by material number including description, weight, and material group.

naftiko: "0.5"
info:
  label: "SAP Material Master Viewer"
  description: "Retrieves material master data from SAP by material number including description, weight, and material group."
  tags:
    - supply-chain
    - sap
    - product-data
capability:
  exposes:
    - type: mcp
      namespace: material-master
      port: 8080
      tools:
        - name: get-material
          description: "Retrieve SAP material master data."
          inputParameters:
            - name: material_number
              in: body
              type: string
              description: "SAP material number."
          call: "sap.get-material"
          with:
            material_number: "{{material_number}}"
          outputParameters:
            - name: description
              type: string
              mapping: "$.d.MaterialDescription"
            - name: material_group
              type: string
              mapping: "$.d.MaterialGroup"
            - name: weight
              type: number
              mapping: "$.d.GrossWeight"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tiffany-sap.s4hana.cloud/sap/opu/odata/sap/API_PRODUCT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: products
          path: "/A_Product('{{material_number}}')"
          inputParameters:
            - name: material_number
              in: path
          operations:
            - name: get-material
              method: GET

Looks up a SAP purchase order by number and returns status, vendor, and value. Used by procurement.

naftiko: "0.5"
info:
  label: "SAP Purchase Order Status"
  description: "Looks up a SAP purchase order by number and returns status, vendor, and value. Used by procurement."
  tags:
    - supply-chain
    - sap
    - procurement
capability:
  exposes:
    - type: mcp
      namespace: po-inquiry
      port: 8080
      tools:
        - name: get-purchase-order
          description: "Look up SAP purchase order by number."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "SAP purchase order number."
          call: "sap.get-po"
          with:
            po_number: "{{po_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.d.OverallStatus"
            - name: vendor
              type: string
              mapping: "$.d.Supplier.CompanyName"
            - name: total_value
              type: string
              mapping: "$.d.TotalAmount"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tiffany-sap.s4hana.cloud/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder('{{po_number}}')"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: get-po
              method: GET

Retrieves the list of active vendors from SAP filtered by material group. Used by procurement.

naftiko: "0.5"
info:
  label: "SAP Vendor List Viewer"
  description: "Retrieves the list of active vendors from SAP filtered by material group. Used by procurement."
  tags:
    - supply-chain
    - sap
    - procurement
capability:
  exposes:
    - type: mcp
      namespace: vendor-list
      port: 8080
      tools:
        - name: list-vendors
          description: "List active vendors from SAP."
          inputParameters:
            - name: material_group
              in: body
              type: string
              description: "Material group filter."
          call: "sap.list-vendors"
          with:
            material_group: "{{material_group}}"
          outputParameters:
            - name: vendors
              type: array
              mapping: "$.d.results"
            - name: count
              type: integer
              mapping: "$.d.__count"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tiffany-sap.s4hana.cloud/sap/opu/odata/sap/API_BUSINESS_PARTNER"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: vendors
          path: "/A_Supplier"
          inputParameters:
            - name: $filter
              in: query
          operations:
            - name: list-vendors
              method: GET

Orchestrates a new collection launch: updates the product catalog, creates marketing assets in Salesforce, publishes to the e-commerce platform, and announces to store teams via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Seasonal Collection Launch Pipeline"
  description: "Orchestrates a new collection launch: updates the product catalog, creates marketing assets in Salesforce, publishes to the e-commerce platform, and announces to store teams via Microsoft Teams."
  tags:
    - retail
    - e-commerce
    - salesforce
    - microsoft-teams
    - product-catalog
capability:
  exposes:
    - type: mcp
      namespace: collection-launch
      port: 8080
      tools:
        - name: launch-collection
          description: "Orchestrate a new collection launch across catalog, marketing, e-commerce, and stores."
          inputParameters:
            - name: collection_name
              in: body
              type: string
              description: "Collection name."
            - name: launch_date
              in: body
              type: string
              description: "Launch date."
            - name: product_skus
              in: body
              type: array
              description: "List of product SKUs in the collection."
            - name: teams_webhook
              in: body
              type: string
              description: "Teams webhook for store announcements."
          steps:
            - name: update-catalog
              type: call
              call: "catalog.publish-collection"
              with:
                collection_name: "{{collection_name}}"
                skus: "{{product_skus}}"
                launch_date: "{{launch_date}}"
            - name: create-campaign
              type: call
              call: "salesforce.create-record"
              with:
                object: "Campaign"
                Name: "{{collection_name}} Launch"
                Type: "Product Launch"
                StartDate: "{{launch_date}}"
            - name: announce-stores
              type: call
              call: "msteams.send-message"
              with:
                webhook_url: "{{teams_webhook}}"
                text: "New collection '{{collection_name}}' launching {{launch_date}}. {{update-catalog.product_count}} pieces. Prepare store displays."
  consumes:
    - type: http
      namespace: catalog
      baseUri: "https://api.tiffany.com/catalog/v1"
      authentication:
        type: bearer
        token: "$secrets.catalog_token"
      resources:
        - name: collections
          path: "/collections"
          operations:
            - name: publish-collection
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: records
          path: "/sobjects/{{object}}"
          inputParameters:
            - name: object
              in: path
          operations:
            - name: create-record
              method: POST
    - type: http
      namespace: msteams
      baseUri: "{{webhook_url}}"
      authentication:
        type: none
      resources:
        - name: webhook
          path: ""
          operations:
            - name: send-message
              method: POST

Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.

naftiko: "0.5"
info:
  label: "Security Audit Orchestrator"
  description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
  tags:
    - security
    - servicenow
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: security
      port: 8080
      tools:
        - name: run-security-audit-orchestrator
          description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Security Audit Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Creates a new incident in ServiceNow.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Creator"
  description: "Creates a new incident in ServiceNow."
  tags:
    - it
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: it
      port: 8080
      tools:
        - name: get-servicenow
          description: "Creates a new incident in ServiceNow."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The servicenow incident creator identifier."
          call: "it-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: it-api
      baseUri: "https://api.tiffany-and-co.com/it/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: servicenow
          path: "/servicenow/incident/creator/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-servicenow
              method: GET

Retrieves a ServiceNow incident by number. Used by IT and operations.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Viewer"
  description: "Retrieves a ServiceNow incident by number. Used by IT and operations."
  tags:
    - incident-management
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: incident-lookup
      port: 8080
      tools:
        - name: get-incident
          description: "Look up a ServiceNow incident by number."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "Incident number."
          call: "servicenow.get-incident"
          with:
            number: "{{incident_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.result.state"
            - name: short_description
              type: string
              mapping: "$.result.short_description"
            - name: assigned_to
              type: string
              mapping: "$.result.assigned_to.display_value"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://tiffany.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          inputParameters:
            - name: sysparm_query
              in: query
          operations:
            - name: get-incident
              method: GET

Uploads a file to SharePoint. Used for report and document archival.

naftiko: "0.5"
info:
  label: "SharePoint File Uploader"
  description: "Uploads a file to SharePoint. Used for report and document archival."
  tags:
    - document-management
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: doc-upload
      port: 8080
      tools:
        - name: upload-to-sharepoint
          description: "Upload a file to SharePoint."
          inputParameters:
            - name: site_id
              in: body
              type: string
              description: "SharePoint site ID."
            - name: folder_path
              in: body
              type: string
              description: "Folder path."
            - name: file_name
              in: body
              type: string
              description: "File name."
          call: "sharepoint.upload-file"
          with:
            site_id: "{{site_id}}"
            folder_path: "{{folder_path}}"
            file_name: "{{file_name}}"
          outputParameters:
            - name: web_url
              type: string
              mapping: "$.webUrl"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT

Sends a notification to a Slack channel.

naftiko: "0.5"
info:
  label: "Slack Notification Publisher"
  description: "Sends a notification to a Slack channel."
  tags:
    - communications
    - slack
capability:
  exposes:
    - type: mcp
      namespace: communications
      port: 8080
      tools:
        - name: get-slack
          description: "Sends a notification to a Slack channel."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The slack notification publisher identifier."
          call: "communications-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: communications-api
      baseUri: "https://api.tiffany-and-co.com/communications/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: slack
          path: "/slack/notification/publisher/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-slack
              method: GET

Sends a message to a Slack channel. Used across Tiffany operations for alerts.

naftiko: "0.5"
info:
  label: "Slack Notification Sender"
  description: "Sends a message to a Slack channel. Used across Tiffany operations for alerts."
  tags:
    - notification
    - slack
    - messaging
capability:
  exposes:
    - type: mcp
      namespace: notifications
      port: 8080
      tools:
        - name: send-slack-message
          description: "Send a message to a Slack channel."
          inputParameters:
            - name: channel
              in: body
              type: string
              description: "Slack channel."
            - name: text
              in: body
              type: string
              description: "Message text."
          call: "slack.post-message"
          with:
            channel: "{{channel}}"
            text: "{{text}}"
          outputParameters:
            - name: ts
              type: string
              mapping: "$.ts"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Runs an analytics query against the Snowflake data warehouse.

naftiko: "0.5"
info:
  label: "Snowflake Analytics Query"
  description: "Runs an analytics query against the Snowflake data warehouse."
  tags:
    - analytics
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: get-snowflake
          description: "Runs an analytics query against the Snowflake data warehouse."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The snowflake analytics query identifier."
          call: "analytics-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://api.tiffany-and-co.com/analytics/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: snowflake
          path: "/snowflake/analytics/query/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-snowflake
              method: GET

Executes a SQL query against Tiffany's Snowflake data warehouse and returns results.

naftiko: "0.5"
info:
  label: "Snowflake Query Runner"
  description: "Executes a SQL query against Tiffany's Snowflake data warehouse and returns results."
  tags:
    - analytics
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: data-query
      port: 8080
      tools:
        - name: run-snowflake-query
          description: "Execute a SQL query on Snowflake and return results."
          inputParameters:
            - name: statement
              in: body
              type: string
              description: "SQL statement."
          call: "snowflake.execute-query"
          with:
            statement: "{{statement}}"
          outputParameters:
            - name: data
              type: array
              mapping: "$.data"
            - name: row_count
              type: integer
              mapping: "$.resultSetMetaData.numRows"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST

Books a private consultation appointment at a Tiffany store, creates a Salesforce activity, and sends a confirmation to the customer and store associate.

naftiko: "0.5"
info:
  label: "Store Appointment Scheduler"
  description: "Books a private consultation appointment at a Tiffany store, creates a Salesforce activity, and sends a confirmation to the customer and store associate."
  tags:
    - retail
    - crm
    - salesforce
    - microsoft-outlook
    - appointments
capability:
  exposes:
    - type: mcp
      namespace: appointments
      port: 8080
      tools:
        - name: book-appointment
          description: "Book a store appointment and notify all parties."
          inputParameters:
            - name: customer_name
              in: body
              type: string
              description: "Customer name."
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
            - name: store_id
              in: body
              type: string
              description: "Store location ID."
            - name: date_time
              in: body
              type: string
              description: "Appointment date and time."
            - name: purpose
              in: body
              type: string
              description: "Purpose (engagement, gift, etc.)."
            - name: associate_email
              in: body
              type: string
              description: "Store associate email."
          steps:
            - name: create-appointment
              type: call
              call: "scheduling.book-appointment"
              with:
                store_id: "{{store_id}}"
                date_time: "{{date_time}}"
                customer_name: "{{customer_name}}"
                purpose: "{{purpose}}"
            - name: create-sf-event
              type: call
              call: "salesforce.create-record"
              with:
                object: "Event"
                Subject: "Store appointment: {{customer_name}} - {{purpose}}"
                StartDateTime: "{{date_time}}"
                Location: "Store {{store_id}}"
            - name: confirm-customer
              type: call
              call: "outlook.send-email"
              with:
                to: "{{customer_email}}"
                subject: "Tiffany & Co. - Appointment Confirmed"
                body: "Your private consultation at store {{store_id}} is confirmed for {{date_time}}. Purpose: {{purpose}}. We look forward to seeing you."
            - name: notify-associate
              type: call
              call: "outlook.send-email"
              with:
                to: "{{associate_email}}"
                subject: "Upcoming appointment: {{customer_name}}"
                body: "You have an appointment with {{customer_name}} on {{date_time}}. Purpose: {{purpose}}."
  consumes:
    - type: http
      namespace: scheduling
      baseUri: "https://api.tiffany.com/scheduling/v1"
      authentication:
        type: bearer
        token: "$secrets.scheduling_token"
      resources:
        - name: appointments
          path: "/appointments"
          operations:
            - name: book-appointment
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: records
          path: "/sobjects/{{object}}"
          inputParameters:
            - name: object
              in: path
          operations:
            - name: create-record
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Initiates an inventory transfer between stores in SAP, updates stock levels, and notifies both the sending and receiving store managers via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Store Inventory Transfer Pipeline"
  description: "Initiates an inventory transfer between stores in SAP, updates stock levels, and notifies both the sending and receiving store managers via Microsoft Teams."
  tags:
    - retail
    - inventory
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: inventory-transfer
      port: 8080
      tools:
        - name: transfer-inventory
          description: "Transfer inventory between stores and notify managers."
          inputParameters:
            - name: sku
              in: body
              type: string
              description: "Product SKU."
            - name: from_store
              in: body
              type: string
              description: "Source store/plant ID."
            - name: to_store
              in: body
              type: string
              description: "Destination store/plant ID."
            - name: quantity
              in: body
              type: integer
              description: "Quantity to transfer."
            - name: sender_email
              in: body
              type: string
              description: "Sending manager email."
            - name: receiver_email
              in: body
              type: string
              description: "Receiving manager email."
          steps:
            - name: create-transfer
              type: call
              call: "sap.create-stock-transfer"
              with:
                material: "{{sku}}"
                from_plant: "{{from_store}}"
                to_plant: "{{to_store}}"
                quantity: "{{quantity}}"
            - name: notify-sender
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{sender_email}}"
                text: "Stock transfer initiated: {{quantity}} units of {{sku}} to store {{to_store}}. Transfer: {{create-transfer.transfer_id}}."
            - name: notify-receiver
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{receiver_email}}"
                text: "Incoming stock transfer: {{quantity}} units of {{sku}} from store {{from_store}}. Transfer: {{create-transfer.transfer_id}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tiffany-sap.s4hana.cloud/sap/opu/odata/sap/API_MATERIAL_DOCUMENT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: transfers
          path: "/A_MaterialDocumentHeader"
          operations:
            - name: create-stock-transfer
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Queries daily store sales data from Snowflake, refreshes the Power BI retail dashboard, and sends a sales summary to regional directors via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Store Sales Dashboard Refresh"
  description: "Queries daily store sales data from Snowflake, refreshes the Power BI retail dashboard, and sends a sales summary to regional directors via Microsoft Teams."
  tags:
    - retail
    - analytics
    - snowflake
    - power-bi
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: sales-analytics
      port: 8080
      tools:
        - name: refresh-sales-dashboard
          description: "Refresh store sales dashboard and notify regional directors."
          inputParameters:
            - name: region
              in: body
              type: string
              description: "Sales region."
            - name: pbi_dataset_id
              in: body
              type: string
              description: "Power BI dataset ID."
            - name: teams_webhook
              in: body
              type: string
              description: "Teams webhook URL."
          steps:
            - name: query-sales
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "SELECT store_id, total_revenue, transaction_count, avg_ticket FROM RETAIL.DAILY_SALES WHERE region = '{{region}}' AND date = CURRENT_DATE"
            - name: refresh-pbi
              type: call
              call: "powerbi.refresh-dataset"
              with:
                dataset_id: "{{pbi_dataset_id}}"
            - name: notify-directors
              type: call
              call: "msteams.send-message"
              with:
                webhook_url: "{{teams_webhook}}"
                text: "Daily sales dashboard refreshed for region {{region}}. {{query-sales.row_count}} stores reporting."
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset_id}}/refreshes"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: refresh-dataset
              method: POST
    - type: http
      namespace: msteams
      baseUri: "{{webhook_url}}"
      authentication:
        type: none
      resources:
        - name: webhook
          path: ""
          operations:
            - name: send-message
              method: POST

Evaluates a gemstone supplier by pulling quality metrics from SAP, running compliance checks, logging results in Snowflake, and notifying the procurement team via Slack.

naftiko: "0.5"
info:
  label: "Supplier Quality Assessment Pipeline"
  description: "Evaluates a gemstone supplier by pulling quality metrics from SAP, running compliance checks, logging results in Snowflake, and notifying the procurement team via Slack."
  tags:
    - supply-chain
    - quality
    - sap
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: supplier-quality
      port: 8080
      tools:
        - name: assess-supplier-quality
          description: "Evaluate supplier quality, log metrics, and notify procurement."
          inputParameters:
            - name: supplier_id
              in: body
              type: string
              description: "SAP supplier/vendor ID."
            - name: evaluation_period
              in: body
              type: string
              description: "Evaluation period."
            - name: slack_channel
              in: body
              type: string
              description: "Slack channel for procurement team."
          steps:
            - name: get-quality-metrics
              type: call
              call: "sap.get-supplier-quality"
              with:
                supplier_id: "{{supplier_id}}"
                period: "{{evaluation_period}}"
            - name: log-assessment
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "INSERT INTO SUPPLY_CHAIN.SUPPLIER_ASSESSMENTS (supplier_id, period, quality_score, defect_rate) VALUES ('{{supplier_id}}', '{{evaluation_period}}', {{get-quality-metrics.quality_score}}, {{get-quality-metrics.defect_rate}})"
            - name: notify-procurement
              type: call
              call: "slack.post-message"
              with:
                channel: "{{slack_channel}}"
                text: "Supplier {{supplier_id}} assessment for {{evaluation_period}}: Quality score: {{get-quality-metrics.quality_score}}, Defect rate: {{get-quality-metrics.defect_rate}}%."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tiffany-sap.s4hana.cloud/sap/opu/odata/sap/API_SUPPLIER_EVALUATION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: evaluations
          path: "/A_SupplierEvaluation"
          inputParameters:
            - name: $filter
              in: query
          operations:
            - name: get-supplier-quality
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Tracks a supply chain shipment by tracking number, returns current status and estimated delivery, and logs transit events to Snowflake.

naftiko: "0.5"
info:
  label: "Supply Chain Shipment Tracker"
  description: "Tracks a supply chain shipment by tracking number, returns current status and estimated delivery, and logs transit events to Snowflake."
  tags:
    - supply-chain
    - shipping
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: shipment-tracking
      port: 8080
      tools:
        - name: track-shipment
          description: "Track a shipment and log transit events."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
              description: "Carrier tracking number."
            - name: carrier
              in: body
              type: string
              description: "Shipping carrier name."
          steps:
            - name: get-status
              type: call
              call: "shipping.track"
              with:
                tracking_number: "{{tracking_number}}"
                carrier: "{{carrier}}"
            - name: log-event
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "INSERT INTO SUPPLY_CHAIN.SHIPMENT_EVENTS (tracking_number, status, location, timestamp) VALUES ('{{tracking_number}}', '{{get-status.status}}', '{{get-status.current_location}}', CURRENT_TIMESTAMP)"
  consumes:
    - type: http
      namespace: shipping
      baseUri: "https://api.tiffany.com/shipping/v1"
      authentication:
        type: bearer
        token: "$secrets.shipping_token"
      resources:
        - name: tracking
          path: "/track"
          inputParameters:
            - name: tracking_number
              in: query
            - name: carrier
              in: query
          operations:
            - name: track
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST

Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.

naftiko: "0.5"
info:
  label: "Sustainability Metrics Collection Orchestrator"
  description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
  tags:
    - sustainability
    - analytics
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: sustainability
      port: 8080
      tools:
        - name: run-sustainability-metrics-collection-orchestrator
          description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.

naftiko: "0.5"
info:
  label: "Third Party Risk Assessment Orchestrator"
  description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
  tags:
    - risk
    - procurement
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: risk
      port: 8080
      tools:
        - name: run-third-party-risk-assessment-orchestrator
          description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.

naftiko: "0.5"
info:
  label: "Vendor Contract Renewal Pipeline"
  description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
  tags:
    - procurement
    - legal
    - docusign
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: run-vendor-contract-renewal-pipeline
          description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tiffany-and-co.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tiffany-and-co.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

When a VIP client visits a store, retrieves their CRM profile from Salesforce, pulls purchase history, prepares personalized recommendations, and notifies the store manager via Microsoft Teams.

naftiko: "0.5"
info:
  label: "VIP Client Engagement Orchestrator"
  description: "When a VIP client visits a store, retrieves their CRM profile from Salesforce, pulls purchase history, prepares personalized recommendations, and notifies the store manager via Microsoft Teams."
  tags:
    - retail
    - crm
    - salesforce
    - microsoft-teams
    - vip
    - personalization
capability:
  exposes:
    - type: mcp
      namespace: vip-engagement
      port: 8080
      tools:
        - name: prepare-vip-visit
          description: "Prepare a VIP client visit with profile, history, and recommendations."
          inputParameters:
            - name: sf_contact_id
              in: body
              type: string
              description: "Salesforce contact ID for the VIP client."
            - name: store_id
              in: body
              type: string
              description: "Store location ID."
            - name: manager_email
              in: body
              type: string
              description: "Store manager email."
          steps:
            - name: get-profile
              type: call
              call: "salesforce.get-contact"
              with:
                contact_id: "{{sf_contact_id}}"
            - name: get-purchase-history
              type: call
              call: "salesforce.get-purchase-history"
              with:
                contact_id: "{{sf_contact_id}}"
            - name: get-recommendations
              type: call
              call: "recommendations.generate"
              with:
                customer_profile: "{{get-profile}}"
                purchase_history: "{{get-purchase-history.purchases}}"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{manager_email}}"
                text: "VIP client {{get-profile.Name}} arriving at store {{store_id}}. Lifetime spend: ${{get-profile.Lifetime_Spend__c}}. Recommended: {{get-recommendations.top_items}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://tiffany.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: contacts
          path: "/sobjects/Contact/{{contact_id}}"
          inputParameters:
            - name: contact_id
              in: path
          operations:
            - name: get-contact
              method: GET
        - name: purchase-history
          path: "/sobjects/Contact/{{contact_id}}/Purchases__r"
          inputParameters:
            - name: contact_id
              in: path
          operations:
            - name: get-purchase-history
              method: GET
    - type: http
      namespace: recommendations
      baseUri: "https://api.tiffany.com/recommendations/v1"
      authentication:
        type: bearer
        token: "$secrets.recommendations_token"
      resources:
        - name: generate
          path: "/generate"
          operations:
            - name: generate
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves purchase history for a VIP client.

naftiko: "0.5"
info:
  label: "VIP Client Purchase History"
  description: "Retrieves purchase history for a VIP client."
  tags:
    - customer-service
    - crm
capability:
  exposes:
    - type: mcp
      namespace: customer-service
      port: 8080
      tools:
        - name: get-vip
          description: "Retrieves purchase history for a VIP client."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The vip client purchase history identifier."
          call: "customer-service-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: customer-service-api
      baseUri: "https://api.tiffany-and-co.com/customer-service/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: vip
          path: "/vip/client/purchase/history/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-vip
              method: GET

Distributes new visual merchandising guidelines to all stores: uploads the guide to SharePoint, creates Jira tasks for store managers, and announces via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Visual Merchandising Update Pipeline"
  description: "Distributes new visual merchandising guidelines to all stores: uploads the guide to SharePoint, creates Jira tasks for store managers, and announces via Microsoft Teams."
  tags:
    - retail
    - merchandising
    - sharepoint
    - jira
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: visual-merch
      port: 8080
      tools:
        - name: distribute-vm-guide
          description: "Upload merchandising guide, create tasks, and announce to stores."
          inputParameters:
            - name: guide_title
              in: body
              type: string
              description: "Guide title."
            - name: sharepoint_site
              in: body
              type: string
              description: "SharePoint site ID."
            - name: teams_webhook
              in: body
              type: string
              description: "Teams webhook for stores."
          steps:
            - name: upload-guide
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "{{sharepoint_site}}"
                folder_path: "VisualMerchandising"
                file_name: "{{guide_title}}.pdf"
            - name: create-task
              type: call
              call: "jira.create-issue"
              with:
                project_key: "RETAIL"
                summary: "Implement VM Guide: {{guide_title}}"
                issue_type: "Task"
            - name: announce
              type: call
              call: "msteams.send-message"
              with:
                webhook_url: "{{teams_webhook}}"
                text: "New visual merchandising guide: {{guide_title}}. Available on SharePoint. Jira task: {{create-task.key}}."
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: jira
      baseUri: "https://tiffany.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST
    - type: http
      namespace: msteams
      baseUri: "{{webhook_url}}"
      authentication:
        type: none
      resources:
        - name: webhook
          path: ""
          operations:
            - name: send-message
              method: POST

Generates a shipping label for an order via the shipping API and returns the tracking number and label URL.

naftiko: "0.5"
info:
  label: "Warehouse Shipping Label Generator"
  description: "Generates a shipping label for an order via the shipping API and returns the tracking number and label URL."
  tags:
    - supply-chain
    - shipping
    - e-commerce
capability:
  exposes:
    - type: mcp
      namespace: shipping-labels
      port: 8080
      tools:
        - name: generate-shipping-label
          description: "Generate a shipping label for an order."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "Order ID."
            - name: carrier
              in: body
              type: string
              description: "Shipping carrier."
            - name: service_level
              in: body
              type: string
              description: "Service level (express, standard)."
          call: "shipping.create-label"
          with:
            order_id: "{{order_id}}"
            carrier: "{{carrier}}"
            service: "{{service_level}}"
          outputParameters:
            - name: tracking_number
              type: string
              mapping: "$.trackingNumber"
            - name: label_url
              type: string
              mapping: "$.labelUrl"
  consumes:
    - type: http
      namespace: shipping
      baseUri: "https://api.tiffany.com/shipping/v1"
      authentication:
        type: bearer
        token: "$secrets.shipping_token"
      resources:
        - name: labels
          path: "/labels"
          operations:
            - name: create-label
              method: POST

Queries e-commerce site search analytics from Snowflake including top searches, zero-result queries, and conversion rates.

naftiko: "0.5"
info:
  label: "Website Search Analytics"
  description: "Queries e-commerce site search analytics from Snowflake including top searches, zero-result queries, and conversion rates."
  tags:
    - e-commerce
    - analytics
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: search-analytics
      port: 8080
      tools:
        - name: get-search-analytics
          description: "Retrieve site search analytics from Snowflake."
          inputParameters:
            - name: date_range
              in: body
              type: string
              description: "Date range (e.g., last_7d)."
          call: "snowflake.execute-query"
          with:
            statement: "SELECT search_term, search_count, click_rate, conversion_rate FROM ECOMMERCE.SEARCH_ANALYTICS WHERE period = '{{date_range}}' ORDER BY search_count DESC LIMIT 50"
          outputParameters:
            - name: data
              type: array
              mapping: "$.data"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://tiffany.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST

Retrieves employee details from Workday by worker ID.

naftiko: "0.5"
info:
  label: "Workday Employee Lookup"
  description: "Retrieves employee details from Workday by worker ID."
  tags:
    - hr
    - workday
capability:
  exposes:
    - type: mcp
      namespace: hr-directory
      port: 8080
      tools:
        - name: get-employee
          description: "Look up employee from Workday."
          inputParameters:
            - name: worker_id
              in: body
              type: string
              description: "Workday worker ID."
          call: "workday.get-worker"
          with:
            worker_id: "{{worker_id}}"
          outputParameters:
            - name: full_name
              type: string
              mapping: "$.fullName"
            - name: department
              type: string
              mapping: "$.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

Retrieves employee profile from Workday.

naftiko: "0.5"
info:
  label: "Workday Employee Profile"
  description: "Retrieves employee profile from Workday."
  tags:
    - hr
    - workday
capability:
  exposes:
    - type: mcp
      namespace: hr
      port: 8080
      tools:
        - name: get-workday
          description: "Retrieves employee profile from Workday."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The workday employee profile identifier."
          call: "hr-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: hr-api
      baseUri: "https://api.tiffany-and-co.com/hr/v1"
      authentication:
        type: bearer
        token: "$secrets.tiffany_and_co_api_token"
      resources:
        - name: workday
          path: "/workday/employee/profile/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-workday
              method: GET