Walgreens Capabilities
Naftiko 0.5 capability definitions for Walgreens - 100 capabilities showing integration workflows and service orchestrations.
Retrieves Adobe Analytics e-commerce metrics for walgreens.com.
naftiko: "0.5"
info:
label: "Adobe Analytics E-Commerce Report"
description: "Retrieves Adobe Analytics e-commerce metrics for walgreens.com."
tags:
- analytics
- e-commerce
- adobe-analytics
capability:
exposes:
- type: mcp
namespace: site-analytics
port: 8080
tools:
- name: get-ecommerce-metrics
description: "Fetch Adobe Analytics e-commerce data."
inputParameters:
- name: report_suite_id
in: body
type: string
description: "Report suite ID."
- name: date_range
in: body
type: string
description: "Date range."
call: "adobe-analytics.get-report"
with:
rsid: "{{report_suite_id}}"
date_range: "{{date_range}}"
outputParameters:
- name: revenue
type: string
mapping: "$.totalPages[0].data[0].revenue"
- name: orders
type: number
mapping: "$.totalPages[0].data[0].orders"
consumes:
- type: http
namespace: adobe-analytics
baseUri: "https://analytics.adobe.io/api"
authentication:
type: bearer
token: "$secrets.adobe_analytics_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: reports
path: "/{{company_id}}/reports"
inputParameters:
- name: company_id
in: path
operations:
- name: get-report
method: POST
Retrieves ADP payroll summary for a pay period.
naftiko: "0.5"
info:
label: "ADP Payroll Summary Lookup"
description: "Retrieves ADP payroll summary for a pay period."
tags:
- hr
- payroll
- adp
capability:
exposes:
- type: mcp
namespace: payroll-ops
port: 8080
tools:
- name: get-payroll-summary
description: "Fetch ADP payroll summary."
inputParameters:
- name: pay_period
in: body
type: string
description: "Pay period identifier."
call: "adp.get-payroll"
with:
pay_period: "{{pay_period}}"
outputParameters:
- name: gross_pay
type: string
mapping: "$.payrollSummary.grossPay"
- name: net_pay
type: string
mapping: "$.payrollSummary.netPay"
consumes:
- type: http
namespace: adp
baseUri: "https://api.adp.com/hr/v2"
authentication:
type: bearer
token: "$secrets.adp_token"
resources:
- name: payroll
path: "/payroll-summaries/{{pay_period}}"
inputParameters:
- name: pay_period
in: path
operations:
- name: get-payroll
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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 latest Azure DevOps build status.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status Lookup"
description: "Retrieves latest Azure DevOps build status."
tags:
- devops
- ci-cd
- azure-devops
capability:
exposes:
- type: mcp
namespace: devops-builds
port: 8080
tools:
- name: get-build-status
description: "Fetch latest build status."
inputParameters:
- name: project
in: body
type: string
description: "Project name."
- name: pipeline_id
in: body
type: string
description: "Pipeline ID."
call: "azuredevops.get-builds"
with:
project: "{{project}}"
definition_id: "{{pipeline_id}}"
outputParameters:
- name: build_number
type: string
mapping: "$.value[0].buildNumber"
- name: status
type: string
mapping: "$.value[0].status"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/walgreens"
authentication:
type: basic
username: ""
password: "$secrets.azuredevops_pat"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds?definitions={{definition_id}}&$top=1&api-version=7.0"
inputParameters:
- name: project
in: path
- name: definition_id
in: query
operations:
- name: get-builds
method: GET
Retrieves Cloudflare zone analytics for walgreens.com.
naftiko: "0.5"
info:
label: "Cloudflare CDN Performance"
description: "Retrieves Cloudflare zone analytics for walgreens.com."
tags:
- infrastructure
- cdn
- cloudflare
capability:
exposes:
- type: mcp
namespace: cdn-ops
port: 8080
tools:
- name: get-zone-analytics
description: "Fetch Cloudflare zone analytics."
inputParameters:
- name: zone_id
in: body
type: string
description: "Zone ID."
call: "cloudflare.get-zone-analytics"
with:
zone_id: "{{zone_id}}"
outputParameters:
- name: requests
type: number
mapping: "$.result.totals.requests.all"
consumes:
- type: http
namespace: cloudflare
baseUri: "https://api.cloudflare.com/client/v4"
authentication:
type: bearer
token: "$secrets.cloudflare_token"
resources:
- name: analytics
path: "/zones/{{zone_id}}/analytics/dashboard"
inputParameters:
- name: zone_id
in: path
operations:
- name: get-zone-analytics
method: GET
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.walgreens.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: confluence
path: "/confluence/page/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-confluence
method: GET
Tracks controlled substance dispensing by logging transactions in SAP, validating against DEA quotas, creating compliance records in ServiceNow, and alerting the pharmacy compliance team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Controlled Substance Tracking Orchestrator"
description: "Tracks controlled substance dispensing by logging transactions in SAP, validating against DEA quotas, creating compliance records in ServiceNow, and alerting the pharmacy compliance team via Microsoft Teams."
tags:
- pharmacy
- compliance
- controlled-substances
- sap
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: controlled-substance-ops
port: 8080
tools:
- name: log-controlled-dispense
description: "Log and validate controlled substance dispensing."
inputParameters:
- name: rx_number
in: body
type: string
description: "Prescription number."
- name: dea_schedule
in: body
type: string
description: "DEA schedule (II-V)."
- name: quantity
in: body
type: number
description: "Quantity dispensed."
- name: store_id
in: body
type: string
description: "Store ID."
steps:
- name: log-transaction
type: call
call: "sap.log-controlled-dispense"
with:
rx: "{{rx_number}}"
schedule: "{{dea_schedule}}"
quantity: "{{quantity}}"
store: "{{store_id}}"
- name: create-compliance-record
type: call
call: "servicenow.create-incident"
with:
short_description: "CS dispense: Rx {{rx_number}} Schedule {{dea_schedule}}"
category: "controlled_substance_compliance"
priority: "3"
- name: alert-compliance
type: call
call: "msteams.send-message"
with:
channel_id: "pharmacy-compliance"
text: "CS Log: Rx {{rx_number}} (Schedule {{dea_schedule}}) - {{quantity}} units at store {{store_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://wag-sap.walgreens.com/sap/opu/odata/sap/API_PHARMACY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: controlled
path: "/A_ControlledSubstanceLog"
operations:
- name: log-controlled-dispense
method: POST
- type: http
namespace: servicenow
baseUri: "https://walgreens.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: 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
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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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
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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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
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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 Datadog monitor status.
naftiko: "0.5"
info:
label: "Datadog Monitor Status Lookup"
description: "Retrieves Datadog monitor status."
tags:
- monitoring
- infrastructure
- datadog
capability:
exposes:
- type: mcp
namespace: infra-monitoring
port: 8080
tools:
- name: get-monitor-status
description: "Fetch Datadog monitor status."
inputParameters:
- name: monitor_id
in: body
type: string
description: "Monitor ID."
call: "datadog.get-monitor"
with:
monitor_id: "{{monitor_id}}"
outputParameters:
- name: state
type: string
mapping: "$.overall_state"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: monitors
path: "/monitor/{{monitor_id}}"
inputParameters:
- name: monitor_id
in: path
operations:
- name: get-monitor
method: GET
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.walgreens.com/monitoring/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: datadog
path: "/datadog/monitor/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-datadog
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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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
Initiates inter-DC stock transfers in SAP, updates Oracle EBS warehouse records, and notifies logistics via Microsoft Teams.
naftiko: "0.5"
info:
label: "Distribution Center Transfer Orchestrator"
description: "Initiates inter-DC stock transfers in SAP, updates Oracle EBS warehouse records, and notifies logistics via Microsoft Teams."
tags:
- supply-chain
- logistics
- sap
- oracle-e-business-suite
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: dc-transfers
port: 8080
tools:
- name: initiate-dc-transfer
description: "Create stock transfer between distribution centers."
inputParameters:
- name: material_id
in: body
type: string
description: "Material number."
- name: from_dc
in: body
type: string
description: "Source DC."
- name: to_dc
in: body
type: string
description: "Destination DC."
- name: quantity
in: body
type: number
description: "Transfer quantity."
steps:
- name: create-transfer
type: call
call: "sap.create-stock-transfer"
with:
material: "{{material_id}}"
from_plant: "{{from_dc}}"
to_plant: "{{to_dc}}"
quantity: "{{quantity}}"
- name: update-wms
type: call
call: "oracle-ebs.update-warehouse"
with:
from_org: "{{from_dc}}"
to_org: "{{to_dc}}"
item: "{{material_id}}"
quantity: "{{quantity}}"
- name: notify-logistics
type: call
call: "msteams.send-message"
with:
channel_id: "logistics-ops"
text: "DC transfer {{create-transfer.transfer_number}}: {{quantity}} units of {{material_id}} from {{from_dc}} to {{to_dc}}"
consumes:
- type: http
namespace: sap
baseUri: "https://wag-sap.walgreens.com/sap/opu/odata/sap/API_STOCK_TRANSFER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: transfers
path: "/A_StockTransfer"
operations:
- name: create-stock-transfer
method: POST
- type: http
namespace: oracle-ebs
baseUri: "https://wag-ebs.walgreens.com/webservices/rest/wms"
authentication:
type: basic
username: "$secrets.oracle_ebs_user"
password: "$secrets.oracle_ebs_password"
resources:
- name: warehouse
path: "/transfers"
operations:
- name: update-warehouse
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 drug recall is received, queries SAP for affected inventory, creates a ServiceNow critical incident, notifies pharmacy staff via Microsoft Teams, and sends patient notifications via MailChimp.
naftiko: "0.5"
info:
label: "Drug Recall Alert Orchestrator"
description: "When a drug recall is received, queries SAP for affected inventory, creates a ServiceNow critical incident, notifies pharmacy staff via Microsoft Teams, and sends patient notifications via MailChimp."
tags:
- pharmacy
- safety
- sap
- servicenow
- microsoft-teams
- mailchimp
capability:
exposes:
- type: mcp
namespace: recall-management
port: 8080
tools:
- name: process-drug-recall
description: "Identify affected inventory, create incident, and notify staff and patients."
inputParameters:
- name: ndc_code
in: body
type: string
description: "NDC code of recalled drug."
- name: lot_number
in: body
type: string
description: "Lot number."
- name: recall_description
in: body
type: string
description: "Recall description."
steps:
- name: find-affected-stock
type: call
call: "sap.search-inventory-by-lot"
with:
ndc: "{{ndc_code}}"
lot: "{{lot_number}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "DRUG RECALL: NDC {{ndc_code}} Lot {{lot_number}}"
category: "pharmacy_recall"
priority: "1"
description: "{{recall_description}}"
- name: notify-pharmacy
type: call
call: "msteams.send-message"
with:
channel_id: "pharmacy-ops"
text: "RECALL ALERT: NDC {{ndc_code}} Lot {{lot_number}}. {{find-affected-stock.store_count}} stores affected. Incident: {{create-incident.number}}"
- name: notify-patients
type: call
call: "mailchimp.send-campaign"
with:
list_id: "affected_patients"
subject: "Important: Drug Recall Notice"
template: "drug_recall_notice"
consumes:
- type: http
namespace: sap
baseUri: "https://wag-sap.walgreens.com/sap/opu/odata/sap/API_BATCH_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: batches
path: "/A_Batch"
operations:
- name: search-inventory-by-lot
method: GET
- type: http
namespace: servicenow
baseUri: "https://walgreens.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: 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: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: send-campaign
method: POST
Retrieves active Dynatrace problems for Walgreens systems.
naftiko: "0.5"
info:
label: "Dynatrace Application Monitoring"
description: "Retrieves active Dynatrace problems for Walgreens systems."
tags:
- monitoring
- dynatrace
capability:
exposes:
- type: mcp
namespace: observability
port: 8080
tools:
- name: get-active-problems
description: "Fetch active Dynatrace problems."
inputParameters:
- name: time_range
in: body
type: string
description: "Time range."
call: "dynatrace.get-problems"
with:
relativeTime: "{{time_range}}"
outputParameters:
- name: total_count
type: number
mapping: "$.totalCount"
consumes:
- type: http
namespace: dynatrace
baseUri: "https://walgreens.live.dynatrace.com/api/v2"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: problems
path: "/problems"
operations:
- name: get-problems
method: GET
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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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.
naftiko: "0.5"
info:
label: "Employee Onboarding Pipeline"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Orchestrate onboarding across Workday, ServiceNow, SharePoint, and Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "Workday worker ID."
- name: start_date
in: body
type: string
description: "Start date YYYY-MM-DD."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "Onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding"
folder_path: "Onboarding/{{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 Walgreens, {{get-employee.first_name}}! Ticket: {{open-ticket.number}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://walgreens.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
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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 Facebook ad spend and ROAS for health and wellness campaigns.
naftiko: "0.5"
info:
label: "Facebook Ads Spend Reporter"
description: "Retrieves Facebook ad spend and ROAS for health and wellness campaigns."
tags:
- marketing
- advertising
- facebook
capability:
exposes:
- type: mcp
namespace: paid-media
port: 8080
tools:
- name: get-fb-ad-spend
description: "Fetch Facebook ad spend and ROAS."
inputParameters:
- name: ad_account_id
in: body
type: string
description: "Ad account ID."
- name: start_date
in: body
type: string
description: "Start date."
- name: end_date
in: body
type: string
description: "End date."
call: "meta.get-account-insights"
with:
ad_account_id: "{{ad_account_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: spend
type: string
mapping: "$.data[0].spend"
- name: roas
type: string
mapping: "$.data[0].purchase_roas[0].value"
consumes:
- type: http
namespace: meta
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.meta_ads_token"
resources:
- name: account-insights
path: "/act_{{ad_account_id}}/insights"
inputParameters:
- name: ad_account_id
in: path
operations:
- name: get-account-insights
method: GET
Retrieves the balance of a gift card.
naftiko: "0.5"
info:
label: "Gift Card Balance Lookup"
description: "Retrieves the balance of a gift card."
tags:
- finance
- customer-service
capability:
exposes:
- type: mcp
namespace: finance
port: 8080
tools:
- name: get-gift
description: "Retrieves the balance of a gift card."
inputParameters:
- name: entity_id
in: body
type: string
description: "The gift card balance lookup identifier."
call: "finance-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: finance-api
baseUri: "https://api.walgreens.com/finance/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: gift
path: "/gift/card/balance/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-gift
method: GET
Retrieves Google Analytics metrics for the Walgreens store locator page.
naftiko: "0.5"
info:
label: "Google Analytics Store Locator Metrics"
description: "Retrieves Google Analytics metrics for the Walgreens store locator page."
tags:
- analytics
- retail
- google-analytics
capability:
exposes:
- type: mcp
namespace: web-analytics
port: 8080
tools:
- name: get-locator-metrics
description: "Fetch GA metrics for the store locator."
inputParameters:
- name: start_date
in: body
type: string
description: "Start date YYYY-MM-DD."
- name: end_date
in: body
type: string
description: "End date YYYY-MM-DD."
call: "ga.get-report"
with:
page_path: "/store-locator"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: pageviews
type: number
mapping: "$.rows[0].pageviews"
- name: sessions
type: number
mapping: "$.rows[0].sessions"
consumes:
- type: http
namespace: ga
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: get-report
method: POST
Searches for files in Google Drive.
naftiko: "0.5"
info:
label: "Google Drive Document Search"
description: "Searches for files in Google Drive."
tags:
- documents
- google-drive
capability:
exposes:
- type: mcp
namespace: drive-search
port: 8080
tools:
- name: search-drive-files
description: "Search Google Drive files."
inputParameters:
- name: query
in: body
type: string
description: "Search query."
call: "gdrive.search-files"
with:
q: "name contains '{{query}}'"
outputParameters:
- name: files
type: array
mapping: "$.files"
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"
operations:
- name: search-files
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.walgreens.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: google
path: "/google/drive/file/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-google
method: GET
Retrieves nearby Walgreens store locations using Google Maps Places API.
naftiko: "0.5"
info:
label: "Google Maps Store Finder"
description: "Retrieves nearby Walgreens store locations using Google Maps Places API."
tags:
- retail
- location
- google-maps
capability:
exposes:
- type: mcp
namespace: store-locator
port: 8080
tools:
- name: find-nearby-stores
description: "Find nearby Walgreens stores by coordinates."
inputParameters:
- name: latitude
in: body
type: string
description: "Latitude."
- name: longitude
in: body
type: string
description: "Longitude."
- name: radius
in: body
type: string
description: "Search radius in meters."
call: "gmaps.nearby-search"
with:
location: "{{latitude}},{{longitude}}"
radius: "{{radius}}"
keyword: "Walgreens"
outputParameters:
- name: stores
type: array
mapping: "$.results"
consumes:
- type: http
namespace: gmaps
baseUri: "https://maps.googleapis.com/maps/api"
authentication:
type: bearer
token: "$secrets.google_maps_key"
resources:
- name: places
path: "/place/nearbysearch/json"
operations:
- name: nearby-search
method: GET
Retrieves search performance data from Google Search Console.
naftiko: "0.5"
info:
label: "Google Search Console Performance"
description: "Retrieves search performance data from Google Search Console."
tags:
- seo
- analytics
- google-search-console
capability:
exposes:
- type: mcp
namespace: seo-analytics
port: 8080
tools:
- name: get-search-performance
description: "Fetch GSC performance data."
inputParameters:
- name: site_url
in: body
type: string
description: "Site URL."
- name: start_date
in: body
type: string
description: "Start date."
- name: end_date
in: body
type: string
description: "End date."
call: "gsc.query-analytics"
with:
site_url: "{{site_url}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: clicks
type: number
mapping: "$.rows[0].clicks"
- name: impressions
type: number
mapping: "$.rows[0].impressions"
consumes:
- type: http
namespace: gsc
baseUri: "https://www.googleapis.com/webmasters/v3"
authentication:
type: bearer
token: "$secrets.google_search_console_token"
resources:
- name: analytics
path: "/sites/{{site_url}}/searchAnalytics/query"
inputParameters:
- name: site_url
in: path
operations:
- name: query-analytics
method: POST
Retrieves a HubSpot contact by email for marketing engagement tracking.
naftiko: "0.5"
info:
label: "HubSpot Customer Engagement Lookup"
description: "Retrieves a HubSpot contact by email for marketing engagement tracking."
tags:
- marketing
- crm
- hubspot
capability:
exposes:
- type: mcp
namespace: crm-marketing
port: 8080
tools:
- name: get-hubspot-contact
description: "Look up HubSpot contact by email."
inputParameters:
- name: email
in: body
type: string
description: "Contact email."
call: "hubspot.get-contact-by-email"
with:
email: "{{email}}"
outputParameters:
- name: lifecycle_stage
type: string
mapping: "$.properties.lifecyclestage"
- name: last_activity
type: string
mapping: "$.properties.notes_last_updated"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/objects/contacts/{{email}}?idProperty=email"
inputParameters:
- name: email
in: path
operations:
- name: get-contact-by-email
method: GET
Triggers an Informatica data quality job for pharmacy data validation.
naftiko: "0.5"
info:
label: "Informatica Data Quality Check"
description: "Triggers an Informatica data quality job for pharmacy data validation."
tags:
- data-quality
- pharmacy
- informatica
capability:
exposes:
- type: mcp
namespace: data-ops
port: 8080
tools:
- name: run-data-quality-check
description: "Trigger Informatica DQ job."
inputParameters:
- name: job_name
in: body
type: string
description: "Informatica job name."
call: "informatica.run-job"
with:
job_name: "{{job_name}}"
consumes:
- type: http
namespace: informatica
baseUri: "https://dm-us.informaticacloud.com/saas/api/v2"
authentication:
type: bearer
token: "$secrets.informatica_token"
resources:
- name: jobs
path: "/job"
operations:
- name: run-job
method: POST
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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 Instagram campaign metrics for health and wellness promotions.
naftiko: "0.5"
info:
label: "Instagram Health Campaign Lookup"
description: "Retrieves Instagram campaign metrics for health and wellness promotions."
tags:
- marketing
- social-media
- instagram
capability:
exposes:
- type: mcp
namespace: social-analytics
port: 8080
tools:
- name: get-instagram-campaign
description: "Fetch Instagram campaign metrics."
inputParameters:
- name: campaign_id
in: body
type: string
description: "Meta campaign ID."
call: "meta.get-campaign-insights"
with:
campaign_id: "{{campaign_id}}"
outputParameters:
- name: impressions
type: number
mapping: "$.data[0].impressions"
- name: reach
type: number
mapping: "$.data[0].reach"
consumes:
- type: http
namespace: meta
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.meta_ads_token"
resources:
- name: campaign-insights
path: "/{{campaign_id}}/insights"
inputParameters:
- name: campaign_id
in: path
operations:
- name: get-campaign-insights
method: GET
Processes pharmacy insurance claims by verifying coverage in Salesforce Health Cloud, submitting the claim via the insurance gateway, and updating the patient record with claim status.
naftiko: "0.5"
info:
label: "Insurance Claim Processing Orchestrator"
description: "Processes pharmacy insurance claims by verifying coverage in Salesforce Health Cloud, submitting the claim via the insurance gateway, and updating the patient record with claim status."
tags:
- healthcare
- pharmacy
- insurance
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: insurance-claims
port: 8080
tools:
- name: process-insurance-claim
description: "Verify coverage, submit claim, and update patient record."
inputParameters:
- name: patient_id
in: body
type: string
description: "Patient contact ID."
- name: rx_number
in: body
type: string
description: "Prescription number."
- name: ndc_code
in: body
type: string
description: "NDC code."
steps:
- name: get-patient
type: call
call: "salesforce.get-contact"
with:
contact_id: "{{patient_id}}"
- name: verify-coverage
type: call
call: "salesforce.check-insurance"
with:
contact_id: "{{patient_id}}"
ndc: "{{ndc_code}}"
- name: update-status
type: call
call: "salesforce.update-rx-status"
with:
rx_number: "{{rx_number}}"
claim_status: "{{verify-coverage.status}}"
copay: "{{verify-coverage.copay}}"
- name: notify-pharmacy
type: call
call: "msteams.send-message"
with:
channel_id: "pharmacy-claims"
text: "Claim for Rx {{rx_number}}: {{verify-coverage.status}}. Copay: ${{verify-coverage.copay}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://walgreens.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
- name: check-insurance
method: GET
- name: prescriptions
path: "/sobjects/Prescription__c/{{rx_number}}"
inputParameters:
- name: rx_number
in: path
operations:
- name: update-rx-status
method: PATCH
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.
naftiko: "0.5"
info:
label: "IT Change Management Orchestrator"
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
tags:
- it
- servicenow
- operations
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: run-it-change-management-orchestrator
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed IT Change Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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.walgreens.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.walgreens_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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 MailChimp campaign statistics for pharmacy newsletters.
naftiko: "0.5"
info:
label: "MailChimp Pharmacy Newsletter Stats"
description: "Retrieves MailChimp campaign statistics for pharmacy newsletters."
tags:
- marketing
- email
- mailchimp
capability:
exposes:
- type: mcp
namespace: email-marketing
port: 8080
tools:
- name: get-campaign-stats
description: "Fetch MailChimp campaign stats."
inputParameters:
- name: campaign_id
in: body
type: string
description: "Campaign ID."
call: "mailchimp.get-campaign-report"
with:
campaign_id: "{{campaign_id}}"
outputParameters:
- name: open_rate
type: number
mapping: "$.opens.open_rate"
- name: click_rate
type: number
mapping: "$.clicks.click_rate"
- name: emails_sent
type: number
mapping: "$.emails_sent"
consumes:
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: reports
path: "/reports/{{campaign_id}}"
inputParameters:
- name: campaign_id
in: path
operations:
- name: get-campaign-report
method: GET
Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Orchestrator"
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
tags:
- marketing
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: run-marketing-campaign-performance-orchestrator
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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
Reconciles Mastercard settlements against SAP payment records and logs discrepancies to Google Sheets.
naftiko: "0.5"
info:
label: "Mastercard Payment Reconciliation"
description: "Reconciles Mastercard settlements against SAP payment records and logs discrepancies to Google Sheets."
tags:
- finance
- payments
- mastercard
- sap
- google-sheets
capability:
exposes:
- type: mcp
namespace: payment-reconciliation
port: 8080
tools:
- name: reconcile-settlements
description: "Compare Mastercard settlements with SAP payments."
inputParameters:
- name: settlement_date
in: body
type: string
description: "Settlement date YYYY-MM-DD."
steps:
- name: get-mc-settlements
type: call
call: "mastercard.get-settlements"
with:
date: "{{settlement_date}}"
- name: get-sap-payments
type: call
call: "sap.get-payment-docs"
with:
date: "{{settlement_date}}"
- name: log-discrepancies
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "wag_reconciliation"
row:
date: "{{settlement_date}}"
mc_total: "{{get-mc-settlements.total}}"
sap_total: "{{get-sap-payments.total}}"
consumes:
- type: http
namespace: mastercard
baseUri: "https://api.mastercard.com/settlement/v1"
authentication:
type: bearer
token: "$secrets.mastercard_token"
resources:
- name: settlements
path: "/settlements"
operations:
- name: get-settlements
method: GET
- type: http
namespace: sap
baseUri: "https://wag-sap.walgreens.com/sap/opu/odata/sap/API_PAYMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: payments
path: "/A_PaymentDocument"
operations:
- name: get-payment-docs
method: GET
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: rows
path: "/spreadsheets/{{spreadsheet_id}}/values/Sheet1:append"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: append-row
method: POST
Sends a notification to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notification"
description: "Sends a notification to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: team-notifications
port: 8080
tools:
- name: send-channel-message
description: "Post a message to a Teams channel."
inputParameters:
- name: team_id
in: body
type: string
description: "Team ID."
- name: channel_id
in: body
type: string
description: "Channel ID."
- name: message
in: body
type: string
description: "Message text."
call: "msteams.post-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: post-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.walgreens.com/communications/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: microsoft
path: "/microsoft/teams/message/sender/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-microsoft
method: GET
Retrieves New Relic APM metrics.
naftiko: "0.5"
info:
label: "New Relic Application Performance"
description: "Retrieves New Relic APM metrics."
tags:
- monitoring
- performance
- new-relic
capability:
exposes:
- type: mcp
namespace: apm-monitoring
port: 8080
tools:
- name: get-app-performance
description: "Fetch New Relic APM metrics."
inputParameters:
- name: app_id
in: body
type: string
description: "New Relic app ID."
call: "newrelic.get-application"
with:
app_id: "{{app_id}}"
outputParameters:
- name: response_time
type: number
mapping: "$.application.application_summary.response_time"
- name: error_rate
type: number
mapping: "$.application.application_summary.error_rate"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: bearer
token: "$secrets.newrelic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-application
method: GET
Checks the status of an online order.
naftiko: "0.5"
info:
label: "Online Order Status"
description: "Checks the status of an online order."
tags:
- e-commerce
- customer-service
capability:
exposes:
- type: mcp
namespace: e-commerce
port: 8080
tools:
- name: get-online
description: "Checks the status of an online order."
inputParameters:
- name: entity_id
in: body
type: string
description: "The online order status identifier."
call: "e-commerce-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: e-commerce-api
baseUri: "https://api.walgreens.com/e-commerce/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: online
path: "/online/order/status/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-online
method: GET
When a patient completes a health action, updates their rewards balance in Salesforce, sends a congratulations email via MailChimp, and creates a personalized discount in the POS system.
naftiko: "0.5"
info:
label: "Patient Health Rewards Orchestrator"
description: "When a patient completes a health action, updates their rewards balance in Salesforce, sends a congratulations email via MailChimp, and creates a personalized discount in the POS system."
tags:
- healthcare
- loyalty
- salesforce
- mailchimp
capability:
exposes:
- type: mcp
namespace: health-rewards
port: 8080
tools:
- name: award-health-points
description: "Update rewards balance and send congratulations."
inputParameters:
- name: contact_id
in: body
type: string
description: "Salesforce contact ID."
- name: action_type
in: body
type: string
description: "Health action type (e.g., 'flu_shot', 'health_screening')."
- name: points
in: body
type: number
description: "Points to award."
steps:
- name: get-patient
type: call
call: "salesforce.get-contact"
with:
contact_id: "{{contact_id}}"
- name: update-balance
type: call
call: "salesforce.update-rewards"
with:
contact_id: "{{contact_id}}"
points_to_add: "{{points}}"
action: "{{action_type}}"
- name: send-congrats
type: call
call: "mailchimp.send-transactional"
with:
email: "{{get-patient.Email}}"
template: "health_rewards"
merge_vars:
first_name: "{{get-patient.FirstName}}"
points: "{{points}}"
action: "{{action_type}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://walgreens.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
- name: update-rewards
method: PATCH
- type: http
namespace: mailchimp
baseUri: "https://mandrillapp.com/api/1.0"
authentication:
type: bearer
token: "$secrets.mailchimp_transactional_key"
resources:
- name: messages
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
Runs pharmacy compliance checks by pulling license data from SAP, cross-referencing with regulatory requirements in ServiceNow, generating audit reports in SharePoint, and notifying compliance officers via Microsoft Teams.
naftiko: "0.5"
info:
label: "Pharmacy Compliance Audit Orchestrator"
description: "Runs pharmacy compliance checks by pulling license data from SAP, cross-referencing with regulatory requirements in ServiceNow, generating audit reports in SharePoint, and notifying compliance officers via Microsoft Teams."
tags:
- pharmacy
- compliance
- sap
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: pharmacy-compliance
port: 8080
tools:
- name: run-compliance-audit
description: "Execute pharmacy compliance audit across systems."
inputParameters:
- name: store_id
in: body
type: string
description: "Store ID."
- name: audit_type
in: body
type: string
description: "Audit type (e.g., 'DEA', 'state_board')."
steps:
- name: get-license-data
type: call
call: "sap.get-pharmacy-licenses"
with:
store: "{{store_id}}"
- name: check-requirements
type: call
call: "servicenow.get-compliance-checklist"
with:
audit_type: "{{audit_type}}"
store: "{{store_id}}"
- name: create-report
type: call
call: "sharepoint.create-document"
with:
site_id: "pharmacy_compliance"
folder_path: "Audits/{{store_id}}/{{audit_type}}"
content:
store: "{{store_id}}"
audit_type: "{{audit_type}}"
license_status: "{{get-license-data.status}}"
- name: notify-compliance
type: call
call: "msteams.send-message"
with:
channel_id: "compliance-team"
text: "Audit complete for store {{store_id}} ({{audit_type}}). Report: {{create-report.url}}"
consumes:
- type: http
namespace: sap
baseUri: "https://wag-sap.walgreens.com/sap/opu/odata/sap/API_PHARMACY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: licenses
path: "/A_PharmacyLicense"
operations:
- name: get-pharmacy-licenses
method: GET
- type: http
namespace: servicenow
baseUri: "https://walgreens.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: checklists
path: "/table/compliance_checklist"
operations:
- name: get-compliance-checklist
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: documents
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-document
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
Triggers a Power BI dataset refresh.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresh"
description: "Triggers a Power BI dataset refresh."
tags:
- analytics
- reporting
- power-bi
capability:
exposes:
- type: mcp
namespace: bi-ops
port: 8080
tools:
- name: refresh-dataset
description: "Trigger a Power BI dataset refresh."
inputParameters:
- name: workspace_id
in: body
type: string
description: "Workspace GUID."
- name: dataset_id
in: body
type: string
description: "Dataset GUID."
call: "powerbi.trigger-refresh"
with:
workspace_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: refreshes
path: "/groups/{{workspace_id}}/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: workspace_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.walgreens.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: power
path: "/power/bi/dashboard/refresher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-power
method: GET
When a new prescription is received, verifies insurance eligibility in the pharmacy system, checks drug inventory in SAP, creates a fulfillment task in ServiceNow, and notifies the patient via WhatsApp.
naftiko: "0.5"
info:
label: "Prescription Fulfillment Orchestrator"
description: "When a new prescription is received, verifies insurance eligibility in the pharmacy system, checks drug inventory in SAP, creates a fulfillment task in ServiceNow, and notifies the patient via WhatsApp."
tags:
- pharmacy
- fulfillment
- sap
- servicenow
- whatsapp
capability:
exposes:
- type: mcp
namespace: rx-fulfillment
port: 8080
tools:
- name: process-prescription
description: "Orchestrate prescription verification, inventory check, and patient notification."
inputParameters:
- name: rx_number
in: body
type: string
description: "Prescription number."
- name: patient_id
in: body
type: string
description: "Patient identifier."
- name: ndc_code
in: body
type: string
description: "National Drug Code."
steps:
- name: check-inventory
type: call
call: "sap.check-drug-inventory"
with:
ndc: "{{ndc_code}}"
store: "{{store_id}}"
- name: create-task
type: call
call: "servicenow.create-incident"
with:
short_description: "Rx fill: {{rx_number}} for patient {{patient_id}}"
category: "pharmacy_fulfillment"
priority: "2"
- name: notify-patient
type: call
call: "whatsapp.send-message"
with:
template: "rx_ready"
patient_id: "{{patient_id}}"
rx_number: "{{rx_number}}"
status: "{{check-inventory.availability}}"
consumes:
- type: http
namespace: sap
baseUri: "https://wag-sap.walgreens.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: inventory
path: "/A_MatlStkInAcctMod"
operations:
- name: check-drug-inventory
method: GET
- type: http
namespace: servicenow
baseUri: "https://walgreens.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: whatsapp
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.whatsapp_token"
resources:
- name: messages
path: "/{{phone_number_id}}/messages"
inputParameters:
- name: phone_number_id
in: path
operations:
- name: send-message
method: POST
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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 current pricing for a product.
naftiko: "0.5"
info:
label: "Product Price Lookup"
description: "Retrieves current pricing for a product."
tags:
- pricing
- product-management
capability:
exposes:
- type: mcp
namespace: pricing
port: 8080
tools:
- name: get-product
description: "Retrieves current pricing for a product."
inputParameters:
- name: entity_id
in: body
type: string
description: "The product price lookup identifier."
call: "pricing-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: pricing-api
baseUri: "https://api.walgreens.com/pricing/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: product
path: "/product/price/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-product
method: GET
Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.
naftiko: "0.5"
info:
label: "Quarterly Business Review Orchestrator"
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
tags:
- analytics
- business
- sharepoint
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-quarterly-business-review-orchestrator
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail workflow 1 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 1"
description: "Orchestrates retail workflow 1 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-001
description: "Orchestrates retail workflow 1 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Retail Workflow 1 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail workflow 2 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 2"
description: "Orchestrates retail workflow 2 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-002
description: "Orchestrates retail workflow 2 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Retail Workflow 2 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail operational data for workflow 3.
naftiko: "0.5"
info:
label: "Retail Data Query 3"
description: "Retrieves retail operational data for workflow 3."
tags:
- retail
- operations
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: get-data-3
description: "Query retail data for workflow 3."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "retail-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: retail-api
baseUri: "https://api.walgreens.com/retail/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-3
method: GET
Orchestrates retail workflow 4 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 4"
description: "Orchestrates retail workflow 4 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-004
description: "Orchestrates retail workflow 4 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Retail Workflow 4 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail workflow 5 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 5"
description: "Orchestrates retail workflow 5 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-005
description: "Orchestrates retail workflow 5 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Retail Workflow 5 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail operational data for workflow 6.
naftiko: "0.5"
info:
label: "Retail Data Query 6"
description: "Retrieves retail operational data for workflow 6."
tags:
- retail
- operations
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: get-data-6
description: "Query retail data for workflow 6."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "retail-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: retail-api
baseUri: "https://api.walgreens.com/retail/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-6
method: GET
Orchestrates retail workflow 7 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 7"
description: "Orchestrates retail workflow 7 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-007
description: "Orchestrates retail workflow 7 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Retail Workflow 7 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail workflow 8 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 8"
description: "Orchestrates retail workflow 8 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-008
description: "Orchestrates retail workflow 8 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Retail Workflow 8 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail operational data for workflow 9.
naftiko: "0.5"
info:
label: "Retail Data Query 9"
description: "Retrieves retail operational data for workflow 9."
tags:
- retail
- operations
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: get-data-9
description: "Query retail data for workflow 9."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "retail-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: retail-api
baseUri: "https://api.walgreens.com/retail/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-9
method: GET
Orchestrates retail workflow 10 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 10"
description: "Orchestrates retail workflow 10 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-010
description: "Orchestrates retail workflow 10 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Retail Workflow 10 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail workflow 11 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 11"
description: "Orchestrates retail workflow 11 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-011
description: "Orchestrates retail workflow 11 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Retail Workflow 11 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail operational data for workflow 12.
naftiko: "0.5"
info:
label: "Retail Data Query 12"
description: "Retrieves retail operational data for workflow 12."
tags:
- retail
- operations
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: get-data-12
description: "Query retail data for workflow 12."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "retail-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: retail-api
baseUri: "https://api.walgreens.com/retail/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-12
method: GET
Orchestrates retail workflow 13 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 13"
description: "Orchestrates retail workflow 13 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-013
description: "Orchestrates retail workflow 13 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Retail Workflow 13 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail workflow 14 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 14"
description: "Orchestrates retail workflow 14 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-014
description: "Orchestrates retail workflow 14 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Retail Workflow 14 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail operational data for workflow 15.
naftiko: "0.5"
info:
label: "Retail Data Query 15"
description: "Retrieves retail operational data for workflow 15."
tags:
- retail
- operations
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: get-data-15
description: "Query retail data for workflow 15."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "retail-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: retail-api
baseUri: "https://api.walgreens.com/retail/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-15
method: GET
Orchestrates retail workflow 16 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 16"
description: "Orchestrates retail workflow 16 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-016
description: "Orchestrates retail 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 Retail Workflow 16 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail workflow 17 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 17"
description: "Orchestrates retail workflow 17 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-017
description: "Orchestrates retail 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 Retail Workflow 17 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail operational data for workflow 18.
naftiko: "0.5"
info:
label: "Retail Data Query 18"
description: "Retrieves retail operational data for workflow 18."
tags:
- retail
- operations
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: get-data-18
description: "Query retail data for workflow 18."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "retail-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: retail-api
baseUri: "https://api.walgreens.com/retail/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-18
method: GET
Orchestrates retail workflow 19 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 19"
description: "Orchestrates retail workflow 19 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-019
description: "Orchestrates retail 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 Retail Workflow 19 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail workflow 20 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 20"
description: "Orchestrates retail workflow 20 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-020
description: "Orchestrates retail 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 Retail Workflow 20 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 retail operational data for workflow 21.
naftiko: "0.5"
info:
label: "Retail Data Query 21"
description: "Retrieves retail operational data for workflow 21."
tags:
- retail
- operations
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: get-data-21
description: "Query retail data for workflow 21."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "retail-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: retail-api
baseUri: "https://api.walgreens.com/retail/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-21
method: GET
Orchestrates retail workflow 22 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Retail Workflow 22"
description: "Orchestrates retail workflow 22 by coordinating across systems, validating data, and sending notifications."
tags:
- retail
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail
port: 8080
tools:
- name: run-retail-workflow-022
description: "Orchestrates retail 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 Retail Workflow 22 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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.walgreens.com/sales/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: salesforce
path: "/salesforce/account/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-salesforce
method: GET
Retrieves a Salesforce service case.
naftiko: "0.5"
info:
label: "Salesforce Case Lookup"
description: "Retrieves a Salesforce service case."
tags:
- customer-service
- salesforce
capability:
exposes:
- type: mcp
namespace: customer-support
port: 8080
tools:
- name: get-case
description: "Fetch Salesforce case."
inputParameters:
- name: case_number
in: body
type: string
description: "Case number."
call: "salesforce.get-case"
with:
case_number: "{{case_number}}"
outputParameters:
- name: status
type: string
mapping: "$.Status"
- name: priority
type: string
mapping: "$.Priority"
- name: subject
type: string
mapping: "$.Subject"
consumes:
- type: http
namespace: salesforce
baseUri: "https://walgreens.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case/{{case_number}}"
inputParameters:
- name: case_number
in: path
operations:
- name: get-case
method: GET
Retrieves a Salesforce contact by ID, returning name, email, loyalty tier, and prescription count.
naftiko: "0.5"
info:
label: "Salesforce Customer Lookup"
description: "Retrieves a Salesforce contact by ID, returning name, email, loyalty tier, and prescription count."
tags:
- customer-service
- healthcare
- salesforce
capability:
exposes:
- type: mcp
namespace: customer-ops
port: 8080
tools:
- name: get-customer
description: "Fetch Salesforce contact details."
inputParameters:
- name: contact_id
in: body
type: string
description: "Salesforce contact ID."
call: "salesforce.get-contact"
with:
contact_id: "{{contact_id}}"
outputParameters:
- name: name
type: string
mapping: "$.Name"
- name: email
type: string
mapping: "$.Email"
- name: loyalty_tier
type: string
mapping: "$.Loyalty_Tier__c"
consumes:
- type: http
namespace: salesforce
baseUri: "https://walgreens.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
When a new vendor is approved in SAP Ariba, creates a vendor master in SAP, provisions a Box folder, and sends onboarding instructions via Microsoft Outlook.
naftiko: "0.5"
info:
label: "SAP Ariba Vendor Onboarding Orchestrator"
description: "When a new vendor is approved in SAP Ariba, creates a vendor master in SAP, provisions a Box folder, and sends onboarding instructions via Microsoft Outlook."
tags:
- procurement
- vendor-management
- sap-ariba
- sap
- box
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: vendor-onboarding
port: 8080
tools:
- name: onboard-vendor
description: "Create vendor master, document folder, and send onboarding email."
inputParameters:
- name: ariba_vendor_id
in: body
type: string
description: "Ariba vendor registration ID."
steps:
- name: get-vendor
type: call
call: "ariba.get-vendor-registration"
with:
vendor_id: "{{ariba_vendor_id}}"
- name: create-master
type: call
call: "sap.create-vendor-master"
with:
name: "{{get-vendor.company_name}}"
tax_id: "{{get-vendor.tax_number}}"
- name: create-folder
type: call
call: "box.create-folder"
with:
parent_id: "vendor_documents"
name: "{{get-vendor.company_name}}"
- name: send-welcome
type: call
call: "outlook.send-mail"
with:
to: "{{get-vendor.contact_email}}"
subject: "Welcome to Walgreens Vendor Network"
body: "Vendor number: {{create-master.vendor_number}}. Upload docs: {{create-folder.url}}"
consumes:
- type: http
namespace: ariba
baseUri: "https://openapi.ariba.com/api/sourcing/v1"
authentication:
type: bearer
token: "$secrets.ariba_token"
resources:
- name: registrations
path: "/vendors/{{vendor_id}}"
inputParameters:
- name: vendor_id
in: path
operations:
- name: get-vendor-registration
method: GET
- type: http
namespace: sap
baseUri: "https://wag-sap.walgreens.com/sap/opu/odata/sap/API_BUSINESS_PARTNER"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: vendors
path: "/A_BusinessPartner"
operations:
- name: create-vendor-master
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: folders
path: "/folders"
operations:
- name: create-folder
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST
Retrieves a SAP Concur expense report.
naftiko: "0.5"
info:
label: "SAP Concur Travel Expense Lookup"
description: "Retrieves a SAP Concur expense report."
tags:
- finance
- travel
- sap-concur
capability:
exposes:
- type: mcp
namespace: expense-management
port: 8080
tools:
- name: get-expense-report
description: "Fetch SAP Concur expense report."
inputParameters:
- name: report_id
in: body
type: string
description: "Concur report ID."
call: "concur.get-report"
with:
report_id: "{{report_id}}"
outputParameters:
- name: total_amount
type: string
mapping: "$.Total"
- name: approval_status
type: string
mapping: "$.ApprovalStatusName"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-report
method: GET
Retrieves on-hand inventory from SAP for a given material and store location.
naftiko: "0.5"
info:
label: "SAP Inventory Level Lookup"
description: "Retrieves on-hand inventory from SAP for a given material and store location."
tags:
- inventory
- retail
- sap
capability:
exposes:
- type: mcp
namespace: inventory-lookup
port: 8080
tools:
- name: get-inventory-onhand
description: "Fetch SAP on-hand inventory for a material and plant."
inputParameters:
- name: material_id
in: body
type: string
description: "SAP material number or NDC code."
- name: plant_id
in: body
type: string
description: "Store/plant ID."
call: "sap.get-onhand"
with:
material: "{{material_id}}"
plant: "{{plant_id}}"
outputParameters:
- name: quantity_on_hand
type: number
mapping: "$.d.MatlWrhsStkQtyInMatlBaseUnit"
- name: reserved
type: number
mapping: "$.d.ReservedQuantity"
consumes:
- type: http
namespace: sap
baseUri: "https://wag-sap.walgreens.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: stock
path: "/A_MatlStkInAcctMod(Material='{{material}}',Plant='{{plant}}')"
inputParameters:
- name: material
in: path
- name: plant
in: path
operations:
- name: get-onhand
method: GET
Looks up a SAP purchase order by number and returns status, vendor, and total value.
naftiko: "0.5"
info:
label: "SAP Purchase Order Status"
description: "Looks up a SAP purchase order by number and returns status, vendor, and total value."
tags:
- procurement
- supply-chain
- sap
capability:
exposes:
- type: mcp
namespace: procurement-ops
port: 8080
tools:
- name: get-purchase-order
description: "Retrieve a SAP purchase order."
inputParameters:
- name: po_number
in: body
type: string
description: "SAP PO number."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: status
type: string
mapping: "$.d.OverallStatus"
- name: vendor
type: string
mapping: "$.d.Supplier.CompanyName"
- name: total_value
type: string
mapping: "$.d.TotalAmount"
consumes:
- type: http
namespace: sap
baseUri: "https://wag-sap.walgreens.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
Launches a seasonal flu vaccination campaign by pulling eligible patients from Salesforce, scheduling MailChimp email blasts, posting on Instagram, and tracking sign-ups in Google Sheets.
naftiko: "0.5"
info:
label: "Seasonal Flu Campaign Orchestrator"
description: "Launches a seasonal flu vaccination campaign by pulling eligible patients from Salesforce, scheduling MailChimp email blasts, posting on Instagram, and tracking sign-ups in Google Sheets."
tags:
- healthcare
- marketing
- salesforce
- mailchimp
- instagram
- google-sheets
capability:
exposes:
- type: mcp
namespace: flu-campaign
port: 8080
tools:
- name: launch-flu-campaign
description: "Coordinate multi-channel flu vaccination campaign."
inputParameters:
- name: campaign_name
in: body
type: string
description: "Campaign name."
- name: target_segment
in: body
type: string
description: "Patient segment."
steps:
- name: get-eligible-patients
type: call
call: "salesforce.query-patients"
with:
segment: "{{target_segment}}"
- name: send-email
type: call
call: "mailchimp.send-campaign"
with:
list_id: "flu_eligible"
subject: "Get Your Flu Shot at Walgreens"
template: "flu_campaign"
- name: post-instagram
type: call
call: "instagram.create-media"
with:
caption: "Flu season is here. Get vaccinated at Walgreens! #GetYourFluShot"
- name: log-campaign
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "flu_campaign_tracker"
row:
campaign: "{{campaign_name}}"
eligible_patients: "{{get-eligible-patients.totalSize}}"
segment: "{{target_segment}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://walgreens.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: query
path: "/query"
operations:
- name: query-patients
method: GET
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: send-campaign
method: POST
- type: http
namespace: instagram
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: media
path: "/{{ig_user_id}}/media"
inputParameters:
- name: ig_user_id
in: path
operations:
- name: create-media
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: rows
path: "/spreadsheets/{{spreadsheet_id}}/values/Sheet1:append"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: append-row
method: POST
Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.
naftiko: "0.5"
info:
label: "Security Audit Orchestrator"
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
tags:
- security
- servicenow
- compliance
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: run-security-audit-orchestrator
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Security Audit Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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.walgreens.com/it/v1"
authentication:
type: bearer
token: "$secrets.walgreens_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.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves a ServiceNow incident by number."
tags:
- it-ops
- servicenow
capability:
exposes:
- type: mcp
namespace: it-service
port: 8080
tools:
- name: get-incident
description: "Fetch a ServiceNow incident."
inputParameters:
- name: incident_number
in: body
type: string
description: "Incident number."
call: "servicenow.get-incident"
with:
number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result.state"
- name: priority
type: string
mapping: "$.result.priority"
consumes:
- type: http
namespace: servicenow
baseUri: "https://walgreens.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
Uploads a document to SharePoint.
naftiko: "0.5"
info:
label: "SharePoint Document Upload"
description: "Uploads a document to SharePoint."
tags:
- documents
- sharepoint
capability:
exposes:
- type: mcp
namespace: document-mgmt
port: 8080
tools:
- name: upload-document
description: "Upload a file to SharePoint."
inputParameters:
- name: site_id
in: body
type: string
description: "Site ID."
- name: folder_path
in: body
type: string
description: "Folder path."
- name: file_name
in: body
type: string
description: "File name."
call: "sharepoint.upload-file"
with:
site_id: "{{site_id}}"
folder_path: "{{folder_path}}"
file_name: "{{file_name}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
- name: file_name
in: path
operations:
- name: upload-file
method: PUT
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.walgreens.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: sharepoint
path: "/sharepoint/document/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-sharepoint
method: GET
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.walgreens.com/communications/v1"
authentication:
type: bearer
token: "$secrets.walgreens_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.walgreens.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: snowflake
path: "/snowflake/analytics/query/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-snowflake
method: GET
Retrieves foot traffic data for a retail store.
naftiko: "0.5"
info:
label: "Store Foot Traffic Report"
description: "Retrieves foot traffic data for a retail store."
tags:
- operations
- analytics
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: get-store
description: "Retrieves foot traffic data for a retail store."
inputParameters:
- name: entity_id
in: body
type: string
description: "The store foot traffic report identifier."
call: "operations-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: operations-api
baseUri: "https://api.walgreens.com/operations/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: store
path: "/store/foot/traffic/report/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-store
method: GET
Checks store inventory levels in SAP, creates purchase requisitions for low-stock items, and notifies store managers via Microsoft Teams.
naftiko: "0.5"
info:
label: "Store Replenishment Orchestrator"
description: "Checks store inventory levels in SAP, creates purchase requisitions for low-stock items, and notifies store managers via Microsoft Teams."
tags:
- supply-chain
- retail
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: store-replenishment
port: 8080
tools:
- name: replenish-store
description: "Check inventory and create purchase requisitions for low items."
inputParameters:
- name: store_id
in: body
type: string
description: "Store/plant ID."
- name: category
in: body
type: string
description: "Product category."
steps:
- name: check-levels
type: call
call: "sap.get-store-inventory"
with:
plant: "{{store_id}}"
category: "{{category}}"
- name: create-requisition
type: call
call: "sap.create-purchase-requisition"
with:
items: "{{check-levels.below_reorder_items}}"
plant: "{{store_id}}"
- name: notify-manager
type: call
call: "msteams.send-message"
with:
channel_id: "store-{{store_id}}"
text: "Replenishment order for {{check-levels.below_reorder_count}} items. PR: {{create-requisition.pr_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://wag-sap.walgreens.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: stock
path: "/A_MatlStkInAcctMod"
operations:
- name: get-store-inventory
method: GET
- name: requisitions
path: "/A_PurchaseRequisition"
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
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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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
Fetches Twitter mentions for health awareness campaigns and logs results to Google Sheets.
naftiko: "0.5"
info:
label: "Twitter Health Awareness Tracker"
description: "Fetches Twitter mentions for health awareness campaigns and logs results to Google Sheets."
tags:
- marketing
- social-media
- twitter
- google-sheets
capability:
exposes:
- type: mcp
namespace: social-listening
port: 8080
tools:
- name: track-health-mentions
description: "Search Twitter for health campaign mentions and log."
inputParameters:
- name: query
in: body
type: string
description: "Search query."
- name: since_date
in: body
type: string
description: "Start date."
steps:
- name: search-tweets
type: call
call: "twitter.search-recent"
with:
query: "{{query}}"
start_time: "{{since_date}}T00:00:00Z"
- name: log-results
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "wag_social_health"
row:
query: "{{query}}"
count: "{{search-tweets.meta.result_count}}"
consumes:
- type: http
namespace: twitter
baseUri: "https://api.twitter.com/2"
authentication:
type: bearer
token: "$secrets.twitter_bearer_token"
resources:
- name: tweets-search
path: "/tweets/search/recent"
operations:
- name: search-recent
method: GET
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: rows
path: "/spreadsheets/{{spreadsheet_id}}/values/Sheet1:append"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: append-row
method: POST
When a patient books a vaccination, verifies eligibility in Salesforce Health Cloud, schedules the appointment in the pharmacy system, sends confirmation via MailChimp, and logs the appointment in Google Sheets.
naftiko: "0.5"
info:
label: "Vaccination Appointment Orchestrator"
description: "When a patient books a vaccination, verifies eligibility in Salesforce Health Cloud, schedules the appointment in the pharmacy system, sends confirmation via MailChimp, and logs the appointment in Google Sheets."
tags:
- healthcare
- pharmacy
- salesforce
- mailchimp
- google-sheets
capability:
exposes:
- type: mcp
namespace: vaccination-ops
port: 8080
tools:
- name: book-vaccination
description: "Verify eligibility, schedule, confirm, and log vaccination appointment."
inputParameters:
- name: patient_id
in: body
type: string
description: "Patient contact ID."
- name: vaccine_type
in: body
type: string
description: "Vaccine type (e.g., 'flu', 'covid')."
- name: preferred_date
in: body
type: string
description: "Preferred date YYYY-MM-DD."
- name: store_id
in: body
type: string
description: "Walgreens store ID."
steps:
- name: get-patient
type: call
call: "salesforce.get-contact"
with:
contact_id: "{{patient_id}}"
- name: check-eligibility
type: call
call: "salesforce.check-vaccine-eligibility"
with:
contact_id: "{{patient_id}}"
vaccine_type: "{{vaccine_type}}"
- name: send-confirmation
type: call
call: "mailchimp.send-transactional"
with:
email: "{{get-patient.Email}}"
template: "vaccination_confirmation"
merge_vars:
first_name: "{{get-patient.FirstName}}"
vaccine: "{{vaccine_type}}"
date: "{{preferred_date}}"
store: "{{store_id}}"
- name: log-appointment
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "vaccination_tracker"
row:
patient: "{{patient_id}}"
vaccine: "{{vaccine_type}}"
date: "{{preferred_date}}"
store: "{{store_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://walgreens.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
- name: check-vaccine-eligibility
method: GET
- type: http
namespace: mailchimp
baseUri: "https://mandrillapp.com/api/1.0"
authentication:
type: bearer
token: "$secrets.mailchimp_transactional_key"
resources:
- name: messages
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: rows
path: "/spreadsheets/{{spreadsheet_id}}/values/Sheet1:append"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: append-row
method: POST
Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.
naftiko: "0.5"
info:
label: "Vendor Contract Renewal Pipeline"
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
tags:
- procurement
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-vendor-contract-renewal-pipeline
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.walgreens.com/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.walgreens.com/v2"
authentication:
type: bearer
token: "$secrets.walgreens_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 vendor lead time for procurement planning.
naftiko: "0.5"
info:
label: "Vendor Lead Time Lookup"
description: "Retrieves vendor lead time for procurement planning."
tags:
- procurement
- supply-chain
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-vendor
description: "Retrieves vendor lead time for procurement planning."
inputParameters:
- name: entity_id
in: body
type: string
description: "The vendor lead time lookup identifier."
call: "procurement-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: procurement-api
baseUri: "https://api.walgreens.com/procurement/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: vendor
path: "/vendor/lead/time/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-vendor
method: GET
Retrieves employee details from Workday by worker ID.
naftiko: "0.5"
info:
label: "Workday Employee Directory Lookup"
description: "Retrieves employee details from Workday by worker ID."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr-directory
port: 8080
tools:
- name: get-employee-details
description: "Fetch Workday employee profile."
inputParameters:
- name: worker_id
in: body
type: string
description: "Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.worker.name.formatted"
- name: title
type: string
mapping: "$.worker.position.title"
- name: department
type: string
mapping: "$.worker.organization.name"
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.walgreens.com/hr/v1"
authentication:
type: bearer
token: "$secrets.walgreens_api_token"
resources:
- name: workday
path: "/workday/employee/profile/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-workday
method: GET
Creates a Zoom meeting and sends invitations via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Zoom Meeting Scheduler"
description: "Creates a Zoom meeting and sends invitations via Microsoft Outlook."
tags:
- communications
- zoom
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: meeting-management
port: 8080
tools:
- name: schedule-zoom-meeting
description: "Create Zoom meeting and email invites."
inputParameters:
- name: topic
in: body
type: string
description: "Meeting topic."
- name: start_time
in: body
type: string
description: "ISO 8601 start time."
- name: attendees
in: body
type: string
description: "Comma-separated emails."
steps:
- name: create-meeting
type: call
call: "zoom.create-meeting"
with:
topic: "{{topic}}"
start_time: "{{start_time}}"
- name: send-invites
type: call
call: "outlook.send-mail"
with:
to: "{{attendees}}"
subject: "Zoom: {{topic}}"
body: "Join: {{create-meeting.join_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_token"
resources:
- name: meetings
path: "/users/me/meetings"
operations:
- name: create-meeting
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST