Chick-fil-A Capabilities
Naftiko 0.5 capability definitions for Chick-fil-A - 100 capabilities showing integration workflows and service orchestrations.
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