Wawa, Inc. Capabilities

Naftiko 0.5 capability definitions for Wawa, Inc. - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Retrieves ADP payroll summary for a given pay period.

naftiko: "0.5"
info:
  label: "ADP Payroll Summary"
  description: "Retrieves ADP payroll summary for a given pay period."
  tags:
    - hr
    - adp
    - payroll
capability:
  exposes:
    - type: mcp
      namespace: payroll
      port: 8080
      tools:
        - name: get-payroll-summary
          description: "Fetch ADP payroll summary for a worker and pay period."
          inputParameters:
            - name: worker_id
              in: body
              type: string
              description: "The ADP worker identifier."
            - name: pay_period
              in: body
              type: string
              description: "The pay period identifier."
          call: "adp.get-pay-statement"
          with:
            worker_id: "{{worker_id}}"
            pay_period: "{{pay_period}}"
          outputParameters:
            - name: gross_pay
              type: number
              mapping: "$.payStatement.grossPayAmount"
            - name: net_pay
              type: number
              mapping: "$.payStatement.netPayAmount"
  consumes:
    - type: http
      namespace: adp
      baseUri: "https://api.adp.com/hr/v2"
      authentication:
        type: bearer
        token: "$secrets.adp_token"
      resources:
        - name: pay-statements
          path: "/workers/{{worker_id}}/pay-statements"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-pay-statement
              method: GET

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

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

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

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

Retrieves Azure DevOps pipeline status.

naftiko: "0.5"
info:
  label: "Azure DevOps Pipeline Viewer"
  description: "Retrieves Azure DevOps pipeline status."
  tags:
    - engineering
    - azure-devops
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: get-azure
          description: "Retrieves Azure DevOps pipeline status."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The azure devops pipeline viewer identifier."
          call: "engineering-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: engineering-api
      baseUri: "https://api.wawa.com/engineering/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: azure
          path: "/azure/devops/pipeline/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-azure
              method: GET

When a catering order is placed, validates capacity, creates the order in the POS system, sets up a Salesforce opportunity, and sends confirmation via SendGrid.

naftiko: "0.5"
info:
  label: "Catering Order Orchestrator"
  description: "When a catering order is placed, validates capacity, creates the order in the POS system, sets up a Salesforce opportunity, and sends confirmation via SendGrid."
  tags:
    - ordering
    - catering
    - salesforce
    - sendgrid
capability:
  exposes:
    - type: mcp
      namespace: catering
      port: 8080
      tools:
        - name: process-catering-order
          description: "Given catering order details, validate capacity, create order, set up CRM, and confirm."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The fulfilling store identifier."
            - name: customer_name
              in: body
              type: string
              description: "The customer name."
            - name: customer_email
              in: body
              type: string
              description: "The customer email."
            - name: order_date
              in: body
              type: string
              description: "Delivery date in YYYY-MM-DD format."
            - name: guest_count
              in: body
              type: integer
              description: "Number of guests."
          steps:
            - name: check-capacity
              type: call
              call: "pos.check-catering-capacity"
              with:
                store_id: "{{store_id}}"
                date: "{{order_date}}"
                guest_count: "{{guest_count}}"
            - name: create-order
              type: call
              call: "pos.create-catering-order"
              with:
                store_id: "{{store_id}}"
                customer_name: "{{customer_name}}"
                date: "{{order_date}}"
                guest_count: "{{guest_count}}"
            - name: create-opportunity
              type: call
              call: "salesforce.create-opportunity"
              with:
                name: "Catering: {{customer_name}} - {{order_date}}"
                stage: "Closed Won"
                amount: "{{create-order.total}}"
            - name: send-confirmation
              type: call
              call: "sendgrid.send-email"
              with:
                to: "{{customer_email}}"
                template_id: "catering_confirmation"
                dynamic_data:
                  customer_name: "{{customer_name}}"
                  order_date: "{{order_date}}"
                  guest_count: "{{guest_count}}"
                  order_total: "{{create-order.total}}"
                  order_id: "{{create-order.id}}"
  consumes:
    - type: http
      namespace: pos
      baseUri: "https://api.wawa.com/pos/v2"
      authentication:
        type: bearer
        token: "$secrets.pos_api_token"
      resources:
        - name: catering-capacity
          path: "/stores/{{store_id}}/catering/capacity"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: check-catering-capacity
              method: GET
        - name: catering-orders
          path: "/stores/{{store_id}}/catering/orders"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: create-catering-order
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://wawa.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity"
          operations:
            - name: create-opportunity
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: mail
          path: "/mail/send"
          operations:
            - name: send-email
              method: POST

Retrieves a Confluence wiki page.

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

Orchestrates convenience store workflow 1 by coordinating across systems, validating data, and sending notifications.

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

Orchestrates convenience store workflow 2 by coordinating across systems, validating data, and sending notifications.

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

Retrieves convenience store operational data for workflow 3.

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

Orchestrates convenience store workflow 4 by coordinating across systems, validating data, and sending notifications.

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

Orchestrates convenience store workflow 5 by coordinating across systems, validating data, and sending notifications.

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

Retrieves convenience store operational data for workflow 6.

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

Orchestrates convenience store workflow 7 by coordinating across systems, validating data, and sending notifications.

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

Orchestrates convenience store workflow 8 by coordinating across systems, validating data, and sending notifications.

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

Retrieves convenience store operational data for workflow 9.

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

Orchestrates convenience store workflow 10 by coordinating across systems, validating data, and sending notifications.

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

Orchestrates convenience store workflow 11 by coordinating across systems, validating data, and sending notifications.

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

Retrieves convenience store operational data for workflow 12.

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

Orchestrates convenience store workflow 13 by coordinating across systems, validating data, and sending notifications.

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

Orchestrates convenience store workflow 14 by coordinating across systems, validating data, and sending notifications.

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

Retrieves convenience store operational data for workflow 15.

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

Orchestrates convenience store workflow 16 by coordinating across systems, validating data, and sending notifications.

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

Orchestrates convenience store workflow 17 by coordinating across systems, validating data, and sending notifications.

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

Retrieves convenience store operational data for workflow 18.

naftiko: "0.5"
info:
  label: "Convenience Store Data Query 18"
  description: "Retrieves convenience store operational data for workflow 18."
  tags:
    - convenience
    - operations
capability:
  exposes:
    - type: mcp
      namespace: convenience
      port: 8080
      tools:
        - name: get-data-18
          description: "Query convenience store data for workflow 18."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "convenience-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: convenience-api
      baseUri: "https://api.wawa.com/convenience-store/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-18
              method: GET

Orchestrates convenience store workflow 19 by coordinating across systems, validating data, and sending notifications.

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

Orchestrates convenience store workflow 20 by coordinating across systems, validating data, and sending notifications.

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

Retrieves convenience store operational data for workflow 21.

naftiko: "0.5"
info:
  label: "Convenience Store Data Query 21"
  description: "Retrieves convenience store operational data for workflow 21."
  tags:
    - convenience
    - operations
capability:
  exposes:
    - type: mcp
      namespace: convenience
      port: 8080
      tools:
        - name: get-data-21
          description: "Query convenience store data for workflow 21."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "convenience-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: convenience-api
      baseUri: "https://api.wawa.com/convenience-store/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-21
              method: GET

Orchestrates convenience store workflow 22 by coordinating across systems, validating data, and sending notifications.

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

Orchestrates convenience store workflow 23 by coordinating across systems, validating data, and sending notifications.

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

Retrieves convenience store operational data for workflow 24.

naftiko: "0.5"
info:
  label: "Convenience Store Data Query 24"
  description: "Retrieves convenience store operational data for workflow 24."
  tags:
    - convenience
    - operations
capability:
  exposes:
    - type: mcp
      namespace: convenience
      port: 8080
      tools:
        - name: get-data-24
          description: "Query convenience store data for workflow 24."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "convenience-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: convenience-api
      baseUri: "https://api.wawa.com/convenience-store/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-24
              method: GET

Orchestrates convenience store workflow 25 by coordinating across systems, validating data, and sending notifications.

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

Orchestrates convenience store workflow 26 by coordinating across systems, validating data, and sending notifications.

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

Retrieves convenience store operational data for workflow 27.

naftiko: "0.5"
info:
  label: "Convenience Store Data Query 27"
  description: "Retrieves convenience store operational data for workflow 27."
  tags:
    - convenience
    - operations
capability:
  exposes:
    - type: mcp
      namespace: convenience
      port: 8080
      tools:
        - name: get-data-27
          description: "Query convenience store data for workflow 27."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "convenience-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: convenience-api
      baseUri: "https://api.wawa.com/convenience-store/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-27
              method: GET

Orchestrates convenience store workflow 28 by coordinating across systems, validating data, and sending notifications.

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

Orchestrates convenience store workflow 29 by coordinating across systems, validating data, and sending notifications.

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

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

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

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

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

When a customer submits feedback via the mobile app, creates a Salesforce case, analyzes sentiment, sends acknowledgment via SendGrid, and alerts the store manager in Microsoft Teams if negative.

naftiko: "0.5"
info:
  label: "Customer Feedback Pipeline"
  description: "When a customer submits feedback via the mobile app, creates a Salesforce case, analyzes sentiment, sends acknowledgment via SendGrid, and alerts the store manager in Microsoft Teams if negative."
  tags:
    - customer-service
    - salesforce
    - sendgrid
    - microsoft-teams
    - feedback
capability:
  exposes:
    - type: mcp
      namespace: customer-feedback
      port: 8080
      tools:
        - name: process-feedback
          description: "Given customer feedback details, create a case, analyze, acknowledge, and alert if negative."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "The customer account identifier."
            - name: store_id
              in: body
              type: string
              description: "The store the feedback is about."
            - name: feedback_text
              in: body
              type: string
              description: "The customer feedback text."
            - name: rating
              in: body
              type: integer
              description: "Customer rating (1-5)."
          steps:
            - name: create-case
              type: call
              call: "salesforce.create-case"
              with:
                subject: "Customer feedback: Store {{store_id}} - Rating {{rating}}"
                description: "{{feedback_text}}"
                priority: "{{rating}}"
            - name: send-acknowledgment
              type: call
              call: "sendgrid.send-email"
              with:
                to: "{{customer_id}}"
                template_id: "feedback_acknowledgment"
                dynamic_data:
                  store_id: "{{store_id}}"
                  case_number: "{{create-case.id}}"
            - name: alert-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store-{{store_id}}-ops"
                text: "Customer feedback received: Rating {{rating}}/5 for Store {{store_id}}. Case: {{create-case.id}}. Feedback: {{feedback_text}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://wawa.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: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: mail
          path: "/mail/send"
          operations:
            - name: send-email
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

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

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

Aggregates daily sales data from the POS system and Snowflake, builds a summary report in Google Sheets, and sends it to district managers via SendGrid.

naftiko: "0.5"
info:
  label: "Daily Sales Report Builder"
  description: "Aggregates daily sales data from the POS system and Snowflake, builds a summary report in Google Sheets, and sends it to district managers via SendGrid."
  tags:
    - store-ops
    - analytics
    - snowflake
    - google-sheets
    - sendgrid
capability:
  exposes:
    - type: mcp
      namespace: sales-reporting
      port: 8080
      tools:
        - name: build-daily-sales-report
          description: "Given a date and district, aggregate sales and send the report to managers."
          inputParameters:
            - name: report_date
              in: body
              type: string
              description: "Report date in YYYY-MM-DD format."
            - name: district_id
              in: body
              type: string
              description: "The district identifier."
          steps:
            - name: query-sales
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "SELECT store_id, SUM(total_sales) as sales, COUNT(DISTINCT transaction_id) as transactions, SUM(total_sales)/COUNT(DISTINCT transaction_id) as avg_ticket FROM pos.transactions WHERE sale_date = '{{report_date}}' AND district_id = '{{district_id}}' GROUP BY store_id ORDER BY sales DESC"
                database: "WAWA_ANALYTICS"
            - name: update-report
              type: call
              call: "gsheets.update-range"
              with:
                spreadsheet_id: "daily_sales_report"
                range: "{{report_date}}!A1"
                values: "{{query-sales.data}}"
            - name: send-report
              type: call
              call: "sendgrid.send-email"
              with:
                to: "district-{{district_id}}@wawa.com"
                template_id: "daily_sales_summary"
                dynamic_data:
                  date: "{{report_date}}"
                  district: "{{district_id}}"
                  report_url: "{{update-report.url}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://wawa.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/spreadsheets/{{spreadsheet_id}}/values/{{range}}"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: update-range
              method: PUT
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: mail
          path: "/mail/send"
          operations:
            - name: send-email
              method: POST

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

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

Retrieves a Datadog monitor status.

naftiko: "0.5"
info:
  label: "Datadog Monitor Viewer"
  description: "Retrieves a Datadog monitor status."
  tags:
    - monitoring
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: monitoring
      port: 8080
      tools:
        - name: get-datadog
          description: "Retrieves a Datadog monitor status."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The datadog monitor viewer identifier."
          call: "monitoring-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: monitoring-api
      baseUri: "https://api.wawa.com/monitoring/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: datadog
          path: "/datadog/monitor/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-datadog
              method: GET

Tracks a delivery order status from the logistics system including driver location, estimated arrival, and delivery confirmation.

naftiko: "0.5"
info:
  label: "Delivery Order Tracking"
  description: "Tracks a delivery order status from the logistics system including driver location, estimated arrival, and delivery confirmation."
  tags:
    - ordering
    - logistics
    - tracking
capability:
  exposes:
    - type: mcp
      namespace: delivery-tracking
      port: 8080
      tools:
        - name: track-delivery
          description: "Track a delivery order by order ID."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The delivery order identifier."
          call: "logistics.get-delivery-status"
          with:
            order_id: "{{order_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.delivery.status"
            - name: driver_name
              type: string
              mapping: "$.delivery.driver.name"
            - name: eta_minutes
              type: integer
              mapping: "$.delivery.eta_minutes"
            - name: current_location
              type: object
              mapping: "$.delivery.driver.location"
  consumes:
    - type: http
      namespace: logistics
      baseUri: "https://api.wawa.com/logistics/v1"
      authentication:
        type: bearer
        token: "$secrets.logistics_api_token"
      resources:
        - name: deliveries
          path: "/deliveries/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: get-delivery-status
              method: GET

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

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

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

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

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

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

On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday worker ID for the new hire."
            - name: start_date
              in: body
              type: string
              description: "The employee start date in YYYY-MM-DD format."
            - name: store_id
              in: body
              type: string
              description: "The store the new hire is assigned to."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{employee_id}}"
            - name: open-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "New hire onboarding: {{get-employee.full_name}} - Store {{store_id}}"
                category: "hr_onboarding"
                assigned_group: "Store_Ops"
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding"
                folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.work_email}}"
                text: "Welcome to Wawa, {{get-employee.first_name}}! You're assigned to Store {{store_id}}. Ticket: {{open-ticket.number}}. Docs: {{provision-folder.url}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://wawa.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Gathers fuel tank compliance data, generates a regulatory report, uploads to SharePoint, and notifies the compliance team in Slack.

naftiko: "0.5"
info:
  label: "Environmental Compliance Report Pipeline"
  description: "Gathers fuel tank compliance data, generates a regulatory report, uploads to SharePoint, and notifies the compliance team in Slack."
  tags:
    - fuel
    - compliance
    - sharepoint
    - slack
    - regulatory
capability:
  exposes:
    - type: mcp
      namespace: fuel-compliance
      port: 8080
      tools:
        - name: generate-compliance-report
          description: "Given a store ID and report type, gather data, generate report, upload, and notify."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Wawa store identifier."
            - name: report_type
              in: body
              type: string
              description: "Report type (tank_integrity, leak_detection, emissions)."
            - name: period
              in: body
              type: string
              description: "Reporting period."
          steps:
            - name: get-compliance-data
              type: call
              call: "fuel.get-compliance-data"
              with:
                store_id: "{{store_id}}"
                report_type: "{{report_type}}"
                period: "{{period}}"
            - name: upload-report
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "compliance_reports"
                folder_path: "{{report_type}}/{{store_id}}/{{period}}"
                file_name: "{{report_type}}_{{store_id}}_{{period}}.pdf"
            - name: notify-team
              type: call
              call: "slack.post-message"
              with:
                channel: "fuel-compliance"
                text: "Compliance report generated for Store {{store_id}} ({{report_type}}, {{period}}). Document: {{upload-report.url}}"
  consumes:
    - type: http
      namespace: fuel
      baseUri: "https://api.wawa.com/fuel/v1"
      authentication:
        type: bearer
        token: "$secrets.fuel_api_token"
      resources:
        - name: compliance
          path: "/stores/{{store_id}}/compliance"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-compliance-data
              method: GET
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

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

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

Checks fresh food inventory levels.

naftiko: "0.5"
info:
  label: "Fresh Food Inventory Check"
  description: "Checks fresh food inventory levels."
  tags:
    - food-service
    - inventory
capability:
  exposes:
    - type: mcp
      namespace: food-service
      port: 8080
      tools:
        - name: get-fresh
          description: "Checks fresh food inventory levels."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The fresh food inventory check identifier."
          call: "food-service-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: food-service-api
      baseUri: "https://api.wawa.com/food-service/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: fresh
          path: "/fresh/food/inventory/check/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-fresh
              method: GET

When a fuel tank drops below threshold, creates a delivery order in SAP, schedules the tanker via the logistics API, notifies the store in Microsoft Teams, and logs the order in Google Sheets.

naftiko: "0.5"
info:
  label: "Fuel Delivery Scheduling Pipeline"
  description: "When a fuel tank drops below threshold, creates a delivery order in SAP, schedules the tanker via the logistics API, notifies the store in Microsoft Teams, and logs the order in Google Sheets."
  tags:
    - fuel
    - supply-chain
    - sap
    - microsoft-teams
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: fuel-delivery
      port: 8080
      tools:
        - name: schedule-fuel-delivery
          description: "Given a store ID and fuel type, create delivery order, schedule tanker, notify store, and log."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Wawa store identifier."
            - name: fuel_type
              in: body
              type: string
              description: "Fuel type (regular, plus, premium, diesel)."
            - name: gallons_needed
              in: body
              type: integer
              description: "Gallons of fuel needed."
          steps:
            - name: create-delivery-order
              type: call
              call: "sap.create-delivery-order"
              with:
                material: "FUEL_{{fuel_type}}"
                quantity: "{{gallons_needed}}"
                plant: "{{store_id}}"
            - name: schedule-tanker
              type: call
              call: "logistics.schedule-delivery"
              with:
                store_id: "{{store_id}}"
                fuel_type: "{{fuel_type}}"
                gallons: "{{gallons_needed}}"
                po_number: "{{create-delivery-order.po_number}}"
            - name: notify-store
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store-{{store_id}}-ops"
                text: "Fuel delivery scheduled: {{gallons_needed}} gal {{fuel_type}} for store {{store_id}}. ETA: {{schedule-tanker.eta}}. PO: {{create-delivery-order.po_number}}"
            - name: log-delivery
              type: call
              call: "gsheets.append-row"
              with:
                spreadsheet_id: "fuel_delivery_tracker"
                range: "Deliveries!A:E"
                values:
                  - "{{store_id}}"
                  - "{{fuel_type}}"
                  - "{{gallons_needed}}"
                  - "{{create-delivery-order.po_number}}"
                  - "{{schedule-tanker.eta}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://wawa-s4.sap.com/sap/opu/odata/sap/API_OUTBOUND_DELIVERY_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: deliveries
          path: "/A_OutbDeliveryHeader"
          operations:
            - name: create-delivery-order
              method: POST
    - type: http
      namespace: logistics
      baseUri: "https://api.wawa.com/logistics/v1"
      authentication:
        type: bearer
        token: "$secrets.logistics_api_token"
      resources:
        - name: deliveries
          path: "/fuel-deliveries"
          operations:
            - name: schedule-delivery
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/spreadsheets/{{spreadsheet_id}}/values/{{range}}:append"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: append-row
              method: POST

Retrieves current pricing by fuel grade.

naftiko: "0.5"
info:
  label: "Fuel Grade Price Lookup"
  description: "Retrieves current pricing by fuel grade."
  tags:
    - fuel
    - pricing
capability:
  exposes:
    - type: mcp
      namespace: fuel
      port: 8080
      tools:
        - name: get-fuel
          description: "Retrieves current pricing by fuel grade."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The fuel grade price lookup identifier."
          call: "fuel-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: fuel-api
      baseUri: "https://api.wawa.com/fuel/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: fuel
          path: "/fuel/grade/price/lookup/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-fuel
              method: GET

Retrieves competitor fuel prices from the pricing API, updates store fuel prices in the POS system, syncs to the mobile app, and notifies district managers via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Fuel Price Update Orchestrator"
  description: "Retrieves competitor fuel prices from the pricing API, updates store fuel prices in the POS system, syncs to the mobile app, and notifies district managers via Microsoft Teams."
  tags:
    - fuel
    - pricing
    - store-ops
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: fuel-pricing
      port: 8080
      tools:
        - name: update-fuel-prices
          description: "Given a store ID and new fuel prices, update POS, sync to mobile, and notify managers."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Wawa store identifier."
            - name: regular_price
              in: body
              type: number
              description: "Regular unleaded price per gallon."
            - name: plus_price
              in: body
              type: number
              description: "Plus unleaded price per gallon."
            - name: premium_price
              in: body
              type: number
              description: "Premium unleaded price per gallon."
            - name: diesel_price
              in: body
              type: number
              description: "Diesel price per gallon."
          steps:
            - name: update-pos
              type: call
              call: "pos.update-fuel-prices"
              with:
                store_id: "{{store_id}}"
                regular: "{{regular_price}}"
                plus: "{{plus_price}}"
                premium: "{{premium_price}}"
                diesel: "{{diesel_price}}"
            - name: sync-mobile
              type: call
              call: "mobile-app.update-store-prices"
              with:
                store_id: "{{store_id}}"
                fuel_prices:
                  regular: "{{regular_price}}"
                  plus: "{{plus_price}}"
                  premium: "{{premium_price}}"
                  diesel: "{{diesel_price}}"
            - name: notify-managers
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "fuel-pricing"
                text: "Fuel prices updated at store {{store_id}}: Regular ${{regular_price}}, Plus ${{plus_price}}, Premium ${{premium_price}}, Diesel ${{diesel_price}}"
  consumes:
    - type: http
      namespace: pos
      baseUri: "https://api.wawa.com/pos/v2"
      authentication:
        type: bearer
        token: "$secrets.pos_api_token"
      resources:
        - name: fuel-prices
          path: "/stores/{{store_id}}/fuel/prices"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: update-fuel-prices
              method: PUT
    - type: http
      namespace: mobile-app
      baseUri: "https://api.wawa.com/mobile/v2"
      authentication:
        type: bearer
        token: "$secrets.mobile_api_token"
      resources:
        - name: store-prices
          path: "/stores/{{store_id}}/prices"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: update-store-prices
              method: PUT
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves underground storage tank fuel levels for a given store from the fuel management system.

naftiko: "0.5"
info:
  label: "Fuel Tank Level Monitor"
  description: "Retrieves underground storage tank fuel levels for a given store from the fuel management system."
  tags:
    - fuel
    - store-ops
    - monitoring
capability:
  exposes:
    - type: mcp
      namespace: fuel-monitoring
      port: 8080
      tools:
        - name: get-tank-levels
          description: "Fetch fuel tank levels for a store including volume, capacity, and temperature."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Wawa store identifier."
          call: "fuel.get-tank-levels"
          with:
            store_id: "{{store_id}}"
          outputParameters:
            - name: tanks
              type: array
              mapping: "$.tanks"
            - name: total_capacity_gallons
              type: number
              mapping: "$.summary.total_capacity"
            - name: total_volume_gallons
              type: number
              mapping: "$.summary.total_volume"
  consumes:
    - type: http
      namespace: fuel
      baseUri: "https://api.wawa.com/fuel/v1"
      authentication:
        type: bearer
        token: "$secrets.fuel_api_token"
      resources:
        - name: tanks
          path: "/stores/{{store_id}}/tanks"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-tank-levels
              method: GET

Retrieves GitHub repository information.

naftiko: "0.5"
info:
  label: "GitHub Repo Viewer"
  description: "Retrieves GitHub repository information."
  tags:
    - engineering
    - github
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: get-github
          description: "Retrieves GitHub repository information."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The github repo viewer identifier."
          call: "engineering-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: engineering-api
      baseUri: "https://api.wawa.com/engineering/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: github
          path: "/github/repo/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-github
              method: GET

Retrieves a document from Google Drive by file ID, returning metadata.

naftiko: "0.5"
info:
  label: "Google Drive Document Retrieval"
  description: "Retrieves a document from Google Drive by file ID, returning metadata."
  tags:
    - collaboration
    - google-drive
    - documents
capability:
  exposes:
    - type: mcp
      namespace: document-mgmt
      port: 8080
      tools:
        - name: get-drive-file
          description: "Fetch a Google Drive file's metadata by file ID."
          inputParameters:
            - name: file_id
              in: body
              type: string
              description: "The Google Drive file identifier."
          call: "gdrive.get-file"
          with:
            file_id: "{{file_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.name"
            - name: owner
              type: string
              mapping: "$.owners[0].displayName"
            - name: modified_time
              type: string
              mapping: "$.modifiedTime"
  consumes:
    - type: http
      namespace: gdrive
      baseUri: "https://www.googleapis.com/drive/v3"
      authentication:
        type: bearer
        token: "$secrets.google_drive_token"
      resources:
        - name: files
          path: "/files/{{file_id}}?fields=name,owners,modifiedTime"
          inputParameters:
            - name: file_id
              in: path
          operations:
            - name: get-file
              method: GET

Retrieves a file from Google Drive.

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

Geocodes a customer address and finds the nearest Wawa stores using Google Maps Places API.

naftiko: "0.5"
info:
  label: "Google Maps Store Locator"
  description: "Geocodes a customer address and finds the nearest Wawa stores using Google Maps Places API."
  tags:
    - store-ops
    - google-maps
    - location
capability:
  exposes:
    - type: mcp
      namespace: store-locator
      port: 8080
      tools:
        - name: find-nearest-stores
          description: "Given a customer address, find the nearest Wawa stores with distances."
          inputParameters:
            - name: address
              in: body
              type: string
              description: "The customer address to search from."
            - name: radius_miles
              in: body
              type: number
              description: "Search radius in miles."
          call: "gmaps.nearby-search"
          with:
            location: "{{address}}"
            radius: "{{radius_miles}}"
            keyword: "Wawa"
          outputParameters:
            - name: stores
              type: array
              mapping: "$.results"
  consumes:
    - type: http
      namespace: gmaps
      baseUri: "https://maps.googleapis.com/maps/api"
      authentication:
        type: apiKey
        key: "$secrets.google_maps_api_key"
      resources:
        - name: places
          path: "/place/nearbysearch/json"
          operations:
            - name: nearby-search
              method: GET

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

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

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

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

Retrieves a Jira ticket by issue key.

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

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

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

Checks the status of a lottery terminal.

naftiko: "0.5"
info:
  label: "Lottery Terminal Status"
  description: "Checks the status of a lottery terminal."
  tags:
    - operations
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: operations
      port: 8080
      tools:
        - name: get-lottery
          description: "Checks the status of a lottery terminal."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The lottery terminal status identifier."
          call: "operations-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: operations-api
      baseUri: "https://api.wawa.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: lottery
          path: "/lottery/terminal/status/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-lottery
              method: GET

When a customer redeems loyalty points, validates the balance in Salesforce, processes the redemption via the POS system, updates the loyalty profile, and sends a confirmation via SendGrid.

naftiko: "0.5"
info:
  label: "Loyalty Points Redemption Pipeline"
  description: "When a customer redeems loyalty points, validates the balance in Salesforce, processes the redemption via the POS system, updates the loyalty profile, and sends a confirmation via SendGrid."
  tags:
    - loyalty
    - salesforce
    - sendgrid
    - ordering
capability:
  exposes:
    - type: mcp
      namespace: loyalty-redemption
      port: 8080
      tools:
        - name: redeem-loyalty-points
          description: "Given a member ID and points to redeem, validate, process, update profile, and confirm."
          inputParameters:
            - name: member_id
              in: body
              type: string
              description: "The loyalty member identifier."
            - name: points_to_redeem
              in: body
              type: integer
              description: "Number of points to redeem."
            - name: store_id
              in: body
              type: string
              description: "The store where redemption occurs."
            - name: reward_type
              in: body
              type: string
              description: "Type of reward (free_drink, discount, free_item)."
          steps:
            - name: validate-balance
              type: call
              call: "salesforce.get-loyalty-member"
              with:
                member_id: "{{member_id}}"
            - name: process-redemption
              type: call
              call: "pos.process-reward"
              with:
                store_id: "{{store_id}}"
                member_id: "{{member_id}}"
                points: "{{points_to_redeem}}"
                reward_type: "{{reward_type}}"
            - name: update-profile
              type: call
              call: "salesforce.update-loyalty-member"
              with:
                member_id: "{{member_id}}"
                points_deducted: "{{points_to_redeem}}"
            - name: send-confirmation
              type: call
              call: "sendgrid.send-email"
              with:
                to: "{{validate-balance.email}}"
                template_id: "loyalty_redemption_confirmation"
                dynamic_data:
                  points_redeemed: "{{points_to_redeem}}"
                  reward_type: "{{reward_type}}"
                  remaining_points: "{{update-profile.new_balance}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://wawa.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: loyalty-members
          path: "/sobjects/Loyalty_Member__c/{{member_id}}"
          inputParameters:
            - name: member_id
              in: path
          operations:
            - name: get-loyalty-member
              method: GET
            - name: update-loyalty-member
              method: PATCH
    - type: http
      namespace: pos
      baseUri: "https://api.wawa.com/pos/v2"
      authentication:
        type: bearer
        token: "$secrets.pos_api_token"
      resources:
        - name: rewards
          path: "/stores/{{store_id}}/rewards"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: process-reward
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: mail
          path: "/mail/send"
          operations:
            - name: send-email
              method: POST

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

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

Sends a formatted notification message to a Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Microsoft Teams Channel Notification"
  description: "Sends a formatted notification message to a Microsoft Teams channel."
  tags:
    - collaboration
    - microsoft-teams
    - messaging
capability:
  exposes:
    - type: mcp
      namespace: teams-messaging
      port: 8080
      tools:
        - name: send-teams-notification
          description: "Send a notification to a Microsoft Teams channel."
          inputParameters:
            - name: team_id
              in: body
              type: string
              description: "The Microsoft Teams team ID."
            - name: channel_id
              in: body
              type: string
              description: "The Microsoft Teams channel ID."
            - name: message
              in: body
              type: string
              description: "The notification message."
          call: "msteams.send-message"
          with:
            team_id: "{{team_id}}"
            channel_id: "{{channel_id}}"
            text: "{{message}}"
  consumes:
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Sends a message to a Microsoft Teams channel.

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

When a mobile order is placed, validates inventory via the POS system, creates a preparation ticket in ServiceNow, updates the order status in Salesforce, and sends a push notification to the customer via the notification API.

naftiko: "0.5"
info:
  label: "Mobile Order Fulfillment Orchestrator"
  description: "When a mobile order is placed, validates inventory via the POS system, creates a preparation ticket in ServiceNow, updates the order status in Salesforce, and sends a push notification to the customer via the notification API."
  tags:
    - ordering
    - store-ops
    - servicenow
    - salesforce
    - mobile
capability:
  exposes:
    - type: mcp
      namespace: mobile-ordering
      port: 8080
      tools:
        - name: process-mobile-order
          description: "Given an order ID, validate inventory, create prep ticket, update CRM, and notify customer."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The mobile order identifier."
            - name: store_id
              in: body
              type: string
              description: "The Wawa store identifier."
            - name: customer_id
              in: body
              type: string
              description: "The customer account identifier."
          steps:
            - name: validate-inventory
              type: call
              call: "pos.check-inventory"
              with:
                store_id: "{{store_id}}"
                order_id: "{{order_id}}"
            - name: create-prep-ticket
              type: call
              call: "servicenow.create-request"
              with:
                short_description: "Mobile order: {{order_id}} at store {{store_id}}"
                category: "food_preparation"
                priority: "High"
            - name: update-crm
              type: call
              call: "salesforce.update-order"
              with:
                order_id: "{{order_id}}"
                status: "in_preparation"
            - name: notify-customer
              type: call
              call: "notifications.send-push"
              with:
                customer_id: "{{customer_id}}"
                title: "Order Received"
                message: "Your order {{order_id}} is being prepared at store {{store_id}}. Estimated ready time: {{validate-inventory.est_ready_time}}"
  consumes:
    - type: http
      namespace: pos
      baseUri: "https://api.wawa.com/pos/v2"
      authentication:
        type: bearer
        token: "$secrets.pos_api_token"
      resources:
        - name: inventory
          path: "/stores/{{store_id}}/inventory/check"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: check-inventory
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://wawa.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: salesforce
      baseUri: "https://wawa.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: orders
          path: "/sobjects/Order/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: update-order
              method: PATCH
    - type: http
      namespace: notifications
      baseUri: "https://api.wawa.com/notifications/v1"
      authentication:
        type: bearer
        token: "$secrets.notifications_api_token"
      resources:
        - name: push
          path: "/push"
          operations:
            - name: send-push
              method: POST

When a new store opening is approved, creates the store record in SAP, sets up the Salesforce account, configures the POS system, creates a ServiceNow project, and announces via Slack.

naftiko: "0.5"
info:
  label: "New Store Opening Orchestrator"
  description: "When a new store opening is approved, creates the store record in SAP, sets up the Salesforce account, configures the POS system, creates a ServiceNow project, and announces via Slack."
  tags:
    - store-ops
    - sap
    - salesforce
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: store-openings
      port: 8080
      tools:
        - name: setup-new-store
          description: "Given new store details, create records across SAP, Salesforce, POS, ServiceNow, and announce."
          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: district_id
              in: body
              type: string
              description: "The district the store belongs to."
            - name: opening_date
              in: body
              type: string
              description: "Planned opening date in YYYY-MM-DD format."
          steps:
            - name: create-sap-plant
              type: call
              call: "sap.create-plant"
              with:
                plant_id: "{{store_id}}"
                address: "{{store_address}}"
                district: "{{district_id}}"
            - name: create-sf-account
              type: call
              call: "salesforce.create-account"
              with:
                name: "Wawa Store {{store_id}}"
                type: "Store"
                address: "{{store_address}}"
            - name: create-project
              type: call
              call: "servicenow.create-request"
              with:
                short_description: "New store opening: {{store_id}}"
                category: "store_opening"
                description: "Store {{store_id}} at {{store_address}}. District: {{district_id}}. Opening: {{opening_date}}"
            - name: announce
              type: call
              call: "slack.post-message"
              with:
                channel: "store-openings"
                text: "New store approved! Store {{store_id}} at {{store_address}} (District {{district_id}}). Opening: {{opening_date}}. Project: {{create-project.number}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://wawa-s4.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: plants
          path: "/A_BusinessPartner"
          operations:
            - name: create-plant
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://wawa.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/sobjects/Account"
          operations:
            - name: create-account
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://wawa.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: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Triggers a Power BI dataset refresh for store operations and sales dashboards.

naftiko: "0.5"
info:
  label: "Power BI Dashboard Refresh"
  description: "Triggers a Power BI dataset refresh for store operations and sales dashboards."
  tags:
    - analytics
    - power-bi
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: bi-reporting
      port: 8080
      tools:
        - name: refresh-dataset
          description: "Trigger a Power BI dataset refresh."
          inputParameters:
            - name: workspace_id
              in: body
              type: string
              description: "The Power BI workspace ID."
            - name: dataset_id
              in: body
              type: string
              description: "The Power BI dataset ID."
          call: "powerbi.trigger-refresh"
          with:
            group_id: "{{workspace_id}}"
            dataset_id: "{{dataset_id}}"
  consumes:
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/groups/{{group_id}}/datasets/{{dataset_id}}/refreshes"
          inputParameters:
            - name: group_id
              in: path
            - name: dataset_id
              in: path
          operations:
            - name: trigger-refresh
              method: POST

Triggers a Power BI dataset refresh.

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

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

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

When a new promotion is approved, updates the POS system with discounts, pushes to the mobile app, sends marketing emails via SendGrid, and posts to social media.

naftiko: "0.5"
info:
  label: "Promotional Campaign Launcher"
  description: "When a new promotion is approved, updates the POS system with discounts, pushes to the mobile app, sends marketing emails via SendGrid, and posts to social media."
  tags:
    - marketing
    - ordering
    - sendgrid
    - social-media
capability:
  exposes:
    - type: mcp
      namespace: promotions
      port: 8080
      tools:
        - name: launch-promotion
          description: "Given promotion details, update POS, push to mobile, send emails, and post to social."
          inputParameters:
            - name: promo_id
              in: body
              type: string
              description: "The promotion identifier."
            - name: promo_name
              in: body
              type: string
              description: "The promotion name."
            - name: discount_type
              in: body
              type: string
              description: "Discount type (percentage, fixed, bogo)."
            - name: start_date
              in: body
              type: string
              description: "Promotion start date."
            - name: end_date
              in: body
              type: string
              description: "Promotion end date."
          steps:
            - name: update-pos
              type: call
              call: "pos.create-promotion"
              with:
                promo_id: "{{promo_id}}"
                name: "{{promo_name}}"
                discount_type: "{{discount_type}}"
                start_date: "{{start_date}}"
                end_date: "{{end_date}}"
            - name: push-mobile
              type: call
              call: "mobile-app.create-promotion"
              with:
                promo_id: "{{promo_id}}"
                name: "{{promo_name}}"
                start_date: "{{start_date}}"
                end_date: "{{end_date}}"
            - name: send-emails
              type: call
              call: "sendgrid.send-email"
              with:
                list_id: "loyalty_members"
                template_id: "promotion_announcement"
                dynamic_data:
                  promo_name: "{{promo_name}}"
                  start_date: "{{start_date}}"
                  end_date: "{{end_date}}"
  consumes:
    - type: http
      namespace: pos
      baseUri: "https://api.wawa.com/pos/v2"
      authentication:
        type: bearer
        token: "$secrets.pos_api_token"
      resources:
        - name: promotions
          path: "/promotions"
          operations:
            - name: create-promotion
              method: POST
    - type: http
      namespace: mobile-app
      baseUri: "https://api.wawa.com/mobile/v2"
      authentication:
        type: bearer
        token: "$secrets.mobile_api_token"
      resources:
        - name: promotions
          path: "/promotions"
          operations:
            - name: create-promotion
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: mail
          path: "/mail/send"
          operations:
            - name: send-email
              method: POST

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

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

Retrieves a Salesforce account by account ID.

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

Retrieves a Wawa Rewards loyalty member profile from Salesforce including points balance, tier, and recent transaction history.

naftiko: "0.5"
info:
  label: "Salesforce Customer Loyalty Lookup"
  description: "Retrieves a Wawa Rewards loyalty member profile from Salesforce including points balance, tier, and recent transaction history."
  tags:
    - crm
    - salesforce
    - loyalty
    - customer
capability:
  exposes:
    - type: mcp
      namespace: loyalty
      port: 8080
      tools:
        - name: get-loyalty-member
          description: "Look up a Wawa Rewards member by account ID. Returns points, tier, and recent activity."
          inputParameters:
            - name: member_id
              in: body
              type: string
              description: "The Salesforce loyalty member ID."
          call: "salesforce.get-loyalty-member"
          with:
            member_id: "{{member_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.Name"
            - name: points_balance
              type: integer
              mapping: "$.Points_Balance__c"
            - name: tier
              type: string
              mapping: "$.Loyalty_Tier__c"
            - name: lifetime_spend
              type: number
              mapping: "$.Lifetime_Spend__c"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://wawa.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: loyalty-members
          path: "/sobjects/Loyalty_Member__c/{{member_id}}"
          inputParameters:
            - name: member_id
              in: path
          operations:
            - name: get-loyalty-member
              method: GET

When an expense report is submitted in SAP Concur, validates and posts to SAP S/4HANA, and notifies finance via Microsoft Teams.

naftiko: "0.5"
info:
  label: "SAP Concur Expense Report Sync"
  description: "When an expense report is submitted in SAP Concur, validates and posts to SAP S/4HANA, and notifies finance via Microsoft Teams."
  tags:
    - finance
    - sap-concur
    - sap-s4hana
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: expense-management
      port: 8080
      tools:
        - name: sync-expense-report
          description: "Given a Concur expense report ID, validate, post to SAP, and notify finance."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "The SAP Concur expense report identifier."
          steps:
            - name: get-report
              type: call
              call: "concur.get-expense-report"
              with:
                report_id: "{{report_id}}"
            - name: post-to-sap
              type: call
              call: "sap.create-expense-entry"
              with:
                amount: "{{get-report.total_amount}}"
                currency: "{{get-report.currency_code}}"
                cost_center: "{{get-report.cost_center}}"
            - name: notify-finance
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "finance-expenses"
                text: "Expense report {{report_id}} for {{get-report.total_amount}} posted to SAP. Document: {{post-to-sap.document_number}}"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://us.api.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: expense-reports
          path: "/expense/reports/{{report_id}}"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: get-expense-report
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://wawa-s4.sap.com/sap/opu/odata/sap/API_FINANCIALACCOUNTING_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: journal-entries
          path: "/A_JournalEntry"
          operations:
            - name: create-expense-entry
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and delivery date.

naftiko: "0.5"
info:
  label: "SAP Purchase Order Status"
  description: "Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and delivery date."
  tags:
    - procurement
    - sap
    - sap-s4hana
    - purchase-order
capability:
  exposes:
    - type: mcp
      namespace: erp-procurement
      port: 8080
      tools:
        - name: get-purchase-order
          description: "Look up a SAP S/4HANA purchase order by PO number."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The SAP purchase order number (10-digit)."
          call: "sap.get-po"
          with:
            po_number: "{{po_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.d.OverallStatus"
            - name: vendor
              type: string
              mapping: "$.d.Supplier.CompanyName"
            - name: total_value
              type: string
              mapping: "$.d.TotalAmount"
            - name: delivery_date
              type: string
              mapping: "$.d.DeliveryDate"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://wawa-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder('{{po_number}}')"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: get-po
              method: GET

Retrieves a SAP purchase order by number.

naftiko: "0.5"
info:
  label: "SAP Purchase Order Viewer"
  description: "Retrieves a SAP purchase order by number."
  tags:
    - procurement
    - sap
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: get-sap
          description: "Retrieves a SAP purchase order by number."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The sap purchase order viewer identifier."
          call: "procurement-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: procurement-api
      baseUri: "https://api.wawa.com/procurement/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: sap
          path: "/sap/purchase/order/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-sap
              method: GET

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

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

Creates a new incident in ServiceNow.

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

Retrieves a ServiceNow incident by number and returns status, priority, assigned group, and description.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Lookup"
  description: "Retrieves a ServiceNow incident by number and returns status, priority, assigned group, and description."
  tags:
    - it-ops
    - servicenow
    - incident
capability:
  exposes:
    - type: mcp
      namespace: it-service
      port: 8080
      tools:
        - name: get-incident
          description: "Look up a ServiceNow incident by number."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number (e.g., INC0012345)."
          call: "servicenow.get-incident"
          with:
            number: "{{incident_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.result.state"
            - name: priority
              type: string
              mapping: "$.result.priority"
            - name: assigned_group
              type: string
              mapping: "$.result.assignment_group.display_value"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://wawa.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident?sysparm_query=number={{number}}"
          inputParameters:
            - name: number
              in: query
          operations:
            - name: get-incident
              method: GET

Retrieves a document from SharePoint.

naftiko: "0.5"
info:
  label: "SharePoint Document Viewer"
  description: "Retrieves a document from SharePoint."
  tags:
    - collaboration
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: collaboration
      port: 8080
      tools:
        - name: get-sharepoint
          description: "Retrieves a document from SharePoint."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The sharepoint document viewer identifier."
          call: "collaboration-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: collaboration-api
      baseUri: "https://api.wawa.com/collaboration/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: sharepoint
          path: "/sharepoint/document/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-sharepoint
              method: GET

Pulls employee availability from Workday, generates optimal shift schedules, updates the scheduling system, and notifies team members via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Shift Scheduling Orchestrator"
  description: "Pulls employee availability from Workday, generates optimal shift schedules, updates the scheduling system, and notifies team members via Microsoft Teams."
  tags:
    - store-ops
    - scheduling
    - workday
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: shift-scheduling
      port: 8080
      tools:
        - name: generate-shift-schedule
          description: "Given a store ID and week, pull availability, generate schedule, and notify staff."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Wawa store identifier."
            - name: week_start
              in: body
              type: string
              description: "Week start date in YYYY-MM-DD format."
          steps:
            - name: get-availability
              type: call
              call: "workday.get-availability"
              with:
                location_id: "{{store_id}}"
                week_start: "{{week_start}}"
            - name: generate-schedule
              type: call
              call: "scheduling.create-schedule"
              with:
                store_id: "{{store_id}}"
                week_start: "{{week_start}}"
                availability: "{{get-availability.employees}}"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store-{{store_id}}-team"
                text: "New schedule posted for Store {{store_id}} week of {{week_start}}. {{generate-schedule.shifts_count}} shifts assigned to {{generate-schedule.employee_count}} team members. Check the scheduling app for details."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: availability
          path: "/scheduling/availability"
          operations:
            - name: get-availability
              method: GET
    - type: http
      namespace: scheduling
      baseUri: "https://api.wawa.com/scheduling/v1"
      authentication:
        type: bearer
        token: "$secrets.scheduling_api_token"
      resources:
        - name: schedules
          path: "/stores/{{store_id}}/schedules"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: create-schedule
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Posts a formatted message to a specified Slack channel for team notifications.

naftiko: "0.5"
info:
  label: "Slack Channel Message Post"
  description: "Posts a formatted message to a specified Slack channel for team notifications."
  tags:
    - collaboration
    - slack
    - messaging
capability:
  exposes:
    - type: mcp
      namespace: messaging
      port: 8080
      tools:
        - name: post-slack-message
          description: "Post a message to a Slack channel."
          inputParameters:
            - name: channel
              in: body
              type: string
              description: "The Slack channel name or ID."
            - name: text
              in: body
              type: string
              description: "The message text."
          call: "slack.post-message"
          with:
            channel: "{{channel}}"
            text: "{{text}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Sends a notification to a Slack channel.

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

Runs an analytics query against the Snowflake data warehouse.

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

Executes a sales analytics query against Snowflake for a given store or district.

naftiko: "0.5"
info:
  label: "Snowflake Sales Analytics Query"
  description: "Executes a sales analytics query against Snowflake for a given store or district."
  tags:
    - analytics
    - snowflake
    - data
capability:
  exposes:
    - type: mcp
      namespace: data-analytics
      port: 8080
      tools:
        - name: query-sales-data
          description: "Run a sales analytics query on Snowflake for a store and date range."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The store identifier."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: end_date
              in: body
              type: string
              description: "End date in YYYY-MM-DD format."
          call: "snowflake.execute-query"
          with:
            statement: "SELECT product_category, SUM(quantity) as units_sold, SUM(revenue) as total_revenue FROM pos.transactions WHERE store_id = '{{store_id}}' AND sale_date BETWEEN '{{start_date}}' AND '{{end_date}}' GROUP BY product_category ORDER BY total_revenue DESC"
            database: "WAWA_ANALYTICS"
          outputParameters:
            - name: results
              type: array
              mapping: "$.data"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://wawa.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST

When store equipment needs maintenance, creates a ServiceNow work order, orders replacement parts via SAP, schedules a technician, and notifies the store manager in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Store Equipment Maintenance Pipeline"
  description: "When store equipment needs maintenance, creates a ServiceNow work order, orders replacement parts via SAP, schedules a technician, and notifies the store manager in Microsoft Teams."
  tags:
    - store-ops
    - maintenance
    - servicenow
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: equipment-maintenance
      port: 8080
      tools:
        - name: schedule-equipment-maintenance
          description: "Given a store ID and equipment ID, create work order, order parts, schedule tech, and notify."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Wawa store identifier."
            - name: equipment_id
              in: body
              type: string
              description: "The equipment asset identifier."
            - name: issue_description
              in: body
              type: string
              description: "Description of the equipment issue."
            - name: priority
              in: body
              type: string
              description: "Maintenance priority (low, medium, high, emergency)."
          steps:
            - name: create-work-order
              type: call
              call: "servicenow.create-work-order"
              with:
                short_description: "Equipment maintenance: {{equipment_id}} at Store {{store_id}}"
                category: "equipment_maintenance"
                priority: "{{priority}}"
                description: "{{issue_description}}"
            - name: order-parts
              type: call
              call: "sap.create-purchase-requisition"
              with:
                material_group: "store_equipment_parts"
                equipment_id: "{{equipment_id}}"
                store_id: "{{store_id}}"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store-{{store_id}}-ops"
                text: "Equipment maintenance scheduled for {{equipment_id}} at Store {{store_id}} ({{priority}}). Work order: {{create-work-order.number}}. Issue: {{issue_description}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://wawa.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: work-orders
          path: "/table/wm_order"
          operations:
            - name: create-work-order
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://wawa-s4.sap.com/sap/opu/odata/sap/API_PURCHASEREQ_PROCESS_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: requisitions
          path: "/A_PurchaseRequisitionHeader"
          operations:
            - name: create-purchase-requisition
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

When a health inspection is scheduled, creates a ServiceNow task, pulls the latest food safety records from the compliance system, prepares a checklist in Google Sheets, and notifies the store manager in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Store Health Inspection Pipeline"
  description: "When a health inspection is scheduled, creates a ServiceNow task, pulls the latest food safety records from the compliance system, prepares a checklist in Google Sheets, and notifies the store manager in Microsoft Teams."
  tags:
    - store-ops
    - compliance
    - food-safety
    - servicenow
    - google-sheets
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: store-compliance
      port: 8080
      tools:
        - name: prepare-health-inspection
          description: "Given a store ID and inspection date, create task, pull records, prepare checklist, and notify manager."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Wawa store identifier."
            - name: inspection_date
              in: body
              type: string
              description: "Scheduled inspection date in YYYY-MM-DD format."
            - name: inspector_name
              in: body
              type: string
              description: "Name of the health inspector."
          steps:
            - name: create-task
              type: call
              call: "servicenow.create-request"
              with:
                short_description: "Health inspection: Store {{store_id}} on {{inspection_date}}"
                category: "food_safety"
                priority: "High"
            - name: get-records
              type: call
              call: "compliance.get-safety-records"
              with:
                store_id: "{{store_id}}"
                type: "food_safety"
            - name: create-checklist
              type: call
              call: "gsheets.create-spreadsheet"
              with:
                title: "Health Inspection Checklist: Store {{store_id}} - {{inspection_date}}"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store-{{store_id}}-ops"
                text: "Health inspection scheduled for {{inspection_date}} by {{inspector_name}}. ServiceNow: {{create-task.number}}. Checklist: {{create-checklist.url}}. Last score: {{get-records.last_score}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://wawa.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: compliance
      baseUri: "https://api.wawa.com/compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.compliance_api_token"
      resources:
        - name: safety-records
          path: "/stores/{{store_id}}/safety"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-safety-records
              method: GET
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: spreadsheets
          path: "/spreadsheets"
          operations:
            - name: create-spreadsheet
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Queries the POS system for current inventory levels at a specific store, returning stock counts by product category.

naftiko: "0.5"
info:
  label: "Store Inventory Level Check"
  description: "Queries the POS system for current inventory levels at a specific store, returning stock counts by product category."
  tags:
    - store-ops
    - inventory
    - pos
capability:
  exposes:
    - type: mcp
      namespace: store-inventory
      port: 8080
      tools:
        - name: get-inventory-levels
          description: "Fetch current inventory levels for a store by product category."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Wawa store identifier."
            - name: category
              in: body
              type: string
              description: "Product category (beverages, food, snacks, fuel)."
          call: "pos.get-inventory"
          with:
            store_id: "{{store_id}}"
            category: "{{category}}"
          outputParameters:
            - name: total_items
              type: integer
              mapping: "$.inventory.total_count"
            - name: low_stock_items
              type: integer
              mapping: "$.inventory.low_stock_count"
            - name: out_of_stock
              type: integer
              mapping: "$.inventory.out_of_stock_count"
  consumes:
    - type: http
      namespace: pos
      baseUri: "https://api.wawa.com/pos/v2"
      authentication:
        type: bearer
        token: "$secrets.pos_api_token"
      resources:
        - name: inventory
          path: "/stores/{{store_id}}/inventory?category={{category}}"
          inputParameters:
            - name: store_id
              in: path
            - name: category
              in: query
          operations:
            - name: get-inventory
              method: GET

Retrieves the current safe balance for a store.

naftiko: "0.5"
info:
  label: "Store Safe Balance"
  description: "Retrieves the current safe balance for a store."
  tags:
    - finance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: finance
      port: 8080
      tools:
        - name: get-store
          description: "Retrieves the current safe balance for a store."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The store safe balance identifier."
          call: "finance-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: finance-api
      baseUri: "https://api.wawa.com/finance/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: store
          path: "/store/safe/balance/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-store
              method: GET

When inventory drops below threshold, creates a purchase order in SAP, notifies the distribution center via the supply chain API, updates the store manager in Microsoft Teams, and logs the reorder in Google Sheets.

naftiko: "0.5"
info:
  label: "Supply Chain Reorder Pipeline"
  description: "When inventory drops below threshold, creates a purchase order in SAP, notifies the distribution center via the supply chain API, updates the store manager in Microsoft Teams, and logs the reorder in Google Sheets."
  tags:
    - supply-chain
    - sap
    - microsoft-teams
    - google-sheets
    - inventory
capability:
  exposes:
    - type: mcp
      namespace: supply-chain
      port: 8080
      tools:
        - name: trigger-reorder
          description: "Given a store ID and product SKU below threshold, create PO, notify distribution, alert manager, and log."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "The Wawa store identifier."
            - name: product_sku
              in: body
              type: string
              description: "The product SKU to reorder."
            - name: quantity
              in: body
              type: integer
              description: "Quantity to reorder."
            - name: priority
              in: body
              type: string
              description: "Order priority (standard, urgent, emergency)."
          steps:
            - name: create-po
              type: call
              call: "sap.create-purchase-order"
              with:
                material: "{{product_sku}}"
                quantity: "{{quantity}}"
                plant: "{{store_id}}"
                priority: "{{priority}}"
            - name: notify-dc
              type: call
              call: "supply-chain.notify-distribution"
              with:
                store_id: "{{store_id}}"
                po_number: "{{create-po.po_number}}"
                priority: "{{priority}}"
            - name: alert-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store-{{store_id}}-ops"
                text: "Reorder triggered for {{product_sku}} (qty: {{quantity}}, {{priority}}). PO: {{create-po.po_number}}. ETA: {{notify-dc.estimated_delivery}}"
            - name: log-reorder
              type: call
              call: "gsheets.append-row"
              with:
                spreadsheet_id: "reorder_tracker"
                range: "Reorders!A:F"
                values:
                  - "{{store_id}}"
                  - "{{product_sku}}"
                  - "{{quantity}}"
                  - "{{priority}}"
                  - "{{create-po.po_number}}"
                  - "{{notify-dc.estimated_delivery}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://wawa-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: supply-chain
      baseUri: "https://api.wawa.com/supply-chain/v1"
      authentication:
        type: bearer
        token: "$secrets.supply_chain_token"
      resources:
        - name: distribution
          path: "/distribution/notify"
          operations:
            - name: notify-distribution
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/spreadsheets/{{spreadsheet_id}}/values/{{range}}:append"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: append-row
              method: POST

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

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

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

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

Retrieves age verification log entries.

naftiko: "0.5"
info:
  label: "Tobacco Age Verification Log"
  description: "Retrieves age verification log entries."
  tags:
    - compliance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: compliance
      port: 8080
      tools:
        - name: get-tobacco
          description: "Retrieves age verification log entries."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The tobacco age verification log identifier."
          call: "compliance-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: compliance-api
      baseUri: "https://api.wawa.com/compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.wawa_api_token"
      resources:
        - name: tobacco
          path: "/tobacco/age/verification/log/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-tobacco
              method: GET

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

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

When a vendor quality issue is detected, creates a case in Salesforce, opens a ServiceNow incident, notifies the quality team in Slack, and issues a hold order in SAP.

naftiko: "0.5"
info:
  label: "Vendor Quality Incident Pipeline"
  description: "When a vendor quality issue is detected, creates a case in Salesforce, opens a ServiceNow incident, notifies the quality team in Slack, and issues a hold order in SAP."
  tags:
    - supply-chain
    - quality
    - salesforce
    - servicenow
    - slack
    - sap
capability:
  exposes:
    - type: mcp
      namespace: vendor-quality
      port: 8080
      tools:
        - name: report-vendor-quality-issue
          description: "Given vendor and product details, create cases, notify quality team, and issue hold."
          inputParameters:
            - name: vendor_id
              in: body
              type: string
              description: "The SAP vendor identifier."
            - name: product_sku
              in: body
              type: string
              description: "The affected product SKU."
            - name: issue_description
              in: body
              type: string
              description: "Description of the quality issue."
            - name: severity
              in: body
              type: string
              description: "Issue severity (low, medium, high, critical)."
          steps:
            - name: create-case
              type: call
              call: "salesforce.create-case"
              with:
                subject: "Vendor quality issue: {{vendor_id}} - {{product_sku}}"
                priority: "{{severity}}"
                description: "{{issue_description}}"
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Quality hold: {{product_sku}} from {{vendor_id}}"
                category: "quality"
                priority: "{{severity}}"
            - name: issue-hold
              type: call
              call: "sap.create-quality-hold"
              with:
                material: "{{product_sku}}"
                vendor: "{{vendor_id}}"
                reason: "{{issue_description}}"
            - name: notify-team
              type: call
              call: "slack.post-message"
              with:
                channel: "quality-alerts"
                text: "QUALITY ALERT: {{severity}} issue with {{product_sku}} from vendor {{vendor_id}}. {{issue_description}}. Hold order issued. Case: {{create-case.id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://wawa.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: servicenow
      baseUri: "https://wawa.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: sap
      baseUri: "https://wawa-s4.sap.com/sap/opu/odata/sap/API_QUALITYINFORECORD_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: quality-holds
          path: "/A_QualityInfoRecord"
          operations:
            - name: create-quality-hold
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Retrieves employee details from Workday including name, department, store assignment, and contact information.

naftiko: "0.5"
info:
  label: "Workday Employee Directory Lookup"
  description: "Retrieves employee details from Workday including name, department, store assignment, and contact information."
  tags:
    - hr
    - workday
    - employee
capability:
  exposes:
    - type: mcp
      namespace: hr-directory
      port: 8080
      tools:
        - name: get-employee
          description: "Look up a Workday employee by worker ID."
          inputParameters:
            - name: worker_id
              in: body
              type: string
              description: "The Workday worker ID."
          call: "workday.get-worker"
          with:
            worker_id: "{{worker_id}}"
          outputParameters:
            - name: full_name
              type: string
              mapping: "$.worker.name.full"
            - name: store_id
              type: string
              mapping: "$.worker.organization.location_id"
            - name: manager
              type: string
              mapping: "$.worker.manager.name.full"
            - name: email
              type: string
              mapping: "$.worker.contact.email"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET

Retrieves employee profile from Workday.

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