Chick-fil-A Capabilities

Naftiko 0.5 capability definitions for Chick-fil-A - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Triggers an Alteryx analytics workflow for Chick-fil-A sales forecasting or customer segmentation and returns the job status.

naftiko: "0.5"
info:
  label: "Alteryx Analytics Workflow Trigger"
  description: "Triggers an Alteryx analytics workflow for Chick-fil-A sales forecasting or customer segmentation and returns the job status."
  tags:
    - analytics
    - alteryx
    - data-science
    - forecasting
capability:
  exposes:
    - type: mcp
      namespace: analytics-workflows
      port: 8080
      tools:
        - name: trigger-alteryx-workflow
          description: "Trigger an Alteryx analytics workflow by workflow ID."
          inputParameters:
            - name: workflow_id
              in: body
              type: string
              description: "The Alteryx workflow ID."
          call: "alteryx.run-workflow"
          with:
            workflow_id: "{{workflow_id}}"
  consumes:
    - type: http
      namespace: alteryx
      baseUri: "https://chickfila-alteryx.com/api/v3"
      authentication:
        type: bearer
        token: "$secrets.alteryx_token"
      resources:
        - name: workflows
          path: "/workflows/{{workflow_id}}/jobs"
          inputParameters:
            - name: workflow_id
              in: path
          operations:
            - name: run-workflow
              method: POST

Executes an analytics query against Chick-fil-A's Amazon Redshift cluster for customer behavior analysis, menu performance, and operational metrics.

naftiko: "0.5"
info:
  label: "Amazon Redshift Analytics Query"
  description: "Executes an analytics query against Chick-fil-A's Amazon Redshift cluster for customer behavior analysis, menu performance, and operational metrics."
  tags:
    - data-warehouse
    - amazon-redshift
    - analytics
    - customer-insights
capability:
  exposes:
    - type: mcp
      namespace: redshift-analytics
      port: 8080
      tools:
        - name: run-analytics-query
          description: "Execute an analytics query against Amazon Redshift."
          inputParameters:
            - name: sql
              in: body
              type: string
              description: "The SQL query to execute."
            - name: cluster_id
              in: body
              type: string
              description: "The Redshift cluster identifier."
          call: "redshift.execute-statement"
          with:
            ClusterIdentifier: "{{cluster_id}}"
            Sql: "{{sql}}"
            Database: "chickfila_analytics"
  consumes:
    - type: http
      namespace: redshift
      baseUri: "https://redshift-data.us-east-1.amazonaws.com"
      authentication:
        type: aws-sigv4
        access_key: "$secrets.aws_access_key"
        secret_key: "$secrets.aws_secret_key"
      resources:
        - name: statements
          path: "/execute-statement"
          operations:
            - name: execute-statement
              method: POST

Processes Chick-fil-A One rewards tier upgrades by checking spend from Snowflake, updating the profile in MongoDB, sending congratulations via push notification, and logging in Salesforce.

naftiko: "0.5"
info:
  label: "App Rewards Tier Upgrade Pipeline"
  description: "Processes Chick-fil-A One rewards tier upgrades by checking spend from Snowflake, updating the profile in MongoDB, sending congratulations via push notification, and logging in Salesforce."
  tags:
    - loyalty
    - rewards
    - snowflake
    - mongodb
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: tier-upgrade
      port: 8080
      tools:
        - name: process-tier-upgrade
          description: "Orchestrate rewards tier upgrade across Snowflake, MongoDB, push notification, and Salesforce."
          inputParameters:
            - name: user_id
              in: body
              type: string
              description: "App user ID."
          steps:
            - name: check-spend
              type: call
              call: "snowflake.query-spend"
              with:
                statement: "SELECT * FROM APP_USER_SPEND WHERE user_id = '{{user_id}}'"
                warehouse: "CFA_LOYALTY_WH"
            - name: update-tier
              type: call
              call: "mongodb.update-user"
              with:
                collection: "app_users"
                filter: "{\"user_id\": \"{{user_id}}\"}"
                update: "{\"$set\": {\"membership_tier\": \"{{check-spend.new_tier}}\"}}"
            - name: send-notification
              type: call
              call: "push.send-notification"
              with:
                user_id: "{{user_id}}"
                title: "You've been upgraded!"
                body: "Congratulations! You've reached {{check-spend.new_tier}} status. Enjoy new rewards!"
            - name: log-upgrade
              type: call
              call: "salesforce.create-activity"
              with:
                contact_id: "{{user_id}}"
                subject: "Tier upgrade to {{check-spend.new_tier}}"
                description: "Annual spend: ${{check-spend.annual_spend}}. New tier: {{check-spend.new_tier}}."
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query-spend
              method: POST
    - type: http
      namespace: mongodb
      baseUri: "https://data.mongodb-api.chickfila.com/app/data-cfa/endpoint/data/v1"
      authentication:
        type: bearer
        token: "$secrets.mongodb_api_key"
      resources:
        - name: update
          path: "/action/updateOne"
          operations:
            - name: update-user
              method: POST
    - type: http
      namespace: push
      baseUri: "https://push-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.push_api_token"
      resources:
        - name: notifications
          path: "/notifications"
          operations:
            - name: send-notification
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://chickfila.my.salesforce.com/services/data/v59.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: activities
          path: "/sobjects/Activity__c"
          operations:
            - name: create-activity
              method: POST

Retrieves active CloudWatch alarms for Chick-fil-A's digital ordering platform including mobile APIs, kitchen systems, and cloud infrastructure.

naftiko: "0.5"
info:
  label: "AWS CloudWatch Platform Alarms"
  description: "Retrieves active CloudWatch alarms for Chick-fil-A's digital ordering platform including mobile APIs, kitchen systems, and cloud infrastructure."
  tags:
    - monitoring
    - alarms
    - cloudwatch
    - aws
capability:
  exposes:
    - type: mcp
      namespace: cloud-alarms
      port: 8080
      tools:
        - name: get-active-alarms
          description: "Fetch active CloudWatch alarms for the digital platform."
          inputParameters:
            - name: alarm_prefix
              in: body
              type: string
              description: "Alarm name prefix filter."
          call: "cloudwatch.describe-alarms"
          with:
            alarm_name_prefix: "{{alarm_prefix}}"
            state_value: "ALARM"
          outputParameters:
            - name: alarms
              type: array
              mapping: "$.MetricAlarms"
            - name: count
              type: integer
              mapping: "$.MetricAlarms.length"
  consumes:
    - type: http
      namespace: cloudwatch
      baseUri: "https://monitoring.us-east-1.amazonaws.com"
      authentication:
        type: aws-sig-v4
        access_key: "$secrets.aws_access_key"
        secret_key: "$secrets.aws_secret_key"
      resources:
        - name: alarms
          path: "/"
          operations:
            - name: describe-alarms
              method: POST

Checks the latest build pipeline status in Azure DevOps for Chick-fil-A CI/CD workflows, returning build result, duration, and triggered-by information.

naftiko: "0.5"
info:
  label: "Azure DevOps Build Pipeline Status"
  description: "Checks the latest build pipeline status in Azure DevOps for Chick-fil-A CI/CD workflows, returning build result, duration, and triggered-by information."
  tags:
    - ci-cd
    - azure-devops
    - build-pipelines
capability:
  exposes:
    - type: mcp
      namespace: devops-builds
      port: 8080
      tools:
        - name: get-build-status
          description: "Retrieve the latest build status for an Azure DevOps pipeline."
          inputParameters:
            - name: project
              in: body
              type: string
              description: "The Azure DevOps project name."
            - name: pipeline_id
              in: body
              type: string
              description: "The build pipeline definition ID."
          call: "azuredevops.get-builds"
          with:
            project: "{{project}}"
            definitions: "{{pipeline_id}}"
            top: "1"
  consumes:
    - type: http
      namespace: azuredevops
      baseUri: "https://dev.azure.com/chickfila"
      authentication:
        type: basic
        username: ""
        password: "$secrets.azuredevops_pat"
      resources:
        - name: builds
          path: "/{{project}}/_apis/build/builds"
          inputParameters:
            - name: project
              in: path
            - name: definitions
              in: query
            - name: top
              in: query
          operations:
            - name: get-builds
              method: GET

Deploys an Azure Machine Learning model endpoint for Chick-fil-A predictive analytics, returning the endpoint URI and deployment status.

naftiko: "0.5"
info:
  label: "Azure Machine Learning Model Deployment"
  description: "Deploys an Azure Machine Learning model endpoint for Chick-fil-A predictive analytics, returning the endpoint URI and deployment status."
  tags:
    - machine-learning
    - azure-machine-learning
    - model-deployment
    - ai
capability:
  exposes:
    - type: mcp
      namespace: ml-deployment
      port: 8080
      tools:
        - name: deploy-ml-model
          description: "Deploy an Azure ML model to a managed online endpoint."
          inputParameters:
            - name: model_name
              in: body
              type: string
              description: "The registered model name."
            - name: endpoint_name
              in: body
              type: string
              description: "The target endpoint name."
          call: "azureml.create-deployment"
          with:
            model_name: "{{model_name}}"
            endpoint_name: "{{endpoint_name}}"
  consumes:
    - type: http
      namespace: azureml
      baseUri: "https://ml.azure.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.azure_ml_token"
      resources:
        - name: deployments
          path: "/subscriptions/{{sub_id}}/resourceGroups/{{rg}}/providers/Microsoft.MachineLearningServices/workspaces/{{workspace}}/onlineEndpoints/{{endpoint_name}}/deployments"
          inputParameters:
            - name: endpoint_name
              in: path
          operations:
            - name: create-deployment
              method: PUT

Queries the Backstage service catalog for Chick-fil-A microservice metadata, returning service owner, lifecycle stage, and API documentation links.

naftiko: "0.5"
info:
  label: "Backstage Service Catalog Lookup"
  description: "Queries the Backstage service catalog for Chick-fil-A microservice metadata, returning service owner, lifecycle stage, and API documentation links."
  tags:
    - developer-portal
    - backstage
    - service-catalog
    - platform-engineering
capability:
  exposes:
    - type: mcp
      namespace: service-catalog
      port: 8080
      tools:
        - name: get-service-info
          description: "Retrieve Backstage service catalog entity information."
          inputParameters:
            - name: service_name
              in: body
              type: string
              description: "The service name in the catalog."
          call: "backstage.get-entity"
          with:
            kind: "Component"
            name: "{{service_name}}"
  consumes:
    - type: http
      namespace: backstage
      baseUri: "https://backstage.chickfila.com/api"
      authentication:
        type: bearer
        token: "$secrets.backstage_token"
      resources:
        - name: entities
          path: "/catalog/entities/by-name/{{kind}}/default/{{name}}"
          inputParameters:
            - name: kind
              in: path
            - name: name
              in: path
          operations:
            - name: get-entity
              method: GET

Retrieves a document from Box by file ID, returning file metadata, download URL, and sharing permissions for Chick-fil-A corporate document management.

naftiko: "0.5"
info:
  label: "Box Document Retrieval"
  description: "Retrieves a document from Box by file ID, returning file metadata, download URL, and sharing permissions for Chick-fil-A corporate document management."
  tags:
    - document-management
    - box
    - corporate
capability:
  exposes:
    - type: mcp
      namespace: doc-management
      port: 8080
      tools:
        - name: get-document
          description: "Retrieve a Box document by file ID including metadata and download link."
          inputParameters:
            - name: file_id
              in: body
              type: string
              description: "The Box file ID."
          call: "box.get-file"
          with:
            file_id: "{{file_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.name"
            - name: download_url
              type: string
              mapping: "$.shared_link.download_url"
  consumes:
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files/{{file_id}}"
          inputParameters:
            - name: file_id
              in: path
          operations:
            - name: get-file
              method: GET

Automates the daily breakfast-to-lunch menu changeover process, coordinating POS system updates, kitchen display changes, and drive-thru menu board switches.

naftiko: "0.5"
info:
  label: "Breakfast to Lunch Menu Transition Orchestrator"
  description: "Automates the daily breakfast-to-lunch menu changeover process, coordinating POS system updates, kitchen display changes, and drive-thru menu board switches."
  tags:
    - restaurant-operations
    - menu-management
    - pos-system
capability:
  exposes:
    - type: mcp
      namespace: menu-transition
      port: 8080
      tools:
        - name: trigger-menu-transition
          description: "Trigger the breakfast to lunch menu transition for a restaurant."
          inputParameters:
            - name: restaurant_id
              in: body
              type: string
              description: "The restaurant location identifier."
            - name: transition_time
              in: body
              type: string
              description: "Scheduled transition time in HH:MM format."
          call: "pos-management-api.switch-menu"
          with:
            restaurant: "{{restaurant_id}}"
            time: "{{transition_time}}"
          outputParameters:
            - name: pos_updated
              type: boolean
              mapping: "$.transition.posUpdated"
            - name: kitchen_display_updated
              type: boolean
              mapping: "$.transition.kitchenDisplayUpdated"
            - name: menu_board_updated
              type: boolean
              mapping: "$.transition.menuBoardUpdated"
  consumes:
    - type: http
      namespace: pos-management-api
      baseUri: "https://api.chick-fil-a.com/pos/v1"
      authentication:
        type: bearer
        token: "$secrets.chickfila_pos_management_token"
      resources:
        - name: menu-transitions
          path: "/restaurants/{{restaurant}}/menu-transitions"
          inputParameters:
            - name: restaurant
              in: path
          operations:
            - name: switch-menu
              method: POST

When a catering order is placed in Salesforce, creates inventory reservations in Oracle, schedules delivery logistics, and sends confirmation to the customer via MailChimp and the catering team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Catering Order Fulfillment Orchestrator"
  description: "When a catering order is placed in Salesforce, creates inventory reservations in Oracle, schedules delivery logistics, and sends confirmation to the customer via MailChimp and the catering team via Microsoft Teams."
  tags:
    - catering
    - salesforce
    - oracle
    - mailchimp
    - microsoft-teams
    - order-management
capability:
  exposes:
    - type: mcp
      namespace: catering-ops
      port: 8080
      tools:
        - name: fulfill-catering-order
          description: "Orchestrate a catering order from Salesforce through inventory, logistics, and customer notification."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The Salesforce catering order ID."
          steps:
            - name: get-order-details
              type: call
              call: "salesforce.get-order"
              with:
                order_id: "{{order_id}}"
            - name: reserve-inventory
              type: call
              call: "oracle.create-reservation"
              with:
                items: "{{get-order-details.line_items}}"
                warehouse_id: "{{get-order-details.fulfillment_center}}"
                delivery_date: "{{get-order-details.delivery_date}}"
            - name: send-customer-confirmation
              type: call
              call: "mailchimp.send-transactional"
              with:
                template_name: "catering_confirmation"
                to_email: "{{get-order-details.customer_email}}"
                merge_vars: "{order_id: '{{order_id}}', delivery_date: '{{get-order-details.delivery_date}}', total: '{{get-order-details.total_amount}}'}"
            - name: notify-catering-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "catering_operations"
                channel_id: "new_orders"
                text: "New catering order {{order_id}} for {{get-order-details.delivery_date}}. Customer: {{get-order-details.customer_name}}. Total: ${{get-order-details.total_amount}}. Inventory reserved: {{reserve-inventory.reservation_id}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://chickfila.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: orders
          path: "/sobjects/Order/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: get-order
              method: GET
    - type: http
      namespace: oracle
      baseUri: "https://chickfila-erp.oracle.com/fscmRestApi/resources/v1"
      authentication:
        type: basic
        username: "$secrets.oracle_user"
        password: "$secrets.oracle_password"
      resources:
        - name: reservations
          path: "/inventoryReservations"
          operations:
            - name: create-reservation
              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: transactional
          path: "/messages/send-template"
          operations:
            - name: send-transactional
              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-channel-message
              method: POST

Manages catering orders by validating availability in the POS, scheduling delivery logistics, sending confirmation via email, and creating a Salesforce opportunity.

naftiko: "0.5"
info:
  label: "Catering Order Management Orchestrator"
  description: "Manages catering orders by validating availability in the POS, scheduling delivery logistics, sending confirmation via email, and creating a Salesforce opportunity."
  tags:
    - catering
    - order-management
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: catering-orders
      port: 8080
      tools:
        - name: process-catering-order
          description: "Orchestrate catering order across POS, logistics, email, and Salesforce."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "Catering order ID."
            - name: store_id
              in: body
              type: string
              description: "Fulfilling restaurant."
            - name: delivery_date
              in: body
              type: string
              description: "Delivery date."
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
          steps:
            - name: validate-order
              type: call
              call: "pos.validate-catering"
              with:
                order_id: "{{order_id}}"
                store_id: "{{store_id}}"
            - name: schedule-delivery
              type: call
              call: "logistics.schedule-delivery"
              with:
                order_id: "{{order_id}}"
                date: "{{delivery_date}}"
                store_id: "{{store_id}}"
            - name: send-confirmation
              type: call
              call: "ses.send-email"
              with:
                to: "{{customer_email}}"
                subject: "Chick-fil-A Catering Confirmation - Order #{{order_id}}"
                body: "Your catering order has been confirmed for {{delivery_date}}. Total: ${{validate-order.total}}."
            - name: create-opportunity
              type: call
              call: "salesforce.create-opportunity"
              with:
                name: "Catering: {{order_id}}"
                amount: "{{validate-order.total}}"
                stage: "Confirmed"
  consumes:
    - type: http
      namespace: pos
      baseUri: "https://pos-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.pos_api_token"
      resources:
        - name: catering
          path: "/catering/validate"
          operations:
            - name: validate-catering
              method: POST
    - type: http
      namespace: logistics
      baseUri: "https://logistics-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.logistics_api_token"
      resources:
        - name: deliveries
          path: "/deliveries"
          operations:
            - name: schedule-delivery
              method: POST
    - type: http
      namespace: ses
      baseUri: "https://email.us-east-1.amazonaws.com"
      authentication:
        type: aws-sig-v4
        access_key: "$secrets.aws_access_key"
        secret_key: "$secrets.aws_secret_key"
      resources:
        - name: emails
          path: "/v2/email/outbound-emails"
          operations:
            - name: send-email
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://chickfila.my.salesforce.com/services/data/v59.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity"
          operations:
            - name: create-opportunity
              method: POST

Retrieves Cloudflare DNS records for Chick-fil-A domain zones, returning record type, value, TTL, and proxy status.

naftiko: "0.5"
info:
  label: "Cloudflare DNS Record Lookup"
  description: "Retrieves Cloudflare DNS records for Chick-fil-A domain zones, returning record type, value, TTL, and proxy status."
  tags:
    - infrastructure
    - cloudflare
    - dns
    - networking
capability:
  exposes:
    - type: mcp
      namespace: dns-management
      port: 8080
      tools:
        - name: get-dns-records
          description: "List Cloudflare DNS records for a zone."
          inputParameters:
            - name: zone_id
              in: body
              type: string
              description: "The Cloudflare zone ID."
          call: "cloudflare.list-dns-records"
          with:
            zone_id: "{{zone_id}}"
  consumes:
    - type: http
      namespace: cloudflare
      baseUri: "https://api.cloudflare.com/client/v4"
      authentication:
        type: bearer
        token: "$secrets.cloudflare_token"
      resources:
        - name: dns-records
          path: "/zones/{{zone_id}}/dns_records"
          inputParameters:
            - name: zone_id
              in: path
          operations:
            - name: list-dns-records
              method: GET

Manages community event sponsorships by creating Salesforce opportunities, scheduling catering via the POS, posting to Instagram, and tracking budgets in Google Sheets.

naftiko: "0.5"
info:
  label: "Community Event Sponsorship Orchestrator"
  description: "Manages community event sponsorships by creating Salesforce opportunities, scheduling catering via the POS, posting to Instagram, and tracking budgets in Google Sheets."
  tags:
    - community
    - sponsorship
    - salesforce
    - instagram
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: community-events
      port: 8080
      tools:
        - name: process-sponsorship
          description: "Orchestrate community event sponsorship across Salesforce, POS, Instagram, and Google Sheets."
          inputParameters:
            - name: event_name
              in: body
              type: string
              description: "Community event name."
            - name: store_id
              in: body
              type: string
              description: "Sponsoring restaurant store number."
            - name: budget
              in: body
              type: number
              description: "Sponsorship budget."
          steps:
            - name: create-opportunity
              type: call
              call: "salesforce.create-opportunity"
              with:
                name: "Sponsorship: {{event_name}}"
                amount: "{{budget}}"
                store: "{{store_id}}"
            - name: setup-catering
              type: call
              call: "pos.create-catering-order"
              with:
                store_id: "{{store_id}}"
                event: "{{event_name}}"
                budget: "{{budget}}"
            - name: social-post
              type: call
              call: "instagram.create-post"
              with:
                caption: "Proud to support {{event_name}} in our community! #ChickfilA #Community #EatMoreChicken"
            - name: update-budget
              type: call
              call: "googlesheets.update-sheet"
              with:
                spreadsheet_id: "community-sponsorship-tracker"
                range: "Sponsorships!A:E"
                values: "[\"{{event_name}}\", \"{{store_id}}\", {{budget}}, \"{{create-opportunity.id}}\"]"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://chickfila.my.salesforce.com/services/data/v59.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity"
          operations:
            - name: create-opportunity
              method: POST
    - type: http
      namespace: pos
      baseUri: "https://pos-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.pos_api_token"
      resources:
        - name: catering
          path: "/catering/orders"
          operations:
            - name: create-catering-order
              method: POST
    - type: http
      namespace: instagram
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.instagram_token"
      resources:
        - name: media
          path: "/$secrets.instagram_account_id/media"
          operations:
            - name: create-post
              method: POST
    - type: http
      namespace: googlesheets
      baseUri: "https://sheets.googleapis.com/v4"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/spreadsheets/{{spreadsheet_id}}/values/{{range}}:append"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: update-sheet
              method: POST

Searches Chick-fil-A's Confluence knowledge base for operational procedures and training materials by keyword.

naftiko: "0.5"
info:
  label: "Confluence Knowledge Base Search"
  description: "Searches Chick-fil-A's Confluence knowledge base for operational procedures and training materials by keyword."
  tags:
    - knowledge-management
    - confluence
    - training
capability:
  exposes:
    - type: mcp
      namespace: knowledge-base
      port: 8080
      tools:
        - name: search-knowledge-base
          description: "Search Confluence for Chick-fil-A operational procedures and training materials matching a keyword query."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The search query string."
          call: "confluence.search-content"
          with:
            cql: "type=page AND space=OPS AND text~'{{query}}'"
            limit: "10"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://chickfila.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: search
          path: "/search"
          inputParameters:
            - name: cql
              in: query
            - name: limit
              in: query
          operations:
            - name: search-content
              method: GET

Coordinates curbside pickup operations including guest arrival detection, order preparation timing, and team member dispatch for seamless handoff.

naftiko: "0.5"
info:
  label: "Curbside Pickup Coordination Orchestrator"
  description: "Coordinates curbside pickup operations including guest arrival detection, order preparation timing, and team member dispatch for seamless handoff."
  tags:
    - restaurant-operations
    - curbside
    - order-fulfillment
capability:
  exposes:
    - type: mcp
      namespace: curbside-pickup
      port: 8080
      tools:
        - name: coordinate-curbside-pickup
          description: "Coordinate a curbside pickup from guest arrival to order handoff."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The mobile order identifier."
            - name: restaurant_id
              in: body
              type: string
              description: "The restaurant location identifier."
            - name: parking_spot
              in: body
              type: string
              description: "The designated curbside parking spot number."
          call: "curbside-api.initiate-pickup"
          with:
            order: "{{order_id}}"
            restaurant: "{{restaurant_id}}"
            spot: "{{parking_spot}}"
          outputParameters:
            - name: estimated_delivery_time
              type: string
              mapping: "$.pickup.estimatedDeliveryTime"
            - name: assigned_team_member
              type: string
              mapping: "$.pickup.assignedTeamMember"
            - name: order_status
              type: string
              mapping: "$.pickup.status"
  consumes:
    - type: http
      namespace: curbside-api
      baseUri: "https://api.chick-fil-a.com/curbside/v1"
      authentication:
        type: bearer
        token: "$secrets.chickfila_curbside_token"
      resources:
        - name: pickups
          path: "/restaurants/{{restaurant}}/pickups"
          inputParameters:
            - name: restaurant
              in: path
          operations:
            - name: initiate-pickup
              method: POST

Collects customer feedback from Google Forms, analyzes sentiment using Azure Machine Learning, stores results in Databricks, and notifies the customer experience team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Customer Feedback Collection Pipeline"
  description: "Collects customer feedback from Google Forms, analyzes sentiment using Azure Machine Learning, stores results in Databricks, and notifies the customer experience team in Microsoft Teams."
  tags:
    - customer-experience
    - google-forms
    - azure-machine-learning
    - databricks
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: customer-feedback
      port: 8080
      tools:
        - name: process-customer-feedback
          description: "Process customer feedback through sentiment analysis and notify the CX team."
          inputParameters:
            - name: form_id
              in: body
              type: string
              description: "The Google Forms form ID."
            - name: response_id
              in: body
              type: string
              description: "The form response ID to process."
          steps:
            - name: get-form-response
              type: call
              call: "googleforms.get-response"
              with:
                form_id: "{{form_id}}"
                response_id: "{{response_id}}"
            - name: analyze-sentiment
              type: call
              call: "azureml.invoke-endpoint"
              with:
                endpoint: "sentiment_analysis"
                text: "{{get-form-response.feedback_text}}"
            - name: store-results
              type: call
              call: "databricks.invoke-endpoint"
              with:
                endpoint: "feedback_ingestion"
                inputs: "{response_id: '{{response_id}}', sentiment: '{{analyze-sentiment.sentiment}}', score: {{analyze-sentiment.score}}}"
            - name: notify-cx-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "customer_experience"
                channel_id: "feedback_alerts"
                text: "New feedback ({{analyze-sentiment.sentiment}}): Score {{analyze-sentiment.score}}. Restaurant: {{get-form-response.restaurant_id}}. Summary: {{get-form-response.feedback_text}}"
  consumes:
    - type: http
      namespace: googleforms
      baseUri: "https://forms.googleapis.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_forms_token"
      resources:
        - name: responses
          path: "/forms/{{form_id}}/responses/{{response_id}}"
          inputParameters:
            - name: form_id
              in: path
            - name: response_id
              in: path
          operations:
            - name: get-response
              method: GET
    - type: http
      namespace: azureml
      baseUri: "https://chickfila-ml.eastus.inference.ml.azure.com"
      authentication:
        type: bearer
        token: "$secrets.azure_ml_token"
      resources:
        - name: endpoints
          path: "/score"
          operations:
            - name: invoke-endpoint
              method: POST
    - type: http
      namespace: databricks
      baseUri: "https://chickfila.cloud.databricks.com/serving-endpoints"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: serving-endpoints
          path: "/{{endpoint}}/invocations"
          inputParameters:
            - name: endpoint
              in: path
          operations:
            - name: invoke-endpoint
              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-channel-message
              method: POST

Processes CCPA data requests by querying MongoDB for app data, Snowflake for transaction history, Salesforce for CRM records, and logging compliance in ServiceNow.

naftiko: "0.5"
info:
  label: "Customer Privacy Request Orchestrator"
  description: "Processes CCPA data requests by querying MongoDB for app data, Snowflake for transaction history, Salesforce for CRM records, and logging compliance in ServiceNow."
  tags:
    - privacy
    - compliance
    - mongodb
    - snowflake
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: privacy-requests
      port: 8080
      tools:
        - name: process-privacy-request
          description: "Orchestrate customer privacy request across MongoDB, Snowflake, Salesforce, and ServiceNow."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "Customer ID."
            - name: request_type
              in: body
              type: string
              description: "Request type (access, delete, portability)."
          steps:
            - name: get-app-data
              type: call
              call: "mongodb.find-customer"
              with:
                collection: "app_users"
                filter: "{\"user_id\": \"{{customer_id}}\"}"
            - name: get-transactions
              type: call
              call: "snowflake.query-customer"
              with:
                statement: "SELECT * FROM CUSTOMER_TRANSACTIONS WHERE customer_id = '{{customer_id}}'"
                warehouse: "CFA_PRIVACY_WH"
            - name: get-crm-data
              type: call
              call: "salesforce.get-contact"
              with:
                customer_id: "{{customer_id}}"
            - name: log-compliance
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Privacy request: {{request_type}} - Customer {{customer_id}}"
                category: "privacy_compliance"
                assigned_group: "Privacy_Operations"
                description: "Type: {{request_type}}. App data: {{get-app-data.found}}. Transactions: {{get-transactions.row_count}}. CRM: {{get-crm-data.found}}."
  consumes:
    - type: http
      namespace: mongodb
      baseUri: "https://data.mongodb-api.chickfila.com/app/data-cfa/endpoint/data/v1"
      authentication:
        type: bearer
        token: "$secrets.mongodb_api_key"
      resources:
        - name: find
          path: "/action/findOne"
          operations:
            - name: find-customer
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query-customer
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://chickfila.my.salesforce.com/services/data/v59.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: contacts
          path: "/sobjects/Contact/{{customer_id}}"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: get-contact
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://chickfila.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

Forecasts daily chicken breast and nugget supply requirements per restaurant using historical sales data, weather patterns, and local event calendars.

naftiko: "0.5"
info:
  label: "Daily Chicken Supply Forecasting Pipeline"
  description: "Forecasts daily chicken breast and nugget supply requirements per restaurant using historical sales data, weather patterns, and local event calendars."
  tags:
    - supply-chain
    - forecasting
    - inventory
capability:
  exposes:
    - type: mcp
      namespace: supply-forecast
      port: 8080
      tools:
        - name: generate-supply-forecast
          description: "Generate daily chicken supply forecast for a restaurant."
          inputParameters:
            - name: restaurant_id
              in: body
              type: string
              description: "The restaurant location identifier."
            - name: forecast_date
              in: body
              type: string
              description: "The date to forecast in YYYY-MM-DD format."
          call: "forecasting-api.get-forecast"
          with:
            restaurant: "{{restaurant_id}}"
            date: "{{forecast_date}}"
          outputParameters:
            - name: breast_fillets_needed
              type: integer
              mapping: "$.forecast.breastFillets"
            - name: nuggets_pounds_needed
              type: number
              mapping: "$.forecast.nuggetsPounds"
            - name: confidence_score
              type: number
              mapping: "$.forecast.confidenceScore"
  consumes:
    - type: http
      namespace: forecasting-api
      baseUri: "https://api.chick-fil-a.com/supply-chain/v1"
      authentication:
        type: bearer
        token: "$secrets.chickfila_supply_chain_token"
      resources:
        - name: forecasts
          path: "/restaurants/{{restaurant}}/forecasts"
          inputParameters:
            - name: restaurant
              in: path
          operations:
            - name: get-forecast
              method: POST

Reconciles daily sales by pulling POS transaction data, comparing with Stripe payment records, flagging discrepancies in Snowflake, and creating ServiceNow tickets for resolution.

naftiko: "0.5"
info:
  label: "Daily Sales Reconciliation Pipeline"
  description: "Reconciles daily sales by pulling POS transaction data, comparing with Stripe payment records, flagging discrepancies in Snowflake, and creating ServiceNow tickets for resolution."
  tags:
    - finance
    - reconciliation
    - stripe
    - snowflake
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: sales-reconciliation
      port: 8080
      tools:
        - name: reconcile-daily-sales
          description: "Orchestrate daily sales reconciliation across POS, Stripe, Snowflake, and ServiceNow."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Restaurant store number."
            - name: business_date
              in: body
              type: string
              description: "Business date in YYYY-MM-DD."
          steps:
            - name: get-pos-totals
              type: call
              call: "pos.get-daily-totals"
              with:
                store_id: "{{store_id}}"
                date: "{{business_date}}"
            - name: get-payment-totals
              type: call
              call: "stripe.get-daily-summary"
              with:
                store_id: "{{store_id}}"
                date: "{{business_date}}"
            - name: log-reconciliation
              type: call
              call: "snowflake.insert-recon"
              with:
                statement: "INSERT INTO DAILY_RECONCILIATION VALUES ('{{store_id}}', '{{business_date}}', {{get-pos-totals.total}}, {{get-payment-totals.total}}, {{get-pos-totals.total}} - {{get-payment-totals.total}})"
                warehouse: "CFA_FINANCE_WH"
            - name: flag-discrepancy
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Sales discrepancy: Store {{store_id}} - {{business_date}}"
                category: "finance"
                assigned_group: "Financial_Operations"
                description: "POS total: ${{get-pos-totals.total}}. Payment total: ${{get-payment-totals.total}}. Variance: ${{get-pos-totals.variance}}."
  consumes:
    - type: http
      namespace: pos
      baseUri: "https://pos-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.pos_api_token"
      resources:
        - name: totals
          path: "/stores/{{store_id}}/daily-totals"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-daily-totals
              method: GET
    - type: http
      namespace: stripe
      baseUri: "https://api.stripe.com/v1"
      authentication:
        type: bearer
        token: "$secrets.stripe_secret_key"
      resources:
        - name: reports
          path: "/reporting/report_runs"
          operations:
            - name: get-daily-summary
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: insert-recon
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://chickfila.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

Invokes a Databricks ML model endpoint for Chick-fil-A demand forecasting, returning predicted sales volumes by location and time period.

naftiko: "0.5"
info:
  label: "Databricks ML Model Inference"
  description: "Invokes a Databricks ML model endpoint for Chick-fil-A demand forecasting, returning predicted sales volumes by location and time period."
  tags:
    - machine-learning
    - databricks
    - forecasting
    - data-science
capability:
  exposes:
    - type: mcp
      namespace: ml-inference
      port: 8080
      tools:
        - name: run-demand-forecast
          description: "Run a demand forecasting model via Databricks serving endpoint."
          inputParameters:
            - name: endpoint_name
              in: body
              type: string
              description: "The Databricks serving endpoint name."
            - name: restaurant_id
              in: body
              type: string
              description: "The restaurant location ID."
            - name: forecast_days
              in: body
              type: integer
              description: "Number of days to forecast."
          call: "databricks.invoke-endpoint"
          with:
            endpoint: "{{endpoint_name}}"
            inputs: "{restaurant_id: '{{restaurant_id}}', forecast_days: {{forecast_days}}}"
  consumes:
    - type: http
      namespace: databricks
      baseUri: "https://chickfila.cloud.databricks.com/serving-endpoints"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: serving-endpoints
          path: "/{{endpoint}}/invocations"
          inputParameters:
            - name: endpoint
              in: path
          operations:
            - name: invoke-endpoint
              method: POST

Queries Datadog for POS system health metrics at a specific Chick-fil-A restaurant, returning uptime percentage, error rate, and active alerts.

naftiko: "0.5"
info:
  label: "Datadog Restaurant POS Health Monitor"
  description: "Queries Datadog for POS system health metrics at a specific Chick-fil-A restaurant, returning uptime percentage, error rate, and active alerts."
  tags:
    - monitoring
    - datadog
    - pos-systems
    - restaurant-operations
capability:
  exposes:
    - type: mcp
      namespace: infra-monitoring
      port: 8080
      tools:
        - name: get-pos-health
          description: "Retrieve Datadog health metrics for a restaurant POS system including uptime, error rate, and active alerts."
          inputParameters:
            - name: restaurant_id
              in: body
              type: string
              description: "The restaurant location ID."
          call: "datadog.query-metrics"
          with:
            query: "avg:pos.uptime{restaurant_id:{{restaurant_id}}}"
            from: "now-1h"
            to: "now"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "$secrets.datadog_api_key"
        app_key: "$secrets.datadog_app_key"
      resources:
        - name: metrics
          path: "/query"
          inputParameters:
            - name: query
              in: query
            - name: from
              in: query
            - name: to
              in: query
          operations:
            - name: query-metrics
              method: GET

Optimizes drive-thru operations by analyzing wait time data from Snowflake, running prediction models in Databricks, updating staffing recommendations, and reporting in Tableau.

naftiko: "0.5"
info:
  label: "Drive-Thru Optimization Pipeline"
  description: "Optimizes drive-thru operations by analyzing wait time data from Snowflake, running prediction models in Databricks, updating staffing recommendations, and reporting in Tableau."
  tags:
    - drive-thru
    - optimization
    - snowflake
    - databricks
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: drive-thru-optimization
      port: 8080
      tools:
        - name: optimize-drive-thru
          description: "Orchestrate drive-thru optimization across Snowflake, Databricks, and Tableau."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Restaurant store number."
            - name: target_time
              in: body
              type: integer
              description: "Target drive-thru time in seconds."
          steps:
            - name: get-metrics
              type: call
              call: "snowflake.query-drive-thru"
              with:
                statement: "SELECT * FROM DRIVE_THRU_METRICS WHERE store_id = '{{store_id}}' AND date >= DATEADD(day, -30, CURRENT_DATE)"
                warehouse: "CFA_OPERATIONS_WH"
            - name: run-model
              type: call
              call: "databricks.predict-optimization"
              with:
                metrics: "{{get-metrics.data}}"
                target_time: "{{target_time}}"
                model: "drive-thru-optimizer-v2"
            - name: update-recommendations
              type: call
              call: "scheduling.update-staffing-model"
              with:
                store_id: "{{store_id}}"
                recommendations: "{{run-model.staffing_recommendations}}"
            - name: refresh-dashboard
              type: call
              call: "tableau.refresh-workbook"
              with:
                workbook_id: "drive-thru-performance"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query-drive-thru
              method: POST
    - type: http
      namespace: databricks
      baseUri: "https://chickfila.cloud.databricks.com/api/2.0"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: serving
          path: "/serving-endpoints/drive-thru-optimizer-v2/invocations"
          operations:
            - name: predict-optimization
              method: POST
    - type: http
      namespace: scheduling
      baseUri: "https://scheduling-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.scheduling_api_token"
      resources:
        - name: staffing
          path: "/staffing-models"
          operations:
            - name: update-staffing-model
              method: PUT
    - type: http
      namespace: tableau
      baseUri: "https://tableau.chickfila.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: workbooks
          path: "/sites/default/workbooks/{{workbook_id}}/refresh"
          inputParameters:
            - name: workbook_id
              in: path
          operations:
            - name: refresh-workbook
              method: POST

Collects drive-thru speed-of-service data from Datadog, correlates with Circana consumer insights, generates a Tableau dashboard refresh, and sends the summary report to the operations team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Drive-Thru Performance Analytics Pipeline"
  description: "Collects drive-thru speed-of-service data from Datadog, correlates with Circana consumer insights, generates a Tableau dashboard refresh, and sends the summary report to the operations team in Microsoft Teams."
  tags:
    - drive-thru
    - datadog
    - circana
    - tableau
    - microsoft-teams
    - operations
capability:
  exposes:
    - type: mcp
      namespace: drive-thru-analytics
      port: 8080
      tools:
        - name: analyze-drive-thru-performance
          description: "Run the full drive-thru performance analytics pipeline for a restaurant."
          inputParameters:
            - name: restaurant_id
              in: body
              type: string
              description: "The restaurant location ID."
            - name: date_range
              in: body
              type: string
              description: "The date range for analysis (e.g., last_7_days)."
          steps:
            - name: get-speed-metrics
              type: call
              call: "datadog.query-metrics"
              with:
                query: "avg:drivethru.speed_of_service{restaurant_id:{{restaurant_id}}}"
                from: "{{date_range}}"
            - name: get-consumer-insights
              type: call
              call: "circana.get-insights"
              with:
                location_id: "{{restaurant_id}}"
                category: "quick_service_restaurant"
            - name: refresh-dashboard
              type: call
              call: "tableau.refresh-workbook"
              with:
                workbook_id: "drive_thru_performance"
            - name: send-report
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "restaurant_ops"
                channel_id: "drive_thru_metrics"
                text: "Drive-Thru Report for {{restaurant_id}}: Avg speed {{get-speed-metrics.avg_value}}s. Consumer insights score: {{get-consumer-insights.satisfaction_score}}. Dashboard refreshed: {{refresh-dashboard.url}}."
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "$secrets.datadog_api_key"
        app_key: "$secrets.datadog_app_key"
      resources:
        - name: metrics
          path: "/query"
          inputParameters:
            - name: query
              in: query
            - name: from
              in: query
          operations:
            - name: query-metrics
              method: GET
    - type: http
      namespace: circana
      baseUri: "https://api.circana.com/v1"
      authentication:
        type: bearer
        token: "$secrets.circana_token"
      resources:
        - name: insights
          path: "/consumer-insights"
          inputParameters:
            - name: location_id
              in: query
            - name: category
              in: query
          operations:
            - name: get-insights
              method: GET
    - type: http
      namespace: tableau
      baseUri: "https://chickfila.online.tableau.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: workbooks
          path: "/sites/{{site_id}}/workbooks/{{workbook_id}}/refresh"
          inputParameters:
            - name: workbook_id
              in: path
            - name: site_id
              in: path
          operations:
            - name: refresh-workbook
              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-channel-message
              method: POST

Queries DynamoDB for Chick-fil-A mobile app session data, returning user activity, order history, and reward points balance.

naftiko: "0.5"
info:
  label: "DynamoDB Mobile App Session Lookup"
  description: "Queries DynamoDB for Chick-fil-A mobile app session data, returning user activity, order history, and reward points balance."
  tags:
    - mobile-app
    - dynamodb
    - customer-data
    - loyalty
capability:
  exposes:
    - type: mcp
      namespace: mobile-data
      port: 8080
      tools:
        - name: get-app-session
          description: "Query DynamoDB for mobile app session data by user ID."
          inputParameters:
            - name: user_id
              in: body
              type: string
              description: "The Chick-fil-A One app user ID."
          call: "dynamodb.get-item"
          with:
            TableName: "cfa_app_sessions"
            Key: "{user_id: {S: '{{user_id}}'}}"
  consumes:
    - type: http
      namespace: dynamodb
      baseUri: "https://dynamodb.us-east-1.amazonaws.com"
      authentication:
        type: aws-sigv4
        access_key: "$secrets.aws_access_key"
        secret_key: "$secrets.aws_secret_key"
      resources:
        - name: items
          path: "/"
          operations:
            - name: get-item
              method: POST

Searches Elasticsearch for Chick-fil-A menu items by name, category, dietary attributes, and allergen information.

naftiko: "0.5"
info:
  label: "Elasticsearch Menu Item Search"
  description: "Searches Elasticsearch for Chick-fil-A menu items by name, category, dietary attributes, and allergen information."
  tags:
    - menu
    - search
    - elasticsearch
capability:
  exposes:
    - type: mcp
      namespace: menu-search
      port: 8080
      tools:
        - name: search-menu
          description: "Search menu items in Elasticsearch."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "Search query text."
            - name: category
              in: body
              type: string
              description: "Menu category filter (entrees, sides, beverages, desserts)."
          call: "elasticsearch.search"
          with:
            index: "cfa_menu"
            query: "{\"bool\":{\"must\":[{\"match\":{\"name\":\"{{query}}\"}}],\"filter\":[{\"term\":{\"category\":\"{{category}}\"}}]}}"
          outputParameters:
            - name: items
              type: array
              mapping: "$.hits.hits"
            - name: total
              type: integer
              mapping: "$.hits.total.value"
  consumes:
    - type: http
      namespace: elasticsearch
      baseUri: "https://search.chickfila.com"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token"
      resources:
        - name: search
          path: "/{{index}}/_search"
          inputParameters:
            - name: index
              in: path
          operations:
            - name: search
              method: POST

Retrieves Facebook ad campaign performance metrics for Chick-fil-A local marketing campaigns including spend, impressions, clicks, and conversions.

naftiko: "0.5"
info:
  label: "Facebook Ad Campaign Status"
  description: "Retrieves Facebook ad campaign performance metrics for Chick-fil-A local marketing campaigns including spend, impressions, clicks, and conversions."
  tags:
    - advertising
    - facebook
    - marketing
    - social-media
capability:
  exposes:
    - type: mcp
      namespace: ad-management
      port: 8080
      tools:
        - name: get-campaign-metrics
          description: "Retrieve Facebook ad campaign performance metrics."
          inputParameters:
            - name: campaign_id
              in: body
              type: string
              description: "The Facebook campaign ID."
            - name: date_preset
              in: body
              type: string
              description: "Date preset (today, yesterday, last_7_days, last_30_days)."
          call: "facebook.get-campaign-insights"
          with:
            campaign_id: "{{campaign_id}}"
            date_preset: "{{date_preset}}"
  consumes:
    - type: http
      namespace: facebook
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.facebook_ads_token"
      resources:
        - name: campaign-insights
          path: "/{{campaign_id}}/insights"
          inputParameters:
            - name: campaign_id
              in: path
            - name: date_preset
              in: query
          operations:
            - name: get-campaign-insights
              method: GET

When a food safety incident is reported, creates a ServiceNow critical incident, notifies the restaurant operations team in Microsoft Teams, and logs the event in Oracle for compliance tracking.

naftiko: "0.5"
info:
  label: "Food Safety Incident Escalation Pipeline"
  description: "When a food safety incident is reported, creates a ServiceNow critical incident, notifies the restaurant operations team in Microsoft Teams, and logs the event in Oracle for compliance tracking."
  tags:
    - food-safety
    - servicenow
    - microsoft-teams
    - oracle
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: food-safety-ops
      port: 8080
      tools:
        - name: escalate-food-safety-incident
          description: "Escalate a food safety incident by creating a critical ServiceNow ticket, notifying operations via Teams, and logging in Oracle."
          inputParameters:
            - name: restaurant_id
              in: body
              type: string
              description: "The restaurant location ID."
            - name: incident_type
              in: body
              type: string
              description: "The type of food safety incident."
            - name: description
              in: body
              type: string
              description: "Detailed description of the incident."
          steps:
            - name: create-critical-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "FOOD SAFETY: {{incident_type}} at restaurant {{restaurant_id}}"
                urgency: "1"
                impact: "1"
                category: "food_safety"
                description: "{{description}}"
            - name: notify-ops-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "food_safety_response_team"
                channel_id: "critical_incidents"
                text: "FOOD SAFETY ALERT: {{incident_type}} at restaurant {{restaurant_id}}. Ticket: {{create-critical-ticket.number}}. Details: {{description}}"
            - name: log-compliance-event
              type: call
              call: "oracle.insert-compliance-record"
              with:
                event_type: "FOOD_SAFETY_INCIDENT"
                restaurant_id: "{{restaurant_id}}"
                incident_type: "{{incident_type}}"
                ticket_number: "{{create-critical-ticket.number}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://chickfila.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-channel-message
              method: POST
    - type: http
      namespace: oracle
      baseUri: "https://chickfila-erp.oracle.com/fscmRestApi/resources/v1"
      authentication:
        type: basic
        username: "$secrets.oracle_user"
        password: "$secrets.oracle_password"
      resources:
        - name: compliance-records
          path: "/complianceEvents"
          operations:
            - name: insert-compliance-record
              method: POST

Tracks food waste by collecting data from POS systems, analyzing trends in Snowflake, generating reduction recommendations via Databricks, and reporting in Tableau.

naftiko: "0.5"
info:
  label: "Food Waste Tracking Pipeline"
  description: "Tracks food waste by collecting data from POS systems, analyzing trends in Snowflake, generating reduction recommendations via Databricks, and reporting in Tableau."
  tags:
    - sustainability
    - food-waste
    - snowflake
    - databricks
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: food-waste
      port: 8080
      tools:
        - name: analyze-food-waste
          description: "Orchestrate food waste analysis across POS, Snowflake, Databricks, and Tableau."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Restaurant store number."
            - name: period
              in: body
              type: string
              description: "Analysis period (e.g., 2026-03)."
          steps:
            - name: get-waste-data
              type: call
              call: "snowflake.query-waste"
              with:
                statement: "SELECT * FROM FOOD_WASTE_LOG WHERE store_id = '{{store_id}}' AND period = '{{period}}'"
                warehouse: "CFA_SUSTAINABILITY_WH"
            - name: generate-recommendations
              type: call
              call: "databricks.analyze-waste"
              with:
                data: "{{get-waste-data.data}}"
                model: "waste-reduction-v2"
            - name: update-targets
              type: call
              call: "snowflake.update-targets"
              with:
                statement: "UPDATE WASTE_TARGETS SET recommended_prep = '{{generate-recommendations.prep_adjustments}}' WHERE store_id = '{{store_id}}'"
                warehouse: "CFA_SUSTAINABILITY_WH"
            - name: refresh-dashboard
              type: call
              call: "tableau.refresh-workbook"
              with:
                workbook_id: "food-waste-tracker"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query-waste
              method: POST
            - name: update-targets
              method: POST
    - type: http
      namespace: databricks
      baseUri: "https://chickfila.cloud.databricks.com/api/2.0"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: serving
          path: "/serving-endpoints/waste-reduction-v2/invocations"
          operations:
            - name: analyze-waste
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.chickfila.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: workbooks
          path: "/sites/default/workbooks/{{workbook_id}}/refresh"
          inputParameters:
            - name: workbook_id
              in: path
          operations:
            - name: refresh-workbook
              method: POST

Processes franchise operator applications by enriching with ZoomInfo data, creating Salesforce opportunities, scheduling interviews via Zoom, and tracking in Jira.

naftiko: "0.5"
info:
  label: "Franchise Application Processing Pipeline"
  description: "Processes franchise operator applications by enriching with ZoomInfo data, creating Salesforce opportunities, scheduling interviews via Zoom, and tracking in Jira."
  tags:
    - franchise
    - recruitment
    - zoominfo
    - salesforce
    - zoom
    - jira
capability:
  exposes:
    - type: mcp
      namespace: franchise-applications
      port: 8080
      tools:
        - name: process-application
          description: "Orchestrate franchise application across ZoomInfo, Salesforce, Zoom, and Jira."
          inputParameters:
            - name: applicant_name
              in: body
              type: string
              description: "Applicant full name."
            - name: applicant_email
              in: body
              type: string
              description: "Applicant email."
            - name: preferred_market
              in: body
              type: string
              description: "Preferred market location."
          steps:
            - name: enrich-profile
              type: call
              call: "zoominfo.enrich-contact"
              with:
                email: "{{applicant_email}}"
                name: "{{applicant_name}}"
            - name: create-opportunity
              type: call
              call: "salesforce.create-opportunity"
              with:
                name: "Franchise App: {{applicant_name}} - {{preferred_market}}"
                stage: "Application Received"
                contact_email: "{{applicant_email}}"
            - name: schedule-interview
              type: call
              call: "zoom.create-meeting"
              with:
                topic: "Franchise Interview: {{applicant_name}}"
                duration: 60
                invitee: "{{applicant_email}}"
            - name: create-tracking
              type: call
              call: "jira.create-issue"
              with:
                project: "FRANCHISE"
                summary: "Operator application: {{applicant_name}} - {{preferred_market}}"
                description: "Applicant: {{applicant_name}}\nMarket: {{preferred_market}}\nBackground: {{enrich-profile.summary}}\nSalesforce: {{create-opportunity.id}}"
                issuetype: "Task"
  consumes:
    - type: http
      namespace: zoominfo
      baseUri: "https://api.zoominfo.com/search"
      authentication:
        type: bearer
        token: "$secrets.zoominfo_token"
      resources:
        - name: contacts
          path: "/contact"
          operations:
            - name: enrich-contact
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://chickfila.my.salesforce.com/services/data/v59.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity"
          operations:
            - name: create-opportunity
              method: POST
    - 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: jira
      baseUri: "https://chickfila.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST

Reviews franchise operator performance by querying Snowflake for KPIs, pulling guest satisfaction from Zendesk, generating a report in Google Docs, and notifying leadership via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Franchise Operator Performance Review Pipeline"
  description: "Reviews franchise operator performance by querying Snowflake for KPIs, pulling guest satisfaction from Zendesk, generating a report in Google Docs, and notifying leadership via Microsoft Teams."
  tags:
    - franchise
    - performance
    - snowflake
    - zendesk
    - google-docs
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: operator-performance
      port: 8080
      tools:
        - name: review-operator-performance
          description: "Orchestrate operator performance review across Snowflake, Zendesk, Google Docs, and Teams."
          inputParameters:
            - name: operator_id
              in: body
              type: string
              description: "Franchise operator ID."
            - name: review_period
              in: body
              type: string
              description: "Review period (e.g., 2026-Q1)."
          steps:
            - name: get-kpis
              type: call
              call: "snowflake.query-operator-kpis"
              with:
                statement: "SELECT * FROM OPERATOR_KPIs WHERE operator_id = '{{operator_id}}' AND period = '{{review_period}}'"
                warehouse: "CFA_OPERATIONS_WH"
            - name: get-satisfaction
              type: call
              call: "zendesk.get-satisfaction-scores"
              with:
                operator_id: "{{operator_id}}"
                period: "{{review_period}}"
            - name: generate-report
              type: call
              call: "googledocs.create-document"
              with:
                title: "Operator Review: {{operator_id}} - {{review_period}}"
                content: "Sales: {{get-kpis.total_sales}}\nDrive-thru time: {{get-kpis.avg_drive_thru}}\nSatisfaction: {{get-satisfaction.avg_score}}\nComplaints: {{get-satisfaction.complaint_count}}"
            - name: notify-leadership
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "franchise-ops"
                channel: "operator-reviews"
                text: "Operator {{operator_id}} review complete: Sales={{get-kpis.total_sales}}, Satisfaction={{get-satisfaction.avg_score}}. Report: {{generate-report.url}}."
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query-operator-kpis
              method: POST
    - type: http
      namespace: zendesk
      baseUri: "https://chickfila.zendesk.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.zendesk_token"
      resources:
        - name: satisfaction
          path: "/satisfaction_ratings"
          operations:
            - name: get-satisfaction-scores
              method: GET
    - type: http
      namespace: googledocs
      baseUri: "https://docs.googleapis.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_docs_token"
      resources:
        - name: documents
          path: "/documents"
          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}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST

Processes gift card balance inquiries by checking the payment gateway, pulling transaction history from Snowflake, and sending the balance summary via SMS.

naftiko: "0.5"
info:
  label: "Gift Card Balance Inquiry Orchestrator"
  description: "Processes gift card balance inquiries by checking the payment gateway, pulling transaction history from Snowflake, and sending the balance summary via SMS."
  tags:
    - gift-cards
    - payments
    - snowflake
    - twilio
capability:
  exposes:
    - type: mcp
      namespace: gift-cards
      port: 8080
      tools:
        - name: check-gift-card
          description: "Orchestrate gift card balance inquiry across payment gateway, Snowflake, and Twilio."
          inputParameters:
            - name: card_number
              in: body
              type: string
              description: "Gift card number."
            - name: customer_phone
              in: body
              type: string
              description: "Customer phone for balance notification."
          steps:
            - name: check-balance
              type: call
              call: "payments.get-gift-card-balance"
              with:
                card_number: "{{card_number}}"
            - name: get-history
              type: call
              call: "snowflake.query-transactions"
              with:
                statement: "SELECT * FROM GIFT_CARD_TRANSACTIONS WHERE card_number = '{{card_number}}' ORDER BY txn_date DESC LIMIT 5"
                warehouse: "CFA_PAYMENTS_WH"
            - name: send-balance
              type: call
              call: "twilio.send-message"
              with:
                To: "{{customer_phone}}"
                Body: "Your Chick-fil-A gift card balance is ${{check-balance.balance}}. Last transaction: ${{get-history.last_amount}} on {{get-history.last_date}}."
                From: "+18667322040"
  consumes:
    - type: http
      namespace: payments
      baseUri: "https://payments-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.payments_api_token"
      resources:
        - name: gift-cards
          path: "/gift-cards/{{card_number}}/balance"
          inputParameters:
            - name: card_number
              in: path
          operations:
            - name: get-gift-card-balance
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query-transactions
              method: POST
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Messages.json"
          operations:
            - name: send-message
              method: POST

Triggers a GitHub Actions workflow for Chick-fil-A application builds and returns the workflow run status.

naftiko: "0.5"
info:
  label: "GitHub Actions CI Workflow Trigger"
  description: "Triggers a GitHub Actions workflow for Chick-fil-A application builds and returns the workflow run status."
  tags:
    - ci-cd
    - github-actions
    - development
    - automation
capability:
  exposes:
    - type: mcp
      namespace: ci-workflows
      port: 8080
      tools:
        - name: trigger-github-workflow
          description: "Trigger a GitHub Actions workflow dispatch event."
          inputParameters:
            - name: repo
              in: body
              type: string
              description: "The repository name (org/repo format)."
            - name: workflow_id
              in: body
              type: string
              description: "The workflow file name or ID."
            - name: ref
              in: body
              type: string
              description: "The git reference (branch or tag)."
          call: "github.dispatch-workflow"
          with:
            repo: "{{repo}}"
            workflow_id: "{{workflow_id}}"
            ref: "{{ref}}"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: workflow-dispatches
          path: "/repos/{{repo}}/actions/workflows/{{workflow_id}}/dispatches"
          inputParameters:
            - name: repo
              in: path
            - name: workflow_id
              in: path
          operations:
            - name: dispatch-workflow
              method: POST

Retrieves open pull request details for a Chick-fil-A GitHub repository, returning PR count, authors, and review status.

naftiko: "0.5"
info:
  label: "GitHub Repository PR Status"
  description: "Retrieves open pull request details for a Chick-fil-A GitHub repository, returning PR count, authors, and review status."
  tags:
    - development
    - github
    - code-review
capability:
  exposes:
    - type: mcp
      namespace: dev-workflow
      port: 8080
      tools:
        - name: get-repo-prs
          description: "List open pull requests for a GitHub repository with review status."
          inputParameters:
            - name: repo_name
              in: body
              type: string
              description: "The repository name (org/repo format)."
          call: "github.list-prs"
          with:
            repo: "{{repo_name}}"
            state: "open"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: pull-requests
          path: "/repos/{{repo}}/pulls"
          inputParameters:
            - name: repo
              in: path
            - name: state
              in: query
          operations:
            - name: list-prs
              method: GET

Queries Google Analytics for website traffic metrics for a specific Chick-fil-A restaurant location page, returning sessions, page views, and conversion rate.

naftiko: "0.5"
info:
  label: "Google Analytics Restaurant Traffic Reporter"
  description: "Queries Google Analytics for website traffic metrics for a specific Chick-fil-A restaurant location page, returning sessions, page views, and conversion rate."
  tags:
    - analytics
    - google-analytics
    - marketing
    - restaurant-performance
capability:
  exposes:
    - type: mcp
      namespace: marketing-analytics
      port: 8080
      tools:
        - name: get-location-traffic
          description: "Retrieve Google Analytics traffic data for a specific restaurant location page over a date range."
          inputParameters:
            - name: location_slug
              in: body
              type: string
              description: "The restaurant location URL slug."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: end_date
              in: body
              type: string
              description: "End date in YYYY-MM-DD format."
          call: "ga.run-report"
          with:
            property: "properties/123456789"
            dateRanges: "[{startDate: '{{start_date}}', endDate: '{{end_date}}'}]"
            dimensionFilter: "pagePath=/locations/{{location_slug}}"
  consumes:
    - type: http
      namespace: ga
      baseUri: "https://analyticsdata.googleapis.com/v1beta"
      authentication:
        type: bearer
        token: "$secrets.google_analytics_token"
      resources:
        - name: reports
          path: "/{{property}}:runReport"
          inputParameters:
            - name: property
              in: path
          operations:
            - name: run-report
              method: POST

Uploads a file to a specified Google Drive folder for Chick-fil-A corporate document sharing.

naftiko: "0.5"
info:
  label: "Google Drive File Upload"
  description: "Uploads a file to a specified Google Drive folder for Chick-fil-A corporate document sharing."
  tags:
    - document-management
    - google-drive
    - file-sharing
capability:
  exposes:
    - type: mcp
      namespace: file-storage
      port: 8080
      tools:
        - name: upload-to-drive
          description: "Upload a file to a Google Drive folder."
          inputParameters:
            - name: folder_id
              in: body
              type: string
              description: "The Google Drive folder ID."
            - name: file_name
              in: body
              type: string
              description: "The name for the uploaded file."
          call: "gdrive.upload-file"
          with:
            folder_id: "{{folder_id}}"
            name: "{{file_name}}"
  consumes:
    - type: http
      namespace: gdrive
      baseUri: "https://www.googleapis.com/upload/drive/v3"
      authentication:
        type: bearer
        token: "$secrets.google_drive_token"
      resources:
        - name: files
          path: "/files"
          inputParameters:
            - name: folder_id
              in: query
          operations:
            - name: upload-file
              method: POST

Retrieves Google Maps place details for a Chick-fil-A restaurant location, returning address, hours, rating, and contact information.

naftiko: "0.5"
info:
  label: "Google Maps Restaurant Location Lookup"
  description: "Retrieves Google Maps place details for a Chick-fil-A restaurant location, returning address, hours, rating, and contact information."
  tags:
    - location-services
    - google-maps
    - restaurant-info
capability:
  exposes:
    - type: mcp
      namespace: location-services
      port: 8080
      tools:
        - name: get-restaurant-location
          description: "Retrieve Google Maps place details for a Chick-fil-A restaurant by place ID."
          inputParameters:
            - name: place_id
              in: body
              type: string
              description: "The Google Maps place ID."
          call: "googlemaps.get-place-details"
          with:
            place_id: "{{place_id}}"
            fields: "name,formatted_address,opening_hours,rating,formatted_phone_number"
  consumes:
    - type: http
      namespace: googlemaps
      baseUri: "https://maps.googleapis.com/maps/api"
      authentication:
        type: apikey
        key: "$secrets.google_maps_api_key"
      resources:
        - name: place-details
          path: "/place/details/json"
          inputParameters:
            - name: place_id
              in: query
            - name: fields
              in: query
          operations:
            - name: get-place-details
              method: GET

Retrieves restaurant operations dashboard snapshots from Grafana showing drive-thru times, kitchen throughput, and customer wait metrics.

naftiko: "0.5"
info:
  label: "Grafana Restaurant Operations Dashboard"
  description: "Retrieves restaurant operations dashboard snapshots from Grafana showing drive-thru times, kitchen throughput, and customer wait metrics."
  tags:
    - operations
    - monitoring
    - grafana
capability:
  exposes:
    - type: mcp
      namespace: ops-monitoring
      port: 8080
      tools:
        - name: get-ops-dashboard
          description: "Fetch a Grafana restaurant operations dashboard snapshot."
          inputParameters:
            - name: dashboard_uid
              in: body
              type: string
              description: "Grafana dashboard UID."
          call: "grafana.get-dashboard"
          with:
            uid: "{{dashboard_uid}}"
          outputParameters:
            - name: title
              type: string
              mapping: "$.dashboard.title"
            - name: panels
              type: array
              mapping: "$.dashboard.panels"
  consumes:
    - type: http
      namespace: grafana
      baseUri: "https://grafana.chickfila.com/api"
      authentication:
        type: bearer
        token: "$secrets.grafana_api_key"
      resources:
        - name: dashboards
          path: "/dashboards/uid/{{uid}}"
          inputParameters:
            - name: uid
              in: path
          operations:
            - name: get-dashboard
              method: GET

Resolves guest complaints by creating a Zendesk ticket, looking up the order in the POS system, issuing a Chick-fil-A One reward via the loyalty API, and notifying the operator via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Guest Complaint Resolution Orchestrator"
  description: "Resolves guest complaints by creating a Zendesk ticket, looking up the order in the POS system, issuing a Chick-fil-A One reward via the loyalty API, and notifying the operator via Microsoft Teams."
  tags:
    - customer-service
    - complaints
    - zendesk
    - loyalty
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: complaint-resolution
      port: 8080
      tools:
        - name: resolve-complaint
          description: "Orchestrate guest complaint resolution across Zendesk, POS, loyalty, and Teams."
          inputParameters:
            - name: guest_name
              in: body
              type: string
              description: "Guest name."
            - name: store_id
              in: body
              type: string
              description: "Restaurant store number."
            - name: complaint
              in: body
              type: string
              description: "Complaint description."
            - name: app_user_id
              in: body
              type: string
              description: "Chick-fil-A One app user ID."
          steps:
            - name: create-ticket
              type: call
              call: "zendesk.create-ticket"
              with:
                subject: "Guest complaint: {{guest_name}} - Store {{store_id}}"
                description: "{{complaint}}"
                priority: "high"
            - name: issue-reward
              type: call
              call: "loyalty.issue-reward"
              with:
                user_id: "{{app_user_id}}"
                reward_type: "complimentary_entree"
                reason: "service_recovery"
            - name: notify-operator
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "store-{{store_id}}"
                channel: "guest-feedback"
                text: "Guest complaint: {{guest_name}}. Issue: {{complaint}}. Ticket: {{create-ticket.id}}. Recovery reward issued."
  consumes:
    - type: http
      namespace: zendesk
      baseUri: "https://chickfila.zendesk.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.zendesk_token"
      resources:
        - name: tickets
          path: "/tickets"
          operations:
            - name: create-ticket
              method: POST
    - type: http
      namespace: loyalty
      baseUri: "https://loyalty-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.loyalty_api_token"
      resources:
        - name: rewards
          path: "/rewards"
          operations:
            - name: issue-reward
              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}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST

Checks secret rotation status and lease expiration in HashiCorp Vault for Chick-fil-A platform service credentials.

naftiko: "0.5"
info:
  label: "HashiCorp Vault Secret Status"
  description: "Checks secret rotation status and lease expiration in HashiCorp Vault for Chick-fil-A platform service credentials."
  tags:
    - security
    - secrets-management
    - hashicorp-vault
capability:
  exposes:
    - type: mcp
      namespace: secrets-management
      port: 8080
      tools:
        - name: check-secret-status
          description: "Check a secret's lease and rotation status in Vault."
          inputParameters:
            - name: secret_path
              in: body
              type: string
              description: "Vault secret path."
          call: "vault.read-secret-metadata"
          with:
            path: "{{secret_path}}"
          outputParameters:
            - name: version
              type: integer
              mapping: "$.data.current_version"
            - name: created_time
              type: string
              mapping: "$.data.versions.*.created_time"
  consumes:
    - type: http
      namespace: vault
      baseUri: "https://vault.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.vault_token"
      resources:
        - name: metadata
          path: "/{{path}}/metadata"
          inputParameters:
            - name: path
              in: path
          operations:
            - name: read-secret-metadata
              method: GET

Prepares for health inspections by pulling food safety logs from Snowflake, checking equipment calibration in ServiceNow, generating checklists in Google Docs, and alerting the operator via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Health Inspection Preparation Orchestrator"
  description: "Prepares for health inspections by pulling food safety logs from Snowflake, checking equipment calibration in ServiceNow, generating checklists in Google Docs, and alerting the operator via Microsoft Teams."
  tags:
    - food-safety
    - compliance
    - snowflake
    - servicenow
    - google-docs
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: inspection-prep
      port: 8080
      tools:
        - name: prepare-inspection
          description: "Orchestrate health inspection preparation across Snowflake, ServiceNow, Google Docs, and Teams."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Restaurant store number."
            - name: inspection_date
              in: body
              type: string
              description: "Scheduled inspection date."
          steps:
            - name: get-safety-logs
              type: call
              call: "snowflake.query-safety"
              with:
                statement: "SELECT * FROM FOOD_SAFETY_LOGS WHERE store_id = '{{store_id}}' AND log_date >= DATEADD(month, -3, CURRENT_DATE)"
                warehouse: "CFA_SAFETY_WH"
            - name: check-equipment
              type: call
              call: "servicenow.get-equipment-status"
              with:
                location: "{{store_id}}"
                type: "food_safety_equipment"
            - name: generate-checklist
              type: call
              call: "googledocs.create-document"
              with:
                title: "Health Inspection Prep: Store {{store_id}} - {{inspection_date}}"
                content: "Safety log entries: {{get-safety-logs.count}}\nEquipment status: {{check-equipment.compliant_count}}/{{check-equipment.total_count}} compliant\nAction items: {{check-equipment.overdue_items}}"
            - name: alert-operator
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "store-{{store_id}}"
                channel: "food-safety"
                text: "Health inspection scheduled: {{inspection_date}}. Prep checklist: {{generate-checklist.url}}. Equipment issues: {{check-equipment.overdue_count}}."
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query-safety
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://chickfila.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: assets
          path: "/table/alm_hardware"
          operations:
            - name: get-equipment-status
              method: GET
    - type: http
      namespace: googledocs
      baseUri: "https://docs.googleapis.com/v1"
      authentication:
        type: bearer
        token: "$secrets.google_docs_token"
      resources:
        - name: documents
          path: "/documents"
          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}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST

Searches HubSpot CRM for a contact by email and returns their profile, engagement history, and associated deals for Chick-fil-A marketing outreach.

naftiko: "0.5"
info:
  label: "HubSpot Contact Lookup"
  description: "Searches HubSpot CRM for a contact by email and returns their profile, engagement history, and associated deals for Chick-fil-A marketing outreach."
  tags:
    - crm
    - hubspot
    - marketing
    - contacts
capability:
  exposes:
    - type: mcp
      namespace: crm-contacts
      port: 8080
      tools:
        - name: lookup-hubspot-contact
          description: "Search for a HubSpot contact by email and return profile and engagement details."
          inputParameters:
            - name: email
              in: body
              type: string
              description: "The email address to search."
          call: "hubspot.search-contacts"
          with:
            filterGroups: "[{filters:[{propertyName:'email',operator:'EQ',value:'{{email}}'}]}]"
  consumes:
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/crm/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: contacts-search
          path: "/objects/contacts/search"
          operations:
            - name: search-contacts
              method: POST

On ingredient shortage detection, queries Oracle Fusion for inventory levels, creates a SAP purchase order, notifies the supply chain team via Microsoft Teams, and updates the menu availability in Redis.

naftiko: "0.5"
info:
  label: "Ingredient Shortage Alert Pipeline"
  description: "On ingredient shortage detection, queries Oracle Fusion for inventory levels, creates a SAP purchase order, notifies the supply chain team via Microsoft Teams, and updates the menu availability in Redis."
  tags:
    - supply-chain
    - inventory
    - oracle-fusion
    - sap
    - microsoft-teams
    - redis
capability:
  exposes:
    - type: mcp
      namespace: shortage-alerts
      port: 8080
      tools:
        - name: process-shortage
          description: "Orchestrate ingredient shortage response across Oracle, SAP, Teams, and Redis."
          inputParameters:
            - name: ingredient_id
              in: body
              type: string
              description: "Ingredient identifier."
            - name: store_id
              in: body
              type: string
              description: "Affected store number."
          steps:
            - name: check-inventory
              type: call
              call: "oracle.get-inventory"
              with:
                item_id: "{{ingredient_id}}"
                location: "{{store_id}}"
            - name: create-po
              type: call
              call: "sap.create-purchase-order"
              with:
                material: "{{ingredient_id}}"
                quantity: "{{check-inventory.reorder_quantity}}"
                plant: "{{store_id}}"
            - name: alert-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "supply-chain"
                channel: "shortage-alerts"
                text: "Ingredient shortage: {{ingredient_id}} at store {{store_id}}. Current stock: {{check-inventory.quantity}}. PO created: {{create-po.po_number}}."
            - name: update-menu
              type: call
              call: "redis.set-key"
              with:
                key: "availability:{{store_id}}:{{ingredient_id}}"
                value: "{\"available\": false, \"eta\": \"{{create-po.delivery_date}}\"}"
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://chickfila-erp.oraclecloud.com/fscmRestApi/resources/v1"
      authentication:
        type: bearer
        token: "$secrets.oracle_fusion_token"
      resources:
        - name: inventory
          path: "/inventoryBalances"
          operations:
            - name: get-inventory
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://chickfila-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder"
          operations:
            - name: create-purchase-order
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST
    - type: http
      namespace: redis
      baseUri: "https://redis-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.redis_api_token"
      resources:
        - name: keys
          path: "/set"
          operations:
            - name: set-key
              method: POST

Retrieves Instagram business account insights for Chick-fil-A's social media performance including impressions, reach, and engagement metrics.

naftiko: "0.5"
info:
  label: "Instagram Social Media Insights"
  description: "Retrieves Instagram business account insights for Chick-fil-A's social media performance including impressions, reach, and engagement metrics."
  tags:
    - social-media
    - instagram
    - marketing
    - engagement
capability:
  exposes:
    - type: mcp
      namespace: social-analytics
      port: 8080
      tools:
        - name: get-instagram-insights
          description: "Retrieve Instagram business account insights for a date range."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "The Instagram business account ID."
            - name: metric
              in: body
              type: string
              description: "Comma-separated metrics (e.g., impressions,reach,engagement)."
            - name: period
              in: body
              type: string
              description: "The time period (day, week, days_28)."
          call: "instagram.get-insights"
          with:
            account_id: "{{account_id}}"
            metric: "{{metric}}"
            period: "{{period}}"
  consumes:
    - type: http
      namespace: instagram
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.instagram_token"
      resources:
        - name: insights
          path: "/{{account_id}}/insights"
          inputParameters:
            - name: account_id
              in: path
            - name: metric
              in: query
            - name: period
              in: query
          operations:
            - name: get-insights
              method: GET

Retrieves current sprint status from Azure DevOps boards for Chick-fil-A technology teams, returning sprint progress, remaining work, and team velocity.

naftiko: "0.5"
info:
  label: "Jira Sprint Status Fetcher"
  description: "Retrieves current sprint status from Azure DevOps boards for Chick-fil-A technology teams, returning sprint progress, remaining work, and team velocity."
  tags:
    - project-management
    - azure-devops
    - agile
    - sprint
capability:
  exposes:
    - type: mcp
      namespace: agile-tracking
      port: 8080
      tools:
        - name: get-sprint-status
          description: "Retrieve the current sprint status from Azure DevOps."
          inputParameters:
            - name: project
              in: body
              type: string
              description: "The Azure DevOps project name."
            - name: team
              in: body
              type: string
              description: "The team name."
          call: "azuredevops.get-iterations"
          with:
            project: "{{project}}"
            team: "{{team}}"
  consumes:
    - type: http
      namespace: azuredevops
      baseUri: "https://dev.azure.com/chickfila"
      authentication:
        type: basic
        username: ""
        password: "$secrets.azuredevops_pat"
      resources:
        - name: iterations
          path: "/{{project}}/{{team}}/_apis/work/teamsettings/iterations"
          inputParameters:
            - name: project
              in: path
            - name: team
              in: path
          operations:
            - name: get-iterations
              method: GET

Monitors Apache Kafka consumer lag and throughput for Chick-fil-A's mobile order and kitchen display event streams.

naftiko: "0.5"
info:
  label: "Kafka Order Event Stream Monitor"
  description: "Monitors Apache Kafka consumer lag and throughput for Chick-fil-A's mobile order and kitchen display event streams."
  tags:
    - streaming
    - kafka
    - order-processing
capability:
  exposes:
    - type: mcp
      namespace: order-streaming
      port: 8080
      tools:
        - name: get-order-stream-health
          description: "Check Kafka topic health for order event streams."
          inputParameters:
            - name: topic_name
              in: body
              type: string
              description: "Kafka topic name."
          call: "kafka.get-consumer-lag"
          with:
            topic: "{{topic_name}}"
          outputParameters:
            - name: total_lag
              type: integer
              mapping: "$.total_lag"
            - name: throughput
              type: number
              mapping: "$.messages_per_second"
  consumes:
    - type: http
      namespace: kafka
      baseUri: "https://kafka-rest.chickfila.com/v3"
      authentication:
        type: bearer
        token: "$secrets.kafka_rest_token"
      resources:
        - name: consumer-groups
          path: "/clusters/cfa-prod/consumer-groups/order-processors/lags"
          operations:
            - name: get-consumer-lag
              method: GET

Monitors IoT-connected kitchen equipment across Chick-fil-A restaurants, tracking fryer temperatures, refrigeration units, and grilling stations for preventive maintenance alerts.

naftiko: "0.5"
info:
  label: "Kitchen Equipment IoT Monitor"
  description: "Monitors IoT-connected kitchen equipment across Chick-fil-A restaurants, tracking fryer temperatures, refrigeration units, and grilling stations for preventive maintenance alerts."
  tags:
    - restaurant-operations
    - iot
    - equipment-monitoring
capability:
  exposes:
    - type: mcp
      namespace: kitchen-iot
      port: 8080
      tools:
        - name: get-equipment-status
          description: "Retrieve real-time status of kitchen equipment for a restaurant."
          inputParameters:
            - name: restaurant_id
              in: body
              type: string
              description: "The Chick-fil-A restaurant identifier."
            - name: equipment_type
              in: body
              type: string
              description: "Type of equipment such as fryer, grill, or refrigerator."
          call: "iot-platform-api.get-device-status"
          with:
            restaurant: "{{restaurant_id}}"
            type: "{{equipment_type}}"
          outputParameters:
            - name: device_id
              type: string
              mapping: "$.device.id"
            - name: current_temperature
              type: number
              mapping: "$.device.currentTemp"
            - name: maintenance_due
              type: boolean
              mapping: "$.device.maintenanceDue"
  consumes:
    - type: http
      namespace: iot-platform-api
      baseUri: "https://api.chick-fil-a.com/iot/v1"
      authentication:
        type: bearer
        token: "$secrets.chickfila_iot_platform_token"
      resources:
        - name: devices
          path: "/restaurants/{{restaurant}}/devices"
          inputParameters:
            - name: restaurant
              in: path
          operations:
            - name: get-device-status
              method: GET

Checks the health status of Kubernetes deployments in Azure Kubernetes Service for Chick-fil-A microservices, returning replica status, resource usage, and pod conditions.

naftiko: "0.5"
info:
  label: "Kubernetes Deployment Health Check"
  description: "Checks the health status of Kubernetes deployments in Azure Kubernetes Service for Chick-fil-A microservices, returning replica status, resource usage, and pod conditions."
  tags:
    - infrastructure
    - azure-kubernetes-service
    - kubernetes
    - container-management
capability:
  exposes:
    - type: mcp
      namespace: k8s-ops
      port: 8080
      tools:
        - name: check-deployment-health
          description: "Check AKS deployment health status for a Chick-fil-A microservice."
          inputParameters:
            - name: namespace
              in: body
              type: string
              description: "The Kubernetes namespace."
            - name: deployment_name
              in: body
              type: string
              description: "The deployment name."
          call: "aks.get-deployment"
          with:
            namespace: "{{namespace}}"
            deployment: "{{deployment_name}}"
  consumes:
    - type: http
      namespace: aks
      baseUri: "https://chickfila-aks.eastus.azmk8s.io"
      authentication:
        type: bearer
        token: "$secrets.aks_token"
      resources:
        - name: deployments
          path: "/apis/apps/v1/namespaces/{{namespace}}/deployments/{{deployment}}"
          inputParameters:
            - name: namespace
              in: path
            - name: deployment
              in: path
          operations:
            - name: get-deployment
              method: GET

Publishes a job posting to LinkedIn for Chick-fil-A operator and corporate positions, syncing the listing details from Workday requisition data.

naftiko: "0.5"
info:
  label: "LinkedIn Job Posting Publisher"
  description: "Publishes a job posting to LinkedIn for Chick-fil-A operator and corporate positions, syncing the listing details from Workday requisition data."
  tags:
    - recruiting
    - linkedin
    - workday
    - talent-acquisition
capability:
  exposes:
    - type: mcp
      namespace: talent-recruitment
      port: 8080
      tools:
        - name: publish-job-posting
          description: "Fetch a Workday requisition and publish the corresponding job posting to LinkedIn."
          inputParameters:
            - name: requisition_id
              in: body
              type: string
              description: "The Workday job requisition ID."
          steps:
            - name: get-requisition
              type: call
              call: "workday.get-requisition"
              with:
                requisition_id: "{{requisition_id}}"
            - name: post-to-linkedin
              type: call
              call: "linkedin.create-job-posting"
              with:
                title: "{{get-requisition.job_title}}"
                description: "{{get-requisition.job_description}}"
                location: "{{get-requisition.location}}"
                company_id: "chickfila"
            - name: notify-recruiter
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-requisition.recruiter_email}}"
                text: "Job posting '{{get-requisition.job_title}}' published to LinkedIn. Posting ID: {{post-to-linkedin.posting_id}}."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: requisitions
          path: "/jobRequisitions/{{requisition_id}}"
          inputParameters:
            - name: requisition_id
              in: path
          operations:
            - name: get-requisition
              method: GET
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v2"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: job-postings
          path: "/simpleJobPostings"
          operations:
            - name: create-job-posting
              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

Enables Chick-fil-A operators to launch localized marketing campaigns, coordinating geotargeted digital ads, in-store signage, and community event promotions.

naftiko: "0.5"
info:
  label: "Local Store Marketing Campaign Launcher"
  description: "Enables Chick-fil-A operators to launch localized marketing campaigns, coordinating geotargeted digital ads, in-store signage, and community event promotions."
  tags:
    - marketing
    - local-campaigns
    - digital-advertising
capability:
  exposes:
    - type: mcp
      namespace: local-marketing
      port: 8080
      tools:
        - name: launch-local-campaign
          description: "Launch a localized marketing campaign for a restaurant."
          inputParameters:
            - name: restaurant_id
              in: body
              type: string
              description: "The restaurant location identifier."
            - name: campaign_type
              in: body
              type: string
              description: "Campaign type such as grand-opening, community-event, or seasonal-promo."
            - name: target_radius_miles
              in: body
              type: number
              description: "Geotargeting radius in miles."
          call: "marketing-api.create-campaign"
          with:
            restaurant: "{{restaurant_id}}"
            type: "{{campaign_type}}"
            radius: "{{target_radius_miles}}"
          outputParameters:
            - name: campaign_id
              type: string
              mapping: "$.campaign.id"
            - name: estimated_reach
              type: integer
              mapping: "$.campaign.estimatedReach"
            - name: launch_date
              type: string
              mapping: "$.campaign.launchDate"
  consumes:
    - type: http
      namespace: marketing-api
      baseUri: "https://api.chick-fil-a.com/marketing/v1"
      authentication:
        type: bearer
        token: "$secrets.chickfila_marketing_token"
      resources:
        - name: campaigns
          path: "/local-campaigns"
          operations:
            - name: create-campaign
              method: POST

Processes Chick-fil-A One reward redemptions by validating points in MongoDB, applying the discount at POS, sending a confirmation via Twilio, and logging in Snowflake.

naftiko: "0.5"
info:
  label: "Loyalty Reward Redemption Orchestrator"
  description: "Processes Chick-fil-A One reward redemptions by validating points in MongoDB, applying the discount at POS, sending a confirmation via Twilio, and logging in Snowflake."
  tags:
    - loyalty
    - rewards
    - mongodb
    - twilio
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: reward-redemption
      port: 8080
      tools:
        - name: redeem-reward
          description: "Orchestrate reward redemption across MongoDB, POS, Twilio, and Snowflake."
          inputParameters:
            - name: user_id
              in: body
              type: string
              description: "App user ID."
            - name: reward_id
              in: body
              type: string
              description: "Reward to redeem."
            - name: store_id
              in: body
              type: string
              description: "Restaurant store number."
          steps:
            - name: validate-points
              type: call
              call: "mongodb.check-balance"
              with:
                collection: "app_users"
                filter: "{\"user_id\": \"{{user_id}}\"}"
            - name: apply-reward
              type: call
              call: "pos.apply-discount"
              with:
                store_id: "{{store_id}}"
                user_id: "{{user_id}}"
                reward_id: "{{reward_id}}"
            - name: send-confirmation
              type: call
              call: "twilio.send-message"
              with:
                To: "{{validate-points.phone}}"
                Body: "Your Chick-fil-A One reward has been redeemed! Remaining points: {{apply-reward.remaining_points}}."
                From: "+18667322040"
            - name: log-redemption
              type: call
              call: "snowflake.insert-redemption"
              with:
                statement: "INSERT INTO REWARD_REDEMPTIONS VALUES ('{{user_id}}', '{{reward_id}}', '{{store_id}}', CURRENT_TIMESTAMP)"
                warehouse: "CFA_LOYALTY_WH"
  consumes:
    - type: http
      namespace: mongodb
      baseUri: "https://data.mongodb-api.chickfila.com/app/data-cfa/endpoint/data/v1"
      authentication:
        type: bearer
        token: "$secrets.mongodb_api_key"
      resources:
        - name: find
          path: "/action/findOne"
          operations:
            - name: check-balance
              method: POST
    - type: http
      namespace: pos
      baseUri: "https://pos-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.pos_api_token"
      resources:
        - name: discounts
          path: "/discounts"
          operations:
            - name: apply-discount
              method: POST
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Messages.json"
          operations:
            - name: send-message
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: insert-redemption
              method: POST

Retrieves MailChimp email campaign performance metrics including open rate, click rate, and unsubscribe count for Chick-fil-A marketing campaigns.

naftiko: "0.5"
info:
  label: "MailChimp Campaign Performance Fetcher"
  description: "Retrieves MailChimp email campaign performance metrics including open rate, click rate, and unsubscribe count for Chick-fil-A marketing campaigns."
  tags:
    - marketing
    - mailchimp
    - email-campaigns
capability:
  exposes:
    - type: mcp
      namespace: email-marketing
      port: 8080
      tools:
        - name: get-campaign-performance
          description: "Retrieve MailChimp campaign performance metrics by campaign ID."
          inputParameters:
            - name: campaign_id
              in: body
              type: string
              description: "The MailChimp 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"
  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: campaign-reports
          path: "/reports/{{campaign_id}}"
          inputParameters:
            - name: campaign_id
              in: path
          operations:
            - name: get-campaign-report
              method: GET

Retrieves Mastercard payment transaction details for Chick-fil-A reconciliation, returning transaction status, amount, and settlement information.

naftiko: "0.5"
info:
  label: "Mastercard Payment Transaction Lookup"
  description: "Retrieves Mastercard payment transaction details for Chick-fil-A reconciliation, returning transaction status, amount, and settlement information."
  tags:
    - payments
    - mastercard
    - finance
    - reconciliation
capability:
  exposes:
    - type: mcp
      namespace: payment-processing
      port: 8080
      tools:
        - name: get-transaction-details
          description: "Retrieve Mastercard payment transaction details by transaction ID."
          inputParameters:
            - name: transaction_id
              in: body
              type: string
              description: "The Mastercard transaction reference ID."
          call: "mastercard.get-transaction"
          with:
            transaction_id: "{{transaction_id}}"
  consumes:
    - type: http
      namespace: mastercard
      baseUri: "https://api.mastercard.com/send/v1"
      authentication:
        type: oauth1
        consumer_key: "$secrets.mastercard_consumer_key"
        signing_key: "$secrets.mastercard_signing_key"
      resources:
        - name: transactions
          path: "/transactions/{{transaction_id}}"
          inputParameters:
            - name: transaction_id
              in: path
          operations:
            - name: get-transaction
              method: GET

Generates a Microsoft Excel report from Chick-fil-A operational data by querying the data warehouse, formatting results, and uploading to SharePoint.

naftiko: "0.5"
info:
  label: "Microsoft Excel Report Generator"
  description: "Generates a Microsoft Excel report from Chick-fil-A operational data by querying the data warehouse, formatting results, and uploading to SharePoint."
  tags:
    - reporting
    - microsoft-excel
    - sharepoint
    - teradata
capability:
  exposes:
    - type: mcp
      namespace: report-generation
      port: 8080
      tools:
        - name: generate-ops-report
          description: "Generate an Excel operations report from data warehouse data and upload to SharePoint."
          inputParameters:
            - name: report_type
              in: body
              type: string
              description: "The type of report (daily_sales, weekly_labor, monthly_food_cost)."
            - name: date_range
              in: body
              type: string
              description: "The date range for the report."
          steps:
            - name: query-data
              type: call
              call: "teradata.execute-query"
              with:
                sql: "SELECT * FROM ops_reporting.{{report_type}} WHERE date_range = '{{date_range}}'"
            - name: generate-excel
              type: call
              call: "msgraph.create-excel"
              with:
                data: "{{query-data.results}}"
                template: "{{report_type}}_template"
            - name: upload-to-sharepoint
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "ops_reports_site"
                folder_path: "Reports/{{report_type}}"
                file_content: "{{generate-excel.file}}"
  consumes:
    - type: http
      namespace: teradata
      baseUri: "https://chickfila-teradata.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.teradata_token"
      resources:
        - name: queries
          path: "/queries"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: msgraph
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: excel
          path: "/drive/items/{{template}}/workbook"
          inputParameters:
            - name: template
              in: path
          operations:
            - name: create-excel
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: uploads
          path: "/{{site_id}}/drive/root:/{{folder_path}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: upload-file
              method: PUT

Creates calendar events in Microsoft Outlook for scheduling Chick-fil-A franchise operator meetings and training sessions.

naftiko: "0.5"
info:
  label: "Microsoft Outlook Calendar Event Creator"
  description: "Creates calendar events in Microsoft Outlook for scheduling Chick-fil-A franchise operator meetings and training sessions."
  tags:
    - scheduling
    - microsoft-outlook
    - calendar
    - meetings
capability:
  exposes:
    - type: mcp
      namespace: calendar-mgmt
      port: 8080
      tools:
        - name: create-calendar-event
          description: "Create a calendar event in Microsoft Outlook."
          inputParameters:
            - name: organizer_email
              in: body
              type: string
              description: "The organizer's email address."
            - name: subject
              in: body
              type: string
              description: "The event subject."
            - name: start_time
              in: body
              type: string
              description: "Start time in ISO 8601 format."
            - name: end_time
              in: body
              type: string
              description: "End time in ISO 8601 format."
          call: "outlook.create-event"
          with:
            organizer: "{{organizer_email}}"
            subject: "{{subject}}"
            start: "{{start_time}}"
            end: "{{end_time}}"
  consumes:
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: events
          path: "/users/{{organizer}}/events"
          inputParameters:
            - name: organizer
              in: path
          operations:
            - name: create-event
              method: POST

Triggers a Microsoft Power Automate flow for Chick-fil-A business process automation and returns the flow run status.

naftiko: "0.5"
info:
  label: "Microsoft Power Automate Flow Trigger"
  description: "Triggers a Microsoft Power Automate flow for Chick-fil-A business process automation and returns the flow run status."
  tags:
    - automation
    - microsoft-power-automate
    - business-process
capability:
  exposes:
    - type: mcp
      namespace: process-automation
      port: 8080
      tools:
        - name: trigger-power-automate-flow
          description: "Trigger a Power Automate flow by flow ID with optional input parameters."
          inputParameters:
            - name: flow_id
              in: body
              type: string
              description: "The Power Automate flow ID."
            - name: trigger_body
              in: body
              type: object
              description: "The JSON body to pass to the flow trigger."
          call: "powerautomate.trigger-flow"
          with:
            flow_id: "{{flow_id}}"
            body: "{{trigger_body}}"
  consumes:
    - type: http
      namespace: powerautomate
      baseUri: "https://api.flow.microsoft.com/providers/Microsoft.ProcessSimple/environments"
      authentication:
        type: bearer
        token: "$secrets.powerautomate_token"
      resources:
        - name: flows
          path: "/{{environment_id}}/flows/{{flow_id}}/triggers/manual/run"
          inputParameters:
            - name: flow_id
              in: path
            - name: environment_id
              in: path
          operations:
            - name: trigger-flow
              method: POST

Sends a formatted notification message to a specified Microsoft Teams channel for Chick-fil-A operational communications.

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

Manages Chick-fil-A One app feature flags by updating configuration, monitoring adoption via Segment, tracking errors in Datadog, and reporting in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Mobile App Feature Flag Orchestrator"
  description: "Manages Chick-fil-A One app feature flags by updating configuration, monitoring adoption via Segment, tracking errors in Datadog, and reporting in Microsoft Teams."
  tags:
    - mobile-app
    - feature-flags
    - segment
    - datadog
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: feature-flags
      port: 8080
      tools:
        - name: toggle-feature
          description: "Orchestrate feature flag toggle across config, Segment, Datadog, and Teams."
          inputParameters:
            - name: feature_name
              in: body
              type: string
              description: "Feature flag name."
            - name: enabled
              in: body
              type: boolean
              description: "Enable or disable the feature."
            - name: rollout_pct
              in: body
              type: integer
              description: "Rollout percentage (0-100)."
          steps:
            - name: update-flag
              type: call
              call: "config.update-feature-flag"
              with:
                feature: "{{feature_name}}"
                enabled: "{{enabled}}"
                rollout: "{{rollout_pct}}"
            - name: track-adoption
              type: call
              call: "segment.create-event"
              with:
                event: "feature_flag_toggled"
                properties: "{\"feature\":\"{{feature_name}}\",\"enabled\":{{enabled}},\"rollout\":{{rollout_pct}}}"
            - name: monitor-errors
              type: call
              call: "datadog.create-monitor"
              with:
                name: "Feature flag: {{feature_name}} error rate"
                query: "sum:app.errors{feature:{{feature_name}}} / sum:app.requests{feature:{{feature_name}}}"
            - name: notify-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "mobile-engineering"
                channel: "feature-flags"
                text: "Feature {{feature_name}} {{enabled}} at {{rollout_pct}}% rollout. Monitor: {{monitor-errors.id}}."
  consumes:
    - type: http
      namespace: config
      baseUri: "https://config-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.config_api_token"
      resources:
        - name: flags
          path: "/feature-flags"
          operations:
            - name: update-feature-flag
              method: PUT
    - type: http
      namespace: segment
      baseUri: "https://api.segment.io/v1"
      authentication:
        type: bearer
        token: "$secrets.segment_write_key"
      resources:
        - name: track
          path: "/track"
          operations:
            - name: create-event
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: monitors
          path: "/monitor"
          operations:
            - name: create-monitor
              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}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST

Processes mobile orders by validating payment via Stripe, routing to the kitchen display system, sending a preparation SMS via Twilio, and logging in Snowflake.

naftiko: "0.5"
info:
  label: "Mobile Order Fulfillment Orchestrator"
  description: "Processes mobile orders by validating payment via Stripe, routing to the kitchen display system, sending a preparation SMS via Twilio, and logging in Snowflake."
  tags:
    - mobile-ordering
    - fulfillment
    - stripe
    - twilio
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: mobile-fulfillment
      port: 8080
      tools:
        - name: fulfill-mobile-order
          description: "Orchestrate mobile order fulfillment across Stripe, KDS, Twilio, and Snowflake."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "Mobile order ID."
            - name: store_id
              in: body
              type: string
              description: "Restaurant store number."
          steps:
            - name: validate-payment
              type: call
              call: "stripe.capture-payment"
              with:
                order_id: "{{order_id}}"
            - name: route-to-kitchen
              type: call
              call: "kds.send-order"
              with:
                order_id: "{{order_id}}"
                store_id: "{{store_id}}"
            - name: notify-customer
              type: call
              call: "twilio.send-message"
              with:
                To: "{{validate-payment.customer_phone}}"
                Body: "Your Chick-fil-A order #{{order_id}} is being prepared! Estimated ready time: {{route-to-kitchen.estimated_time}} minutes."
                From: "+18667322040"
            - name: log-order
              type: call
              call: "snowflake.insert-order"
              with:
                statement: "INSERT INTO MOBILE_ORDERS VALUES ('{{order_id}}', '{{store_id}}', '{{validate-payment.amount}}', CURRENT_TIMESTAMP)"
                warehouse: "CFA_ORDERS_WH"
  consumes:
    - type: http
      namespace: stripe
      baseUri: "https://api.stripe.com/v1"
      authentication:
        type: bearer
        token: "$secrets.stripe_secret_key"
      resources:
        - name: payments
          path: "/payment_intents/{{order_id}}/capture"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: capture-payment
              method: POST
    - type: http
      namespace: kds
      baseUri: "https://kds-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.kds_api_token"
      resources:
        - name: orders
          path: "/orders"
          operations:
            - name: send-order
              method: POST
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Messages.json"
          operations:
            - name: send-message
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: insert-order
              method: POST

Queries MongoDB for Chick-fil-A One mobile app user profiles including rewards points, favorite orders, and notification preferences.

naftiko: "0.5"
info:
  label: "MongoDB Mobile App User Lookup"
  description: "Queries MongoDB for Chick-fil-A One mobile app user profiles including rewards points, favorite orders, and notification preferences."
  tags:
    - mobile-app
    - customer-data
    - mongodb
capability:
  exposes:
    - type: mcp
      namespace: app-users
      port: 8080
      tools:
        - name: get-app-user
          description: "Look up a Chick-fil-A One app user profile from MongoDB."
          inputParameters:
            - name: user_id
              in: body
              type: string
              description: "App user identifier."
          call: "mongodb.find-one"
          with:
            collection: "app_users"
            filter: "{\"user_id\": \"{{user_id}}\"}"
          outputParameters:
            - name: rewards_points
              type: integer
              mapping: "$.rewards_points"
            - name: membership_tier
              type: string
              mapping: "$.membership_tier"
            - name: favorite_location
              type: string
              mapping: "$.favorite_location"
  consumes:
    - type: http
      namespace: mongodb
      baseUri: "https://data.mongodb-api.chickfila.com/app/data-cfa/endpoint/data/v1"
      authentication:
        type: bearer
        token: "$secrets.mongodb_api_key"
      resources:
        - name: find
          path: "/action/findOne"
          operations:
            - name: find-one
              method: POST

Launches a new menu item by adding to Elasticsearch catalog, configuring POS systems via SAP, publishing marketing content via MailChimp, and posting to Instagram.

naftiko: "0.5"
info:
  label: "New Menu Item Launch Orchestrator"
  description: "Launches a new menu item by adding to Elasticsearch catalog, configuring POS systems via SAP, publishing marketing content via MailChimp, and posting to Instagram."
  tags:
    - menu-management
    - product-launch
    - elasticsearch
    - sap
    - mailchimp
    - instagram
capability:
  exposes:
    - type: mcp
      namespace: menu-launch
      port: 8080
      tools:
        - name: launch-menu-item
          description: "Orchestrate new menu item launch across Elasticsearch, SAP, MailChimp, and Instagram."
          inputParameters:
            - name: item_id
              in: body
              type: string
              description: "New menu item ID."
            - name: item_name
              in: body
              type: string
              description: "Menu item display name."
            - name: category
              in: body
              type: string
              description: "Menu category."
            - name: price
              in: body
              type: number
              description: "Retail price."
          steps:
            - name: add-to-catalog
              type: call
              call: "elasticsearch.index-item"
              with:
                index: "cfa_menu"
                body: "{\"item_id\":\"{{item_id}}\",\"name\":\"{{item_name}}\",\"category\":\"{{category}}\",\"price\":{{price}},\"status\":\"active\"}"
            - name: configure-pos
              type: call
              call: "sap.create-material"
              with:
                material_id: "{{item_id}}"
                description: "{{item_name}}"
                price: "{{price}}"
            - name: send-announcement
              type: call
              call: "mailchimp.send-campaign"
              with:
                list_id: "cfa-one-members"
                template: "new-menu-item"
                subject: "New at Chick-fil-A: {{item_name}}"
            - name: social-post
              type: call
              call: "instagram.create-post"
              with:
                caption: "Introducing {{item_name}}! Now available at your local Chick-fil-A. #ChickfilA #NewMenuItem"
  consumes:
    - type: http
      namespace: elasticsearch
      baseUri: "https://search.chickfila.com"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token"
      resources:
        - name: menu
          path: "/{{index}}/_doc"
          inputParameters:
            - name: index
              in: path
          operations:
            - name: index-item
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://chickfila-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: materials
          path: "/API_PRODUCT_SRV/A_Product"
          operations:
            - name: create-material
              method: POST
    - type: http
      namespace: mailchimp
      baseUri: "https://us1.api.mailchimp.com/3.0"
      authentication:
        type: bearer
        token: "$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: "/$secrets.instagram_account_id/media"
          operations:
            - name: create-post
              method: POST

Queries New Relic for application performance metrics including response time, throughput, and error rate for Chick-fil-A digital ordering systems.

naftiko: "0.5"
info:
  label: "New Relic Application Performance Check"
  description: "Queries New Relic for application performance metrics including response time, throughput, and error rate for Chick-fil-A digital ordering systems."
  tags:
    - monitoring
    - new-relic
    - application-performance
    - digital-ordering
capability:
  exposes:
    - type: mcp
      namespace: apm-monitoring
      port: 8080
      tools:
        - name: get-app-performance
          description: "Retrieve New Relic application performance metrics for a Chick-fil-A digital application."
          inputParameters:
            - name: app_id
              in: body
              type: string
              description: "The New Relic application ID."
          call: "newrelic.get-app-metrics"
          with:
            app_id: "{{app_id}}"
  consumes:
    - type: http
      namespace: newrelic
      baseUri: "https://api.newrelic.com/v2"
      authentication:
        type: apikey
        key: "$secrets.newrelic_api_key"
      resources:
        - name: applications
          path: "/applications/{{app_id}}.json"
          inputParameters:
            - name: app_id
              in: path
          operations:
            - name: get-app-metrics
              method: GET

Provides detailed nutritional and allergen information for Chick-fil-A menu items, supporting guest dietary inquiries and menu customization decisions.

naftiko: "0.5"
info:
  label: "Nutrition Allergen Information Lookup"
  description: "Provides detailed nutritional and allergen information for Chick-fil-A menu items, supporting guest dietary inquiries and menu customization decisions."
  tags:
    - menu-management
    - nutrition
    - allergen-safety
capability:
  exposes:
    - type: mcp
      namespace: nutrition-info
      port: 8080
      tools:
        - name: get-nutrition-info
          description: "Retrieve nutritional and allergen data for a menu item."
          inputParameters:
            - name: menu_item_id
              in: body
              type: string
              description: "The menu item identifier."
            - name: customizations
              in: body
              type: array
              description: "List of customization modifications applied to the item."
          call: "menu-data-api.get-nutrition"
          with:
            item: "{{menu_item_id}}"
            mods: "{{customizations}}"
          outputParameters:
            - name: calories
              type: integer
              mapping: "$.nutrition.calories"
            - name: allergens
              type: array
              mapping: "$.nutrition.allergens"
            - name: dietary_flags
              type: array
              mapping: "$.nutrition.dietaryFlags"
  consumes:
    - type: http
      namespace: menu-data-api
      baseUri: "https://api.chick-fil-a.com/menu/v1"
      authentication:
        type: bearer
        token: "$secrets.chickfila_menu_api_token"
      resources:
        - name: nutrition
          path: "/items/{{item}}/nutrition"
          inputParameters:
            - name: item
              in: path
          operations:
            - name: get-nutrition
              method: GET

Checks employee and operator authentication status and MFA enrollment in Okta for Chick-fil-A corporate and restaurant systems.

naftiko: "0.5"
info:
  label: "Okta Employee Access Status"
  description: "Checks employee and operator authentication status and MFA enrollment in Okta for Chick-fil-A corporate and restaurant systems."
  tags:
    - identity
    - authentication
    - okta
capability:
  exposes:
    - type: mcp
      namespace: identity-management
      port: 8080
      tools:
        - name: get-user-status
          description: "Check an employee's authentication status in Okta."
          inputParameters:
            - name: user_email
              in: body
              type: string
              description: "Employee email address."
          call: "okta.get-user"
          with:
            login: "{{user_email}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: last_login
              type: string
              mapping: "$.lastLogin"
  consumes:
    - type: http
      namespace: okta
      baseUri: "https://chickfila.okta.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.okta_api_token"
      resources:
        - name: users
          path: "/users/{{login}}"
          inputParameters:
            - name: login
              in: path
          operations:
            - name: get-user
              method: GET

Manages operator development by pulling performance data from Snowflake, assigning Pluralsight training, scheduling coaching sessions via Zoom, and tracking progress in Salesforce.

naftiko: "0.5"
info:
  label: "Operator Leadership Development Pipeline"
  description: "Manages operator development by pulling performance data from Snowflake, assigning Pluralsight training, scheduling coaching sessions via Zoom, and tracking progress in Salesforce."
  tags:
    - leadership
    - development
    - snowflake
    - pluralsight
    - zoom
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: operator-development
      port: 8080
      tools:
        - name: create-development-plan
          description: "Orchestrate operator development across Snowflake, Pluralsight, Zoom, and Salesforce."
          inputParameters:
            - name: operator_id
              in: body
              type: string
              description: "Operator identifier."
            - name: focus_areas
              in: body
              type: string
              description: "Development focus areas."
          steps:
            - name: get-performance
              type: call
              call: "snowflake.query-operator"
              with:
                statement: "SELECT * FROM OPERATOR_PERFORMANCE WHERE operator_id = '{{operator_id}}'"
                warehouse: "CFA_LEADERSHIP_WH"
            - name: assign-training
              type: call
              call: "pluralsight.assign-channel"
              with:
                email: "{{get-performance.email}}"
                channel_id: "operator-{{focus_areas}}"
            - name: schedule-coaching
              type: call
              call: "zoom.create-meeting"
              with:
                topic: "Leadership Coaching: {{get-performance.name}}"
                duration: 45
                invitee: "{{get-performance.email}}"
            - name: create-plan
              type: call
              call: "salesforce.create-development-plan"
              with:
                operator_id: "{{operator_id}}"
                focus_areas: "{{focus_areas}}"
                training: "{{assign-training.channel_name}}"
                coaching: "{{schedule-coaching.join_url}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query-operator
              method: POST
    - type: http
      namespace: pluralsight
      baseUri: "https://api.pluralsight.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.pluralsight_token"
      resources:
        - name: assignments
          path: "/channel-assignments"
          operations:
            - name: assign-channel
              method: POST
    - 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: salesforce
      baseUri: "https://chickfila.my.salesforce.com/services/data/v59.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: plans
          path: "/sobjects/Development_Plan__c"
          operations:
            - name: create-development-plan
              method: POST

Queries Oracle Fusion for current inventory levels at a specific Chick-fil-A distribution center, returning item counts, reorder thresholds, and low-stock alerts.

naftiko: "0.5"
info:
  label: "Oracle Fusion Inventory Level Check"
  description: "Queries Oracle Fusion for current inventory levels at a specific Chick-fil-A distribution center, returning item counts, reorder thresholds, and low-stock alerts."
  tags:
    - inventory
    - oracle
    - supply-chain
    - warehouse
capability:
  exposes:
    - type: mcp
      namespace: inventory-management
      port: 8080
      tools:
        - name: check-inventory-levels
          description: "Check inventory levels at an Oracle Fusion distribution center for specified items."
          inputParameters:
            - name: warehouse_id
              in: body
              type: string
              description: "The distribution center warehouse ID."
            - name: item_number
              in: body
              type: string
              description: "The inventory item number."
          call: "oracle.get-inventory"
          with:
            warehouse_id: "{{warehouse_id}}"
            item_number: "{{item_number}}"
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://chickfila-erp.oracle.com/fscmRestApi/resources/v1"
      authentication:
        type: basic
        username: "$secrets.oracle_user"
        password: "$secrets.oracle_password"
      resources:
        - name: inventory-balances
          path: "/inventoryBalances"
          inputParameters:
            - name: warehouse_id
              in: query
            - name: item_number
              in: query
          operations:
            - name: get-inventory
              method: GET

Retrieves the current on-call schedule from PagerDuty for Chick-fil-A technology platform teams.

naftiko: "0.5"
info:
  label: "PagerDuty On-Call Schedule Lookup"
  description: "Retrieves the current on-call schedule from PagerDuty for Chick-fil-A technology platform teams."
  tags:
    - incident-management
    - on-call
    - pagerduty
capability:
  exposes:
    - type: mcp
      namespace: oncall-management
      port: 8080
      tools:
        - name: get-oncall
          description: "Fetch current on-call engineers from PagerDuty."
          inputParameters:
            - name: schedule_id
              in: body
              type: string
              description: "PagerDuty schedule ID."
          call: "pagerduty.get-oncall"
          with:
            schedule_ids: "{{schedule_id}}"
          outputParameters:
            - name: oncall_user
              type: string
              mapping: "$.oncalls[0].user.summary"
            - name: escalation_level
              type: integer
              mapping: "$.oncalls[0].escalation_level"
  consumes:
    - type: http
      namespace: pagerduty
      baseUri: "https://api.pagerduty.com"
      authentication:
        type: bearer
        token: "$secrets.pagerduty_token"
      resources:
        - name: oncalls
          path: "/oncalls"
          operations:
            - name: get-oncall
              method: GET

Retrieves firewall rule details from Palo Alto Networks for Chick-fil-A network security management.

naftiko: "0.5"
info:
  label: "Palo Alto Networks Firewall Rule Lookup"
  description: "Retrieves firewall rule details from Palo Alto Networks for Chick-fil-A network security management."
  tags:
    - security
    - palo-alto-networks
    - firewall
    - network
capability:
  exposes:
    - type: mcp
      namespace: network-security
      port: 8080
      tools:
        - name: get-firewall-rule
          description: "Retrieve a Palo Alto Networks firewall rule by name."
          inputParameters:
            - name: rule_name
              in: body
              type: string
              description: "The firewall rule name."
          call: "paloalto.get-security-rule"
          with:
            name: "{{rule_name}}"
  consumes:
    - type: http
      namespace: paloalto
      baseUri: "https://chickfila-fw.paloaltonetworks.com/restapi/v10.2"
      authentication:
        type: apikey
        key: "$secrets.paloalto_api_key"
      resources:
        - name: security-rules
          path: "/Policies/SecurityRules"
          inputParameters:
            - name: name
              in: query
          operations:
            - name: get-security-rule
              method: GET

Manages playground cleanliness inspection schedules and reporting for Chick-fil-A locations with indoor play areas, tracking sanitization compliance and maintenance needs.

naftiko: "0.5"
info:
  label: "Playground Cleanliness Inspection Reporter"
  description: "Manages playground cleanliness inspection schedules and reporting for Chick-fil-A locations with indoor play areas, tracking sanitization compliance and maintenance needs."
  tags:
    - restaurant-operations
    - facilities
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: playground-inspection
      port: 8080
      tools:
        - name: submit-inspection-report
          description: "Submit a playground cleanliness inspection report."
          inputParameters:
            - name: restaurant_id
              in: body
              type: string
              description: "The restaurant location identifier."
            - name: inspector_id
              in: body
              type: string
              description: "The team member performing the inspection."
            - name: inspection_type
              in: body
              type: string
              description: "Inspection type such as routine, deep-clean, or incident."
          call: "facilities-api.submit-inspection"
          with:
            restaurant: "{{restaurant_id}}"
            inspector: "{{inspector_id}}"
            type: "{{inspection_type}}"
          outputParameters:
            - name: inspection_id
              type: string
              mapping: "$.inspection.id"
            - name: compliance_score
              type: number
              mapping: "$.inspection.complianceScore"
            - name: issues_flagged
              type: array
              mapping: "$.inspection.issuesFlagged"
  consumes:
    - type: http
      namespace: facilities-api
      baseUri: "https://api.chick-fil-a.com/facilities/v1"
      authentication:
        type: bearer
        token: "$secrets.chickfila_facilities_token"
      resources:
        - name: inspections
          path: "/restaurants/{{restaurant}}/playground-inspections"
          inputParameters:
            - name: restaurant
              in: path
          operations:
            - name: submit-inspection
              method: POST

Assigns Pluralsight training courses to Chick-fil-A team members and tracks completion status for compliance and professional development.

naftiko: "0.5"
info:
  label: "Pluralsight Training Assignment"
  description: "Assigns Pluralsight training courses to Chick-fil-A team members and tracks completion status for compliance and professional development."
  tags:
    - training
    - pluralsight
    - learning
    - professional-development
capability:
  exposes:
    - type: mcp
      namespace: learning-mgmt
      port: 8080
      tools:
        - name: assign-training-course
          description: "Assign a Pluralsight training course to a team member."
          inputParameters:
            - name: user_email
              in: body
              type: string
              description: "The team member's email address."
            - name: course_id
              in: body
              type: string
              description: "The Pluralsight course ID."
            - name: due_date
              in: body
              type: string
              description: "The assignment due date in YYYY-MM-DD format."
          call: "pluralsight.assign-course"
          with:
            email: "{{user_email}}"
            course_id: "{{course_id}}"
            due_date: "{{due_date}}"
  consumes:
    - type: http
      namespace: pluralsight
      baseUri: "https://api.pluralsight.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.pluralsight_token"
      resources:
        - name: assignments
          path: "/assignments"
          operations:
            - name: assign-course
              method: POST

Rolls out POS system updates by validating the build in Azure DevOps, deploying to test stores, monitoring via Datadog, and promoting to production with ServiceNow change approval.

naftiko: "0.5"
info:
  label: "POS System Update Rollout Orchestrator"
  description: "Rolls out POS system updates by validating the build in Azure DevOps, deploying to test stores, monitoring via Datadog, and promoting to production with ServiceNow change approval."
  tags:
    - pos
    - deployment
    - azure-devops
    - datadog
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: pos-rollout
      port: 8080
      tools:
        - name: rollout-pos-update
          description: "Orchestrate POS update rollout across Azure DevOps, Datadog, and ServiceNow."
          inputParameters:
            - name: build_id
              in: body
              type: string
              description: "Azure DevOps build ID."
            - name: target_stores
              in: body
              type: string
              description: "Comma-separated store IDs for deployment."
          steps:
            - name: validate-build
              type: call
              call: "azuredevops.get-build"
              with:
                build_id: "{{build_id}}"
            - name: deploy-test
              type: call
              call: "azuredevops.trigger-release"
              with:
                build_id: "{{build_id}}"
                environment: "test-stores"
            - name: monitor-health
              type: call
              call: "datadog.check-deployment"
              with:
                service: "pos-system"
                version: "{{validate-build.version}}"
            - name: create-change
              type: call
              call: "servicenow.create-change"
              with:
                short_description: "POS Update: v{{validate-build.version}} to {{target_stores}}"
                category: "pos_deployment"
                assigned_group: "Restaurant_Technology"
                description: "Build: {{build_id}}\nVersion: {{validate-build.version}}\nTest results: {{monitor-health.status}}\nTarget stores: {{target_stores}}"
  consumes:
    - type: http
      namespace: azuredevops
      baseUri: "https://dev.azure.com/chickfila/pos/_apis"
      authentication:
        type: bearer
        token: "$secrets.azuredevops_token"
      resources:
        - name: builds
          path: "/build/builds/{{build_id}}"
          inputParameters:
            - name: build_id
              in: path
          operations:
            - name: get-build
              method: GET
        - name: releases
          path: "/release/releases"
          operations:
            - name: trigger-release
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: services
          path: "/check_run"
          operations:
            - name: check-deployment
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://chickfila.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: changes
          path: "/table/change_request"
          operations:
            - name: create-change
              method: POST

Triggers a Postman collection run for Chick-fil-A API regression testing, returning pass/fail results and test summary.

naftiko: "0.5"
info:
  label: "Postman API Collection Runner"
  description: "Triggers a Postman collection run for Chick-fil-A API regression testing, returning pass/fail results and test summary."
  tags:
    - api-testing
    - postman
    - qa
    - regression
capability:
  exposes:
    - type: mcp
      namespace: api-testing
      port: 8080
      tools:
        - name: run-api-tests
          description: "Run a Postman collection for API regression testing."
          inputParameters:
            - name: collection_id
              in: body
              type: string
              description: "The Postman collection UID."
            - name: environment_id
              in: body
              type: string
              description: "The Postman environment UID."
          call: "postman.run-collection"
          with:
            collection: "{{collection_id}}"
            environment: "{{environment_id}}"
  consumes:
    - type: http
      namespace: postman
      baseUri: "https://api.getpostman.com"
      authentication:
        type: apikey
        key: "$secrets.postman_api_key"
      resources:
        - name: collection-runs
          path: "/collections/{{collection}}/runs"
          inputParameters:
            - name: collection
              in: path
            - name: environment
              in: query
          operations:
            - name: run-collection
              method: POST

Queries Prometheus for POS system performance metrics including transaction throughput, average processing time, and error rates across Chick-fil-A locations.

naftiko: "0.5"
info:
  label: "Prometheus POS System Metrics"
  description: "Queries Prometheus for POS system performance metrics including transaction throughput, average processing time, and error rates across Chick-fil-A locations."
  tags:
    - monitoring
    - pos
    - prometheus
capability:
  exposes:
    - type: mcp
      namespace: pos-metrics
      port: 8080
      tools:
        - name: query-pos-metrics
          description: "Query Prometheus for POS system metrics."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Restaurant store number."
            - name: metric
              in: body
              type: string
              description: "Metric name (txn_throughput, avg_processing_time, error_rate)."
          call: "prometheus.query"
          with:
            query: "{{metric}}{store=\"{{store_id}}\"}"
          outputParameters:
            - name: value
              type: number
              mapping: "$.data.result[0].value[1]"
  consumes:
    - type: http
      namespace: prometheus
      baseUri: "https://prometheus.chickfila.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.prometheus_token"
      resources:
        - name: query
          path: "/query"
          operations:
            - name: query
              method: POST

Queries Redis cache for current menu item availability, pricing, and nutritional information across Chick-fil-A restaurant locations.

naftiko: "0.5"
info:
  label: "Redis Menu Cache Lookup"
  description: "Queries Redis cache for current menu item availability, pricing, and nutritional information across Chick-fil-A restaurant locations."
  tags:
    - menu
    - caching
    - redis
capability:
  exposes:
    - type: mcp
      namespace: menu-cache
      port: 8080
      tools:
        - name: get-menu-item
          description: "Look up a menu item from Redis cache."
          inputParameters:
            - name: item_id
              in: body
              type: string
              description: "Menu item identifier."
          call: "redis.get-key"
          with:
            key: "menu:{{item_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.name"
            - name: price
              type: number
              mapping: "$.price"
            - name: available
              type: boolean
              mapping: "$.available"
  consumes:
    - type: http
      namespace: redis
      baseUri: "https://redis-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.redis_api_token"
      resources:
        - name: keys
          path: "/get/{{key}}"
          inputParameters:
            - name: key
              in: path
          operations:
            - name: get-key
              method: GET

On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder for training docs, and sends a Microsoft Teams welcome message to the new team member.

naftiko: "0.5"
info:
  label: "Restaurant Employee Onboarding Orchestrator"
  description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder for training docs, and sends a Microsoft Teams welcome message to the new team member."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence across ServiceNow, SharePoint, and Microsoft Teams."
          inputParameters:
            - name: workday_employee_id
              in: body
              type: string
              description: "The Workday worker ID for the new hire."
            - name: start_date
              in: body
              type: string
              description: "The employee start date in YYYY-MM-DD format."
            - name: restaurant_id
              in: body
              type: string
              description: "The Chick-fil-A restaurant location ID."
          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: "New hire onboarding: {{get-employee.full_name}}"
                category: "hr_onboarding"
                assigned_group: "Restaurant_Onboarding"
                description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} at restaurant {{restaurant_id}}."
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "cfa_onboarding_site"
                folder_path: "OnboardingDocs/{{restaurant_id}}/{{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 Chick-fil-A, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. Training docs are at {{provision-folder.url}}."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://chickfila.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

Manages equipment maintenance by checking IoT sensor data, creating ServiceNow work orders, scheduling technician visits, and notifying the operator via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Restaurant Equipment Maintenance Orchestrator"
  description: "Manages equipment maintenance by checking IoT sensor data, creating ServiceNow work orders, scheduling technician visits, and notifying the operator via Microsoft Teams."
  tags:
    - equipment
    - maintenance
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: equipment-maintenance
      port: 8080
      tools:
        - name: schedule-maintenance
          description: "Orchestrate equipment maintenance across sensors, ServiceNow, and Teams."
          inputParameters:
            - name: equipment_id
              in: body
              type: string
              description: "Equipment asset ID."
            - name: store_id
              in: body
              type: string
              description: "Restaurant store number."
            - name: issue_type
              in: body
              type: string
              description: "Issue type (preventive, corrective, emergency)."
          steps:
            - name: check-diagnostics
              type: call
              call: "iot.get-equipment-health"
              with:
                equipment_id: "{{equipment_id}}"
            - name: create-work-order
              type: call
              call: "servicenow.create-work-order"
              with:
                short_description: "{{issue_type}} maintenance: {{equipment_id}} at Store {{store_id}}"
                category: "equipment_maintenance"
                assigned_group: "Equipment_Services"
                description: "Equipment: {{equipment_id}}\nStore: {{store_id}}\nType: {{issue_type}}\nDiagnostics: {{check-diagnostics.status}}"
            - name: schedule-tech
              type: call
              call: "fieldservice.schedule-visit"
              with:
                work_order_id: "{{create-work-order.number}}"
                store_id: "{{store_id}}"
                priority: "{{issue_type}}"
            - name: notify-operator
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "store-{{store_id}}"
                channel: "maintenance"
                text: "Maintenance scheduled: {{equipment_id}} ({{issue_type}}). Work order: {{create-work-order.number}}. Tech visit: {{schedule-tech.date}}."
  consumes:
    - type: http
      namespace: iot
      baseUri: "https://iot-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.iot_api_token"
      resources:
        - name: equipment
          path: "/equipment/{{equipment_id}}/health"
          inputParameters:
            - name: equipment_id
              in: path
          operations:
            - name: get-equipment-health
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://chickfila.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: work-orders
          path: "/table/wm_order"
          operations:
            - name: create-work-order
              method: POST
    - type: http
      namespace: fieldservice
      baseUri: "https://fieldservice-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.fieldservice_token"
      resources:
        - name: visits
          path: "/visits"
          operations:
            - name: schedule-visit
              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}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST

Orchestrates the readiness check for a new Chick-fil-A restaurant opening by verifying equipment inventory in Oracle, confirming staff assignments in Workday, creating a go-live checklist in ServiceNow, and notifying leadership via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Restaurant Opening Readiness Orchestrator"
  description: "Orchestrates the readiness check for a new Chick-fil-A restaurant opening by verifying equipment inventory in Oracle, confirming staff assignments in Workday, creating a go-live checklist in ServiceNow, and notifying leadership via Microsoft Teams."
  tags:
    - restaurant-operations
    - oracle
    - workday
    - servicenow
    - microsoft-teams
    - new-store
capability:
  exposes:
    - type: mcp
      namespace: store-readiness
      port: 8080
      tools:
        - name: check-opening-readiness
          description: "Run the full readiness check for a new restaurant opening across equipment, staffing, and operational systems."
          inputParameters:
            - name: restaurant_id
              in: body
              type: string
              description: "The new restaurant location ID."
            - name: opening_date
              in: body
              type: string
              description: "The planned opening date in YYYY-MM-DD format."
          steps:
            - name: check-equipment
              type: call
              call: "oracle.get-inventory"
              with:
                warehouse_id: "{{restaurant_id}}"
                item_number: "OPENING_KIT"
            - name: check-staffing
              type: call
              call: "workday.get-headcount"
              with:
                location_id: "{{restaurant_id}}"
            - name: create-checklist
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Go-Live Checklist: Restaurant {{restaurant_id}} opening {{opening_date}}"
                category: "store_opening"
                description: "Equipment status: {{check-equipment.quantity_on_hand}} units. Staff assigned: {{check-staffing.headcount}}."
            - name: notify-leadership
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "new_store_openings"
                channel_id: "readiness_updates"
                text: "Restaurant {{restaurant_id}} opening {{opening_date}}: Equipment ready ({{check-equipment.quantity_on_hand}} units), Staff assigned ({{check-staffing.headcount}}). Checklist ticket: {{create-checklist.number}}."
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://chickfila-erp.oracle.com/fscmRestApi/resources/v1"
      authentication:
        type: basic
        username: "$secrets.oracle_user"
        password: "$secrets.oracle_password"
      resources:
        - name: inventory-balances
          path: "/inventoryBalances"
          inputParameters:
            - name: warehouse_id
              in: query
            - name: item_number
              in: query
          operations:
            - name: get-inventory
              method: GET
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: headcount
          path: "/workers"
          inputParameters:
            - name: location_id
              in: query
          operations:
            - name: get-headcount
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://chickfila.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-channel-message
              method: POST

On restaurant technology incident, checks Datadog for system health, creates a ServiceNow ticket, pages on-call via PagerDuty, and posts a status update to Microsoft Teams.

naftiko: "0.5"
info:
  label: "Restaurant Technology Incident Pipeline"
  description: "On restaurant technology incident, checks Datadog for system health, creates a ServiceNow ticket, pages on-call via PagerDuty, and posts a status update to Microsoft Teams."
  tags:
    - incident-response
    - restaurant-tech
    - datadog
    - servicenow
    - pagerduty
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: tech-incident
      port: 8080
      tools:
        - name: respond-to-incident
          description: "Orchestrate restaurant technology incident response across Datadog, ServiceNow, PagerDuty, and Teams."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Affected restaurant store number."
            - name: system
              in: body
              type: string
              description: "Affected system (pos, kds, wifi, drive-thru)."
            - name: description
              in: body
              type: string
              description: "Incident description."
          steps:
            - name: check-health
              type: call
              call: "datadog.get-service-status"
              with:
                service: "{{system}}-{{store_id}}"
            - name: create-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Store {{store_id}} {{system}} issue: {{description}}"
                category: "restaurant_technology"
                assigned_group: "Restaurant_Technology"
                description: "Store: {{store_id}}\nSystem: {{system}}\nHealth: {{check-health.status}}\nDescription: {{description}}"
            - name: page-oncall
              type: call
              call: "pagerduty.create-incident"
              with:
                service_id: "restaurant-tech"
                title: "Store {{store_id}} {{system}}: {{description}}"
                body: "ServiceNow: {{create-ticket.number}}"
            - name: post-status
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "restaurant-support"
                channel: "incidents"
                text: "INCIDENT Store {{store_id}} {{system}}: {{description}}. Ticket: {{create-ticket.number}}. On-call paged."
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: services
          path: "/check_run"
          operations:
            - name: get-service-status
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://chickfila.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: pagerduty
      baseUri: "https://api.pagerduty.com"
      authentication:
        type: bearer
        token: "$secrets.pagerduty_token"
      resources:
        - name: incidents
          path: "/incidents"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: 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}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST

Retrieves a Salesforce lead record by email address, returning contact details, lead status, and franchise inquiry information for Chick-fil-A operator recruitment.

naftiko: "0.5"
info:
  label: "Salesforce Lead Lookup"
  description: "Retrieves a Salesforce lead record by email address, returning contact details, lead status, and franchise inquiry information for Chick-fil-A operator recruitment."
  tags:
    - crm
    - salesforce
    - lead-management
    - franchise
capability:
  exposes:
    - type: mcp
      namespace: crm-leads
      port: 8080
      tools:
        - name: get-lead-by-email
          description: "Search for a Salesforce lead by email address and return lead details including status, source, and franchise interest."
          inputParameters:
            - name: email
              in: body
              type: string
              description: "The email address to search for in Salesforce leads."
          call: "salesforce.query-lead"
          with:
            q: "SELECT Id, Name, Email, Status, LeadSource, Company FROM Lead WHERE Email = '{{email}}'"
          outputParameters:
            - name: lead_id
              type: string
              mapping: "$.records[0].Id"
            - name: name
              type: string
              mapping: "$.records[0].Name"
            - name: status
              type: string
              mapping: "$.records[0].Status"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://chickfila.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: query
          path: "/query"
          inputParameters:
            - name: q
              in: query
          operations:
            - name: query-lead
              method: GET

When an expense report is submitted in SAP Concur, validates the amounts, creates a corresponding entry in Oracle Financials, and notifies the approver via Microsoft Teams.

naftiko: "0.5"
info:
  label: "SAP Concur Expense Report Processor"
  description: "When an expense report is submitted in SAP Concur, validates the amounts, creates a corresponding entry in Oracle Financials, and notifies the approver via Microsoft Teams."
  tags:
    - finance
    - sap-concur
    - oracle
    - microsoft-teams
    - expense-management
capability:
  exposes:
    - type: mcp
      namespace: expense-processing
      port: 8080
      tools:
        - name: process-expense-report
          description: "Process a SAP Concur expense report by validating, syncing to Oracle, and notifying the approver."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "The SAP Concur expense report ID."
          steps:
            - name: get-expense-report
              type: call
              call: "concur.get-report"
              with:
                report_id: "{{report_id}}"
            - name: create-oracle-entry
              type: call
              call: "oracle.create-journal-entry"
              with:
                amount: "{{get-expense-report.total_amount}}"
                currency: "{{get-expense-report.currency}}"
                employee_id: "{{get-expense-report.employee_id}}"
                description: "Expense Report {{report_id}}"
            - name: notify-approver
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-expense-report.approver_email}}"
                text: "Expense Report {{report_id}} for ${{get-expense-report.total_amount}} from {{get-expense-report.employee_name}} is pending your approval. Oracle entry: {{create-oracle-entry.journal_id}}."
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://us.api.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: expense-reports
          path: "/expense/reports/{{report_id}}"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: get-report
              method: GET
    - type: http
      namespace: oracle
      baseUri: "https://chickfila-erp.oracle.com/fscmRestApi/resources/v1"
      authentication:
        type: basic
        username: "$secrets.oracle_user"
        password: "$secrets.oracle_password"
      resources:
        - name: journal-entries
          path: "/journalEntries"
          operations:
            - name: create-journal-entry
              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

Looks up a SAP purchase order by number and returns header status, vendor, total value, and open line items for Chick-fil-A supply chain management.

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

Monitors sauce packet inventory levels across restaurant locations and triggers automatic replenishment orders when stock falls below configurable thresholds.

naftiko: "0.5"
info:
  label: "Sauce Inventory Replenishment Pipeline"
  description: "Monitors sauce packet inventory levels across restaurant locations and triggers automatic replenishment orders when stock falls below configurable thresholds."
  tags:
    - inventory
    - supply-chain
    - replenishment
capability:
  exposes:
    - type: mcp
      namespace: sauce-inventory
      port: 8080
      tools:
        - name: check-sauce-levels
          description: "Check sauce packet inventory levels and trigger replenishment if needed."
          inputParameters:
            - name: restaurant_id
              in: body
              type: string
              description: "The restaurant location identifier."
            - name: sauce_type
              in: body
              type: string
              description: "Sauce type such as chick-fil-a-sauce, polynesian, or honey-mustard."
          call: "inventory-api.get-sauce-stock"
          with:
            restaurant: "{{restaurant_id}}"
            sauce: "{{sauce_type}}"
          outputParameters:
            - name: current_stock
              type: integer
              mapping: "$.inventory.currentCount"
            - name: reorder_triggered
              type: boolean
              mapping: "$.inventory.reorderTriggered"
            - name: estimated_delivery
              type: string
              mapping: "$.inventory.estimatedDeliveryDate"
  consumes:
    - type: http
      namespace: inventory-api
      baseUri: "https://api.chick-fil-a.com/inventory/v1"
      authentication:
        type: bearer
        token: "$secrets.chickfila_inventory_token"
      resources:
        - name: sauce-stock
          path: "/restaurants/{{restaurant}}/sauces/{{sauce}}"
          inputParameters:
            - name: restaurant
              in: path
            - name: sauce
              in: path
          operations:
            - name: get-sauce-stock
              method: GET

Processes Chick-fil-A Remarkable Futures scholarship applications from team members, managing document verification, eligibility checks, and award notifications.

naftiko: "0.5"
info:
  label: "Scholarship Application Processing Pipeline"
  description: "Processes Chick-fil-A Remarkable Futures scholarship applications from team members, managing document verification, eligibility checks, and award notifications."
  tags:
    - workforce
    - scholarships
    - human-resources
capability:
  exposes:
    - type: mcp
      namespace: scholarship-processing
      port: 8080
      tools:
        - name: process-scholarship-application
          description: "Process a team member scholarship application through verification stages."
          inputParameters:
            - name: application_id
              in: body
              type: string
              description: "The scholarship application identifier."
            - name: employee_id
              in: body
              type: string
              description: "The team member employee identifier."
          call: "scholarship-api.review-application"
          with:
            application: "{{application_id}}"
            employee: "{{employee_id}}"
          outputParameters:
            - name: eligibility_status
              type: string
              mapping: "$.application.eligibilityStatus"
            - name: documents_verified
              type: boolean
              mapping: "$.application.documentsVerified"
            - name: award_amount
              type: number
              mapping: "$.application.awardAmount"
  consumes:
    - type: http
      namespace: scholarship-api
      baseUri: "https://api.chick-fil-a.com/hr/v1"
      authentication:
        type: bearer
        token: "$secrets.chickfila_hr_api_token"
      resources:
        - name: applications
          path: "/scholarships/applications/{{application}}"
          inputParameters:
            - name: application
              in: path
          operations:
            - name: review-application
              method: POST

Launches seasonal menu promotions by updating Elasticsearch catalog, configuring POS pricing, sending marketing emails via MailChimp, and posting to social media.

naftiko: "0.5"
info:
  label: "Seasonal Menu Promotion Pipeline"
  description: "Launches seasonal menu promotions by updating Elasticsearch catalog, configuring POS pricing, sending marketing emails via MailChimp, and posting to social media."
  tags:
    - marketing
    - seasonal
    - elasticsearch
    - mailchimp
    - instagram
capability:
  exposes:
    - type: mcp
      namespace: seasonal-promotion
      port: 8080
      tools:
        - name: launch-seasonal-promo
          description: "Orchestrate seasonal promotion across Elasticsearch, POS, MailChimp, and Instagram."
          inputParameters:
            - name: promo_id
              in: body
              type: string
              description: "Promotion identifier."
            - name: items
              in: body
              type: string
              description: "Comma-separated menu item IDs."
            - name: start_date
              in: body
              type: string
              description: "Promotion start date."
          steps:
            - name: update-catalog
              type: call
              call: "elasticsearch.bulk-update-menu"
              with:
                index: "cfa_menu"
                items: "{{items}}"
                promo_badge: "seasonal"
            - name: configure-pricing
              type: call
              call: "pos.apply-promo-pricing"
              with:
                promo_id: "{{promo_id}}"
                items: "{{items}}"
                start_date: "{{start_date}}"
            - name: send-email
              type: call
              call: "mailchimp.send-campaign"
              with:
                list_id: "cfa-one-members"
                template: "seasonal-promo"
                subject: "Seasonal favorites are back at Chick-fil-A!"
            - name: social-post
              type: call
              call: "instagram.create-post"
              with:
                caption: "Our seasonal favorites are here! Available for a limited time. #ChickfilA #SeasonalMenu"
  consumes:
    - type: http
      namespace: elasticsearch
      baseUri: "https://search.chickfila.com"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token"
      resources:
        - name: bulk
          path: "/_bulk"
          operations:
            - name: bulk-update-menu
              method: POST
    - type: http
      namespace: pos
      baseUri: "https://pos-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.pos_api_token"
      resources:
        - name: promotions
          path: "/promotions"
          operations:
            - name: apply-promo-pricing
              method: POST
    - type: http
      namespace: mailchimp
      baseUri: "https://us1.api.mailchimp.com/3.0"
      authentication:
        type: bearer
        token: "$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: "/$secrets.instagram_account_id/media"
          operations:
            - name: create-post
              method: POST

Retrieves customer behavioral event data from Segment for the Chick-fil-A One app including order events, reward redemptions, and location check-ins.

naftiko: "0.5"
info:
  label: "Segment Mobile App Event Tracker"
  description: "Retrieves customer behavioral event data from Segment for the Chick-fil-A One app including order events, reward redemptions, and location check-ins."
  tags:
    - analytics
    - mobile-app
    - segment
capability:
  exposes:
    - type: mcp
      namespace: app-events
      port: 8080
      tools:
        - name: get-app-events
          description: "Fetch mobile app events from Segment."
          inputParameters:
            - name: user_id
              in: body
              type: string
              description: "App user ID."
            - name: event_type
              in: body
              type: string
              description: "Event type filter (order_placed, reward_redeemed, check_in)."
          call: "segment.get-profile-events"
          with:
            user_id: "{{user_id}}"
            event: "{{event_type}}"
          outputParameters:
            - name: events
              type: array
              mapping: "$.data"
            - name: count
              type: integer
              mapping: "$.cursor.total"
  consumes:
    - type: http
      namespace: segment
      baseUri: "https://profiles.segment.com/v1/spaces/$secrets.segment_space_id"
      authentication:
        type: bearer
        token: "$secrets.segment_api_token"
      resources:
        - name: events
          path: "/collections/users/profiles/user_id:{{user_id}}/events"
          inputParameters:
            - name: user_id
              in: path
          operations:
            - name: get-profile-events
              method: GET

Fetches the current status of a ServiceNow incident by number, returning state, priority, assigned group, and resolution notes for Chick-fil-A IT support.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Status"
  description: "Fetches the current status of a ServiceNow incident by number, returning state, priority, assigned group, and resolution notes for Chick-fil-A IT support."
  tags:
    - it-support
    - servicenow
    - incident-management
capability:
  exposes:
    - type: mcp
      namespace: itsm-incidents
      port: 8080
      tools:
        - name: get-incident-status
          description: "Retrieve a ServiceNow incident by number and return its current state, priority, and assigned group."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number (e.g., INC0012345)."
          call: "servicenow.get-incident"
          with:
            number: "{{incident_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.result[0].state"
            - name: priority
              type: string
              mapping: "$.result[0].priority"
            - name: assigned_to
              type: string
              mapping: "$.result[0].assigned_to.display_value"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://chickfila.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          inputParameters:
            - name: number
              in: query
          operations:
            - name: get-incident
              method: GET

Searches Chick-fil-A SharePoint document libraries for operational manuals, policies, and training materials matching a keyword query.

naftiko: "0.5"
info:
  label: "SharePoint Document Library Search"
  description: "Searches Chick-fil-A SharePoint document libraries for operational manuals, policies, and training materials matching a keyword query."
  tags:
    - document-management
    - sharepoint
    - knowledge-base
capability:
  exposes:
    - type: mcp
      namespace: doc-search
      port: 8080
      tools:
        - name: search-sharepoint-docs
          description: "Search SharePoint document libraries for matching documents."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The search query string."
            - name: site_id
              in: body
              type: string
              description: "The SharePoint site ID to search within."
          call: "sharepoint.search-docs"
          with:
            site_id: "{{site_id}}"
            query: "{{query}}"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: search
          path: "/sites/{{site_id}}/drive/root/search(q='{{query}}')"
          inputParameters:
            - name: site_id
              in: path
            - name: query
              in: path
          operations:
            - name: search-docs
              method: GET

Executes Snowflake SQL queries against Chick-fil-A's analytics warehouse for restaurant sales performance, menu mix analysis, and daypart trends.

naftiko: "0.5"
info:
  label: "Snowflake Restaurant Sales Query"
  description: "Executes Snowflake SQL queries against Chick-fil-A's analytics warehouse for restaurant sales performance, menu mix analysis, and daypart trends."
  tags:
    - analytics
    - data-warehouse
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: sales-analytics
      port: 8080
      tools:
        - name: query-sales
          description: "Execute a Snowflake analytics query for restaurant sales data."
          inputParameters:
            - name: sql
              in: body
              type: string
              description: "The SQL query to execute."
          call: "snowflake.execute-statement"
          with:
            statement: "{{sql}}"
            warehouse: "CFA_ANALYTICS_WH"
            database: "CFA_ANALYTICS"
          outputParameters:
            - name: data
              type: array
              mapping: "$.data"
            - name: row_count
              type: integer
              mapping: "$.resultSetMetaData.numRows"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-statement
              method: POST

Queries SolarWinds for network performance data at Chick-fil-A locations, returning node status, response time, and packet loss metrics.

naftiko: "0.5"
info:
  label: "SolarWinds Network Performance Check"
  description: "Queries SolarWinds for network performance data at Chick-fil-A locations, returning node status, response time, and packet loss metrics."
  tags:
    - network-monitoring
    - solarwinds
    - infrastructure
capability:
  exposes:
    - type: mcp
      namespace: network-perf
      port: 8080
      tools:
        - name: get-node-performance
          description: "Retrieve SolarWinds network node performance metrics."
          inputParameters:
            - name: node_id
              in: body
              type: string
              description: "The SolarWinds node ID."
          call: "solarwinds.get-node"
          with:
            node_id: "{{node_id}}"
  consumes:
    - type: http
      namespace: solarwinds
      baseUri: "https://chickfila-solarwinds.com:17778/SolarWinds/InformationService/v3/Json"
      authentication:
        type: basic
        username: "$secrets.solarwinds_user"
        password: "$secrets.solarwinds_password"
      resources:
        - name: nodes
          path: "/Query"
          inputParameters:
            - name: node_id
              in: query
          operations:
            - name: get-node
              method: GET

Retrieves payment transaction details from Stripe for Chick-fil-A mobile orders, catering payments, and gift card purchases.

naftiko: "0.5"
info:
  label: "Stripe Payment Transaction Lookup"
  description: "Retrieves payment transaction details from Stripe for Chick-fil-A mobile orders, catering payments, and gift card purchases."
  tags:
    - payments
    - transactions
    - stripe
capability:
  exposes:
    - type: mcp
      namespace: payment-lookup
      port: 8080
      tools:
        - name: get-payment
          description: "Look up a Stripe payment transaction by charge ID."
          inputParameters:
            - name: charge_id
              in: body
              type: string
              description: "Stripe charge identifier."
          call: "stripe.get-charge"
          with:
            charge_id: "{{charge_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: amount
              type: number
              mapping: "$.amount"
            - name: refunded
              type: boolean
              mapping: "$.refunded"
  consumes:
    - type: http
      namespace: stripe
      baseUri: "https://api.stripe.com/v1"
      authentication:
        type: bearer
        token: "$secrets.stripe_secret_key"
      resources:
        - name: charges
          path: "/charges/{{charge_id}}"
          inputParameters:
            - name: charge_id
              in: path
          operations:
            - name: get-charge
              method: GET

When a SAP purchase order is created, monitors fulfillment status, updates the Salesforce opportunity record, and notifies the procurement team in Microsoft Teams upon delivery confirmation.

naftiko: "0.5"
info:
  label: "Supply Chain Order Fulfillment Tracker"
  description: "When a SAP purchase order is created, monitors fulfillment status, updates the Salesforce opportunity record, and notifies the procurement team in Microsoft Teams upon delivery confirmation."
  tags:
    - supply-chain
    - sap
    - salesforce
    - microsoft-teams
    - procurement
capability:
  exposes:
    - type: mcp
      namespace: supply-chain-tracking
      port: 8080
      tools:
        - name: track-order-fulfillment
          description: "Track a purchase order through fulfillment, sync status to Salesforce, and notify procurement on delivery."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The SAP purchase order number."
            - name: opportunity_id
              in: body
              type: string
              description: "The Salesforce opportunity ID linked to this order."
          steps:
            - name: check-po-status
              type: call
              call: "sap.get-po"
              with:
                po_number: "{{po_number}}"
            - name: update-opportunity
              type: call
              call: "salesforce.update-opportunity"
              with:
                opportunity_id: "{{opportunity_id}}"
                delivery_status: "{{check-po-status.status}}"
                expected_delivery: "{{check-po-status.delivery_date}}"
            - name: notify-procurement
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "procurement_team"
                channel_id: "order_tracking"
                text: "PO {{po_number}} status: {{check-po-status.status}}. Vendor: {{check-po-status.vendor}}. Expected delivery: {{check-po-status.delivery_date}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://chickfila-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder('{{po_number}}')"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: get-po
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://chickfila.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity/{{opportunity_id}}"
          inputParameters:
            - name: opportunity_id
              in: path
          operations:
            - name: update-opportunity
              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-channel-message
              method: POST

Scores supply chain vendors by querying Snowflake for delivery and quality metrics, updating SAP supplier records, sending score reports via email, and refreshing Tableau dashboards.

naftiko: "0.5"
info:
  label: "Supply Chain Vendor Scoring Pipeline"
  description: "Scores supply chain vendors by querying Snowflake for delivery and quality metrics, updating SAP supplier records, sending score reports via email, and refreshing Tableau dashboards."
  tags:
    - supply-chain
    - vendor-management
    - snowflake
    - sap
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: vendor-scoring
      port: 8080
      tools:
        - name: score-vendor
          description: "Orchestrate vendor scoring across Snowflake, SAP, email, and Tableau."
          inputParameters:
            - name: vendor_id
              in: body
              type: string
              description: "Vendor identifier."
            - name: period
              in: body
              type: string
              description: "Scoring period."
          steps:
            - name: get-metrics
              type: call
              call: "snowflake.query-vendor-metrics"
              with:
                statement: "SELECT * FROM VENDOR_METRICS WHERE vendor_id = '{{vendor_id}}' AND period = '{{period}}'"
                warehouse: "CFA_SUPPLY_CHAIN_WH"
            - name: update-sap
              type: call
              call: "sap.update-supplier-score"
              with:
                vendor_id: "{{vendor_id}}"
                quality_score: "{{get-metrics.quality_score}}"
                delivery_score: "{{get-metrics.delivery_score}}"
            - name: send-report
              type: call
              call: "ses.send-email"
              with:
                to: "{{get-metrics.vendor_email}}"
                subject: "Chick-fil-A Vendor Scorecard - {{period}}"
                body: "Quality: {{get-metrics.quality_score}}/100. Delivery: {{get-metrics.delivery_score}}/100. Overall: {{get-metrics.overall_score}}/100."
            - name: refresh-dashboard
              type: call
              call: "tableau.refresh-workbook"
              with:
                workbook_id: "vendor-scorecard"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query-vendor-metrics
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://chickfila-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: suppliers
          path: "/API_BUSINESS_PARTNER/A_Supplier('{{vendor_id}}')"
          inputParameters:
            - name: vendor_id
              in: path
          operations:
            - name: update-supplier-score
              method: PATCH
    - type: http
      namespace: ses
      baseUri: "https://email.us-east-1.amazonaws.com"
      authentication:
        type: aws-sig-v4
        access_key: "$secrets.aws_access_key"
        secret_key: "$secrets.aws_secret_key"
      resources:
        - name: emails
          path: "/v2/email/outbound-emails"
          operations:
            - name: send-email
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.chickfila.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: workbooks
          path: "/sites/default/workbooks/{{workbook_id}}/refresh"
          inputParameters:
            - name: workbook_id
              in: path
          operations:
            - name: refresh-workbook
              method: POST

Triggers a Tableau workbook refresh for restaurant sales data and retrieves the updated dashboard view URL for Chick-fil-A operations reporting.

naftiko: "0.5"
info:
  label: "Tableau Restaurant Sales Dashboard Generator"
  description: "Triggers a Tableau workbook refresh for restaurant sales data and retrieves the updated dashboard view URL for Chick-fil-A operations reporting."
  tags:
    - analytics
    - tableau
    - sales
    - restaurant-performance
capability:
  exposes:
    - type: mcp
      namespace: analytics-dashboards
      port: 8080
      tools:
        - name: refresh-sales-dashboard
          description: "Trigger a Tableau workbook refresh and return the updated dashboard URL."
          inputParameters:
            - name: workbook_id
              in: body
              type: string
              description: "The Tableau workbook ID."
          call: "tableau.refresh-workbook"
          with:
            workbook_id: "{{workbook_id}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://chickfila.online.tableau.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: workbooks
          path: "/sites/{{site_id}}/workbooks/{{workbook_id}}/refresh"
          inputParameters:
            - name: workbook_id
              in: path
            - name: site_id
              in: path
          operations:
            - name: refresh-workbook
              method: POST

Tracks food safety certifications, training completions, and compliance deadlines for Chick-fil-A team members across all restaurant locations.

naftiko: "0.5"
info:
  label: "Team Member Certification Tracker"
  description: "Tracks food safety certifications, training completions, and compliance deadlines for Chick-fil-A team members across all restaurant locations."
  tags:
    - workforce
    - compliance
    - training
capability:
  exposes:
    - type: mcp
      namespace: certification-tracker
      port: 8080
      tools:
        - name: get-certification-status
          description: "Check certification and training status for a team member."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The team member employee identifier."
            - name: restaurant_id
              in: body
              type: string
              description: "The restaurant location identifier."
          call: "training-api.get-certifications"
          with:
            employee: "{{employee_id}}"
            restaurant: "{{restaurant_id}}"
          outputParameters:
            - name: active_certifications
              type: array
              mapping: "$.certifications.active"
            - name: expiring_soon
              type: array
              mapping: "$.certifications.expiringSoon"
            - name: overdue_trainings
              type: array
              mapping: "$.certifications.overdue"
  consumes:
    - type: http
      namespace: training-api
      baseUri: "https://api.chick-fil-a.com/workforce/v1"
      authentication:
        type: bearer
        token: "$secrets.chickfila_workforce_token"
      resources:
        - name: certifications
          path: "/employees/{{employee}}/certifications"
          inputParameters:
            - name: employee
              in: path
          operations:
            - name: get-certifications
              method: GET

Optimizes restaurant team member schedules by pulling volume forecasts from Snowflake, checking availability in Workday, generating schedules, and posting to Microsoft Teams.

naftiko: "0.5"
info:
  label: "Team Member Scheduling Orchestrator"
  description: "Optimizes restaurant team member schedules by pulling volume forecasts from Snowflake, checking availability in Workday, generating schedules, and posting to Microsoft Teams."
  tags:
    - workforce-management
    - scheduling
    - snowflake
    - workday
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: shift-scheduling
      port: 8080
      tools:
        - name: optimize-schedules
          description: "Orchestrate team member scheduling across Snowflake, Workday, and Teams."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Restaurant store number."
            - name: week_start
              in: body
              type: string
              description: "Week start date in YYYY-MM-DD."
          steps:
            - name: get-forecast
              type: call
              call: "snowflake.query-volume"
              with:
                statement: "SELECT * FROM TRAFFIC_FORECAST WHERE store_id = '{{store_id}}' AND week_start = '{{week_start}}'"
                warehouse: "CFA_OPERATIONS_WH"
            - name: get-availability
              type: call
              call: "workday.get-availability"
              with:
                location: "{{store_id}}"
                week: "{{week_start}}"
            - name: generate-schedule
              type: call
              call: "scheduling.optimize-shifts"
              with:
                forecast: "{{get-forecast.data}}"
                workers: "{{get-availability.workers}}"
                store_id: "{{store_id}}"
            - name: post-schedule
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "store-{{store_id}}"
                channel: "schedules"
                text: "Schedule posted for week of {{week_start}}: {{generate-schedule.shift_count}} shifts across {{generate-schedule.worker_count}} team members."
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query-volume
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: availability
          path: "/workers/availability"
          operations:
            - name: get-availability
              method: GET
    - type: http
      namespace: scheduling
      baseUri: "https://scheduling-api.chickfila.com/v1"
      authentication:
        type: bearer
        token: "$secrets.scheduling_api_token"
      resources:
        - name: shifts
          path: "/optimize"
          operations:
            - name: optimize-shifts
              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}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST

Executes a Teradata SQL query against Chick-fil-A's data warehouse to retrieve aggregated sales data by region, product category, or time period.

naftiko: "0.5"
info:
  label: "Teradata Sales Data Query"
  description: "Executes a Teradata SQL query against Chick-fil-A's data warehouse to retrieve aggregated sales data by region, product category, or time period."
  tags:
    - data-warehouse
    - teradata
    - sales-analytics
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: data-warehouse
      port: 8080
      tools:
        - name: query-sales-data
          description: "Execute a Teradata query for Chick-fil-A sales data."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The SQL query to execute."
          call: "teradata.execute-query"
          with:
            sql: "{{query}}"
  consumes:
    - type: http
      namespace: teradata
      baseUri: "https://chickfila-teradata.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.teradata_token"
      resources:
        - name: queries
          path: "/queries"
          operations:
            - name: execute-query
              method: POST

Tracks team member training compliance by checking Pluralsight completion, updating Workday records, alerting operators via Microsoft Teams, and logging in Snowflake.

naftiko: "0.5"
info:
  label: "Training Compliance Tracking Pipeline"
  description: "Tracks team member training compliance by checking Pluralsight completion, updating Workday records, alerting operators via Microsoft Teams, and logging in Snowflake."
  tags:
    - training
    - compliance
    - pluralsight
    - workday
    - microsoft-teams
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: training-compliance
      port: 8080
      tools:
        - name: check-training-compliance
          description: "Orchestrate training compliance tracking across Pluralsight, Workday, Teams, and Snowflake."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Restaurant store number."
            - name: training_id
              in: body
              type: string
              description: "Required training course ID."
          steps:
            - name: check-completion
              type: call
              call: "pluralsight.get-completion-status"
              with:
                course_id: "{{training_id}}"
                group: "store-{{store_id}}"
            - name: update-records
              type: call
              call: "workday.update-training-records"
              with:
                location: "{{store_id}}"
                training_id: "{{training_id}}"
                completions: "{{check-completion.completed_users}}"
            - name: alert-operator
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "store-{{store_id}}"
                channel: "training"
                text: "Training {{training_id}} compliance: {{check-completion.completed}}/{{check-completion.total}} team members complete. Overdue: {{check-completion.overdue_count}}."
            - name: log-status
              type: call
              call: "snowflake.insert-compliance"
              with:
                statement: "INSERT INTO TRAINING_COMPLIANCE VALUES ('{{store_id}}', '{{training_id}}', {{check-completion.completed}}, {{check-completion.total}}, CURRENT_TIMESTAMP)"
                warehouse: "CFA_HR_WH"
  consumes:
    - type: http
      namespace: pluralsight
      baseUri: "https://api.pluralsight.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.pluralsight_token"
      resources:
        - name: reports
          path: "/reports/course-completion"
          operations:
            - name: get-completion-status
              method: GET
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: training
          path: "/workers/training"
          operations:
            - name: update-training-records
              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}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://chickfila.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: insert-compliance
              method: POST

Sends SMS notifications to Chick-fil-A customers via Twilio for catering order confirmations, mobile order updates, and promotional offers.

naftiko: "0.5"
info:
  label: "Twilio Customer Notification Sender"
  description: "Sends SMS notifications to Chick-fil-A customers via Twilio for catering order confirmations, mobile order updates, and promotional offers."
  tags:
    - notifications
    - sms
    - twilio
capability:
  exposes:
    - type: mcp
      namespace: customer-notifications
      port: 8080
      tools:
        - name: send-sms
          description: "Send an SMS notification to a customer via Twilio."
          inputParameters:
            - name: phone_number
              in: body
              type: string
              description: "Customer phone number in E.164 format."
            - name: message
              in: body
              type: string
              description: "SMS message body."
          call: "twilio.send-message"
          with:
            To: "{{phone_number}}"
            Body: "{{message}}"
            From: "+18667322040"
          outputParameters:
            - name: message_sid
              type: string
              mapping: "$.sid"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Messages.json"
          operations:
            - name: send-message
              method: POST

Retrieves a Workday employee profile by worker ID, returning name, department, job title, and compensation details for Chick-fil-A HR operations.

naftiko: "0.5"
info:
  label: "Workday Employee Profile Lookup"
  description: "Retrieves a Workday employee profile by worker ID, returning name, department, job title, and compensation details for Chick-fil-A HR operations."
  tags:
    - hr
    - workday
    - employee-management
capability:
  exposes:
    - type: mcp
      namespace: hr-employees
      port: 8080
      tools:
        - name: get-employee-profile
          description: "Retrieve a Workday employee profile by worker ID including name, department, and job title."
          inputParameters:
            - name: worker_id
              in: body
              type: string
              description: "The Workday worker ID."
          call: "workday.get-worker"
          with:
            worker_id: "{{worker_id}}"
          outputParameters:
            - name: full_name
              type: string
              mapping: "$.worker.fullName"
            - name: department
              type: string
              mapping: "$.worker.department"
            - name: job_title
              type: string
              mapping: "$.worker.jobTitle"
  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 guest support ticket details from Zendesk for Chick-fil-A customer service including complaint status, resolution, and satisfaction scores.

naftiko: "0.5"
info:
  label: "Zendesk Guest Support Ticket Lookup"
  description: "Retrieves guest support ticket details from Zendesk for Chick-fil-A customer service including complaint status, resolution, and satisfaction scores."
  tags:
    - customer-service
    - support
    - zendesk
capability:
  exposes:
    - type: mcp
      namespace: guest-support
      port: 8080
      tools:
        - name: get-support-ticket
          description: "Look up a Zendesk support ticket by ID."
          inputParameters:
            - name: ticket_id
              in: body
              type: string
              description: "Zendesk ticket ID."
          call: "zendesk.get-ticket"
          with:
            id: "{{ticket_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.ticket.status"
            - name: subject
              type: string
              mapping: "$.ticket.subject"
            - name: satisfaction_rating
              type: string
              mapping: "$.ticket.satisfaction_rating.score"
  consumes:
    - type: http
      namespace: zendesk
      baseUri: "https://chickfila.zendesk.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.zendesk_token"
      resources:
        - name: tickets
          path: "/tickets/{{id}}"
          inputParameters:
            - name: id
              in: path
          operations:
            - name: get-ticket
              method: GET

Enriches a Chick-fil-A franchise prospect record by looking up company and contact data in ZoomInfo, updating the Salesforce lead, and notifying the franchise development team.

naftiko: "0.5"
info:
  label: "ZoomInfo Franchise Prospect Enrichment"
  description: "Enriches a Chick-fil-A franchise prospect record by looking up company and contact data in ZoomInfo, updating the Salesforce lead, and notifying the franchise development team."
  tags:
    - franchise
    - zoominfo
    - salesforce
    - microsoft-teams
    - lead-enrichment
capability:
  exposes:
    - type: mcp
      namespace: lead-enrichment
      port: 8080
      tools:
        - name: enrich-franchise-prospect
          description: "Enrich a franchise prospect with ZoomInfo data and sync to Salesforce."
          inputParameters:
            - name: email
              in: body
              type: string
              description: "The prospect's email address."
            - name: lead_id
              in: body
              type: string
              description: "The Salesforce lead ID."
          steps:
            - name: lookup-zoominfo
              type: call
              call: "zoominfo.search-contact"
              with:
                email: "{{email}}"
            - name: update-salesforce-lead
              type: call
              call: "salesforce.update-lead"
              with:
                lead_id: "{{lead_id}}"
                company: "{{lookup-zoominfo.company_name}}"
                title: "{{lookup-zoominfo.job_title}}"
                phone: "{{lookup-zoominfo.phone}}"
                revenue: "{{lookup-zoominfo.company_revenue}}"
            - name: notify-franchise-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "franchise_development"
                channel_id: "prospect_updates"
                text: "Prospect enriched: {{lookup-zoominfo.full_name}} ({{lookup-zoominfo.job_title}} at {{lookup-zoominfo.company_name}}). Revenue: {{lookup-zoominfo.company_revenue}}. Lead updated in Salesforce."
  consumes:
    - type: http
      namespace: zoominfo
      baseUri: "https://api.zoominfo.com"
      authentication:
        type: bearer
        token: "$secrets.zoominfo_token"
      resources:
        - name: contacts
          path: "/search/contact"
          operations:
            - name: search-contact
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://chickfila.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: leads
          path: "/sobjects/Lead/{{lead_id}}"
          inputParameters:
            - name: lead_id
              in: path
          operations:
            - name: update-lead
              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-channel-message
              method: POST