Wawa, Inc. Capabilities
Naftiko 0.5 capability definitions for Wawa, Inc. - 100 capabilities showing integration workflows and service orchestrations.
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