Walgreens Capabilities

Naftiko 0.5 capability definitions for Walgreens - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

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