Domino's Pizza Capabilities

Naftiko 0.5 capability definitions for Domino's Pizza - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Reviews access at Dominos via Okta, IAM, and Jira.

naftiko: "0.5"
info:
  label: "Access Review Pipeline"
  description: "Reviews access at Dominos via Okta, IAM, and Jira."
  tags:
    - security
    - access-management
    - okta
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: access-rev
      port: 8080
      tools:
        - name: review
          description: "Review access at Dominos."
          inputParameters:
            - name: dept
              in: body
              type: string
              description: "Department."
          steps:
            - name: ent
              type: call
              call: "okta.get-users"
              with:
                dept: "{{dept}}"
            - name: compare
              type: call
              call: "iam.compare"
              with:
                data: "{{ent.data}}"
            - name: flag
              type: call
              call: "iam.flag"
              with:
                violations: "{{compare.violations}}"
            - name: fix
              type: call
              call: "jira.create-issue"
              with:
                project: "IAM"
                summary: "Violations in {{dept}}"
  consumes:
    - type: http
      namespace: okta
      baseUri: "https://dominos.com.okta.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.okta_api_token"
      resources:
        - name: users
          path: "/users"
          operations:
            - name: get-users
              method: GET
    - type: http
      namespace: iam
      baseUri: "https://iam.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.iam_token"
      resources:
        - name: reviews
          path: "/compare"
          operations:
            - name: compare
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://dominos.com.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST

Manages API deprecation at Dominos via consumer identification, notices, and tracking.

naftiko: "0.5"
info:
  label: "API Deprecation Pipeline"
  description: "Manages API deprecation at Dominos via consumer identification, notices, and tracking."
  tags:
    - api-management
    - communications
    - governance
capability:
  exposes:
    - type: mcp
      namespace: api-sunset
      port: 8080
      tools:
        - name: notify-sunset
          description: "Manage API sunset at Dominos."
          inputParameters:
            - name: api
              in: body
              type: string
              description: "API name."
            - name: date
              in: body
              type: string
              description: "Sunset date."
          steps:
            - name: consumers
              type: call
              call: "api-gw.consumers"
              with:
                api: "{{api}}"
            - name: notify
              type: call
              call: "email.batch"
              with:
                to: "{{consumers.emails}}"
                subject: "{{api}} sunset: {{date}}"
            - name: track
              type: call
              call: "analytics.usage"
              with:
                api: "{{api}}"
            - name: ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "API"
                summary: "Sunset {{api}} by {{date}}"
  consumes:
    - type: http
      namespace: api-gw
      baseUri: "https://api-gw.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.api_gw_token"
      resources:
        - name: consumers
          path: "/apis/{{api}}/consumers"
          inputParameters:
            - name: api
              in: path
          operations:
            - name: consumers
              method: GET
    - type: http
      namespace: email
      baseUri: "https://email.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.email_token"
      resources:
        - name: batch
          path: "/send-batch"
          operations:
            - name: batch
              method: POST
    - type: http
      namespace: analytics
      baseUri: "https://analytics.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.analytics_token"
      resources:
        - name: usage
          path: "/api-usage"
          operations:
            - name: usage
              method: GET
    - type: http
      namespace: jira
      baseUri: "https://dominos.com.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST

Checks S3 bucket at Dominos.

naftiko: "0.5"
info:
  label: "S3 Bucket Stats"
  description: "Checks S3 bucket at Dominos."
  tags:
    - storage
    - aws
    - s3
capability:
  exposes:
    - type: mcp
      namespace: s3-stats
      port: 8080
      tools:
        - name: get-bucket
          description: "Get bucket stats at Dominos."
          inputParameters:
            - name: bucket
              in: body
              type: string
              description: "Bucket."
          call: "s3.get-stats"
          with:
            bucket: "{{bucket}}"
          outputParameters:
            - name: objects
              type: number
              mapping: "$.NumberOfObjects"
  consumes:
    - type: http
      namespace: s3
      baseUri: "https://s3.amazonaws.com"
      authentication:
        type: bearer
        token: "$secrets.aws_token"
      resources:
        - name: buckets
          path: "/{{bucket}}?metrics"
          inputParameters:
            - name: bucket
              in: path
          operations:
            - name: get-stats
              method: GET

Checks build at Dominos.

naftiko: "0.5"
info:
  label: "Azure DevOps Build Check"
  description: "Checks build at Dominos."
  tags:
    - devops
    - azure-devops
    - ci-cd
capability:
  exposes:
    - type: mcp
      namespace: azdo-build
      port: 8080
      tools:
        - name: check-build
          description: "Check build at Dominos."
          inputParameters:
            - name: project
              in: body
              type: string
              description: "Project."
            - name: build_id
              in: body
              type: string
              description: "Build ID."
          call: "azdo.get-build"
          with:
            project: "{{project}}"
            build_id: "{{build_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: azdo
      baseUri: "https://dev.azure.com/dominos.com"
      authentication:
        type: bearer
        token: "$secrets.azdo_token"
      resources:
        - name: builds
          path: "/{{project}}/_apis/build/builds/{{build_id}}"
          inputParameters:
            - name: project
              in: path
            - name: build_id
              in: path
          operations:
            - name: get-build
              method: GET

Verifies backups at Dominos.

naftiko: "0.5"
info:
  label: "Backup Verification Pipeline"
  description: "Verifies backups at Dominos."
  tags:
    - database
    - backup
    - operations
capability:
  exposes:
    - type: mcp
      namespace: backup-verify
      port: 8080
      tools:
        - name: verify-backups
          description: "Verify backups at Dominos."
          inputParameters:
            - name: db
              in: body
              type: string
              description: "Database."
            - name: date
              in: body
              type: string
              description: "Backup date."
          steps:
            - name: status
              type: call
              call: "backup.get-status"
              with:
                db: "{{db}}"
                date: "{{date}}"
            - name: verify
              type: call
              call: "backup.verify"
              with:
                id: "{{status.backup_id}}"
            - name: log
              type: call
              call: "snowflake.query"
              with:
                query: "INSERT INTO backup_log VALUES ('{{db}}','{{date}}','{{verify.status}}')"
            - name: alert
              type: call
              call: "slack.post-message"
              with:
                channel: "#dba"
                text: "Backup {{db}}: {{verify.status}}"
  consumes:
    - type: http
      namespace: backup
      baseUri: "https://backup.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.backup_token"
      resources:
        - name: backups
          path: "/databases/{{db}}/status"
          inputParameters:
            - name: db
              in: path
          operations:
            - name: get-status
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://dominos.com.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Analyzes budget variance at Dominos via Oracle, Workday, and Slack.

naftiko: "0.5"
info:
  label: "Budget Variance Pipeline"
  description: "Analyzes budget variance at Dominos via Oracle, Workday, and Slack."
  tags:
    - finance
    - budget
    - oracle
    - workday
capability:
  exposes:
    - type: mcp
      namespace: budget-var
      port: 8080
      tools:
        - name: analyze-variance
          description: "Check budget variance at Dominos."
          inputParameters:
            - name: cc
              in: body
              type: string
              description: "Cost center."
            - name: period
              in: body
              type: string
              description: "Period."
          steps:
            - name: actuals
              type: call
              call: "oracle.get-actuals"
              with:
                cc: "{{cc}}"
                period: "{{period}}"
            - name: budget
              type: call
              call: "workday.get-budget"
              with:
                cc: "{{cc}}"
            - name: compute
              type: call
              call: "analytics.variance"
              with:
                a: "{{actuals.total}}"
                b: "{{budget.total}}"
            - name: alert
              type: call
              call: "slack.post-message"
              with:
                channel: "#finance"
                text: "Variance {{cc}}: ${{compute.variance}}"
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://oracle.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.oracle_token"
      resources:
        - name: fin
          path: "/actuals"
          operations:
            - name: get-actuals
              method: GET
    - type: http
      namespace: workday
      baseUri: "https://wd5.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: budgets
          path: "/budgets"
          operations:
            - name: get-budget
              method: GET
    - type: http
      namespace: analytics
      baseUri: "https://analytics.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.analytics_token"
      resources:
        - name: var
          path: "/compute"
          operations:
            - name: variance
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Plans capacity at Dominos by collecting utilization and forecasting.

naftiko: "0.5"
info:
  label: "Capacity Planning Pipeline"
  description: "Plans capacity at Dominos by collecting utilization and forecasting."
  tags:
    - infrastructure
    - capacity-planning
    - forecasting
capability:
  exposes:
    - type: mcp
      namespace: capacity
      port: 8080
      tools:
        - name: plan-capacity
          description: "Plan capacity at Dominos."
          inputParameters:
            - name: resource
              in: body
              type: string
              description: "Resource type."
            - name: months
              in: body
              type: number
              description: "Forecast months."
          steps:
            - name: util
              type: call
              call: "monitoring.get-util"
              with:
                resource: "{{resource}}"
            - name: forecast
              type: call
              call: "analytics.forecast"
              with:
                current: "{{util.pct}}"
                months: "{{months}}"
            - name: procure
              type: call
              call: "servicenow.create-request"
              with:
                type: "capacity"
                resource: "{{resource}}"
            - name: dashboard
              type: call
              call: "power-bi.refresh"
              with:
                dataset: "capacity"
  consumes:
    - type: http
      namespace: monitoring
      baseUri: "https://monitoring.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.monitoring_token"
      resources:
        - name: util
          path: "/resources/{{resource}}/util"
          inputParameters:
            - name: resource
              in: path
          operations:
            - name: get-util
              method: GET
    - type: http
      namespace: analytics
      baseUri: "https://analytics.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.analytics_token"
      resources:
        - name: forecast
          path: "/demand"
          operations:
            - name: forecast
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.com.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: requests
          path: "/table/sc_request"
          operations:
            - name: create-request
              method: POST
    - type: http
      namespace: power-bi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.power_bi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset}}/refreshes"
          inputParameters:
            - name: dataset
              in: path
          operations:
            - name: refresh
              method: POST

When a carryout order is ready for pickup, sends an SMS notification to the customer via Twilio with the order number and pickup instructions.

naftiko: "0.5"
info:
  label: "Carryout Order Ready Notification"
  description: "When a carryout order is ready for pickup, sends an SMS notification to the customer via Twilio with the order number and pickup instructions."
  tags:
    - ordering
    - notifications
    - twilio
capability:
  exposes:
    - type: mcp
      namespace: carryout-notification
      port: 8080
      tools:
        - name: notify-order-ready
          description: "Send a carryout order ready notification to the customer."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The order identifier."
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
          steps:
            - name: get-order
              type: call
              call: "dominos-oms.get-order"
              with:
                order_number: "{{order_id}}"
                store_id: "{{store_id}}"
            - name: send-notification
              type: call
              call: "twilio.send-sms"
              with:
                to: "{{get-order.customer_phone}}"
                body: "Your Domino's order #{{order_id}} is ready for pickup! Head to the carryout window at your store."
  consumes:
    - type: http
      namespace: dominos-oms
      baseUri: "https://api.dominos.com/oms/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: orders
          path: "/stores/{{store_id}}/orders/{{order_number}}"
          inputParameters:
            - name: store_id
              in: path
            - name: order_number
              in: path
          operations:
            - name: get-order
              method: GET
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Messages.json"
          operations:
            - name: send-sms
              method: POST

Processes a large catering order by creating the order in the OMS, scheduling advance ingredient prep, and confirming the order via email.

naftiko: "0.5"
info:
  label: "Catering Order Processor"
  description: "Processes a large catering order by creating the order in the OMS, scheduling advance ingredient prep, and confirming the order via email."
  tags:
    - ordering
    - catering
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: catering-orders
      port: 8080
      tools:
        - name: process-catering-order
          description: "Process a large catering order with advance scheduling."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: customer_email
              in: body
              type: string
              description: "The customer email address."
            - name: order_details
              in: body
              type: string
              description: "JSON object with catering order items."
            - name: delivery_date
              in: body
              type: string
              description: "Delivery date in YYYY-MM-DD format."
            - name: delivery_time
              in: body
              type: string
              description: "Delivery time in HH:MM format."
          steps:
            - name: create-order
              type: call
              call: "dominos-oms.create-catering-order"
              with:
                store_id: "{{store_id}}"
                items: "{{order_details}}"
                delivery_date: "{{delivery_date}}"
                delivery_time: "{{delivery_time}}"
            - name: send-confirmation
              type: call
              call: "outlook.send-email"
              with:
                to: "{{customer_email}}"
                subject: "Catering Order Confirmed - #{{create-order.order_number}}"
                body: "Your Domino's catering order #{{create-order.order_number}} is confirmed for {{delivery_date}} at {{delivery_time}}. Total: ${{create-order.total}}."
  consumes:
    - type: http
      namespace: dominos-oms
      baseUri: "https://api.dominos.com/oms/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: catering
          path: "/stores/{{store_id}}/catering-orders"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: create-catering-order
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Monitors cert expiry at Dominos.

naftiko: "0.5"
info:
  label: "Certificate Expiry Pipeline"
  description: "Monitors cert expiry at Dominos."
  tags:
    - security
    - certificates
    - monitoring
capability:
  exposes:
    - type: mcp
      namespace: cert-monitor
      port: 8080
      tools:
        - name: check-certs
          description: "Monitor certs at Dominos."
          inputParameters:
            - name: domains
              in: body
              type: string
              description: "Domains to check."
          steps:
            - name: scan
              type: call
              call: "cert-scanner.scan"
              with:
                domains: "{{domains}}"
            - name: filter
              type: call
              call: "analytics.filter-expiring"
              with:
                certs: "{{scan.results}}"
            - name: ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "SEC"
                summary: "{{filter.count}} certs expiring"
            - name: alert
              type: call
              call: "slack.post-message"
              with:
                channel: "#security"
                text: "Cert alert: {{filter.count}} expiring"
  consumes:
    - type: http
      namespace: cert-scanner
      baseUri: "https://certs.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.cert_token"
      resources:
        - name: scans
          path: "/scan"
          operations:
            - name: scan
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://dominos.com.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Routes changes at Dominos through ServiceNow and CAB approval.

naftiko: "0.5"
info:
  label: "Change Management Pipeline"
  description: "Routes changes at Dominos through ServiceNow and CAB approval."
  tags:
    - change-management
    - servicenow
    - itil
capability:
  exposes:
    - type: mcp
      namespace: change-mgmt
      port: 8080
      tools:
        - name: process-change
          description: "Process changes at Dominos."
          inputParameters:
            - name: change_id
              in: body
              type: string
              description: "Change ID."
            - name: date
              in: body
              type: string
              description: "Date."
          steps:
            - name: get
              type: call
              call: "servicenow.get-change"
              with:
                id: "{{change_id}}"
            - name: conflicts
              type: call
              call: "servicenow.check-conflicts"
              with:
                date: "{{date}}"
            - name: submit
              type: call
              call: "servicenow.update"
              with:
                id: "{{change_id}}"
                state: "approval"
            - name: notify
              type: call
              call: "email.send"
              with:
                to: "cab@co.com"
                subject: "CAB: {{change_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.com.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: changes
          path: "/table/change_request/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-change
              method: GET
    - type: http
      namespace: email
      baseUri: "https://email.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.email_token"
      resources:
        - name: messages
          path: "/send"
          operations:
            - name: send
              method: POST

Optimizes cloud costs at Dominos via Azure, FinOps, Jira, and Power BI.

naftiko: "0.5"
info:
  label: "Cloud Cost Optimization Pipeline"
  description: "Optimizes cloud costs at Dominos via Azure, FinOps, Jira, and Power BI."
  tags:
    - cloud
    - cost-management
    - finops
capability:
  exposes:
    - type: mcp
      namespace: cloud-opt
      port: 8080
      tools:
        - name: optimize
          description: "Optimize cloud costs at Dominos."
          inputParameters:
            - name: provider
              in: body
              type: string
              description: "Provider."
            - name: range
              in: body
              type: string
              description: "Range."
          steps:
            - name: spend
              type: call
              call: "cloud.get-costs"
              with:
                provider: "{{provider}}"
                range: "{{range}}"
            - name: savings
              type: call
              call: "finops.analyze"
              with:
                data: "{{spend.data}}"
            - name: action
              type: call
              call: "jira.create-issue"
              with:
                project: "FINOPS"
                summary: "Save ${{savings.potential}}"
            - name: report
              type: call
              call: "power-bi.refresh"
              with:
                dataset: "cloud"
  consumes:
    - type: http
      namespace: cloud
      baseUri: "https://management.azure.com"
      authentication:
        type: bearer
        token: "$secrets.azure_token"
      resources:
        - name: costs
          path: "/providers/Microsoft.CostManagement/query"
          operations:
            - name: get-costs
              method: POST
    - type: http
      namespace: finops
      baseUri: "https://finops.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.finops_token"
      resources:
        - name: analysis
          path: "/savings"
          operations:
            - name: analyze
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://dominos.com.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST
    - type: http
      namespace: power-bi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.power_bi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset}}/refreshes"
          inputParameters:
            - name: dataset
              in: path
          operations:
            - name: refresh
              method: POST

Checks CloudWatch alarm at Dominos.

naftiko: "0.5"
info:
  label: "CloudWatch Alarm Check"
  description: "Checks CloudWatch alarm at Dominos."
  tags:
    - monitoring
    - aws
    - cloudwatch
capability:
  exposes:
    - type: mcp
      namespace: cw-alarm
      port: 8080
      tools:
        - name: check-alarm
          description: "Check alarm at Dominos."
          inputParameters:
            - name: alarm
              in: body
              type: string
              description: "Alarm name."
          call: "cw.describe-alarm"
          with:
            alarm: "{{alarm}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.MetricAlarms[0].StateValue"
  consumes:
    - type: http
      namespace: cw
      baseUri: "https://monitoring.us-east-1.amazonaws.com"
      authentication:
        type: bearer
        token: "$secrets.aws_token"
      resources:
        - name: alarms
          path: "/"
          operations:
            - name: describe-alarm
              method: GET

Searches Confluence at Dominos.

naftiko: "0.5"
info:
  label: "Confluence Article Search"
  description: "Searches Confluence at Dominos."
  tags:
    - knowledge-management
    - confluence
    - documentation
capability:
  exposes:
    - type: mcp
      namespace: confluence-search
      port: 8080
      tools:
        - name: search-articles
          description: "Search Confluence at Dominos."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "Query."
          call: "confluence.search"
          with:
            query: "{{query}}"
          outputParameters:
            - name: title
              type: string
              mapping: "$.results[0].title"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://dominos.com.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: content
          path: "/content/search"
          operations:
            - name: search
              method: GET

Tracks contract renewals at Dominos via contracts system, email, Jira, and Salesforce.

naftiko: "0.5"
info:
  label: "Contract Renewal Pipeline"
  description: "Tracks contract renewals at Dominos via contracts system, email, Jira, and Salesforce."
  tags:
    - procurement
    - contracts
    - salesforce
    - jira
capability:
  exposes:
    - type: mcp
      namespace: contract-renew
      port: 8080
      tools:
        - name: track
          description: "Track renewals at Dominos."
          inputParameters:
            - name: contract_id
              in: body
              type: string
              description: "Contract ID."
            - name: owner
              in: body
              type: string
              description: "Owner email."
          steps:
            - name: get
              type: call
              call: "contracts.get"
              with:
                id: "{{contract_id}}"
            - name: remind
              type: call
              call: "email.send"
              with:
                to: "{{owner}}"
                subject: "Renewal: {{contract_id}}"
            - name: task
              type: call
              call: "jira.create-issue"
              with:
                project: "PROC"
                summary: "Renew {{contract_id}}"
            - name: crm
              type: call
              call: "salesforce.update"
              with:
                id: "{{contract_id}}"
                stage: "Renewal"
  consumes:
    - type: http
      namespace: contracts
      baseUri: "https://contracts.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.contracts_token"
      resources:
        - name: contracts
          path: "/contracts/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get
              method: GET
    - type: http
      namespace: email
      baseUri: "https://email.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.email_token"
      resources:
        - name: messages
          path: "/send"
          operations:
            - name: send
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://dominos.com.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://dominos.com.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opps
          path: "/sobjects/Opportunity"
          operations:
            - name: update
              method: PATCH

Reallocates costs at Dominos.

naftiko: "0.5"
info:
  label: "Cost Reallocation Pipeline"
  description: "Reallocates costs at Dominos."
  tags:
    - finance
    - cost-allocation
    - oracle
capability:
  exposes:
    - type: mcp
      namespace: cost-realloc
      port: 8080
      tools:
        - name: reallocate
          description: "Reallocate costs at Dominos."
          inputParameters:
            - name: source
              in: body
              type: string
              description: "Source CC."
            - name: target
              in: body
              type: string
              description: "Target CC."
            - name: amount
              in: body
              type: number
              description: "Amount."
          steps:
            - name: current
              type: call
              call: "oracle.get-alloc"
              with:
                cc: "{{source}}"
            - name: compute
              type: call
              call: "analytics.realloc"
              with:
                source: "{{source}}"
                target: "{{target}}"
                amount: "{{amount}}"
            - name: post
              type: call
              call: "oracle.post-journal"
              with:
                entries: "{{compute.entries}}"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#finance"
                text: "Reallocated ${{amount}} from {{source}} to {{target}}"
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://oracle.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.oracle_token"
      resources:
        - name: allocations
          path: "/cost-centers/{{cc}}/allocations"
          inputParameters:
            - name: cc
              in: path
          operations:
            - name: get-alloc
              method: GET
    - type: http
      namespace: analytics
      baseUri: "https://analytics.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.analytics_token"
      resources:
        - name: realloc
          path: "/compute"
          operations:
            - name: realloc
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Validates a promotional coupon code, returning discount details, applicable items, minimum order requirements, and expiration status.

naftiko: "0.5"
info:
  label: "Coupon Code Validator"
  description: "Validates a promotional coupon code, returning discount details, applicable items, minimum order requirements, and expiration status."
  tags:
    - marketing
    - pricing
    - ordering
capability:
  exposes:
    - type: mcp
      namespace: coupon-validation
      port: 8080
      tools:
        - name: validate-coupon
          description: "Validate a promotional coupon code."
          inputParameters:
            - name: coupon_code
              in: body
              type: string
              description: "The promotional coupon code."
            - name: store_id
              in: body
              type: string
              description: "The store identifier for regional validity."
          call: "dominos-promo.validate-coupon"
          with:
            code: "{{coupon_code}}"
            store_id: "{{store_id}}"
  consumes:
    - type: http
      namespace: dominos-promo
      baseUri: "https://api.dominos.com/promotions/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: coupons
          path: "/coupons/validate"
          operations:
            - name: validate-coupon
              method: POST

When a customer submits a complaint, creates a Salesforce Service Cloud case, issues a credit via the order management system, and sends an apology SMS via Twilio.

naftiko: "0.5"
info:
  label: "Customer Complaint Handler"
  description: "When a customer submits a complaint, creates a Salesforce Service Cloud case, issues a credit via the order management system, and sends an apology SMS via Twilio."
  tags:
    - customer
    - complaints
    - salesforce-service-cloud
    - twilio
capability:
  exposes:
    - type: mcp
      namespace: complaint-handling
      port: 8080
      tools:
        - name: handle-customer-complaint
          description: "Process a customer complaint with case creation, credit issuance, and notification."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The order identifier."
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
            - name: complaint
              in: body
              type: string
              description: "The customer complaint description."
            - name: customer_phone
              in: body
              type: string
              description: "The customer phone number."
            - name: credit_amount
              in: body
              type: number
              description: "Credit amount to issue."
          steps:
            - name: create-case
              type: call
              call: "salesforce.create-case"
              with:
                subject: "Order complaint: #{{order_id}}"
                description: "Store: {{store_id}}. Complaint: {{complaint}}"
                priority: "High"
                origin: "Phone"
            - name: issue-credit
              type: call
              call: "dominos-oms.create-credit"
              with:
                order_id: "{{order_id}}"
                store_id: "{{store_id}}"
                amount: "{{credit_amount}}"
            - name: send-apology
              type: call
              call: "twilio.send-sms"
              with:
                to: "{{customer_phone}}"
                body: "We're sorry about your recent Domino's experience. We've applied a ${{credit_amount}} credit to your account. Case: {{create-case.case_number}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://dominos.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: dominos-oms
      baseUri: "https://api.dominos.com/oms/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: credits
          path: "/stores/{{store_id}}/orders/{{order_id}}/credits"
          inputParameters:
            - name: store_id
              in: path
            - name: order_id
              in: path
          operations:
            - name: create-credit
              method: POST
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Messages.json"
          operations:
            - name: send-sms
              method: POST

Retrieves customer feedback and satisfaction ratings for a store from the Domino's customer experience platform.

naftiko: "0.5"
info:
  label: "Customer Feedback Retrieval"
  description: "Retrieves customer feedback and satisfaction ratings for a store from the Domino's customer experience platform."
  tags:
    - customer
    - feedback
    - store-ops
capability:
  exposes:
    - type: mcp
      namespace: customer-feedback
      port: 8080
      tools:
        - name: get-store-feedback
          description: "Retrieve customer feedback for a store."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: date_range_start
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: date_range_end
              in: body
              type: string
              description: "End date in YYYY-MM-DD format."
          call: "dominos-cx.get-feedback"
          with:
            store_id: "{{store_id}}"
            start: "{{date_range_start}}"
            end: "{{date_range_end}}"
  consumes:
    - type: http
      namespace: dominos-cx
      baseUri: "https://api.dominos.com/cx/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: feedback
          path: "/stores/{{store_id}}/feedback"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-feedback
              method: GET

Retrieves a customer's order history from the Domino's order management system, including past orders, favorites, and total lifetime spend.

naftiko: "0.5"
info:
  label: "Customer Order History"
  description: "Retrieves a customer's order history from the Domino's order management system, including past orders, favorites, and total lifetime spend."
  tags:
    - customer
    - ordering
    - store-ops
capability:
  exposes:
    - type: mcp
      namespace: customer-history
      port: 8080
      tools:
        - name: get-order-history
          description: "Retrieve a customer's order history."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "The Domino's customer identifier."
          call: "dominos-oms.get-customer-orders"
          with:
            customer_id: "{{customer_id}}"
  consumes:
    - type: http
      namespace: dominos-oms
      baseUri: "https://api.dominos.com/oms/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: customer-orders
          path: "/customers/{{customer_id}}/orders"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: get-customer-orders
              method: GET

Retrieves the daily sales summary for a Domino's store including total revenue, order count, average order value, delivery vs carryout split, and top items.

naftiko: "0.5"
info:
  label: "Daily Sales Summary"
  description: "Retrieves the daily sales summary for a Domino's store including total revenue, order count, average order value, delivery vs carryout split, and top items."
  tags:
    - sales
    - reporting
    - store-ops
capability:
  exposes:
    - type: mcp
      namespace: store-sales
      port: 8080
      tools:
        - name: get-daily-sales
          description: "Retrieve the daily sales summary for a store."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: date
              in: body
              type: string
              description: "The report date in YYYY-MM-DD format."
          call: "dominos-reporting.get-sales"
          with:
            store_id: "{{store_id}}"
            date: "{{date}}"
  consumes:
    - type: http
      namespace: dominos-reporting
      baseUri: "https://api.dominos.com/reporting/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: sales
          path: "/stores/{{store_id}}/sales"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-sales
              method: GET

Monitors data pipelines at Dominos via Databricks, Snowflake, Slack, and ServiceNow.

naftiko: "0.5"
info:
  label: "Data Pipeline Monitor Pipeline"
  description: "Monitors data pipelines at Dominos via Databricks, Snowflake, Slack, and ServiceNow."
  tags:
    - data-engineering
    - databricks
    - monitoring
    - slack
capability:
  exposes:
    - type: mcp
      namespace: pipeline-mon
      port: 8080
      tools:
        - name: monitor
          description: "Monitor pipelines at Dominos."
          inputParameters:
            - name: pipeline_id
              in: body
              type: string
              description: "Pipeline ID."
          steps:
            - name: status
              type: call
              call: "databricks.get-run"
              with:
                id: "{{pipeline_id}}"
            - name: quality
              type: call
              call: "snowflake.query"
              with:
                query: "SELECT COUNT(*) FROM out WHERE p='{{pipeline_id}}'"
            - name: alert
              type: call
              call: "slack.post-message"
              with:
                channel: "#data"
                text: "Pipeline {{pipeline_id}}: {{status.state}}"
            - name: incident
              type: call
              call: "servicenow.create-incident"
              with:
                desc: "Pipeline {{pipeline_id}} issue"
  consumes:
    - type: http
      namespace: databricks
      baseUri: "https://dominos.com.cloud.databricks.com/api/2.1"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: jobs
          path: "/jobs/runs/get"
          operations:
            - name: get-run
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://dominos.com.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.com.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST

Checks Datadog monitor at Dominos.

naftiko: "0.5"
info:
  label: "Datadog Monitor Check"
  description: "Checks Datadog monitor at Dominos."
  tags:
    - monitoring
    - datadog
    - observability
capability:
  exposes:
    - type: mcp
      namespace: dd-monitor
      port: 8080
      tools:
        - name: check-monitor
          description: "Check monitor at Dominos."
          inputParameters:
            - name: monitor_id
              in: body
              type: string
              description: "Monitor ID."
          call: "datadog.get-monitor"
          with:
            monitor_id: "{{monitor_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.overall_state"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: monitors
          path: "/monitor/{{monitor_id}}"
          inputParameters:
            - name: monitor_id
              in: path
          operations:
            - name: get-monitor
              method: GET

Assigns a delivery order to the optimal driver based on location and current load, sends route details to the driver, and updates the customer with tracking info via SMS.

naftiko: "0.5"
info:
  label: "Delivery Dispatch Orchestrator"
  description: "Assigns a delivery order to the optimal driver based on location and current load, sends route details to the driver, and updates the customer with tracking info via SMS."
  tags:
    - delivery
    - dispatch
    - logistics
    - twilio
capability:
  exposes:
    - type: mcp
      namespace: delivery-dispatch
      port: 8080
      tools:
        - name: dispatch-delivery
          description: "Dispatch a delivery order to a driver with route and customer notification."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The order identifier."
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
            - name: driver_id
              in: body
              type: string
              description: "The assigned driver identifier."
          steps:
            - name: get-order
              type: call
              call: "dominos-oms.get-order"
              with:
                order_number: "{{order_id}}"
                store_id: "{{store_id}}"
            - name: assign-driver
              type: call
              call: "dominos-fleet.assign-delivery"
              with:
                driver_id: "{{driver_id}}"
                order_id: "{{order_id}}"
                delivery_address: "{{get-order.delivery_address}}"
            - name: notify-customer
              type: call
              call: "twilio.send-sms"
              with:
                to: "{{get-order.customer_phone}}"
                body: "Your Domino's order #{{order_id}} is on its way! Driver: {{assign-driver.driver_name}}. Estimated arrival: {{assign-driver.eta}}. Track: {{assign-driver.tracking_url}}"
  consumes:
    - type: http
      namespace: dominos-oms
      baseUri: "https://api.dominos.com/oms/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: orders
          path: "/stores/{{store_id}}/orders/{{order_number}}"
          inputParameters:
            - name: store_id
              in: path
            - name: order_number
              in: path
          operations:
            - name: get-order
              method: GET
    - type: http
      namespace: dominos-fleet
      baseUri: "https://api.dominos.com/fleet/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: deliveries
          path: "/stores/{{store_id}}/deliveries"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: assign-delivery
              method: POST
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Messages.json"
          operations:
            - name: send-sms
              method: POST

Retrieves the real-time GPS location of a delivery driver, including current delivery assignment and estimated arrival time.

naftiko: "0.5"
info:
  label: "Delivery Driver Location"
  description: "Retrieves the real-time GPS location of a delivery driver, including current delivery assignment and estimated arrival time."
  tags:
    - delivery
    - tracking
    - fleet
capability:
  exposes:
    - type: mcp
      namespace: driver-tracking
      port: 8080
      tools:
        - name: get-driver-location
          description: "Get the real-time location of a delivery driver."
          inputParameters:
            - name: driver_id
              in: body
              type: string
              description: "The driver identifier."
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
          call: "dominos-fleet.get-driver"
          with:
            driver_id: "{{driver_id}}"
            store_id: "{{store_id}}"
  consumes:
    - type: http
      namespace: dominos-fleet
      baseUri: "https://api.dominos.com/fleet/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: drivers
          path: "/stores/{{store_id}}/drivers/{{driver_id}}/location"
          inputParameters:
            - name: store_id
              in: path
            - name: driver_id
              in: path
          operations:
            - name: get-driver
              method: GET

Estimates the delivery fee for a customer address based on distance, demand level, and store-specific pricing rules.

naftiko: "0.5"
info:
  label: "Delivery Fee Estimator"
  description: "Estimates the delivery fee for a customer address based on distance, demand level, and store-specific pricing rules."
  tags:
    - delivery
    - pricing
    - ordering
capability:
  exposes:
    - type: mcp
      namespace: delivery-fees
      port: 8080
      tools:
        - name: estimate-delivery-fee
          description: "Estimate the delivery fee for an address."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: delivery_address
              in: body
              type: string
              description: "The customer delivery address."
          call: "dominos-delivery.estimate-fee"
          with:
            store_id: "{{store_id}}"
            address: "{{delivery_address}}"
  consumes:
    - type: http
      namespace: dominos-delivery
      baseUri: "https://api.dominos.com/delivery/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: fee-estimate
          path: "/stores/{{store_id}}/delivery-fee"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: estimate-fee
              method: POST

Calculates optimal delivery routes using Google Maps for multiple pending orders, minimizing total delivery time and maximizing driver efficiency.

naftiko: "0.5"
info:
  label: "Delivery Time Optimizer"
  description: "Calculates optimal delivery routes using Google Maps for multiple pending orders, minimizing total delivery time and maximizing driver efficiency."
  tags:
    - delivery
    - routing
    - google-maps
capability:
  exposes:
    - type: mcp
      namespace: delivery-routing
      port: 8080
      tools:
        - name: optimize-delivery-route
          description: "Optimize delivery routes for pending orders."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
            - name: delivery_addresses
              in: body
              type: string
              description: "JSON array of delivery addresses."
            - name: store_address
              in: body
              type: string
              description: "The store address as origin point."
          call: "google-maps.optimize-route"
          with:
            origin: "{{store_address}}"
            destinations: "{{delivery_addresses}}"
  consumes:
    - type: http
      namespace: google-maps
      baseUri: "https://maps.googleapis.com/maps/api"
      authentication:
        type: bearer
        token: "$secrets.google_maps_key"
      resources:
        - name: directions
          path: "/directions/json"
          operations:
            - name: optimize-route
              method: GET

Determines the delivery zone for a customer address and returns the serving store, estimated delivery time, and delivery fee.

naftiko: "0.5"
info:
  label: "Delivery Zone Lookup"
  description: "Determines the delivery zone for a customer address and returns the serving store, estimated delivery time, and delivery fee."
  tags:
    - delivery
    - ordering
    - logistics
capability:
  exposes:
    - type: mcp
      namespace: delivery-zones
      port: 8080
      tools:
        - name: check-delivery-zone
          description: "Determine the delivery zone and serving store for an address."
          inputParameters:
            - name: address
              in: body
              type: string
              description: "The customer delivery address."
            - name: postal_code
              in: body
              type: string
              description: "The postal or ZIP code."
          call: "dominos-delivery.lookup-zone"
          with:
            address: "{{address}}"
            postal_code: "{{postal_code}}"
  consumes:
    - type: http
      namespace: dominos-delivery
      baseUri: "https://api.dominos.com/delivery/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: zones
          path: "/zones/lookup"
          operations:
            - name: lookup-zone
              method: POST

Checks container at Dominos.

naftiko: "0.5"
info:
  label: "Docker Container Check"
  description: "Checks container at Dominos."
  tags:
    - containers
    - docker
    - infrastructure
capability:
  exposes:
    - type: mcp
      namespace: docker
      port: 8080
      tools:
        - name: check-container
          description: "Check container at Dominos."
          inputParameters:
            - name: id
              in: body
              type: string
              description: "Container ID."
          call: "docker.get-container"
          with:
            id: "{{id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.State.Status"
  consumes:
    - type: http
      namespace: docker
      baseUri: "https://docker.dominos.com/v1.41"
      authentication:
        type: bearer
        token: "$secrets.docker_token"
      resources:
        - name: containers
          path: "/containers/{{id}}/json"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-container
              method: GET

Generates the daily dough preparation schedule based on forecasted order volumes, calculating the number of batches and timing for each size.

naftiko: "0.5"
info:
  label: "Dough Prep Schedule"
  description: "Generates the daily dough preparation schedule based on forecasted order volumes, calculating the number of batches and timing for each size."
  tags:
    - store-ops
    - production
    - forecasting
capability:
  exposes:
    - type: mcp
      namespace: dough-scheduling
      port: 8080
      tools:
        - name: get-dough-schedule
          description: "Generate the daily dough preparation schedule."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: date
              in: body
              type: string
              description: "The production date in YYYY-MM-DD format."
          call: "dominos-production.get-dough-schedule"
          with:
            store_id: "{{store_id}}"
            date: "{{date}}"
  consumes:
    - type: http
      namespace: dominos-production
      baseUri: "https://api.dominos.com/production/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: dough-schedule
          path: "/stores/{{store_id}}/dough-schedule"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-dough-schedule
              method: GET

Tests disaster recovery at Dominos via failover, health checks, and reporting.

naftiko: "0.5"
info:
  label: "DR Test Pipeline"
  description: "Tests disaster recovery at Dominos via failover, health checks, and reporting."
  tags:
    - disaster-recovery
    - business-continuity
    - testing
capability:
  exposes:
    - type: mcp
      namespace: dr-test
      port: 8080
      tools:
        - name: test-dr
          description: "Test DR at Dominos."
          inputParameters:
            - name: plan_id
              in: body
              type: string
              description: "Plan ID."
            - name: type
              in: body
              type: string
              description: "Test type."
          steps:
            - name: failover
              type: call
              call: "dr.failover"
              with:
                plan: "{{plan_id}}"
                type: "{{type}}"
            - name: validate
              type: call
              call: "monitoring.check"
              with:
                scope: "critical"
            - name: measure
              type: call
              call: "dr.metrics"
              with:
                id: "{{failover.id}}"
            - name: report
              type: call
              call: "confluence.create-page"
              with:
                title: "DR - {{plan_id}}"
                body: "RTO:{{measure.rto}}m RPO:{{measure.rpo}}m"
  consumes:
    - type: http
      namespace: dr
      baseUri: "https://dr.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.dr_token"
      resources:
        - name: failovers
          path: "/failovers"
          operations:
            - name: failover
              method: POST
    - type: http
      namespace: monitoring
      baseUri: "https://monitoring.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.monitoring_token"
      resources:
        - name: health
          path: "/checks"
          operations:
            - name: check
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://dominos.com.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/content"
          operations:
            - name: create-page
              method: POST

Detects infrastructure drift at Dominos via Terraform, Slack, and Jira.

naftiko: "0.5"
info:
  label: "Drift Detection Pipeline"
  description: "Detects infrastructure drift at Dominos via Terraform, Slack, and Jira."
  tags:
    - infrastructure
    - terraform
    - drift-detection
    - devops
capability:
  exposes:
    - type: mcp
      namespace: drift-det
      port: 8080
      tools:
        - name: detect
          description: "Detect drift at Dominos."
          inputParameters:
            - name: ws_id
              in: body
              type: string
              description: "Workspace ID."
            - name: env
              in: body
              type: string
              description: "Environment."
          steps:
            - name: plan
              type: call
              call: "terraform.run"
              with:
                ws: "{{ws_id}}"
            - name: check
              type: call
              call: "terraform.get-plan"
              with:
                run: "{{plan.id}}"
            - name: alert
              type: call
              call: "slack.post-message"
              with:
                channel: "#infra"
                text: "Drift {{env}}: {{check.changes}} changes"
            - name: ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "INFRA"
                summary: "Drift in {{env}}"
  consumes:
    - type: http
      namespace: terraform
      baseUri: "https://app.terraform.io/api/v2"
      authentication:
        type: bearer
        token: "$secrets.terraform_token"
      resources:
        - name: runs
          path: "/runs"
          operations:
            - name: run
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://dominos.com.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST

Records a delivery driver safety incident in ServiceNow, updates the driver's record in Workday, and alerts the area supervisor via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Driver Safety Incident Reporter"
  description: "Records a delivery driver safety incident in ServiceNow, updates the driver's record in Workday, and alerts the area supervisor via Microsoft Teams."
  tags:
    - delivery
    - safety
    - servicenow
    - workday
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: driver-safety
      port: 8080
      tools:
        - name: report-driver-incident
          description: "Report a delivery driver safety incident."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
            - name: driver_id
              in: body
              type: string
              description: "The Workday employee ID of the driver."
            - name: incident_type
              in: body
              type: string
              description: "Type of incident (accident, injury, vehicle-damage)."
            - name: description
              in: body
              type: string
              description: "Incident description."
          steps:
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Driver safety incident: Store {{store_id}} - {{incident_type}}"
                category: "safety"
                urgency: "1"
                description: "Driver: {{driver_id}}. {{description}}"
            - name: update-driver-record
              type: call
              call: "workday.create-safety-incident"
              with:
                worker_id: "{{driver_id}}"
                type: "{{incident_type}}"
                description: "{{description}}"
            - name: alert-supervisor
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "safety-alerts"
                text: "Driver safety incident at store {{store_id}}: {{incident_type}}. Driver: {{driver_id}}. {{description}}. Incident: {{create-incident.number}}."
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.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: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: safety
          path: "/workers/{{worker_id}}/safety-incidents"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: create-safety-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Checks ES index at Dominos.

naftiko: "0.5"
info:
  label: "ES Index Health"
  description: "Checks ES index at Dominos."
  tags:
    - search
    - elasticsearch
    - infrastructure
capability:
  exposes:
    - type: mcp
      namespace: es-health
      port: 8080
      tools:
        - name: check-index
          description: "Check ES index at Dominos."
          inputParameters:
            - name: index
              in: body
              type: string
              description: "Index name."
          call: "es.get-health"
          with:
            index: "{{index}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: docs
              type: number
              mapping: "$.docs.count"
  consumes:
    - type: http
      namespace: es
      baseUri: "https://es.dominos.com:9200"
      authentication:
        type: bearer
        token: "$secrets.es_token"
      resources:
        - name: indices
          path: "/{{index}}/_stats"
          inputParameters:
            - name: index
              in: path
          operations:
            - name: get-health
              method: GET

Creates a promotional email campaign in MailChimp targeting customers in a specific store's delivery area with personalized deal offers.

naftiko: "0.5"
info:
  label: "Email Marketing Campaign"
  description: "Creates a promotional email campaign in MailChimp targeting customers in a specific store's delivery area with personalized deal offers."
  tags:
    - marketing
    - email
    - mailchimp
capability:
  exposes:
    - type: mcp
      namespace: email-campaigns
      port: 8080
      tools:
        - name: create-email-campaign
          description: "Create a targeted email marketing campaign."
          inputParameters:
            - name: campaign_name
              in: body
              type: string
              description: "Name of the email campaign."
            - name: subject_line
              in: body
              type: string
              description: "Email subject line."
            - name: segment_id
              in: body
              type: string
              description: "The MailChimp audience segment identifier."
            - name: coupon_code
              in: body
              type: string
              description: "The promotional coupon code."
            - name: send_date
              in: body
              type: string
              description: "Scheduled send date in YYYY-MM-DD format."
          call: "mailchimp.create-campaign"
          with:
            name: "{{campaign_name}}"
            subject: "{{subject_line}}"
            segment: "{{segment_id}}"
            coupon: "{{coupon_code}}"
            send_at: "{{send_date}}"
  consumes:
    - type: http
      namespace: mailchimp
      baseUri: "https://us1.api.mailchimp.com/3.0"
      authentication:
        type: basic
        username: "anystring"
        password: "$secrets.mailchimp_api_key"
      resources:
        - name: campaigns
          path: "/campaigns"
          operations:
            - name: create-campaign
              method: POST

Offboards employees at Dominos via Okta, Slack, ServiceNow, and storage.

naftiko: "0.5"
info:
  label: "Employee Offboarding Pipeline"
  description: "Offboards employees at Dominos via Okta, Slack, ServiceNow, and storage."
  tags:
    - hr
    - offboarding
    - okta
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: offboarding
      port: 8080
      tools:
        - name: offboard
          description: "Offboard employees at Dominos."
          inputParameters:
            - name: emp_id
              in: body
              type: string
              description: "Employee ID."
            - name: last_day
              in: body
              type: string
              description: "Last day."
          steps:
            - name: disable
              type: call
              call: "okta.deactivate"
              with:
                user: "{{emp_id}}"
            - name: revoke
              type: call
              call: "slack.remove"
              with:
                user: "{{emp_id}}"
            - name: return
              type: call
              call: "servicenow.create-request"
              with:
                type: "return"
                emp: "{{emp_id}}"
            - name: archive
              type: call
              call: "storage.archive"
              with:
                user: "{{emp_id}}"
  consumes:
    - type: http
      namespace: okta
      baseUri: "https://dominos.com.okta.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.okta_api_token"
      resources:
        - name: users
          path: "/users/{{user}}/lifecycle/deactivate"
          inputParameters:
            - name: user
              in: path
          operations:
            - name: deactivate
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: users
          path: "/users.admin.remove"
          operations:
            - name: remove
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.com.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: requests
          path: "/table/sc_request"
          operations:
            - name: create-request
              method: POST
    - type: http
      namespace: storage
      baseUri: "https://storage.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.storage_token"
      resources:
        - name: archives
          path: "/archive"
          operations:
            - name: archive
              method: POST

Retrieves the weekly employee schedule from Workday for a specific Domino's store, including shift assignments, positions, and labor coverage.

naftiko: "0.5"
info:
  label: "Employee Schedule Viewer"
  description: "Retrieves the weekly employee schedule from Workday for a specific Domino's store, including shift assignments, positions, and labor coverage."
  tags:
    - hr
    - scheduling
    - workday
    - store-ops
capability:
  exposes:
    - type: mcp
      namespace: store-scheduling
      port: 8080
      tools:
        - name: get-store-schedule
          description: "Retrieve the weekly employee schedule for a store."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: week_start
              in: body
              type: string
              description: "The Monday start date in YYYY-MM-DD format."
          call: "workday.get-schedule"
          with:
            location: "{{store_id}}"
            week_start: "{{week_start}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: schedules
          path: "/locations/{{location}}/schedules"
          inputParameters:
            - name: location
              in: path
          operations:
            - name: get-schedule
              method: GET

Pulls POS transaction totals from Square, compares against expected revenue, and logs any variances as ServiceNow incidents.

naftiko: "0.5"
info:
  label: "End-of-Day Cash Reconciliation"
  description: "Pulls POS transaction totals from Square, compares against expected revenue, and logs any variances as ServiceNow incidents."
  tags:
    - finance
    - store-ops
    - square
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: cash-reconciliation
      port: 8080
      tools:
        - name: reconcile-daily-cash
          description: "Run end-of-day cash reconciliation."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: date
              in: body
              type: string
              description: "The business date in YYYY-MM-DD format."
            - name: cash_counted
              in: body
              type: number
              description: "Physical cash count total."
          steps:
            - name: get-pos-totals
              type: call
              call: "square.get-daily-summary"
              with:
                location_id: "{{store_id}}"
                date: "{{date}}"
            - name: log-variance
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Cash variance: Store {{store_id}} - {{date}}"
                category: "cash_management"
                description: "POS total: {{get-pos-totals.total}}. Counted: {{cash_counted}}. Variance needs investigation."
  consumes:
    - type: http
      namespace: square
      baseUri: "https://connect.squareup.com/v2"
      authentication:
        type: bearer
        token: "$secrets.square_token"
      resources:
        - name: settlements
          path: "/locations/{{location_id}}/settlements"
          inputParameters:
            - name: location_id
              in: path
          operations:
            - name: get-daily-summary
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.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

Creates a maintenance request in ServiceNow for store equipment such as ovens, prep tables, or refrigeration units, and alerts the store manager via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Equipment Maintenance Request"
  description: "Creates a maintenance request in ServiceNow for store equipment such as ovens, prep tables, or refrigeration units, and alerts the store manager via Microsoft Teams."
  tags:
    - store-ops
    - maintenance
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: equipment-maintenance
      port: 8080
      tools:
        - name: request-equipment-maintenance
          description: "Submit an equipment maintenance request and notify the store manager."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: equipment_type
              in: body
              type: string
              description: "The equipment type (oven, refrigerator, prep-table, makeline)."
            - name: issue_description
              in: body
              type: string
              description: "Description of the equipment issue."
            - name: severity
              in: body
              type: string
              description: "Severity level (low, medium, high, critical)."
          steps:
            - name: create-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Equipment issue: Store {{store_id}} - {{equipment_type}}"
                category: "equipment"
                urgency: "{{severity}}"
                description: "{{issue_description}}"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store-{{store_id}}"
                text: "Equipment maintenance request: {{equipment_type}} - {{issue_description}}. Severity: {{severity}}. Ticket: {{create-ticket.number}}."
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.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: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Audits expenses at Dominos via Concur, compliance checks, and email.

naftiko: "0.5"
info:
  label: "Expense Audit Pipeline"
  description: "Audits expenses at Dominos via Concur, compliance checks, and email."
  tags:
    - finance
    - travel
    - sap-concur
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: expense-audit
      port: 8080
      tools:
        - name: audit
          description: "Audit expenses at Dominos."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "Report ID."
          steps:
            - name: get
              type: call
              call: "concur.get-report"
              with:
                id: "{{report_id}}"
            - name: check
              type: call
              call: "compliance.check"
              with:
                expenses: "{{get.entries}}"
            - name: flag
              type: call
              call: "workflow.flag"
              with:
                id: "{{report_id}}"
                violations: "{{check.violations}}"
            - name: notify
              type: call
              call: "email.send"
              with:
                to: "{{get.approver}}"
                subject: "Expense {{report_id}} violations"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://us.api.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: reports
          path: "/expense/reports/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-report
              method: GET
    - type: http
      namespace: compliance
      baseUri: "https://compliance.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.compliance_token"
      resources:
        - name: policies
          path: "/check"
          operations:
            - name: check
              method: POST
    - type: http
      namespace: workflow
      baseUri: "https://workflow.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workflow_token"
      resources:
        - name: reviews
          path: "/flag"
          operations:
            - name: flag
              method: POST
    - type: http
      namespace: email
      baseUri: "https://email.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.email_token"
      resources:
        - name: messages
          path: "/send"
          operations:
            - name: send
              method: POST

Analyzes feedback at Dominos via surveys, AI sentiment, and Power BI.

naftiko: "0.5"
info:
  label: "Customer Feedback Pipeline"
  description: "Analyzes feedback at Dominos via surveys, AI sentiment, and Power BI."
  tags:
    - customer-experience
    - analytics
    - sentiment-analysis
capability:
  exposes:
    - type: mcp
      namespace: feedback
      port: 8080
      tools:
        - name: analyze
          description: "Analyze feedback at Dominos."
          inputParameters:
            - name: survey_id
              in: body
              type: string
              description: "Survey ID."
          steps:
            - name: collect
              type: call
              call: "survey.get"
              with:
                id: "{{survey_id}}"
            - name: sentiment
              type: call
              call: "ai.analyze"
              with:
                text: "{{collect.responses}}"
            - name: themes
              type: call
              call: "ai.themes"
              with:
                data: "{{collect.responses}}"
            - name: dashboard
              type: call
              call: "power-bi.refresh"
              with:
                dataset: "cx"
  consumes:
    - type: http
      namespace: survey
      baseUri: "https://surveys.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.survey_token"
      resources:
        - name: responses
          path: "/surveys/{{id}}/responses"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get
              method: GET
    - type: http
      namespace: ai
      baseUri: "https://api.openai.com/v1"
      authentication:
        type: bearer
        token: "$secrets.openai_api_key"
      resources:
        - name: completions
          path: "/chat/completions"
          operations:
            - name: analyze
              method: POST
    - type: http
      namespace: power-bi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.power_bi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset}}/refreshes"
          inputParameters:
            - name: dataset
              in: path
          operations:
            - name: refresh
              method: POST

Calculates the food cost percentage for a store by pulling ingredient costs from SAP and sales data from the reporting system.

naftiko: "0.5"
info:
  label: "Food Cost Calculator"
  description: "Calculates the food cost percentage for a store by pulling ingredient costs from SAP and sales data from the reporting system."
  tags:
    - finance
    - franchise
    - sap
capability:
  exposes:
    - type: mcp
      namespace: food-cost
      port: 8080
      tools:
        - name: calculate-food-cost
          description: "Calculate food cost percentage for a store."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: period
              in: body
              type: string
              description: "Report period in YYYY-MM format."
          steps:
            - name: get-ingredient-costs
              type: call
              call: "sap.get-material-costs"
              with:
                plant: "{{store_id}}"
                period: "{{period}}"
            - name: get-sales
              type: call
              call: "dominos-reporting.get-sales-total"
              with:
                store_id: "{{store_id}}"
                period: "{{period}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://dominos-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_VALUATION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: material-costs
          path: "/A_MaterialValuation"
          operations:
            - name: get-material-costs
              method: GET
    - type: http
      namespace: dominos-reporting
      baseUri: "https://api.dominos.com/reporting/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: sales-total
          path: "/stores/{{store_id}}/sales/total"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-sales-total
              method: GET

Records food safety temperature readings for refrigeration units and prep areas, flagging any out-of-range readings for immediate action.

naftiko: "0.5"
info:
  label: "Food Safety Temperature Log"
  description: "Records food safety temperature readings for refrigeration units and prep areas, flagging any out-of-range readings for immediate action."
  tags:
    - food-safety
    - compliance
    - store-ops
capability:
  exposes:
    - type: mcp
      namespace: food-safety
      port: 8080
      tools:
        - name: log-temperature-reading
          description: "Log a food safety temperature reading."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: equipment_id
              in: body
              type: string
              description: "The equipment identifier."
            - name: temperature_f
              in: body
              type: number
              description: "Temperature reading in Fahrenheit."
            - name: zone
              in: body
              type: string
              description: "The zone (walk-in, prep-table, makeline)."
          call: "dominos-compliance.log-temperature"
          with:
            store_id: "{{store_id}}"
            equipment: "{{equipment_id}}"
            temp: "{{temperature_f}}"
            zone: "{{zone}}"
  consumes:
    - type: http
      namespace: dominos-compliance
      baseUri: "https://api.dominos.com/compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: temperature-logs
          path: "/stores/{{store_id}}/temperature-logs"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: log-temperature
              method: POST

Retrieves franchise agreement details and sends the agreement document for electronic signature via DocuSign to the franchisee.

naftiko: "0.5"
info:
  label: "Franchise Agreement Document"
  description: "Retrieves franchise agreement details and sends the agreement document for electronic signature via DocuSign to the franchisee."
  tags:
    - franchise
    - contracts
    - docusign
capability:
  exposes:
    - type: mcp
      namespace: franchise-agreements
      port: 8080
      tools:
        - name: send-franchise-agreement
          description: "Send a franchise agreement for electronic signature."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
            - name: franchisee_email
              in: body
              type: string
              description: "The franchisee's email address."
            - name: franchisee_name
              in: body
              type: string
              description: "The franchisee's full name."
          steps:
            - name: get-terms
              type: call
              call: "dominos-franchise.get-terms"
              with:
                store_id: "{{store_id}}"
            - name: send-agreement
              type: call
              call: "docusign.create-envelope"
              with:
                template_id: "franchise_agreement_template"
                signer_email: "{{franchisee_email}}"
                signer_name: "{{franchisee_name}}"
                store_id: "{{store_id}}"
                royalty_rate: "{{get-terms.royalty_rate}}"
  consumes:
    - type: http
      namespace: dominos-franchise
      baseUri: "https://api.dominos.com/franchise/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: terms
          path: "/stores/{{store_id}}/terms"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-terms
              method: GET
    - type: http
      namespace: docusign
      baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/$secrets.docusign_account_id"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: envelopes
          path: "/envelopes"
          operations:
            - name: create-envelope
              method: POST

Calculates franchise royalty fees based on store sales data, applying the appropriate royalty percentage and generating a statement for the franchisee.

naftiko: "0.5"
info:
  label: "Franchise Royalty Calculator"
  description: "Calculates franchise royalty fees based on store sales data, applying the appropriate royalty percentage and generating a statement for the franchisee."
  tags:
    - franchise
    - finance
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: royalty-calculation
      port: 8080
      tools:
        - name: calculate-royalties
          description: "Calculate franchise royalty fees for a store."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: period
              in: body
              type: string
              description: "Billing period in YYYY-MM format."
          steps:
            - name: get-sales
              type: call
              call: "dominos-reporting.get-sales-total"
              with:
                store_id: "{{store_id}}"
                period: "{{period}}"
            - name: get-franchise-terms
              type: call
              call: "dominos-franchise.get-terms"
              with:
                store_id: "{{store_id}}"
  consumes:
    - type: http
      namespace: dominos-reporting
      baseUri: "https://api.dominos.com/reporting/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: sales-total
          path: "/stores/{{store_id}}/sales/total"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-sales-total
              method: GET
    - type: http
      namespace: dominos-franchise
      baseUri: "https://api.dominos.com/franchise/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: terms
          path: "/stores/{{store_id}}/terms"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-terms
              method: GET

Generates a franchise store performance report including sales metrics, food cost percentage, labor cost percentage, and customer satisfaction scores.

naftiko: "0.5"
info:
  label: "Franchise Store Performance Report"
  description: "Generates a franchise store performance report including sales metrics, food cost percentage, labor cost percentage, and customer satisfaction scores."
  tags:
    - franchise
    - reporting
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: franchise-performance
      port: 8080
      tools:
        - name: get-franchise-performance
          description: "Generate a franchise store performance report."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: period
              in: body
              type: string
              description: "Report period in YYYY-MM format."
          call: "dominos-reporting.get-franchise-report"
          with:
            store_id: "{{store_id}}"
            period: "{{period}}"
  consumes:
    - type: http
      namespace: dominos-reporting
      baseUri: "https://api.dominos.com/reporting/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: franchise-reports
          path: "/stores/{{store_id}}/franchise-report"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-franchise-report
              method: GET

Checks GitHub repo at Dominos.

naftiko: "0.5"
info:
  label: "GitHub Repo Check"
  description: "Checks GitHub repo at Dominos."
  tags:
    - devops
    - github
    - version-control
capability:
  exposes:
    - type: mcp
      namespace: gh-repo
      port: 8080
      tools:
        - name: get-branch
          description: "Check branch at Dominos."
          inputParameters:
            - name: repo
              in: body
              type: string
              description: "Repo."
            - name: branch
              in: body
              type: string
              description: "Branch."
          call: "github.get-branch"
          with:
            repo: "{{repo}}"
            branch: "{{branch}}"
          outputParameters:
            - name: sha
              type: string
              mapping: "$.commit.sha"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: branches
          path: "/repos/org/{{repo}}/branches/{{branch}}"
          inputParameters:
            - name: repo
              in: path
            - name: branch
              in: path
          operations:
            - name: get-branch
              method: GET

Retrieves performance metrics for Domino's local Google Ads campaigns, returning impressions, clicks, conversions, and cost-per-acquisition by store market.

naftiko: "0.5"
info:
  label: "Google Ads Campaign Performance"
  description: "Retrieves performance metrics for Domino's local Google Ads campaigns, returning impressions, clicks, conversions, and cost-per-acquisition by store market."
  tags:
    - marketing
    - advertising
    - google-ads
capability:
  exposes:
    - type: mcp
      namespace: ads-performance
      port: 8080
      tools:
        - name: get-ads-performance
          description: "Retrieve Google Ads campaign performance metrics."
          inputParameters:
            - name: campaign_id
              in: body
              type: string
              description: "The Google Ads campaign identifier."
            - name: date_range
              in: body
              type: string
              description: "Date range (last_7_days, last_30_days, this_month)."
          call: "google-ads.get-campaign-report"
          with:
            campaign_id: "{{campaign_id}}"
            date_range: "{{date_range}}"
  consumes:
    - type: http
      namespace: google-ads
      baseUri: "https://googleads.googleapis.com/v14"
      authentication:
        type: bearer
        token: "$secrets.google_ads_token"
      resources:
        - name: campaigns
          path: "/customers/$secrets.google_ads_customer_id/googleAds:searchStream"
          operations:
            - name: get-campaign-report
              method: POST

Updates the Domino's store listing on Google Maps with current hours, services, and promotional information.

naftiko: "0.5"
info:
  label: "Google Maps Store Listing Update"
  description: "Updates the Domino's store listing on Google Maps with current hours, services, and promotional information."
  tags:
    - marketing
    - store-ops
    - google-maps
capability:
  exposes:
    - type: mcp
      namespace: google-listing
      port: 8080
      tools:
        - name: update-google-listing
          description: "Update the store's Google Maps business listing."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: hours
              in: body
              type: string
              description: "JSON object with updated hours."
            - name: description
              in: body
              type: string
              description: "Updated business description."
          call: "google-maps.update-listing"
          with:
            location_id: "{{store_id}}"
            hours: "{{hours}}"
            description: "{{description}}"
  consumes:
    - type: http
      namespace: google-maps
      baseUri: "https://mybusinessbusinessinformation.googleapis.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_business_token"
      resources:
        - name: locations
          path: "/locations/{{location_id}}"
          inputParameters:
            - name: location_id
              in: path
          operations:
            - name: update-listing
              method: PATCH

Checks Google user at Dominos.

naftiko: "0.5"
info:
  label: "Google Workspace User Check"
  description: "Checks Google user at Dominos."
  tags:
    - identity
    - google-workspace
    - directory
capability:
  exposes:
    - type: mcp
      namespace: gws
      port: 8080
      tools:
        - name: check-user
          description: "Check user at Dominos."
          inputParameters:
            - name: email
              in: body
              type: string
              description: "Email."
          call: "google.get-user"
          with:
            email: "{{email}}"
          outputParameters:
            - name: suspended
              type: boolean
              mapping: "$.suspended"
  consumes:
    - type: http
      namespace: google
      baseUri: "https://admin.googleapis.com/admin/directory/v1"
      authentication:
        type: bearer
        token: "$secrets.google_admin_token"
      resources:
        - name: users
          path: "/users/{{email}}"
          inputParameters:
            - name: email
              in: path
          operations:
            - name: get-user
              method: GET

Checks Grafana dashboard at Dominos.

naftiko: "0.5"
info:
  label: "Grafana Dashboard Status"
  description: "Checks Grafana dashboard at Dominos."
  tags:
    - monitoring
    - grafana
    - dashboards
capability:
  exposes:
    - type: mcp
      namespace: grafana
      port: 8080
      tools:
        - name: check-dash
          description: "Check dashboard at Dominos."
          inputParameters:
            - name: uid
              in: body
              type: string
              description: "Dashboard UID."
          call: "grafana.get-dash"
          with:
            uid: "{{uid}}"
          outputParameters:
            - name: title
              type: string
              mapping: "$.dashboard.title"
  consumes:
    - type: http
      namespace: grafana
      baseUri: "https://grafana.dominos.com/api"
      authentication:
        type: bearer
        token: "$secrets.grafana_token"
      resources:
        - name: dashboards
          path: "/dashboards/uid/{{uid}}"
          inputParameters:
            - name: uid
              in: path
          operations:
            - name: get-dash
              method: GET

When ingredient inventory drops below par level, automatically creates a supply order in SAP and notifies the store manager via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Ingredient Auto-Reorder"
  description: "When ingredient inventory drops below par level, automatically creates a supply order in SAP and notifies the store manager via Microsoft Teams."
  tags:
    - inventory
    - supply-chain
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: ingredient-reorder
      port: 8080
      tools:
        - name: auto-reorder-ingredient
          description: "Trigger automatic ingredient reorder when stock is low."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: ingredient_code
              in: body
              type: string
              description: "The ingredient material code."
            - name: current_quantity
              in: body
              type: number
              description: "Current quantity on hand."
            - name: order_quantity
              in: body
              type: number
              description: "Quantity to order."
          steps:
            - name: create-order
              type: call
              call: "sap.create-purchase-order"
              with:
                plant: "{{store_id}}"
                material: "{{ingredient_code}}"
                quantity: "{{order_quantity}}"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store-{{store_id}}"
                text: "Auto-reorder: {{ingredient_code}} at {{current_quantity}} units (below par). PO {{create-order.po_number}} created for {{order_quantity}} units. Expected delivery: {{create-order.delivery_date}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://dominos-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder"
          operations:
            - name: create-purchase-order
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Escalates IT incidents at Dominos via ServiceNow, PagerDuty, and Slack.

naftiko: "0.5"
info:
  label: "IT Incident Escalation Pipeline"
  description: "Escalates IT incidents at Dominos via ServiceNow, PagerDuty, and Slack."
  tags:
    - incident-management
    - servicenow
    - pagerduty
    - slack
capability:
  exposes:
    - type: mcp
      namespace: incident-escalation
      port: 8080
      tools:
        - name: escalate-incident
          description: "Escalate incidents at Dominos."
          inputParameters:
            - name: incident_id
              in: body
              type: string
              description: "Incident ID."
            - name: severity
              in: body
              type: string
              description: "Severity."
          steps:
            - name: get-incident
              type: call
              call: "servicenow.get-incident"
              with:
                incident_id: "{{incident_id}}"
            - name: page
              type: call
              call: "pagerduty.create-incident"
              with:
                title: "{{get-incident.description}}"
                urgency: "{{severity}}"
            - name: channel
              type: call
              call: "slack.create-channel"
              with:
                name: "inc-{{incident_id}}"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#inc-{{incident_id}}"
                text: "P{{severity}}: {{get-incident.description}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.com.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/table/incident/{{incident_id}}"
          inputParameters:
            - name: incident_id
              in: path
          operations:
            - name: get-incident
              method: GET
    - type: http
      namespace: pagerduty
      baseUri: "https://api.pagerduty.com"
      authentication:
        type: bearer
        token: "$secrets.pagerduty_token"
      resources:
        - name: incidents
          path: "/incidents"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: channels
          path: "/conversations.create"
          operations:
            - name: create-channel
              method: POST

Retrieves sprint progress at Dominos.

naftiko: "0.5"
info:
  label: "Jira Sprint Progress Lookup"
  description: "Retrieves sprint progress at Dominos."
  tags:
    - project-management
    - jira
    - agile
capability:
  exposes:
    - type: mcp
      namespace: jira-sprint
      port: 8080
      tools:
        - name: get-sprint
          description: "Look up sprint at Dominos."
          inputParameters:
            - name: project_key
              in: body
              type: string
              description: "Project key."
          call: "jira.get-sprints"
          with:
            project: "{{project_key}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.values[0].name"
            - name: state
              type: string
              mapping: "$.values[0].state"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://dominos.com.atlassian.net/rest/agile/1.0"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: sprints
          path: "/board/1/sprint"
          operations:
            - name: get-sprints
              method: GET

Maintains KB at Dominos by finding stale articles and notifying owners.

naftiko: "0.5"
info:
  label: "Knowledge Base Maintenance Pipeline"
  description: "Maintains KB at Dominos by finding stale articles and notifying owners."
  tags:
    - knowledge-management
    - confluence
    - maintenance
capability:
  exposes:
    - type: mcp
      namespace: kb-maint
      port: 8080
      tools:
        - name: maintain-kb
          description: "Maintain KB at Dominos."
          inputParameters:
            - name: space
              in: body
              type: string
              description: "Confluence space."
            - name: stale_days
              in: body
              type: number
              description: "Days threshold."
          steps:
            - name: find
              type: call
              call: "confluence.search-stale"
              with:
                space: "{{space}}"
                days: "{{stale_days}}"
            - name: notify
              type: call
              call: "email.batch"
              with:
                to: "{{find.owners}}"
                subject: "KB review needed"
            - name: flag
              type: call
              call: "confluence.add-label"
              with:
                pages: "{{find.ids}}"
                label: "needs-review"
            - name: report
              type: call
              call: "slack.post-message"
              with:
                channel: "#kb"
                text: "KB: {{find.count}} stale articles"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://dominos.com.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: content
          path: "/content/search"
          operations:
            - name: search-stale
              method: GET
    - type: http
      namespace: email
      baseUri: "https://email.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.email_token"
      resources:
        - name: batch
          path: "/send-batch"
          operations:
            - name: batch
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Generates KPI digest at Dominos from Snowflake, Oracle, Power BI, and email.

naftiko: "0.5"
info:
  label: "Weekly KPI Digest Pipeline"
  description: "Generates KPI digest at Dominos from Snowflake, Oracle, Power BI, and email."
  tags:
    - reporting
    - kpi
    - snowflake
    - executive
capability:
  exposes:
    - type: mcp
      namespace: kpi-digest
      port: 8080
      tools:
        - name: gen-digest
          description: "Generate KPI digest at Dominos."
          inputParameters:
            - name: week
              in: body
              type: string
              description: "Week ending."
            - name: dist
              in: body
              type: string
              description: "Distribution list."
          steps:
            - name: ops
              type: call
              call: "snowflake.query"
              with:
                query: "SELECT * FROM kpis WHERE w='{{week}}'"
            - name: fin
              type: call
              call: "oracle.get-summary"
              with:
                period: "{{week}}"
            - name: refresh
              type: call
              call: "power-bi.refresh"
              with:
                dataset: "exec_kpis"
            - name: send
              type: call
              call: "email.send"
              with:
                to: "{{dist}}"
                subject: "KPIs - {{week}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://dominos.com.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query
              method: POST
    - type: http
      namespace: oracle
      baseUri: "https://oracle.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.oracle_token"
      resources:
        - name: fin
          path: "/summary"
          operations:
            - name: get-summary
              method: GET
    - type: http
      namespace: power-bi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.power_bi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset}}/refreshes"
          inputParameters:
            - name: dataset
              in: path
          operations:
            - name: refresh
              method: POST
    - type: http
      namespace: email
      baseUri: "https://email.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.email_token"
      resources:
        - name: messages
          path: "/send"
          operations:
            - name: send
              method: POST

Checks K8s pod health at Dominos.

naftiko: "0.5"
info:
  label: "K8s Pod Health"
  description: "Checks K8s pod health at Dominos."
  tags:
    - containers
    - kubernetes
    - infrastructure
capability:
  exposes:
    - type: mcp
      namespace: k8s-pod
      port: 8080
      tools:
        - name: check-pod
          description: "Check pod at Dominos."
          inputParameters:
            - name: namespace
              in: body
              type: string
              description: "Namespace."
            - name: pod
              in: body
              type: string
              description: "Pod name."
          call: "k8s.get-pod"
          with:
            namespace: "{{namespace}}"
            pod: "{{pod}}"
          outputParameters:
            - name: phase
              type: string
              mapping: "$.status.phase"
  consumes:
    - type: http
      namespace: k8s
      baseUri: "https://k8s.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.k8s_token"
      resources:
        - name: pods
          path: "/namespaces/{{namespace}}/pods/{{pod}}"
          inputParameters:
            - name: namespace
              in: path
            - name: pod
              in: path
          operations:
            - name: get-pod
              method: GET

Checks license compliance at Dominos via scanning, entitlements, and procurement.

naftiko: "0.5"
info:
  label: "License Compliance Pipeline"
  description: "Checks license compliance at Dominos via scanning, entitlements, and procurement."
  tags:
    - compliance
    - licensing
    - procurement
capability:
  exposes:
    - type: mcp
      namespace: license-comp
      port: 8080
      tools:
        - name: check-licenses
          description: "Check license compliance at Dominos."
          inputParameters:
            - name: software
              in: body
              type: string
              description: "Software."
            - name: vendor
              in: body
              type: string
              description: "Vendor."
          steps:
            - name: scan
              type: call
              call: "assets.installations"
              with:
                sw: "{{software}}"
            - name: entitlements
              type: call
              call: "licenses.get"
              with:
                sw: "{{software}}"
            - name: flag
              type: call
              call: "compliance.flag"
              with:
                installed: "{{scan.count}}"
                entitled: "{{entitlements.count}}"
            - name: procure
              type: call
              call: "servicenow.create-request"
              with:
                type: "license"
                sw: "{{software}}"
  consumes:
    - type: http
      namespace: assets
      baseUri: "https://assets.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.asset_token"
      resources:
        - name: installations
          path: "/installations"
          operations:
            - name: installations
              method: GET
    - type: http
      namespace: licenses
      baseUri: "https://licenses.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.license_token"
      resources:
        - name: ent
          path: "/entitlements"
          operations:
            - name: get
              method: GET
    - type: http
      namespace: compliance
      baseUri: "https://compliance.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.compliance_token"
      resources:
        - name: overages
          path: "/flag"
          operations:
            - name: flag
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.com.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: requests
          path: "/table/sc_request"
          operations:
            - name: create-request
              method: POST

Retrieves a customer's Domino's Piece of the Pie Rewards loyalty balance including points, available rewards, and order history contributing to the balance.

naftiko: "0.5"
info:
  label: "Loyalty Rewards Balance"
  description: "Retrieves a customer's Domino's Piece of the Pie Rewards loyalty balance including points, available rewards, and order history contributing to the balance."
  tags:
    - customer
    - loyalty
    - ordering
capability:
  exposes:
    - type: mcp
      namespace: loyalty-rewards
      port: 8080
      tools:
        - name: get-loyalty-balance
          description: "Retrieve a customer's loyalty rewards balance."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "The Domino's customer identifier."
          call: "dominos-loyalty.get-balance"
          with:
            customer_id: "{{customer_id}}"
  consumes:
    - type: http
      namespace: dominos-loyalty
      baseUri: "https://api.dominos.com/loyalty/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: balances
          path: "/customers/{{customer_id}}/balance"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: get-balance
              method: GET

Toggles a menu item's availability on or off at a specific store, useful for 86'd items when ingredients run out.

naftiko: "0.5"
info:
  label: "Menu Item Availability Toggle"
  description: "Toggles a menu item's availability on or off at a specific store, useful for 86'd items when ingredients run out."
  tags:
    - menu
    - store-ops
    - ordering
capability:
  exposes:
    - type: mcp
      namespace: menu-availability
      port: 8080
      tools:
        - name: toggle-menu-item
          description: "Toggle a menu item's availability at a store."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: item_code
              in: body
              type: string
              description: "The menu item product code."
            - name: available
              in: body
              type: boolean
              description: "Set to true to enable, false to disable."
          call: "dominos-menu.update-availability"
          with:
            store_id: "{{store_id}}"
            item_code: "{{item_code}}"
            available: "{{available}}"
  consumes:
    - type: http
      namespace: dominos-menu
      baseUri: "https://api.dominos.com/menu/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: availability
          path: "/stores/{{store_id}}/menu/{{item_code}}/availability"
          inputParameters:
            - name: store_id
              in: path
            - name: item_code
              in: path
          operations:
            - name: update-availability
              method: PUT

Retrieves the current price for a menu item at a specific store, including any active promotions, coupons, and regional pricing variations.

naftiko: "0.5"
info:
  label: "Menu Item Price Lookup"
  description: "Retrieves the current price for a menu item at a specific store, including any active promotions, coupons, and regional pricing variations."
  tags:
    - ordering
    - pricing
    - menu
capability:
  exposes:
    - type: mcp
      namespace: menu-pricing
      port: 8080
      tools:
        - name: get-menu-item-price
          description: "Look up the price for a menu item at a store."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: item_code
              in: body
              type: string
              description: "The menu item product code."
          call: "dominos-menu.get-item"
          with:
            store_id: "{{store_id}}"
            item_code: "{{item_code}}"
  consumes:
    - type: http
      namespace: dominos-menu
      baseUri: "https://api.dominos.com/menu/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: items
          path: "/stores/{{store_id}}/menu/{{item_code}}"
          inputParameters:
            - name: store_id
              in: path
            - name: item_code
              in: path
          operations:
            - name: get-item
              method: GET

Generates monthly security reports at Dominos from Splunk and Qualys.

naftiko: "0.5"
info:
  label: "Monthly Security Report Pipeline"
  description: "Generates monthly security reports at Dominos from Splunk and Qualys."
  tags:
    - security
    - reporting
    - splunk
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: sec-report
      port: 8080
      tools:
        - name: gen-sec-report
          description: "Generate security report at Dominos."
          inputParameters:
            - name: month
              in: body
              type: string
              description: "Month."
          steps:
            - name: splunk
              type: call
              call: "splunk.search"
              with:
                query: "index=security earliest=-30d"
            - name: scans
              type: call
              call: "qualys.results"
              with:
                month: "{{month}}"
            - name: compile
              type: call
              call: "analytics.compile-security"
              with:
                events: "{{splunk.count}}"
                vulns: "{{scans.critical}}"
            - name: send
              type: call
              call: "email.send"
              with:
                to: "ciso@co.com"
                subject: "Security - {{month}}"
  consumes:
    - type: http
      namespace: splunk
      baseUri: "https://splunk.dominos.com:8089/services"
      authentication:
        type: bearer
        token: "$secrets.splunk_token"
      resources:
        - name: search
          path: "/search/jobs"
          operations:
            - name: search
              method: POST
    - type: http
      namespace: qualys
      baseUri: "https://qualysapi.qualys.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.qualys_token"
      resources:
        - name: results
          path: "/fo/scan/results"
          operations:
            - name: results
              method: GET
    - type: http
      namespace: analytics
      baseUri: "https://analytics.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.analytics_token"
      resources:
        - name: security
          path: "/compile"
          operations:
            - name: compile-security
              method: POST
    - type: http
      namespace: email
      baseUri: "https://email.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.email_token"
      resources:
        - name: messages
          path: "/send"
          operations:
            - name: send
              method: POST

When a negative Google review is detected, creates a Salesforce case for follow-up, sends an apology coupon via Twilio SMS, and alerts the store manager on Microsoft Teams.

naftiko: "0.5"
info:
  label: "Negative Review Response Pipeline"
  description: "When a negative Google review is detected, creates a Salesforce case for follow-up, sends an apology coupon via Twilio SMS, and alerts the store manager on Microsoft Teams."
  tags:
    - customer
    - marketing
    - salesforce
    - twilio
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: review-response
      port: 8080
      tools:
        - name: respond-to-negative-review
          description: "Process and respond to a negative customer review."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
            - name: reviewer_name
              in: body
              type: string
              description: "The reviewer's name."
            - name: review_text
              in: body
              type: string
              description: "The review content."
            - name: rating
              in: body
              type: number
              description: "The star rating."
            - name: customer_phone
              in: body
              type: string
              description: "Customer phone if available."
          steps:
            - name: create-case
              type: call
              call: "salesforce.create-case"
              with:
                subject: "Negative review: Store {{store_id}} - {{rating}} stars"
                description: "Reviewer: {{reviewer_name}}. Rating: {{rating}}/5. Review: {{review_text}}"
                priority: "High"
            - name: send-coupon
              type: call
              call: "twilio.send-sms"
              with:
                to: "{{customer_phone}}"
                body: "Hi {{reviewer_name}}, we're sorry about your recent Domino's experience. Please enjoy 50% off your next order with code: MAKEITRIGHT. We appreciate your feedback."
            - name: alert-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store-{{store_id}}"
                text: "Negative review alert ({{rating}} stars) from {{reviewer_name}}: {{review_text}}. Case: {{create-case.case_number}}. Recovery coupon sent."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://dominos.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: twilio
      baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Messages.json"
          operations:
            - name: send-sms
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Onboards employees at Dominos with Okta, ServiceNow, Slack, and calendar.

naftiko: "0.5"
info:
  label: "New Employee IT Onboarding Pipeline"
  description: "Onboards employees at Dominos with Okta, ServiceNow, Slack, and calendar."
  tags:
    - hr
    - onboarding
    - okta
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: it-onboarding
      port: 8080
      tools:
        - name: onboard-employee
          description: "Onboard employees at Dominos."
          inputParameters:
            - name: name
              in: body
              type: string
              description: "Name."
            - name: dept
              in: body
              type: string
              description: "Department."
            - name: start
              in: body
              type: string
              description: "Start date."
          steps:
            - name: okta
              type: call
              call: "okta.create-user"
              with:
                name: "{{name}}"
                department: "{{dept}}"
            - name: equip
              type: call
              call: "servicenow.create-request"
              with:
                type: "new_hire"
                for: "{{name}}"
            - name: slack
              type: call
              call: "slack.invite"
              with:
                email: "{{okta.email}}"
            - name: orient
              type: call
              call: "calendar.create-event"
              with:
                title: "Orientation - {{name}}"
                date: "{{start}}"
  consumes:
    - type: http
      namespace: okta
      baseUri: "https://dominos.com.okta.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.okta_api_token"
      resources:
        - name: users
          path: "/users"
          operations:
            - name: create-user
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.com.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: requests
          path: "/table/sc_request"
          operations:
            - name: create-request
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: users
          path: "/users.admin.invite"
          operations:
            - name: invite
              method: POST
    - type: http
      namespace: calendar
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.microsoft_graph_token"
      resources:
        - name: events
          path: "/users/hr/events"
          operations:
            - name: create-event
              method: POST

When a new store employee is hired in Workday, creates their Pluralsight food safety training assignments, provisions POS access via ServiceNow, and notifies the store manager via Microsoft Teams.

naftiko: "0.5"
info:
  label: "New Employee Onboarding"
  description: "When a new store employee is hired in Workday, creates their Pluralsight food safety training assignments, provisions POS access via ServiceNow, and notifies the store manager via Microsoft Teams."
  tags:
    - hr
    - onboarding
    - workday
    - pluralsight
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: employee-onboarding
      port: 8080
      tools:
        - name: onboard-employee
          description: "Orchestrate onboarding for a new store employee."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday employee identifier."
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
            - name: role
              in: body
              type: string
              description: "The employee role (driver, insider, manager)."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{employee_id}}"
            - name: assign-training
              type: call
              call: "pluralsight.assign-channel"
              with:
                email: "{{get-employee.work_email}}"
                channel: "dominos-{{role}}-training"
            - name: provision-access
              type: call
              call: "servicenow.create-request"
              with:
                short_description: "POS access for {{get-employee.full_name}} at store {{store_id}}"
                category: "access_provisioning"
                description: "Provision POS and kitchen display access for {{get-employee.full_name}} ({{role}}) at store {{store_id}}."
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store-{{store_id}}"
                text: "New hire: {{get-employee.full_name}} ({{role}}) onboarded. Training assigned. POS access request: {{provision-access.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: pluralsight
      baseUri: "https://api.pluralsight.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.pluralsight_token"
      resources:
        - name: assignments
          path: "/channels/assign"
          operations:
            - name: assign-channel
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: requests
          path: "/table/sc_request"
          operations:
            - name: create-request
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Checks New Relic APM at Dominos.

naftiko: "0.5"
info:
  label: "New Relic APM Check"
  description: "Checks New Relic APM at Dominos."
  tags:
    - monitoring
    - new-relic
    - apm
capability:
  exposes:
    - type: mcp
      namespace: nr-apm
      port: 8080
      tools:
        - name: check-apm
          description: "Check APM at Dominos."
          inputParameters:
            - name: app_id
              in: body
              type: string
              description: "App ID."
          call: "newrelic.get-app"
          with:
            app_id: "{{app_id}}"
          outputParameters:
            - name: health
              type: string
              mapping: "$.application.health_status"
  consumes:
    - type: http
      namespace: newrelic
      baseUri: "https://api.newrelic.com/v2"
      authentication:
        type: bearer
        token: "$secrets.new_relic_api_key"
      resources:
        - name: applications
          path: "/applications/{{app_id}}.json"
          inputParameters:
            - name: app_id
              in: path
          operations:
            - name: get-app
              method: GET

Orchestrates a new franchise store launch by creating the store in the OMS, setting up Workday positions, configuring ServiceNow support, and announcing on Microsoft Teams.

naftiko: "0.5"
info:
  label: "New Store Launch Orchestrator"
  description: "Orchestrates a new franchise store launch by creating the store in the OMS, setting up Workday positions, configuring ServiceNow support, and announcing on Microsoft Teams."
  tags:
    - franchise
    - operations
    - workday
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: store-launch
      port: 8080
      tools:
        - name: launch-new-store
          description: "Orchestrate the system setup for a new franchise store."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The new store identifier."
            - name: store_address
              in: body
              type: string
              description: "The store physical address."
            - name: franchisee_name
              in: body
              type: string
              description: "The franchisee name."
            - name: open_date
              in: body
              type: string
              description: "Grand opening date in YYYY-MM-DD format."
          steps:
            - name: create-store
              type: call
              call: "dominos-stores.create-store"
              with:
                store_id: "{{store_id}}"
                address: "{{store_address}}"
                franchisee: "{{franchisee_name}}"
            - name: create-workday-location
              type: call
              call: "workday.create-location"
              with:
                location_id: "{{store_id}}"
                name: "Dominos Store {{store_id}}"
                address: "{{store_address}}"
            - name: create-support
              type: call
              call: "servicenow.create-config-item"
              with:
                name: "Dominos Store {{store_id}}"
                category: "franchise_store"
                location: "{{store_address}}"
            - name: announce
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "franchise-ops"
                text: "New store {{store_id}} launching on {{open_date}}. Franchisee: {{franchisee_name}}. Address: {{store_address}}. All systems configured."
  consumes:
    - type: http
      namespace: dominos-stores
      baseUri: "https://api.dominos.com/stores/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: stores
          path: "/stores"
          operations:
            - name: create-store
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: locations
          path: "/locations"
          operations:
            - name: create-location
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: config-items
          path: "/table/cmdb_ci"
          operations:
            - name: create-config-item
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Checks Okta user at Dominos.

naftiko: "0.5"
info:
  label: "Okta User Check"
  description: "Checks Okta user at Dominos."
  tags:
    - identity
    - okta
    - access-management
capability:
  exposes:
    - type: mcp
      namespace: okta-user
      port: 8080
      tools:
        - name: check-user
          description: "Check user at Dominos."
          inputParameters:
            - name: email
              in: body
              type: string
              description: "Email."
          call: "okta.get-user"
          with:
            email: "{{email}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: okta
      baseUri: "https://dominos.com.okta.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.okta_api_token"
      resources:
        - name: users
          path: "/users/{{email}}"
          inputParameters:
            - name: email
              in: path
          operations:
            - name: get-user
              method: GET

When a new online order is placed, validates the payment via Square, sends the order to the store kitchen display system, and sends an order confirmation SMS to the customer via Twilio.

naftiko: "0.5"
info:
  label: "Online Order to Kitchen Pipeline"
  description: "When a new online order is placed, validates the payment via Square, sends the order to the store kitchen display system, and sends an order confirmation SMS to the customer via Twilio."
  tags:
    - ordering
    - kitchen
    - square
    - twilio
capability:
  exposes:
    - type: mcp
      namespace: order-pipeline
      port: 8080
      tools:
        - name: process-online-order
          description: "Process an online order through payment, kitchen, and customer notification."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The online order identifier."
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
          steps:
            - name: get-order
              type: call
              call: "dominos-oms.get-order"
              with:
                order_number: "{{order_id}}"
                store_id: "{{store_id}}"
            - name: process-payment
              type: call
              call: "square.create-payment"
              with:
                amount: "{{get-order.total}}"
                source_id: "{{get-order.payment_token}}"
                location_id: "{{store_id}}"
            - name: send-to-kitchen
              type: call
              call: "dominos-oms.update-order-status"
              with:
                order_number: "{{order_id}}"
                store_id: "{{store_id}}"
                status: "in_kitchen"
            - name: notify-customer
              type: call
              call: "twilio.send-sms"
              with:
                to: "{{get-order.customer_phone}}"
                body: "Your Domino's order #{{order_id}} has been confirmed and is being prepared. Estimated ready time: {{get-order.estimated_time}}."
  consumes:
    - type: http
      namespace: dominos-oms
      baseUri: "https://api.dominos.com/oms/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: orders
          path: "/stores/{{store_id}}/orders/{{order_number}}"
          inputParameters:
            - name: store_id
              in: path
            - name: order_number
              in: path
          operations:
            - name: get-order
              method: GET
        - name: order-status
          path: "/stores/{{store_id}}/orders/{{order_number}}/status"
          inputParameters:
            - name: store_id
              in: path
            - name: order_number
              in: path
          operations:
            - name: update-order-status
              method: PUT
    - type: http
      namespace: square
      baseUri: "https://connect.squareup.com/v2"
      authentication:
        type: bearer
        token: "$secrets.square_token"
      resources:
        - name: payments
          path: "/payments"
          operations:
            - name: create-payment
              method: POST
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Messages.json"
          operations:
            - name: send-sms
              method: POST

Queries the Domino's order management system for a customer order by order number, returning current preparation stage, estimated delivery time, and driver assignment.

naftiko: "0.5"
info:
  label: "Order Status Lookup"
  description: "Queries the Domino's order management system for a customer order by order number, returning current preparation stage, estimated delivery time, and driver assignment."
  tags:
    - ordering
    - tracking
    - store-ops
capability:
  exposes:
    - type: mcp
      namespace: order-tracking
      port: 8080
      tools:
        - name: get-order-status
          description: "Look up the current status of a customer order."
          inputParameters:
            - name: order_number
              in: body
              type: string
              description: "The Domino's order number."
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
          call: "dominos-oms.get-order"
          with:
            order_number: "{{order_number}}"
            store_id: "{{store_id}}"
  consumes:
    - type: http
      namespace: dominos-oms
      baseUri: "https://api.dominos.com/oms/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: orders
          path: "/stores/{{store_id}}/orders/{{order_number}}"
          inputParameters:
            - name: store_id
              in: path
            - name: order_number
              in: path
          operations:
            - name: get-order
              method: GET

Checks on-call at Dominos.

naftiko: "0.5"
info:
  label: "PagerDuty On-Call Check"
  description: "Checks on-call at Dominos."
  tags:
    - incident-management
    - pagerduty
    - on-call
capability:
  exposes:
    - type: mcp
      namespace: pd-oncall
      port: 8080
      tools:
        - name: get-oncall
          description: "Check on-call at Dominos."
          inputParameters:
            - name: schedule_id
              in: body
              type: string
              description: "Schedule ID."
          call: "pagerduty.get-oncall"
          with:
            schedule_id: "{{schedule_id}}"
          outputParameters:
            - name: user
              type: string
              mapping: "$.oncalls[0].user.summary"
  consumes:
    - type: http
      namespace: pagerduty
      baseUri: "https://api.pagerduty.com"
      authentication:
        type: bearer
        token: "$secrets.pagerduty_token"
      resources:
        - name: oncalls
          path: "/oncalls"
          operations:
            - name: get-oncall
              method: GET

Exports weekly timesheet hours from Workday for a Domino's store and submits them to ADP for payroll processing.

naftiko: "0.5"
info:
  label: "Payroll Hours Sync"
  description: "Exports weekly timesheet hours from Workday for a Domino's store and submits them to ADP for payroll processing."
  tags:
    - hr
    - payroll
    - workday
    - adp
capability:
  exposes:
    - type: mcp
      namespace: payroll-sync
      port: 8080
      tools:
        - name: sync-payroll-hours
          description: "Sync weekly timesheet hours to payroll system."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: week_ending
              in: body
              type: string
              description: "The week ending date in YYYY-MM-DD format."
          steps:
            - name: get-timesheets
              type: call
              call: "workday.get-timesheets"
              with:
                location: "{{store_id}}"
                week_ending: "{{week_ending}}"
            - name: submit-to-adp
              type: call
              call: "adp.submit-hours"
              with:
                location: "{{store_id}}"
                hours: "{{get-timesheets.entries}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: timesheets
          path: "/locations/{{location}}/timesheets"
          inputParameters:
            - name: location
              in: path
          operations:
            - name: get-timesheets
              method: GET
    - type: http
      namespace: adp
      baseUri: "https://api.adp.com/hr/v2"
      authentication:
        type: bearer
        token: "$secrets.adp_token"
      resources:
        - name: payroll
          path: "/payroll/hours"
          operations:
            - name: submit-hours
              method: POST

Analyzes historical order volumes from the reporting system to predict peak hours and generates optimized staff schedules in Workday.

naftiko: "0.5"
info:
  label: "Peak Hour Staffing Predictor"
  description: "Analyzes historical order volumes from the reporting system to predict peak hours and generates optimized staff schedules in Workday."
  tags:
    - hr
    - scheduling
    - analytics
    - workday
capability:
  exposes:
    - type: mcp
      namespace: peak-staffing
      port: 8080
      tools:
        - name: predict-peak-staffing
          description: "Predict peak hours and generate staffing recommendations."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: target_week
              in: body
              type: string
              description: "Target week start date in YYYY-MM-DD format."
          steps:
            - name: get-order-history
              type: call
              call: "dominos-reporting.get-hourly-volume"
              with:
                store_id: "{{store_id}}"
            - name: create-schedule
              type: call
              call: "workday.create-schedule"
              with:
                location: "{{store_id}}"
                week_start: "{{target_week}}"
                peak_hours: "{{get-order-history.peak_hours}}"
  consumes:
    - type: http
      namespace: dominos-reporting
      baseUri: "https://api.dominos.com/reporting/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: hourly-volume
          path: "/stores/{{store_id}}/hourly-volume"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-hourly-volume
              method: GET
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: schedules
          path: "/locations/{{location}}/schedules"
          inputParameters:
            - name: location
              in: path
          operations:
            - name: create-schedule
              method: POST

Creates postmortems at Dominos.

naftiko: "0.5"
info:
  label: "Incident Postmortem Pipeline"
  description: "Creates postmortems at Dominos."
  tags:
    - incident-management
    - postmortem
    - pagerduty
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: postmortem
      port: 8080
      tools:
        - name: create-postmortem
          description: "Create postmortem at Dominos."
          inputParameters:
            - name: incident_id
              in: body
              type: string
              description: "Incident ID."
          steps:
            - name: timeline
              type: call
              call: "pagerduty.get-log"
              with:
                id: "{{incident_id}}"
            - name: metrics
              type: call
              call: "datadog.get-metrics"
              with:
                incident: "{{incident_id}}"
            - name: doc
              type: call
              call: "confluence.create-page"
              with:
                title: "Postmortem: {{timeline.title}}"
                body: "Impact: {{metrics.impact}}"
            - name: review
              type: call
              call: "calendar.create-event"
              with:
                title: "Review: {{timeline.title}}"
  consumes:
    - type: http
      namespace: pagerduty
      baseUri: "https://api.pagerduty.com"
      authentication:
        type: bearer
        token: "$secrets.pagerduty_token"
      resources:
        - name: incidents
          path: "/incidents/{{id}}/log_entries"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-log
              method: GET
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: incidents
          path: "/incidents"
          operations:
            - name: get-metrics
              method: GET
    - type: http
      namespace: confluence
      baseUri: "https://dominos.com.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/content"
          operations:
            - name: create-page
              method: POST
    - type: http
      namespace: calendar
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.microsoft_graph_token"
      resources:
        - name: events
          path: "/users/sre/events"
          operations:
            - name: create-event
              method: POST

Checks Power BI refresh at Dominos.

naftiko: "0.5"
info:
  label: "Power BI Refresh Check"
  description: "Checks Power BI refresh at Dominos."
  tags:
    - analytics
    - power-bi
    - dashboards
capability:
  exposes:
    - type: mcp
      namespace: pbi-refresh
      port: 8080
      tools:
        - name: check-refresh
          description: "Check refresh at Dominos."
          inputParameters:
            - name: dataset_id
              in: body
              type: string
              description: "Dataset ID."
          call: "power-bi.get-refresh"
          with:
            dataset_id: "{{dataset_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.value[0].status"
  consumes:
    - type: http
      namespace: power-bi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.power_bi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset_id}}/refreshes"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: get-refresh
              method: GET

Generates compliance reports at Dominos from Snowflake, Power BI, and email.

naftiko: "0.5"
info:
  label: "Quarterly Compliance Report Pipeline"
  description: "Generates compliance reports at Dominos from Snowflake, Power BI, and email."
  tags:
    - compliance
    - reporting
    - snowflake
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: compliance-rpt
      port: 8080
      tools:
        - name: gen-report
          description: "Generate compliance reports at Dominos."
          inputParameters:
            - name: quarter
              in: body
              type: string
              description: "Quarter."
            - name: type
              in: body
              type: string
              description: "Type."
          steps:
            - name: data
              type: call
              call: "snowflake.query"
              with:
                query: "SELECT * FROM compliance WHERE q='{{quarter}}'"
            - name: metrics
              type: call
              call: "analytics.compute"
              with:
                data: "{{data.results}}"
            - name: refresh
              type: call
              call: "power-bi.refresh"
              with:
                dataset: "compliance"
            - name: send
              type: call
              call: "email.send"
              with:
                to: "compliance@co.com"
                subject: "{{type}} - {{quarter}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://dominos.com.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query
              method: POST
    - type: http
      namespace: analytics
      baseUri: "https://analytics.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.analytics_token"
      resources:
        - name: metrics
          path: "/compute"
          operations:
            - name: compute
              method: POST
    - type: http
      namespace: power-bi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.power_bi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset}}/refreshes"
          inputParameters:
            - name: dataset
              in: path
          operations:
            - name: refresh
              method: POST
    - type: http
      namespace: email
      baseUri: "https://email.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.email_token"
      resources:
        - name: messages
          path: "/send"
          operations:
            - name: send
              method: POST

Checks Redis at Dominos.

naftiko: "0.5"
info:
  label: "Redis Cache Status"
  description: "Checks Redis at Dominos."
  tags:
    - caching
    - redis
    - infrastructure
capability:
  exposes:
    - type: mcp
      namespace: redis
      port: 8080
      tools:
        - name: check-cache
          description: "Check Redis at Dominos."
          inputParameters:
            - name: instance
              in: body
              type: string
              description: "Instance ID."
          call: "redis.get-info"
          with:
            instance: "{{instance}}"
          outputParameters:
            - name: memory
              type: string
              mapping: "$.used_memory_human"
  consumes:
    - type: http
      namespace: redis
      baseUri: "https://redis.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.redis_token"
      resources:
        - name: instances
          path: "/instances/{{instance}}/info"
          inputParameters:
            - name: instance
              in: path
          operations:
            - name: get-info
              method: GET

Checks release readiness at Dominos.

naftiko: "0.5"
info:
  label: "Release Readiness Pipeline"
  description: "Checks release readiness at Dominos."
  tags:
    - release-management
    - devops
    - quality
capability:
  exposes:
    - type: mcp
      namespace: release-ready
      port: 8080
      tools:
        - name: check-release
          description: "Check release at Dominos."
          inputParameters:
            - name: release_id
              in: body
              type: string
              description: "Release ID."
            - name: project
              in: body
              type: string
              description: "Project."
          steps:
            - name: tests
              type: call
              call: "azdo.get-tests"
              with:
                project: "{{project}}"
                release: "{{release_id}}"
            - name: quality
              type: call
              call: "sonarqube.get-gate"
              with:
                project: "{{project}}"
            - name: security
              type: call
              call: "security.get-scan"
              with:
                project: "{{project}}"
            - name: doc
              type: call
              call: "confluence.create-page"
              with:
                title: "Release - {{release_id}}"
                body: "Tests: {{tests.pass_rate}}% Quality: {{quality.status}}"
  consumes:
    - type: http
      namespace: azdo
      baseUri: "https://dev.azure.com/dominos.com"
      authentication:
        type: bearer
        token: "$secrets.azdo_token"
      resources:
        - name: tests
          path: "/{{project}}/_apis/test/runs"
          inputParameters:
            - name: project
              in: path
          operations:
            - name: get-tests
              method: GET
    - type: http
      namespace: sonarqube
      baseUri: "https://sonarqube.dominos.com/api"
      authentication:
        type: bearer
        token: "$secrets.sonarqube_token"
      resources:
        - name: quality
          path: "/qualitygates/project_status"
          operations:
            - name: get-gate
              method: GET
    - type: http
      namespace: security
      baseUri: "https://security.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.security_token"
      resources:
        - name: scans
          path: "/results"
          operations:
            - name: get-scan
              method: GET
    - type: http
      namespace: confluence
      baseUri: "https://dominos.com.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/content"
          operations:
            - name: create-page
              method: POST

Extracts daily store sales data from the reporting system and pushes it to Power BI for executive dashboard visualization and trend analysis.

naftiko: "0.5"
info:
  label: "Sales to Power BI Dashboard"
  description: "Extracts daily store sales data from the reporting system and pushes it to Power BI for executive dashboard visualization and trend analysis."
  tags:
    - reporting
    - analytics
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: sales-to-powerbi
      port: 8080
      tools:
        - name: push-sales-to-powerbi
          description: "Push daily sales data to Power BI for dashboard reporting."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: date
              in: body
              type: string
              description: "The report date in YYYY-MM-DD format."
          steps:
            - name: get-sales
              type: call
              call: "dominos-reporting.get-sales"
              with:
                store_id: "{{store_id}}"
                date: "{{date}}"
            - name: push-data
              type: call
              call: "powerbi.push-rows"
              with:
                dataset_id: "$secrets.powerbi_dataset_id"
                table_name: "DailyStoreSales"
                rows: "{{get-sales.line_items}}"
  consumes:
    - type: http
      namespace: dominos-reporting
      baseUri: "https://api.dominos.com/reporting/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: sales
          path: "/stores/{{store_id}}/sales"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-sales
              method: GET
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset_id}}/tables/{{table_name}}/rows"
          inputParameters:
            - name: dataset_id
              in: path
            - name: table_name
              in: path
          operations:
            - name: push-rows
              method: POST

Checks SAP PO at Dominos.

naftiko: "0.5"
info:
  label: "SAP PO Check"
  description: "Checks SAP PO at Dominos."
  tags:
    - procurement
    - sap
    - purchase-orders
capability:
  exposes:
    - type: mcp
      namespace: sap-po
      port: 8080
      tools:
        - name: get-po
          description: "Check PO at Dominos."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "PO number."
          call: "sap.get-po"
          with:
            po_number: "{{po_number}}"
          outputParameters:
            - name: vendor
              type: string
              mapping: "$.order.vendor"
            - name: status
              type: string
              mapping: "$.order.status"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://sap.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: purchase-orders
          path: "/purchase-orders/{{po_number}}"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: get-po
              method: GET

Remediates vulnerabilities at Dominos via scanning, Jira, and Slack.

naftiko: "0.5"
info:
  label: "Security Vulnerability Remediation Pipeline"
  description: "Remediates vulnerabilities at Dominos via scanning, Jira, and Slack."
  tags:
    - security
    - vulnerability-management
    - jira
capability:
  exposes:
    - type: mcp
      namespace: vuln-fix
      port: 8080
      tools:
        - name: remediate
          description: "Fix vulnerabilities at Dominos."
          inputParameters:
            - name: target
              in: body
              type: string
              description: "Target."
            - name: policy
              in: body
              type: string
              description: "Policy."
          steps:
            - name: scan
              type: call
              call: "qualys.scan"
              with:
                target: "{{target}}"
                policy: "{{policy}}"
            - name: prioritize
              type: call
              call: "security.prioritize"
              with:
                scan: "{{scan.id}}"
            - name: ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "SEC"
                summary: "Vulns: {{prioritize.critical}} critical"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#security"
                text: "Scan: {{prioritize.critical}} critical"
  consumes:
    - type: http
      namespace: qualys
      baseUri: "https://qualysapi.qualys.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.qualys_token"
      resources:
        - name: scans
          path: "/fo/scan"
          operations:
            - name: scan
              method: POST
    - type: http
      namespace: security
      baseUri: "https://security.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.security_token"
      resources:
        - name: vulns
          path: "/prioritize"
          operations:
            - name: prioritize
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://dominos.com.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Checks IT incident in ServiceNow for Dominos.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Detail Check"
  description: "Checks IT incident in ServiceNow for Dominos."
  tags:
    - it-service
    - servicenow
    - incident-management
capability:
  exposes:
    - type: mcp
      namespace: snow-incident
      port: 8080
      tools:
        - name: check-incident
          description: "Check incident at Dominos."
          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: priority
              type: string
              mapping: "$.result.priority"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.com.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: get-incident
              method: GET

Retrieves SharePoint metadata at Dominos.

naftiko: "0.5"
info:
  label: "SharePoint File Metadata"
  description: "Retrieves SharePoint metadata at Dominos."
  tags:
    - document-management
    - sharepoint
    - collaboration
capability:
  exposes:
    - type: mcp
      namespace: sp-docs
      port: 8080
      tools:
        - name: get-file
          description: "Look up file at Dominos."
          inputParameters:
            - name: site_id
              in: body
              type: string
              description: "Site ID."
            - name: file_path
              in: body
              type: string
              description: "Path."
          call: "sharepoint.get-file"
          with:
            site_id: "{{site_id}}"
            path: "{{file_path}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.name"
            - name: size
              type: number
              mapping: "$.size"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.microsoft_graph_token"
      resources:
        - name: files
          path: "/sites/{{site_id}}/drive/root:/{{path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: path
              in: path
          operations:
            - name: get-file
              method: GET

Monitors SLAs at Dominos via Datadog and Slack.

naftiko: "0.5"
info:
  label: "SLA Monitoring Pipeline"
  description: "Monitors SLAs at Dominos via Datadog and Slack."
  tags:
    - operations
    - sla
    - datadog
    - slack
capability:
  exposes:
    - type: mcp
      namespace: sla-monitor
      port: 8080
      tools:
        - name: check-sla
          description: "Monitor SLAs at Dominos."
          inputParameters:
            - name: service
              in: body
              type: string
              description: "Service."
            - name: target
              in: body
              type: number
              description: "SLA target %."
          steps:
            - name: metrics
              type: call
              call: "datadog.get-sla"
              with:
                service: "{{service}}"
            - name: check
              type: call
              call: "analytics.check-sla"
              with:
                uptime: "{{metrics.uptime}}"
                target: "{{target}}"
            - name: alert
              type: call
              call: "slack.post-message"
              with:
                channel: "#ops"
                text: "SLA: {{service}} at {{metrics.uptime}}% (target: {{target}}%)"
            - name: log
              type: call
              call: "servicenow.create-incident"
              with:
                desc: "SLA breach: {{service}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: metrics
          path: "/metrics"
          operations:
            - name: get-sla
              method: GET
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://dominos.com.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST

Checks Snowflake warehouse usage at Dominos.

naftiko: "0.5"
info:
  label: "Snowflake Warehouse Usage"
  description: "Checks Snowflake warehouse usage at Dominos."
  tags:
    - data
    - snowflake
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: sf-usage
      port: 8080
      tools:
        - name: check-warehouse
          description: "Check warehouse at Dominos."
          inputParameters:
            - name: warehouse
              in: body
              type: string
              description: "Warehouse."
          call: "snowflake.get-usage"
          with:
            warehouse: "{{warehouse}}"
          outputParameters:
            - name: credits
              type: number
              mapping: "$.data.credits_used"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://dominos.com.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: warehouses
          path: "/statements"
          operations:
            - name: get-usage
              method: GET

Creates a promotional campaign post on Facebook and Instagram using event or deal details, targeting the store's local delivery area.

naftiko: "0.5"
info:
  label: "Social Media Promotion Publisher"
  description: "Creates a promotional campaign post on Facebook and Instagram using event or deal details, targeting the store's local delivery area."
  tags:
    - marketing
    - social-media
    - facebook
    - instagram
capability:
  exposes:
    - type: mcp
      namespace: social-promo
      port: 8080
      tools:
        - name: publish-social-promo
          description: "Publish a promotional post to social media platforms."
          inputParameters:
            - name: promo_text
              in: body
              type: string
              description: "The promotional message text."
            - name: image_url
              in: body
              type: string
              description: "URL of the promotional image."
            - name: coupon_code
              in: body
              type: string
              description: "The associated coupon code."
          steps:
            - name: post-facebook
              type: call
              call: "facebook.create-post"
              with:
                message: "{{promo_text}} Use code: {{coupon_code}}"
                link: "https://www.dominos.com"
                image: "{{image_url}}"
            - name: post-instagram
              type: call
              call: "instagram.create-post"
              with:
                caption: "{{promo_text}} Use code: {{coupon_code}} #dominos #pizza #deal"
                image_url: "{{image_url}}"
  consumes:
    - type: http
      namespace: facebook
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.facebook_page_token"
      resources:
        - name: posts
          path: "/$secrets.facebook_page_id/feed"
          operations:
            - name: create-post
              method: POST
    - type: http
      namespace: instagram
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.instagram_token"
      resources:
        - name: posts
          path: "/$secrets.instagram_account_id/media"
          operations:
            - name: create-post
              method: POST

Checks code quality at Dominos.

naftiko: "0.5"
info:
  label: "SonarQube Quality Check"
  description: "Checks code quality at Dominos."
  tags:
    - code-quality
    - sonarqube
    - devops
capability:
  exposes:
    - type: mcp
      namespace: sq
      port: 8080
      tools:
        - name: check-quality
          description: "Check quality at Dominos."
          inputParameters:
            - name: project
              in: body
              type: string
              description: "Project key."
          call: "sonarqube.get-measures"
          with:
            project: "{{project}}"
          outputParameters:
            - name: bugs
              type: number
              mapping: "$.component.measures[0].value"
  consumes:
    - type: http
      namespace: sonarqube
      baseUri: "https://sonarqube.dominos.com/api"
      authentication:
        type: bearer
        token: "$secrets.sonarqube_token"
      resources:
        - name: measures
          path: "/measures/component"
          operations:
            - name: get-measures
              method: GET

Searches Splunk at Dominos.

naftiko: "0.5"
info:
  label: "Splunk Log Search"
  description: "Searches Splunk at Dominos."
  tags:
    - security
    - splunk
    - logging
capability:
  exposes:
    - type: mcp
      namespace: splunk-search
      port: 8080
      tools:
        - name: search-logs
          description: "Search logs at Dominos."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "SPL query."
          call: "splunk.search"
          with:
            query: "{{query}}"
          outputParameters:
            - name: count
              type: number
              mapping: "$.results.count"
  consumes:
    - type: http
      namespace: splunk
      baseUri: "https://splunk.dominos.com:8089/services"
      authentication:
        type: bearer
        token: "$secrets.splunk_token"
      resources:
        - name: search
          path: "/search/jobs"
          operations:
            - name: search
              method: POST

Prepares for a health inspection by pulling temperature logs, cleaning schedules, and employee certification records, consolidating them into a compliance report.

naftiko: "0.5"
info:
  label: "Store Health Inspection Prep"
  description: "Prepares for a health inspection by pulling temperature logs, cleaning schedules, and employee certification records, consolidating them into a compliance report."
  tags:
    - food-safety
    - compliance
    - workday
capability:
  exposes:
    - type: mcp
      namespace: inspection-prep
      port: 8080
      tools:
        - name: prepare-inspection-report
          description: "Generate a health inspection preparation report."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: date_range_start
              in: body
              type: string
              description: "Start date for the review period."
            - name: date_range_end
              in: body
              type: string
              description: "End date for the review period."
          steps:
            - name: get-temp-logs
              type: call
              call: "dominos-compliance.get-temperature-history"
              with:
                store_id: "{{store_id}}"
                start: "{{date_range_start}}"
                end: "{{date_range_end}}"
            - name: get-certifications
              type: call
              call: "workday.get-certifications"
              with:
                location: "{{store_id}}"
  consumes:
    - type: http
      namespace: dominos-compliance
      baseUri: "https://api.dominos.com/compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: temp-history
          path: "/stores/{{store_id}}/temperature-logs"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-temperature-history
              method: GET
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: certifications
          path: "/locations/{{location}}/certifications"
          inputParameters:
            - name: location
              in: path
          operations:
            - name: get-certifications
              method: GET

Checks ingredient and supply inventory levels at a Domino's store, returning on-hand quantities, par levels, and items below reorder threshold.

naftiko: "0.5"
info:
  label: "Store Inventory Check"
  description: "Checks ingredient and supply inventory levels at a Domino's store, returning on-hand quantities, par levels, and items below reorder threshold."
  tags:
    - inventory
    - store-ops
    - supply-chain
capability:
  exposes:
    - type: mcp
      namespace: store-inventory
      port: 8080
      tools:
        - name: check-store-inventory
          description: "Check ingredient and supply inventory at a store."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: category
              in: body
              type: string
              description: "Inventory category (dough, cheese, toppings, beverages, supplies)."
          call: "dominos-inventory.get-levels"
          with:
            store_id: "{{store_id}}"
            category: "{{category}}"
  consumes:
    - type: http
      namespace: dominos-inventory
      baseUri: "https://api.dominos.com/inventory/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: inventory
          path: "/stores/{{store_id}}/inventory"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-levels
              method: GET

Finds nearby Domino's store locations based on a postal code or coordinates, returning store details, hours, and available services.

naftiko: "0.5"
info:
  label: "Store Locator"
  description: "Finds nearby Domino's store locations based on a postal code or coordinates, returning store details, hours, and available services."
  tags:
    - store-ops
    - customer
    - ordering
capability:
  exposes:
    - type: mcp
      namespace: store-locator
      port: 8080
      tools:
        - name: find-nearby-stores
          description: "Find nearby Domino's stores by postal code."
          inputParameters:
            - name: postal_code
              in: body
              type: string
              description: "Postal or ZIP code."
            - name: service_type
              in: body
              type: string
              description: "Service type filter (delivery, carryout, both)."
          call: "dominos-stores.find-by-location"
          with:
            postal_code: "{{postal_code}}"
            service: "{{service_type}}"
  consumes:
    - type: http
      namespace: dominos-stores
      baseUri: "https://api.dominos.com/stores/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: locations
          path: "/find"
          operations:
            - name: find-by-location
              method: GET

Generates the daily store opening checklist, pulls temperature readings, checks staffing from Workday, and posts the checklist status to Microsoft Teams.

naftiko: "0.5"
info:
  label: "Store Opening Checklist"
  description: "Generates the daily store opening checklist, pulls temperature readings, checks staffing from Workday, and posts the checklist status to Microsoft Teams."
  tags:
    - store-ops
    - compliance
    - workday
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: opening-checklist
      port: 8080
      tools:
        - name: run-opening-checklist
          description: "Run the daily store opening checklist."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Domino's store identifier."
            - name: date
              in: body
              type: string
              description: "The date in YYYY-MM-DD format."
          steps:
            - name: check-staffing
              type: call
              call: "workday.get-todays-staff"
              with:
                location: "{{store_id}}"
                date: "{{date}}"
            - name: get-temps
              type: call
              call: "dominos-compliance.get-latest-temps"
              with:
                store_id: "{{store_id}}"
            - name: post-status
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store-{{store_id}}"
                text: "Opening checklist {{date}}: Staff on schedule: {{check-staffing.count}}. All temps in range: {{get-temps.all_compliant}}. Store ready to open."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: daily-staff
          path: "/locations/{{location}}/daily-staff"
          inputParameters:
            - name: location
              in: path
          operations:
            - name: get-todays-staff
              method: GET
    - type: http
      namespace: dominos-compliance
      baseUri: "https://api.dominos.com/compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: temperatures
          path: "/stores/{{store_id}}/temperature-logs/latest"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-latest-temps
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Tracks inbound supply chain deliveries from the commissary to stores, returning shipment status, ETA, and contents manifest.

naftiko: "0.5"
info:
  label: "Supply Chain Delivery Tracker"
  description: "Tracks inbound supply chain deliveries from the commissary to stores, returning shipment status, ETA, and contents manifest."
  tags:
    - supply-chain
    - tracking
    - logistics
capability:
  exposes:
    - type: mcp
      namespace: supply-tracking
      port: 8080
      tools:
        - name: track-supply-delivery
          description: "Track an inbound supply delivery from commissary to store."
          inputParameters:
            - name: delivery_id
              in: body
              type: string
              description: "The supply delivery identifier."
          call: "dominos-supply.get-delivery"
          with:
            delivery_id: "{{delivery_id}}"
  consumes:
    - type: http
      namespace: dominos-supply
      baseUri: "https://api.dominos.com/supply-chain/v1"
      authentication:
        type: bearer
        token: "$secrets.dominos_api_key"
      resources:
        - name: deliveries
          path: "/deliveries/{{delivery_id}}"
          inputParameters:
            - name: delivery_id
              in: path
          operations:
            - name: get-delivery
              method: GET

Retrieves Teams activity at Dominos.

naftiko: "0.5"
info:
  label: "Teams Channel Activity"
  description: "Retrieves Teams activity at Dominos."
  tags:
    - communications
    - microsoft-teams
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: teams-activity
      port: 8080
      tools:
        - name: get-activity
          description: "Check Teams activity at Dominos."
          inputParameters:
            - name: team_id
              in: body
              type: string
              description: "Team ID."
            - name: channel_id
              in: body
              type: string
              description: "Channel ID."
          call: "teams.get-messages"
          with:
            team_id: "{{team_id}}"
            channel_id: "{{channel_id}}"
          outputParameters:
            - name: count
              type: number
              mapping: "$.value.length"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.microsoft_graph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: get-messages
              method: GET

Checks Terraform workspace at Dominos.

naftiko: "0.5"
info:
  label: "Terraform Workspace Check"
  description: "Checks Terraform workspace at Dominos."
  tags:
    - infrastructure
    - terraform
    - iac
capability:
  exposes:
    - type: mcp
      namespace: tf-ws
      port: 8080
      tools:
        - name: check-ws
          description: "Check workspace at Dominos."
          inputParameters:
            - name: workspace_id
              in: body
              type: string
              description: "Workspace ID."
          call: "terraform.get-ws"
          with:
            workspace_id: "{{workspace_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.data.attributes.name"
  consumes:
    - type: http
      namespace: terraform
      baseUri: "https://app.terraform.io/api/v2"
      authentication:
        type: bearer
        token: "$secrets.terraform_token"
      resources:
        - name: workspaces
          path: "/workspaces/{{workspace_id}}"
          inputParameters:
            - name: workspace_id
              in: path
          operations:
            - name: get-ws
              method: GET

Checks Vault secret at Dominos.

naftiko: "0.5"
info:
  label: "Vault Secret Metadata"
  description: "Checks Vault secret at Dominos."
  tags:
    - security
    - vault
    - secrets-management
capability:
  exposes:
    - type: mcp
      namespace: vault
      port: 8080
      tools:
        - name: check-secret
          description: "Check secret at Dominos."
          inputParameters:
            - name: path
              in: body
              type: string
              description: "Secret path."
          call: "vault.get-metadata"
          with:
            path: "{{path}}"
          outputParameters:
            - name: version
              type: number
              mapping: "$.data.current_version"
  consumes:
    - type: http
      namespace: vault
      baseUri: "https://vault.dominos.com/v1"
      authentication:
        type: bearer
        token: "$secrets.vault_token"
      resources:
        - name: secrets
          path: "/secret/metadata/{{path}}"
          inputParameters:
            - name: path
              in: path
          operations:
            - name: get-metadata
              method: GET

Processes invoices at Dominos via OCR, SAP matching, approval, and Oracle recording.

naftiko: "0.5"
info:
  label: "Vendor Invoice Processing Pipeline"
  description: "Processes invoices at Dominos via OCR, SAP matching, approval, and Oracle recording."
  tags:
    - finance
    - accounts-payable
    - sap
    - oracle
capability:
  exposes:
    - type: mcp
      namespace: invoice-proc
      port: 8080
      tools:
        - name: process-invoice
          description: "Process invoices at Dominos."
          inputParameters:
            - name: invoice_id
              in: body
              type: string
              description: "Invoice ID."
            - name: vendor_id
              in: body
              type: string
              description: "Vendor ID."
          steps:
            - name: extract
              type: call
              call: "ocr.extract"
              with:
                doc: "{{invoice_id}}"
            - name: match
              type: call
              call: "sap.match-po"
              with:
                vendor: "{{vendor_id}}"
                amount: "{{extract.total}}"
            - name: approve
              type: call
              call: "workflow.submit"
              with:
                invoice: "{{invoice_id}}"
            - name: record
              type: call
              call: "oracle.create-payment"
              with:
                invoice: "{{invoice_id}}"
  consumes:
    - type: http
      namespace: ocr
      baseUri: "https://ocr.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ocr_token"
      resources:
        - name: invoices
          path: "/extract"
          operations:
            - name: extract
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://sap.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: pos
          path: "/match"
          operations:
            - name: match-po
              method: POST
    - type: http
      namespace: workflow
      baseUri: "https://workflow.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workflow_token"
      resources:
        - name: approvals
          path: "/submit"
          operations:
            - name: submit
              method: POST
    - type: http
      namespace: oracle
      baseUri: "https://oracle.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.oracle_token"
      resources:
        - name: payments
          path: "/payments"
          operations:
            - name: create-payment
              method: POST

Reviews vendors at Dominos.

naftiko: "0.5"
info:
  label: "Quarterly Vendor Review Pipeline"
  description: "Reviews vendors at Dominos."
  tags:
    - procurement
    - vendor-management
    - review
capability:
  exposes:
    - type: mcp
      namespace: vendor-review
      port: 8080
      tools:
        - name: review-vendor
          description: "Review vendors at Dominos."
          inputParameters:
            - name: vendor_id
              in: body
              type: string
              description: "Vendor ID."
            - name: quarter
              in: body
              type: string
              description: "Quarter."
          steps:
            - name: perf
              type: call
              call: "procurement.get-metrics"
              with:
                vendor: "{{vendor_id}}"
                q: "{{quarter}}"
            - name: scorecard
              type: call
              call: "analytics.scorecard"
              with:
                data: "{{perf.data}}"
            - name: invite
              type: call
              call: "email.send"
              with:
                to: "{{perf.contact}}"
                subject: "QBR - {{quarter}}"
            - name: schedule
              type: call
              call: "calendar.create-event"
              with:
                title: "QBR - {{perf.name}}"
  consumes:
    - type: http
      namespace: procurement
      baseUri: "https://procurement.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.procurement_token"
      resources:
        - name: vendors
          path: "/vendors/{{vendor}}/metrics"
          inputParameters:
            - name: vendor
              in: path
          operations:
            - name: get-metrics
              method: GET
    - type: http
      namespace: analytics
      baseUri: "https://analytics.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.analytics_token"
      resources:
        - name: scorecards
          path: "/compute"
          operations:
            - name: scorecard
              method: POST
    - type: http
      namespace: email
      baseUri: "https://email.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.email_token"
      resources:
        - name: messages
          path: "/send"
          operations:
            - name: send
              method: POST
    - type: http
      namespace: calendar
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.microsoft_graph_token"
      resources:
        - name: events
          path: "/users/proc/events"
          operations:
            - name: create-event
              method: POST

Retrieves employee profile from Workday for Dominos.

naftiko: "0.5"
info:
  label: "Workday Employee Profile Lookup"
  description: "Retrieves employee profile from Workday for Dominos."
  tags:
    - hr
    - workday
    - employee-directory
capability:
  exposes:
    - type: mcp
      namespace: workday-profile
      port: 8080
      tools:
        - name: get-employee-profile
          description: "Look up Dominos employee in Workday."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "Employee ID."
          call: "workday.get-worker"
          with:
            employee_id: "{{employee_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.worker.name"
            - name: title
              type: string
              mapping: "$.worker.title"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd5.dominos.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{employee_id}}"
          inputParameters:
            - name: employee_id
              in: path
          operations:
            - name: get-worker
              method: GET

Checks Zendesk ticket at Dominos.

naftiko: "0.5"
info:
  label: "Zendesk Ticket Check"
  description: "Checks Zendesk ticket at Dominos."
  tags:
    - support
    - zendesk
    - ticketing
capability:
  exposes:
    - type: mcp
      namespace: zd-ticket
      port: 8080
      tools:
        - name: check-ticket
          description: "Check ticket at Dominos."
          inputParameters:
            - name: ticket_id
              in: body
              type: string
              description: "Ticket ID."
          call: "zendesk.get-ticket"
          with:
            id: "{{ticket_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.ticket.status"
  consumes:
    - type: http
      namespace: zendesk
      baseUri: "https://dominos.com.zendesk.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.zendesk_token"
      resources:
        - name: tickets
          path: "/tickets/{{id}}.json"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-ticket
              method: GET