McDonalds Capabilities
Naftiko 0.5 capability definitions for McDonalds - 100 capabilities showing integration workflows and service orchestrations.
Queries Adobe Analytics for campaign performance metrics by campaign ID. Returns impressions, clicks, conversion rate, and revenue attribution for the marketing team.
naftiko: "0.5"
info:
label: "Adobe Analytics Campaign Performance"
description: "Queries Adobe Analytics for campaign performance metrics by campaign ID. Returns impressions, clicks, conversion rate, and revenue attribution for the marketing team."
tags:
- marketing
- adobe-analytics
- campaign-performance
- digital-advertising
capability:
exposes:
- type: mcp
namespace: marketing-analytics
port: 8080
tools:
- name: get-campaign-performance
description: "Query Adobe Analytics for campaign metrics by campaign ID. Returns impressions, clicks, conversion rate, and revenue."
inputParameters:
- name: campaign_id
in: body
type: string
description: "The Adobe Analytics campaign identifier."
- name: date_range
in: body
type: string
description: "Date range in YYYY-MM-DD/YYYY-MM-DD format."
call: "adobe-analytics.get-report"
with:
rsid: "mcd-global"
campaign_id: "{{campaign_id}}"
date_range: "{{date_range}}"
outputParameters:
- name: impressions
type: string
mapping: "$.report.data.totals[0]"
- name: clicks
type: string
mapping: "$.report.data.totals[1]"
- name: conversion_rate
type: string
mapping: "$.report.data.totals[2]"
- name: revenue
type: string
mapping: "$.report.data.totals[3]"
consumes:
- type: http
namespace: adobe-analytics
baseUri: "https://analytics.adobe.io/api"
authentication:
type: bearer
token: "$secrets.adobe_analytics_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: reports
path: "/{{rsid}}/reports"
inputParameters:
- name: rsid
in: path
operations:
- name: get-report
method: POST
Searches Confluence for restaurant operations playbook content by keyword. Returns page title, excerpt, URL, and last updated date for operations teams seeking standard procedures.
naftiko: "0.5"
info:
label: "Confluence Restaurant Operations Playbook Search"
description: "Searches Confluence for restaurant operations playbook content by keyword. Returns page title, excerpt, URL, and last updated date for operations teams seeking standard procedures."
tags:
- franchise-ops
- confluence
- knowledge-management
- operations
capability:
exposes:
- type: mcp
namespace: ops-knowledge
port: 8080
tools:
- name: search-operations-playbook
description: "Search Confluence for restaurant operations playbook content. Returns page title, excerpt, URL, and last updated date."
inputParameters:
- name: search_query
in: body
type: string
description: "The keyword or phrase to search for in the operations playbook."
call: "confluence.search-content"
with:
cql: "space = MCD_OPS AND text ~ \"{{search_query}}\""
outputParameters:
- name: page_title
type: string
mapping: "$.results[0].title"
- name: excerpt
type: string
mapping: "$.results[0].excerpt"
- name: url
type: string
mapping: "$.results[0]._links.webui"
- name: last_updated
type: string
mapping: "$.results[0].version.when"
consumes:
- type: http
namespace: confluence
baseUri: "https://mcdonalds.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
operations:
- name: search-content
method: GET
On new crew member creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint training folder, enrolls in Archways to Opportunity on the LMS, and sends a Microsoft Teams welcome message to the store manager.
naftiko: "0.5"
info:
label: "Crew Onboarding Orchestrator"
description: "On new crew member creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint training folder, enrolls in Archways to Opportunity on the LMS, and sends a Microsoft Teams welcome message to the store manager."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: crew-onboarding
port: 8080
tools:
- name: trigger-crew-onboarding
description: "Given a Workday employee ID and start date, orchestrate crew member onboarding across ServiceNow, SharePoint, LMS, and Microsoft Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the new crew member."
- name: start_date
in: body
type: string
description: "The crew member start date in YYYY-MM-DD format."
- name: store_number
in: body
type: string
description: "The restaurant store number."
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: "Crew onboarding: {{get-employee.full_name}} — Store {{store_number}}"
category: "hr_onboarding"
assigned_group: "Restaurant_IT"
description: "New crew member {{get-employee.full_name}} starting {{start_date}} at store {{store_number}}. Provision POS credentials, uniform order, and training materials."
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "mcd-crew-onboarding"
folder_path: "TrainingDocs/Store{{store_number}}/{{get-employee.full_name}}_{{start_date}}"
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.manager_email}}"
text: "New crew member {{get-employee.first_name}} {{get-employee.last_name}} starts {{start_date}} at Store {{store_number}}. Onboarding ticket: {{open-ticket.number}}. Training folder: {{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://mcdonalds.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
When a store manager nominates a crew member for recognition, logs the nomination in SharePoint, updates the employee profile in Workday with an achievement, sends a congratulatory email via SFMC, and notifies the regional HR director in Microsoft Teams.
naftiko: "0.5"
info:
label: "Crew Recognition and Rewards Workflow"
description: "When a store manager nominates a crew member for recognition, logs the nomination in SharePoint, updates the employee profile in Workday with an achievement, sends a congratulatory email via SFMC, and notifies the regional HR director in Microsoft Teams."
tags:
- hr
- employee-engagement
- sharepoint
- workday
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: crew-recognition
port: 8080
tools:
- name: process-crew-nomination
description: "Given a worker ID, nomination reason, and nominator, log nomination, update Workday, send congrats, and notify HR."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID of the nominated crew member."
- name: nomination_reason
in: body
type: string
description: "The reason for the recognition nomination."
- name: award_type
in: body
type: string
description: "The award type (e.g., Crew of the Month, Service Star, Safety Champion)."
- name: nominator_upn
in: body
type: string
description: "The Microsoft UPN of the nominating manager."
- name: hr_director_upn
in: body
type: string
description: "The Microsoft UPN of the regional HR director."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
- name: log-nomination
type: call
call: "sharepoint.create-list-item"
with:
site_id: "mcd-crew-recognition"
list_name: "Nominations"
employee_name: "{{get-employee.full_name}}"
store: "{{get-employee.location}}"
award_type: "{{award_type}}"
reason: "{{nomination_reason}}"
nominator: "{{nominator_upn}}"
- name: update-workday
type: call
call: "workday.add-achievement"
with:
worker_id: "{{worker_id}}"
achievement: "{{award_type}}"
description: "{{nomination_reason}}"
- name: send-congrats
type: call
call: "sfmc.trigger-send"
with:
triggered_send_key: "CrewRecognition"
subscriber_key: "{{get-employee.work_email}}"
employee_name: "{{get-employee.first_name}}"
award_type: "{{award_type}}"
- name: notify-hr
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{hr_director_upn}}"
text: "Crew Recognition: {{get-employee.full_name}} ({{get-employee.location}}) nominated for {{award_type}}. Reason: {{nomination_reason}}. Workday updated. Congrats email sent."
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
- name: achievements
path: "/workers/{{worker_id}}/achievements"
inputParameters:
- name: worker_id
in: path
operations:
- name: add-achievement
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: list-items
path: "/{{site_id}}/lists/{{list_name}}/items"
inputParameters:
- name: site_id
in: path
- name: list_name
in: path
operations:
- name: create-list-item
method: POST
- type: http
namespace: sfmc
baseUri: "https://mcdonalds.rest.marketingcloudapis.com"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: triggered-sends
path: "/messaging/v1/messageDefinitionSends/key:{{triggered_send_key}}/send"
inputParameters:
- name: triggered_send_key
in: path
operations:
- name: trigger-send
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
When a crew member completes a training module in the LMS, updates their Workday learning record, logs completion in SharePoint, and notifies the store manager in Microsoft Teams.
naftiko: "0.5"
info:
label: "Crew Training Completion Tracker"
description: "When a crew member completes a training module in the LMS, updates their Workday learning record, logs completion in SharePoint, and notifies the store manager in Microsoft Teams."
tags:
- hr
- training
- workday
- sharepoint
- microsoft-teams
- learning-development
capability:
exposes:
- type: mcp
namespace: crew-training
port: 8080
tools:
- name: record-training-completion
description: "Given a worker ID and training module, update Workday, log to SharePoint, and notify the store manager."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID of the crew member."
- name: module_name
in: body
type: string
description: "The name of the completed training module."
- name: completion_date
in: body
type: string
description: "The completion date in YYYY-MM-DD format."
- name: score
in: body
type: string
description: "The training module score or pass/fail status."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
- name: update-learning-record
type: call
call: "workday.update-learning"
with:
worker_id: "{{worker_id}}"
module_name: "{{module_name}}"
completion_date: "{{completion_date}}"
score: "{{score}}"
- name: log-completion
type: call
call: "sharepoint.create-list-item"
with:
site_id: "mcd-crew-training"
list_name: "TrainingCompletions"
employee_name: "{{get-employee.full_name}}"
store_number: "{{get-employee.location}}"
module: "{{module_name}}"
date: "{{completion_date}}"
score: "{{score}}"
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.manager_email}}"
text: "Training Complete: {{get-employee.full_name}} completed {{module_name}} on {{completion_date}} with score: {{score}}."
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
- name: learning
path: "/workers/{{worker_id}}/learning"
inputParameters:
- name: worker_id
in: path
operations:
- name: update-learning
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: list-items
path: "/{{site_id}}/lists/{{list_name}}/items"
inputParameters:
- name: site_id
in: path
- name: list_name
in: path
operations:
- name: create-list-item
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
When a customer complaint is received via the app, creates a Zendesk ticket, looks up the customer loyalty profile in SFMC, retrieves the store manager from Workday, and notifies the manager in Microsoft Teams with customer history.
naftiko: "0.5"
info:
label: "Customer Complaint Resolution Workflow"
description: "When a customer complaint is received via the app, creates a Zendesk ticket, looks up the customer loyalty profile in SFMC, retrieves the store manager from Workday, and notifies the manager in Microsoft Teams with customer history."
tags:
- customer-service
- zendesk
- salesforce
- workday
- microsoft-teams
- loyalty
capability:
exposes:
- type: mcp
namespace: customer-complaints
port: 8080
tools:
- name: process-customer-complaint
description: "Given complaint details, create a Zendesk ticket, look up loyalty profile, find the store manager, and notify with customer context."
inputParameters:
- name: customer_email
in: body
type: string
description: "The customer email address."
- name: complaint_description
in: body
type: string
description: "The customer complaint description."
- name: store_id
in: body
type: string
description: "The restaurant store number where the incident occurred."
- name: loyalty_member_id
in: body
type: string
description: "The MyMcDonald's Rewards member ID, if available."
- name: store_manager_workday_id
in: body
type: string
description: "The Workday ID of the store manager."
steps:
- name: create-ticket
type: call
call: "zendesk.create-ticket"
with:
requester_email: "{{customer_email}}"
subject: "Customer Complaint — Store {{store_id}}"
description: "{{complaint_description}}"
tags: "app_complaint,store_{{store_id}}"
- name: get-loyalty-profile
type: call
call: "sfmc.get-data-extension-row"
with:
data_extension: "LoyaltyMembers"
member_id: "{{loyalty_member_id}}"
- name: get-manager
type: call
call: "workday.get-worker"
with:
worker_id: "{{store_manager_workday_id}}"
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-manager.work_email}}"
text: "Customer Complaint — Store {{store_id}}: {{complaint_description}}. Customer: {{customer_email}}. Loyalty tier: {{get-loyalty-profile.tier}}. Points: {{get-loyalty-profile.points_balance}}. Zendesk: {{create-ticket.id}}."
consumes:
- type: http
namespace: zendesk
baseUri: "https://mcdonalds.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: sfmc
baseUri: "https://mcdonalds.rest.marketingcloudapis.com/data/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: data-extensions
path: "/customobjectdata/key/{{data_extension}}/rowset"
inputParameters:
- name: data_extension
in: path
- name: member_id
in: query
operations:
- name: get-data-extension-row
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: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- 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
Queries Datadog for the health status of a specific restaurant's technology infrastructure by store ID. Returns host status, CPU utilization, and active alerts for the restaurant technology support team.
naftiko: "0.5"
info:
label: "Datadog Restaurant System Health Check"
description: "Queries Datadog for the health status of a specific restaurant's technology infrastructure by store ID. Returns host status, CPU utilization, and active alerts for the restaurant technology support team."
tags:
- restaurant-technology
- monitoring
- datadog
- infrastructure
capability:
exposes:
- type: mcp
namespace: store-monitoring
port: 8080
tools:
- name: get-store-health
description: "Check Datadog for restaurant infrastructure health by store ID. Returns host status, CPU utilization, and active alerts."
inputParameters:
- name: store_id
in: body
type: string
description: "The McDonald's restaurant store number."
call: "datadog.get-host"
with:
filter: "store_id:{{store_id}}"
outputParameters:
- name: host_status
type: string
mapping: "$.host_list[0].up"
- name: cpu_utilization
type: string
mapping: "$.host_list[0].metrics.cpu"
- name: active_alerts
type: string
mapping: "$.host_list[0].alerts_count"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: hosts
path: "/hosts"
inputParameters:
- name: filter
in: query
operations:
- name: get-host
method: GET
When a delivery order is placed through a third-party partner, syncs the order to the POS system, updates the delivery status tracker in Salesforce, and notifies the kitchen display system via the restaurant integration layer.
naftiko: "0.5"
info:
label: "Delivery Partner Order Sync"
description: "When a delivery order is placed through a third-party partner, syncs the order to the POS system, updates the delivery status tracker in Salesforce, and notifies the kitchen display system via the restaurant integration layer."
tags:
- restaurant-technology
- delivery
- salesforce
- oracle
- order-management
capability:
exposes:
- type: mcp
namespace: delivery-ops
port: 8080
tools:
- name: sync-delivery-order
description: "Given a partner order ID and store ID, sync to POS, update Salesforce tracker, and notify the kitchen display."
inputParameters:
- name: partner_order_id
in: body
type: string
description: "The delivery partner order identifier."
- name: partner_name
in: body
type: string
description: "The delivery partner name (e.g., UberEats, DoorDash)."
- name: store_id
in: body
type: string
description: "The restaurant store number."
- name: order_items
in: body
type: string
description: "JSON array of order items with quantities."
- name: customer_name
in: body
type: string
description: "The customer name for the delivery order."
steps:
- name: create-pos-order
type: call
call: "simphony.create-order"
with:
store_id: "{{store_id}}"
order_type: "delivery"
partner: "{{partner_name}}"
partner_ref: "{{partner_order_id}}"
items: "{{order_items}}"
- name: update-tracker
type: call
call: "salesforce.create-record"
with:
object_type: "Delivery_Order__c"
partner_order_id: "{{partner_order_id}}"
partner: "{{partner_name}}"
store_id: "{{store_id}}"
pos_order_id: "{{create-pos-order.order_id}}"
status: "Received"
customer_name: "{{customer_name}}"
- name: notify-kitchen
type: call
call: "simphony.send-kds-notification"
with:
store_id: "{{store_id}}"
order_id: "{{create-pos-order.order_id}}"
order_type: "delivery"
partner: "{{partner_name}}"
consumes:
- type: http
namespace: simphony
baseUri: "https://mcd-simphony.oracle.com/api/v1"
authentication:
type: bearer
token: "$secrets.simphony_token"
resources:
- name: orders
path: "/stores/{{store_id}}/orders"
inputParameters:
- name: store_id
in: path
operations:
- name: create-order
method: POST
- name: kds
path: "/stores/{{store_id}}/kds/notify"
inputParameters:
- name: store_id
in: path
operations:
- name: send-kds-notification
method: POST
- type: http
namespace: salesforce
baseUri: "https://mcdonalds.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: custom-objects
path: "/sobjects/{{object_type}}"
inputParameters:
- name: object_type
in: path
operations:
- name: create-record
method: POST
Pulls historical sales data from Power BI, retrieves weather forecast data, and feeds both into the Azure Machine Learning demand forecasting model, then posts the forecast to the supply chain planning Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Demand Forecasting Data Pipeline"
description: "Pulls historical sales data from Power BI, retrieves weather forecast data, and feeds both into the Azure Machine Learning demand forecasting model, then posts the forecast to the supply chain planning Microsoft Teams channel."
tags:
- supply-chain
- forecasting
- power-bi
- azure-machine-learning
- microsoft-teams
- demand-planning
capability:
exposes:
- type: mcp
namespace: demand-forecasting
port: 8080
tools:
- name: generate-demand-forecast
description: "Given a store ID and forecast period, pull historical sales, get weather data, run ML forecast, and post results."
inputParameters:
- name: store_id
in: body
type: string
description: "The restaurant store number."
- name: forecast_start
in: body
type: string
description: "Forecast period start date in YYYY-MM-DD format."
- name: forecast_end
in: body
type: string
description: "Forecast period end date in YYYY-MM-DD format."
- name: planning_channel_id
in: body
type: string
description: "The Microsoft Teams channel ID for supply chain planning."
steps:
- name: get-historical-sales
type: call
call: "powerbi.execute-query"
with:
dataset_id: "mcd-historical-sales"
query: "EVALUATE FILTER(Sales, Sales[StoreID] = \"{{store_id}}\")"
- name: run-forecast
type: call
call: "azure-ml.invoke-endpoint"
with:
endpoint_name: "mcd-demand-forecast"
store_id: "{{store_id}}"
historical_data: "{{get-historical-sales.rows}}"
forecast_start: "{{forecast_start}}"
forecast_end: "{{forecast_end}}"
- name: post-forecast
type: call
call: "msteams.send-channel-message"
with:
channel_id: "{{planning_channel_id}}"
text: "Demand Forecast — Store {{store_id}} ({{forecast_start}} to {{forecast_end}}): Predicted Daily Avg: {{run-forecast.avg_daily_demand}} units. Peak Day: {{run-forecast.peak_day}} ({{run-forecast.peak_demand}} units). Confidence: {{run-forecast.confidence}}%."
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/executeQueries"
inputParameters:
- name: dataset_id
in: path
operations:
- name: execute-query
method: POST
- type: http
namespace: azure-ml
baseUri: "https://mcd-ml.eastus2.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: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
When a new menu promotion is approved, retrieves the creative assets from SharePoint, updates the digital menu board CMS configuration, and notifies regional managers in Microsoft Teams with a preview link.
naftiko: "0.5"
info:
label: "Digital Menu Board Content Deployment"
description: "When a new menu promotion is approved, retrieves the creative assets from SharePoint, updates the digital menu board CMS configuration, and notifies regional managers in Microsoft Teams with a preview link."
tags:
- restaurant-technology
- marketing
- sharepoint
- microsoft-teams
- digital-signage
capability:
exposes:
- type: mcp
namespace: menu-board
port: 8080
tools:
- name: deploy-menu-content
description: "Given a promotion ID and region, retrieve assets from SharePoint, update the menu board CMS, and notify regional managers."
inputParameters:
- name: promotion_id
in: body
type: string
description: "The internal promotion identifier."
- name: region
in: body
type: string
description: "The target region for the menu board update."
- name: asset_folder_path
in: body
type: string
description: "The SharePoint folder path containing the creative assets."
- name: regional_manager_upn
in: body
type: string
description: "The Microsoft UPN of the regional manager."
steps:
- name: get-assets
type: call
call: "sharepoint.list-folder-contents"
with:
site_id: "mcd-marketing-assets"
folder_path: "{{asset_folder_path}}"
- name: update-cms
type: call
call: "menu-cms.deploy-content"
with:
promotion_id: "{{promotion_id}}"
region: "{{region}}"
asset_urls: "{{get-assets.file_urls}}"
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{regional_manager_upn}}"
text: "Menu Board Update — Region {{region}}: Promotion {{promotion_id}} deployed. {{get-assets.file_count}} assets uploaded. Preview: {{update-cms.preview_url}}."
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folder-contents
path: "/{{site_id}}/drive/root:/{{folder_path}}:/children"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: list-folder-contents
method: GET
- type: http
namespace: menu-cms
baseUri: "https://api.mcd-menuboards.com/v1"
authentication:
type: bearer
token: "$secrets.menu_cms_token"
resources:
- name: deployments
path: "/promotions/{{promotion_id}}/deploy"
inputParameters:
- name: promotion_id
in: path
operations:
- name: deploy-content
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
Collects drive-thru timing data from the restaurant IoT platform, aggregates in Power BI, and posts daily performance summaries to the operations team Microsoft Teams channel for stores below target.
naftiko: "0.5"
info:
label: "Drive-Thru Speed of Service Reporting"
description: "Collects drive-thru timing data from the restaurant IoT platform, aggregates in Power BI, and posts daily performance summaries to the operations team Microsoft Teams channel for stores below target."
tags:
- restaurant-technology
- drive-thru
- power-bi
- microsoft-teams
- performance-management
capability:
exposes:
- type: mcp
namespace: drive-thru-ops
port: 8080
tools:
- name: report-drive-thru-performance
description: "Given a store ID and date, pull drive-thru timing metrics and post performance summary to the ops team channel."
inputParameters:
- name: store_id
in: body
type: string
description: "The restaurant store number."
- name: report_date
in: body
type: string
description: "The date for the report in YYYY-MM-DD format."
- name: ops_channel_id
in: body
type: string
description: "The Microsoft Teams channel ID for the operations team."
steps:
- name: get-timing-data
type: call
call: "powerbi.execute-query"
with:
dataset_id: "mcd-drive-thru-metrics"
query: "EVALUATE FILTER(DriveThru, DriveThru[StoreID] = \"{{store_id}}\" && DriveThru[Date] = DATE({{report_date}}))"
- name: post-summary
type: call
call: "msteams.send-channel-message"
with:
channel_id: "{{ops_channel_id}}"
text: "Drive-Thru Report — Store {{store_id}} ({{report_date}}): Avg Order Time: {{get-timing-data.AvgOrderTime}}s, Avg Service Time: {{get-timing-data.AvgServiceTime}}s, Total Cars: {{get-timing-data.TotalCars}}, Peak Wait: {{get-timing-data.PeakWaitTime}}s."
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/executeQueries"
inputParameters:
- name: dataset_id
in: path
operations:
- name: execute-query
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/{{channel_id}}/channels/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Retrieves email campaign metrics from Salesforce Marketing Cloud for a specific send, including open rate, click rate, bounces, and unsubscribes, and posts a summary to the marketing team Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Email Campaign Performance Report"
description: "Retrieves email campaign metrics from Salesforce Marketing Cloud for a specific send, including open rate, click rate, bounces, and unsubscribes, and posts a summary to the marketing team Microsoft Teams channel."
tags:
- marketing
- salesforce
- email-marketing
- microsoft-teams
- campaign-performance
capability:
exposes:
- type: mcp
namespace: email-marketing
port: 8080
tools:
- name: report-email-campaign
description: "Given an SFMC send ID, retrieve performance metrics and post a summary to the marketing channel."
inputParameters:
- name: send_id
in: body
type: string
description: "The Salesforce Marketing Cloud send identifier."
- name: campaign_name
in: body
type: string
description: "The name of the email campaign."
- name: marketing_channel_id
in: body
type: string
description: "The Microsoft Teams channel ID for the marketing team."
steps:
- name: get-send-metrics
type: call
call: "sfmc.get-send-summary"
with:
send_id: "{{send_id}}"
- name: post-report
type: call
call: "msteams.send-channel-message"
with:
channel_id: "{{marketing_channel_id}}"
text: "Email Campaign Report — {{campaign_name}}: Sent: {{get-send-metrics.total_sent}}. Open Rate: {{get-send-metrics.open_rate}}%. Click Rate: {{get-send-metrics.click_rate}}%. Bounces: {{get-send-metrics.bounces}}. Unsubscribes: {{get-send-metrics.unsubscribes}}."
consumes:
- type: http
namespace: sfmc
baseUri: "https://mcdonalds.rest.marketingcloudapis.com"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: send-summaries
path: "/messaging/v1/messageDefinitionSends/{{send_id}}/deliveryRecords"
inputParameters:
- name: send_id
in: path
operations:
- name: get-send-summary
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
When a Workday schedule conflict is detected, retrieves the affected crew members, checks store staffing levels in the scheduling system, creates a ServiceNow task for the shift manager, and notifies in Microsoft Teams.
naftiko: "0.5"
info:
label: "Employee Scheduling Conflict Resolution"
description: "When a Workday schedule conflict is detected, retrieves the affected crew members, checks store staffing levels in the scheduling system, creates a ServiceNow task for the shift manager, and notifies in Microsoft Teams."
tags:
- hr
- scheduling
- workday
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: crew-scheduling
port: 8080
tools:
- name: resolve-schedule-conflict
description: "Given employee IDs and shift details, check staffing levels, create a resolution task, and notify the shift manager."
inputParameters:
- name: employee_id_1
in: body
type: string
description: "First conflicting crew member Workday ID."
- name: employee_id_2
in: body
type: string
description: "Second conflicting crew member Workday ID."
- name: shift_date
in: body
type: string
description: "The date of the conflict in YYYY-MM-DD format."
- name: store_number
in: body
type: string
description: "The restaurant store number."
- name: manager_upn
in: body
type: string
description: "The shift manager Microsoft UPN."
steps:
- name: get-employee-1
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id_1}}"
- name: get-employee-2
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id_2}}"
- name: create-task
type: call
call: "servicenow.create-task"
with:
short_description: "Schedule conflict: {{get-employee-1.full_name}} & {{get-employee-2.full_name}} — Store {{store_number}} on {{shift_date}}"
assigned_group: "Restaurant_Scheduling"
category: "schedule_conflict"
description: "Scheduling overlap detected for {{get-employee-1.full_name}} ({{get-employee-1.job_title}}) and {{get-employee-2.full_name}} ({{get-employee-2.job_title}}) at Store {{store_number}} on {{shift_date}}. Please reassign shifts."
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{manager_upn}}"
text: "Schedule Conflict — Store {{store_number}} ({{shift_date}}): {{get-employee-1.full_name}} and {{get-employee-2.full_name}} have overlapping shifts. ServiceNow task: {{create-task.number}}. Please resolve."
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://mcdonalds.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
operations:
- name: create-task
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
When an employee is terminated in Workday, revokes access in Azure Active Directory, closes any open ServiceNow tickets assigned to them, and notifies HR and the store manager in Microsoft Teams.
naftiko: "0.5"
info:
label: "Employee Termination Orchestrator"
description: "When an employee is terminated in Workday, revokes access in Azure Active Directory, closes any open ServiceNow tickets assigned to them, and notifies HR and the store manager in Microsoft Teams."
tags:
- hr
- offboarding
- workday
- azure-active-directory
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: employee-offboarding
port: 8080
tools:
- name: process-termination
description: "Given a Workday employee ID, revoke Azure AD access, close ServiceNow tickets, and notify HR and the store manager."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the terminated employee."
- name: termination_date
in: body
type: string
description: "The termination effective date in YYYY-MM-DD format."
- name: hr_upn
in: body
type: string
description: "The Microsoft UPN of the HR business partner."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: disable-account
type: call
call: "azuread.disable-user"
with:
user_principal_name: "{{get-employee.work_email}}"
- name: close-tickets
type: call
call: "servicenow.update-incidents"
with:
assigned_to: "{{get-employee.work_email}}"
state: "closed"
close_notes: "Employee terminated on {{termination_date}}. Tickets reassigned."
- name: notify-hr
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{hr_upn}}"
text: "Termination Processed: {{get-employee.full_name}} ({{get-employee.job_title}}) effective {{termination_date}}. Azure AD disabled. {{close-tickets.count}} ServiceNow tickets closed."
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.manager_email}}"
text: "Offboarding Complete: {{get-employee.full_name}} terminated effective {{termination_date}}. All system access has been revoked."
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: azuread
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: users
path: "/users/{{user_principal_name}}"
inputParameters:
- name: user_principal_name
in: path
operations:
- name: disable-user
method: PATCH
- type: http
namespace: servicenow
baseUri: "https://mcdonalds.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
inputParameters:
- name: assigned_to
in: query
operations:
- name: update-incidents
method: PATCH
- 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
After a food safety audit is completed, retrieves the audit score from the quality management system, updates the franchise record in Salesforce, logs findings to SharePoint, and alerts the operations director in Microsoft Teams if the score falls below threshold.
naftiko: "0.5"
info:
label: "Food Safety Audit Workflow"
description: "After a food safety audit is completed, retrieves the audit score from the quality management system, updates the franchise record in Salesforce, logs findings to SharePoint, and alerts the operations director in Microsoft Teams if the score falls below threshold."
tags:
- food-safety
- compliance
- salesforce
- sharepoint
- microsoft-teams
- quality-assurance
capability:
exposes:
- type: mcp
namespace: food-safety-audit
port: 8080
tools:
- name: process-audit-results
description: "Given an audit ID and store number, retrieve the audit score, update Salesforce, log to SharePoint, and alert on low scores."
inputParameters:
- name: audit_id
in: body
type: string
description: "The food safety audit identifier."
- name: store_number
in: body
type: string
description: "The restaurant store number."
- name: franchise_contact_id
in: body
type: string
description: "The Salesforce contact ID for the franchise operator."
- name: ops_director_upn
in: body
type: string
description: "The Microsoft UPN of the operations director."
steps:
- name: get-audit-score
type: call
call: "sharepoint.get-list-item"
with:
site_id: "mcd-food-safety"
list_name: "AuditResults"
item_id: "{{audit_id}}"
- name: update-franchise-record
type: call
call: "salesforce.update-contact"
with:
contact_id: "{{franchise_contact_id}}"
last_audit_score: "{{get-audit-score.score}}"
last_audit_date: "{{get-audit-score.audit_date}}"
- name: log-findings
type: call
call: "sharepoint.create-list-item"
with:
site_id: "mcd-food-safety"
list_name: "AuditFindings"
store_number: "{{store_number}}"
audit_id: "{{audit_id}}"
score: "{{get-audit-score.score}}"
findings: "{{get-audit-score.findings}}"
- name: alert-director
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{ops_director_upn}}"
text: "Food Safety Audit — Store {{store_number}}: Score {{get-audit-score.score}}/100. Findings: {{get-audit-score.findings}}. Salesforce updated. Full report: {{log-findings.url}}."
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: list-items
path: "/{{site_id}}/lists/{{list_name}}/items/{{item_id}}"
inputParameters:
- name: site_id
in: path
- name: list_name
in: path
- name: item_id
in: path
operations:
- name: get-list-item
method: GET
- name: list-items-create
path: "/{{site_id}}/lists/{{list_name}}/items"
inputParameters:
- name: site_id
in: path
- name: list_name
in: path
operations:
- name: create-list-item
method: POST
- type: http
namespace: salesforce
baseUri: "https://mcdonalds.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: update-contact
method: PATCH
- 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
Pulls franchise sales data from Power BI, retrieves the franchise operator contact from Salesforce, and sends a performance summary to the field consultant in Microsoft Teams for monthly review preparation.
naftiko: "0.5"
info:
label: "Franchise Performance Review Pipeline"
description: "Pulls franchise sales data from Power BI, retrieves the franchise operator contact from Salesforce, and sends a performance summary to the field consultant in Microsoft Teams for monthly review preparation."
tags:
- franchise-ops
- power-bi
- salesforce
- microsoft-teams
- performance-management
capability:
exposes:
- type: mcp
namespace: franchise-performance
port: 8080
tools:
- name: generate-franchise-review
description: "Given a store number and review period, pull sales data, retrieve franchise contact, and send a performance summary to the field consultant."
inputParameters:
- name: store_number
in: body
type: string
description: "The McDonald's franchise store number."
- name: review_month
in: body
type: string
description: "The review month in YYYY-MM format."
- name: franchise_contact_id
in: body
type: string
description: "The Salesforce contact ID for the franchise operator."
steps:
- name: get-sales-data
type: call
call: "powerbi.execute-query"
with:
dataset_id: "mcd-franchise-sales"
query: "EVALUATE SUMMARIZE(Sales, Sales[StoreNumber], \"GrossSales\", SUM(Sales[GrossSales]), \"AvgTicket\", AVERAGE(Sales[TicketSize]), \"Transactions\", COUNT(Sales[TransactionID])) FILTER Sales[Month] = \"{{review_month}}\" AND Sales[StoreNumber] = \"{{store_number}}\""
- name: get-franchise-contact
type: call
call: "salesforce.get-contact"
with:
contact_id: "{{franchise_contact_id}}"
- name: notify-consultant
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-franchise-contact.field_consultant_email}}"
text: "Monthly Review — Store {{store_number}} ({{review_month}}): Gross Sales: ${{get-sales-data.GrossSales}}, Avg Ticket: ${{get-sales-data.AvgTicket}}, Transactions: {{get-sales-data.Transactions}}. Franchise Operator: {{get-franchise-contact.full_name}}."
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/executeQueries"
inputParameters:
- name: dataset_id
in: path
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://mcdonalds.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
- 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
Tracks franchise remodel projects by pulling milestone status from Jira, budget data from SAP, and contractor details from Salesforce, then posts a consolidated status update to the construction management Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Franchise Remodel Project Tracker"
description: "Tracks franchise remodel projects by pulling milestone status from Jira, budget data from SAP, and contractor details from Salesforce, then posts a consolidated status update to the construction management Microsoft Teams channel."
tags:
- franchise-ops
- construction
- jira
- sap
- salesforce
- microsoft-teams
- project-management
capability:
exposes:
- type: mcp
namespace: remodel-tracking
port: 8080
tools:
- name: report-remodel-status
description: "Given a project key, store number, and SAP project ID, pull milestone, budget, and contractor data and post a status update."
inputParameters:
- name: jira_project_key
in: body
type: string
description: "The Jira project key for the remodel."
- name: store_number
in: body
type: string
description: "The restaurant store number being remodeled."
- name: sap_project_id
in: body
type: string
description: "The SAP project system WBS element."
- name: contractor_contact_id
in: body
type: string
description: "The Salesforce contact ID for the general contractor."
- name: construction_channel_id
in: body
type: string
description: "The Microsoft Teams channel ID for construction management."
steps:
- name: get-milestones
type: call
call: "jira.get-project-status"
with:
project_key: "{{jira_project_key}}"
- name: get-budget
type: call
call: "sap.get-project-budget"
with:
wbs_element: "{{sap_project_id}}"
- name: get-contractor
type: call
call: "salesforce.get-contact"
with:
contact_id: "{{contractor_contact_id}}"
- name: post-status
type: call
call: "msteams.send-channel-message"
with:
channel_id: "{{construction_channel_id}}"
text: "Remodel Status — Store {{store_number}}: Milestones Complete: {{get-milestones.done}}/{{get-milestones.total}}. Budget: ${{get-budget.spent}}/${{get-budget.planned}} ({{get-budget.variance_pct}}% variance). Contractor: {{get-contractor.full_name}} ({{get-contractor.email}})."
consumes:
- type: http
namespace: jira
baseUri: "https://mcdonalds.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: project-status
path: "/search"
inputParameters:
- name: project_key
in: query
operations:
- name: get-project-status
method: GET
- type: http
namespace: sap
baseUri: "https://mcd-s4.sap.com/sap/opu/odata/sap/PS_PROJECT_BUDGET_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: Accept
in: header
value: "application/json"
resources:
- name: project-budgets
path: "/WBSElementBudgetSet('{{wbs_element}}')"
inputParameters:
- name: wbs_element
in: path
operations:
- name: get-project-budget
method: GET
- type: http
namespace: salesforce
baseUri: "https://mcdonalds.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Queries the Power BI embedded analytics dataset for a given franchise location and date range, returning gross sales, average ticket, and transaction count.
naftiko: "0.5"
info:
label: "Franchise Sales Dashboard Query"
description: "Queries the Power BI embedded analytics dataset for a given franchise location and date range, returning gross sales, average ticket, and transaction count."
tags:
- franchise-ops
- analytics
- power-bi
- sales
capability:
exposes:
- type: mcp
namespace: franchise-analytics
port: 8080
tools:
- name: get-franchise-sales
description: "Query Power BI for franchise sales data by store number and date range. Returns gross sales, average ticket size, and transaction count."
inputParameters:
- name: store_number
in: body
type: string
description: "The McDonald's franchise store number."
- 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: "powerbi.execute-query"
with:
dataset_id: "mcd-franchise-sales"
query: "EVALUATE FILTER(Sales, Sales[StoreNumber] = \"{{store_number}}\" && Sales[Date] >= DATE({{start_date}}) && Sales[Date] <= DATE({{end_date}}))"
outputParameters:
- name: gross_sales
type: string
mapping: "$.results[0].tables[0].rows[0].GrossSales"
- name: avg_ticket
type: string
mapping: "$.results[0].tables[0].rows[0].AvgTicket"
- name: transaction_count
type: string
mapping: "$.results[0].tables[0].rows[0].TransactionCount"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/executeQueries"
inputParameters:
- name: dataset_id
in: path
operations:
- name: execute-query
method: POST
Queries Google Analytics for McDonald's mobile app traffic metrics by date range. Returns active users, sessions, screen views, and average session duration for the digital team.
naftiko: "0.5"
info:
label: "Google Analytics App Traffic Summary"
description: "Queries Google Analytics for McDonald's mobile app traffic metrics by date range. Returns active users, sessions, screen views, and average session duration for the digital team."
tags:
- digital
- mobile-app
- google-analytics
- marketing
capability:
exposes:
- type: mcp
namespace: digital-analytics
port: 8080
tools:
- name: get-app-traffic
description: "Query Google Analytics for McDonald's app traffic metrics. Returns active users, sessions, screen views, and average session duration."
inputParameters:
- 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_id: "mcd-mobile-app"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: active_users
type: string
mapping: "$.rows[0].metricValues[0].value"
- name: sessions
type: string
mapping: "$.rows[0].metricValues[1].value"
- name: screen_views
type: string
mapping: "$.rows[0].metricValues[2].value"
- name: avg_session_duration
type: string
mapping: "$.rows[0].metricValues[3].value"
consumes:
- type: http
namespace: ga
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: run-report
method: POST
When a restaurant changes operating hours, updates the Google Business Profile listing, updates the store locator in the McDonald's CMS, and notifies the local marketing team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Google Maps Store Listing Update"
description: "When a restaurant changes operating hours, updates the Google Business Profile listing, updates the store locator in the McDonald's CMS, and notifies the local marketing team in Microsoft Teams."
tags:
- franchise-ops
- google-maps
- marketing
- microsoft-teams
- store-locator
capability:
exposes:
- type: mcp
namespace: store-listings
port: 8080
tools:
- name: update-store-hours
description: "Given a store ID and new hours, update Google Business Profile, the CMS store locator, and notify local marketing."
inputParameters:
- name: store_id
in: body
type: string
description: "The restaurant store number."
- name: location_id
in: body
type: string
description: "The Google Business Profile location ID."
- name: new_hours
in: body
type: string
description: "JSON object with the new operating hours."
- name: local_marketing_upn
in: body
type: string
description: "The Microsoft UPN of the local marketing coordinator."
steps:
- name: update-google-profile
type: call
call: "google-business.update-location"
with:
location_id: "{{location_id}}"
regular_hours: "{{new_hours}}"
- name: update-cms
type: call
call: "mcd-cms.update-store"
with:
store_id: "{{store_id}}"
hours: "{{new_hours}}"
- name: notify-marketing
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{local_marketing_upn}}"
text: "Store Hours Updated — Store {{store_id}}: Google Business Profile and store locator updated. New hours: {{new_hours}}."
consumes:
- type: http
namespace: google-business
baseUri: "https://mybusiness.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_business_token"
resources:
- name: locations
path: "/accounts/mcd-corp/locations/{{location_id}}"
inputParameters:
- name: location_id
in: path
operations:
- name: update-location
method: PATCH
- type: http
namespace: mcd-cms
baseUri: "https://api.mcd-storelocator.com/v1"
authentication:
type: bearer
token: "$secrets.mcd_cms_token"
resources:
- name: stores
path: "/stores/{{store_id}}"
inputParameters:
- name: store_id
in: path
operations:
- name: update-store
method: PATCH
- 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
Retrieves the current live container version from Google Tag Manager for the McDonald's web properties. Returns version number, published date, and tag count for the digital analytics team.
naftiko: "0.5"
info:
label: "Google Tag Manager Container Version Lookup"
description: "Retrieves the current live container version from Google Tag Manager for the McDonald's web properties. Returns version number, published date, and tag count for the digital analytics team."
tags:
- digital
- google-tag-manager
- analytics
- web
capability:
exposes:
- type: mcp
namespace: tag-management
port: 8080
tools:
- name: get-gtm-container-version
description: "Look up the live GTM container version for a McDonald's web property. Returns version number, published date, and tag count."
inputParameters:
- name: container_id
in: body
type: string
description: "The Google Tag Manager container ID."
call: "gtm.get-live-version"
with:
container_id: "{{container_id}}"
outputParameters:
- name: version_number
type: string
mapping: "$.containerVersion.containerVersionId"
- name: published_date
type: string
mapping: "$.containerVersion.fingerprint"
- name: tag_count
type: string
mapping: "$.containerVersion.tag.length"
consumes:
- type: http
namespace: gtm
baseUri: "https://www.googleapis.com/tagmanager/v2"
authentication:
type: bearer
token: "$secrets.google_tagmanager_token"
resources:
- name: container-versions
path: "/accounts/mcd-corp/containers/{{container_id}}/versions/live"
inputParameters:
- name: container_id
in: path
operations:
- name: get-live-version
method: GET
Aggregates campaign performance from Adobe Analytics and sales data from Power BI for a Happy Meal promotion, then posts a consolidated effectiveness report to the marketing leadership Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Happy Meal Promotion Effectiveness Tracker"
description: "Aggregates campaign performance from Adobe Analytics and sales data from Power BI for a Happy Meal promotion, then posts a consolidated effectiveness report to the marketing leadership Microsoft Teams channel."
tags:
- marketing
- adobe-analytics
- power-bi
- microsoft-teams
- campaign-performance
- promotions
capability:
exposes:
- type: mcp
namespace: promo-effectiveness
port: 8080
tools:
- name: track-happy-meal-promo
description: "Given a campaign code and date range, pull Adobe Analytics and Power BI data and post an effectiveness summary to the marketing channel."
inputParameters:
- name: campaign_code
in: body
type: string
description: "The Happy Meal promotion campaign code."
- name: start_date
in: body
type: string
description: "Campaign start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "Campaign end date in YYYY-MM-DD format."
- name: marketing_channel_id
in: body
type: string
description: "The Microsoft Teams channel ID for marketing leadership."
steps:
- name: get-digital-metrics
type: call
call: "adobe-analytics.get-report"
with:
rsid: "mcd-global"
campaign_id: "{{campaign_code}}"
date_range: "{{start_date}}/{{end_date}}"
- name: get-sales-impact
type: call
call: "powerbi.execute-query"
with:
dataset_id: "mcd-promo-sales"
query: "EVALUATE FILTER(PromoSales, PromoSales[CampaignCode] = \"{{campaign_code}}\")"
- name: post-report
type: call
call: "msteams.send-channel-message"
with:
channel_id: "{{marketing_channel_id}}"
text: "Happy Meal Promo Report — {{campaign_code}} ({{start_date}} to {{end_date}}): Digital: {{get-digital-metrics.impressions}} impressions, {{get-digital-metrics.clicks}} clicks, {{get-digital-metrics.conversion_rate}}% CVR. Sales: {{get-sales-impact.UnitsSold}} units, ${{get-sales-impact.Revenue}} revenue, {{get-sales-impact.StoresParticipating}} stores."
consumes:
- type: http
namespace: adobe-analytics
baseUri: "https://analytics.adobe.io/api"
authentication:
type: bearer
token: "$secrets.adobe_analytics_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: reports
path: "/{{rsid}}/reports"
inputParameters:
- name: rsid
in: path
operations:
- name: get-report
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/executeQueries"
inputParameters:
- name: dataset_id
in: path
operations:
- name: execute-query
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/{{channel_id}}/channels/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Retrieves a Jira issue from the restaurant technology project by issue key. Returns summary, status, assignee, and priority for the technology team tracking feature development and bugs.
naftiko: "0.5"
info:
label: "Jira Restaurant Technology Ticket Lookup"
description: "Retrieves a Jira issue from the restaurant technology project by issue key. Returns summary, status, assignee, and priority for the technology team tracking feature development and bugs."
tags:
- restaurant-technology
- jira
- development
- issue-tracking
capability:
exposes:
- type: mcp
namespace: tech-project
port: 8080
tools:
- name: get-jira-ticket
description: "Look up a Jira issue by key in the restaurant technology project. Returns summary, status, assignee, and priority."
inputParameters:
- name: issue_key
in: body
type: string
description: "The Jira issue key (e.g., MCDTECH-1234)."
call: "jira.get-issue"
with:
issue_key: "{{issue_key}}"
outputParameters:
- name: summary
type: string
mapping: "$.fields.summary"
- name: status
type: string
mapping: "$.fields.status.name"
- name: assignee
type: string
mapping: "$.fields.assignee.displayName"
- name: priority
type: string
mapping: "$.fields.priority.name"
consumes:
- type: http
namespace: jira
baseUri: "https://mcdonalds.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue/{{issue_key}}"
inputParameters:
- name: issue_key
in: path
operations:
- name: get-issue
method: GET
When a customer redeems loyalty points in the McDonald's app, validates the redemption against the loyalty platform, updates the member balance in Salesforce Marketing Cloud, logs the transaction in SAP, and sends a push notification confirmation.
naftiko: "0.5"
info:
label: "Loyalty Points Redemption Fulfillment"
description: "When a customer redeems loyalty points in the McDonald's app, validates the redemption against the loyalty platform, updates the member balance in Salesforce Marketing Cloud, logs the transaction in SAP, and sends a push notification confirmation."
tags:
- loyalty
- mobile-app
- salesforce
- sap
- customer-engagement
capability:
exposes:
- type: mcp
namespace: loyalty-redemption
port: 8080
tools:
- name: fulfill-points-redemption
description: "Given a member ID, redemption amount, and order ID, validate, update balance, log to SAP, and confirm to the customer."
inputParameters:
- name: member_id
in: body
type: string
description: "The MyMcDonald's Rewards member ID."
- name: points_to_redeem
in: body
type: number
description: "The number of loyalty points to redeem."
- name: order_id
in: body
type: string
description: "The POS order ID for the transaction."
- name: store_id
in: body
type: string
description: "The restaurant store number."
steps:
- name: get-member
type: call
call: "sfmc.get-data-extension-row"
with:
data_extension: "LoyaltyMembers"
member_id: "{{member_id}}"
- name: update-balance
type: call
call: "sfmc.update-data-extension-row"
with:
data_extension: "LoyaltyMembers"
member_id: "{{member_id}}"
points_balance: "{{get-member.points_balance - points_to_redeem}}"
last_redemption_date: "{{now}}"
- name: log-transaction
type: call
call: "sap.create-journal-entry"
with:
document_type: "loyalty_redemption"
member_id: "{{member_id}}"
points: "{{points_to_redeem}}"
order_id: "{{order_id}}"
store_id: "{{store_id}}"
- name: send-confirmation
type: call
call: "sfmc.trigger-send"
with:
triggered_send_key: "LoyaltyRedemptionConfirmation"
subscriber_key: "{{member_id}}"
points_redeemed: "{{points_to_redeem}}"
new_balance: "{{update-balance.points_balance}}"
consumes:
- type: http
namespace: sfmc
baseUri: "https://mcdonalds.rest.marketingcloudapis.com"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: data-extension-get
path: "/data/v1/customobjectdata/key/{{data_extension}}/rowset"
inputParameters:
- name: data_extension
in: path
- name: member_id
in: query
operations:
- name: get-data-extension-row
method: GET
- name: data-extension-update
path: "/data/v1/customobjectdata/key/{{data_extension}}/rowset"
inputParameters:
- name: data_extension
in: path
operations:
- name: update-data-extension-row
method: PUT
- name: triggered-sends
path: "/messaging/v1/messageDefinitionSends/key:{{triggered_send_key}}/send"
inputParameters:
- name: triggered_send_key
in: path
operations:
- name: trigger-send
method: POST
- type: http
namespace: sap
baseUri: "https://mcd-s4.sap.com/sap/opu/odata/sap/API_JOURNAL_ENTRY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: Accept
in: header
value: "application/json"
resources:
- name: journal-entries
path: "/A_JournalEntry"
operations:
- name: create-journal-entry
method: POST
Retrieves a MyMcDonald's Rewards loyalty member profile from the Salesforce Marketing Cloud by member ID. Returns points balance, tier, last activity, and enrollment date for loyalty support teams.
naftiko: "0.5"
info:
label: "Loyalty Program Member Lookup"
description: "Retrieves a MyMcDonald's Rewards loyalty member profile from the Salesforce Marketing Cloud by member ID. Returns points balance, tier, last activity, and enrollment date for loyalty support teams."
tags:
- loyalty
- mobile-app
- salesforce
- customer-engagement
capability:
exposes:
- type: mcp
namespace: loyalty-program
port: 8080
tools:
- name: get-loyalty-member
description: "Look up a MyMcDonald's Rewards member by ID. Returns points balance, tier, last activity date, and enrollment date."
inputParameters:
- name: member_id
in: body
type: string
description: "The MyMcDonald's Rewards loyalty member identifier."
call: "sfmc.get-data-extension-row"
with:
data_extension: "LoyaltyMembers"
member_id: "{{member_id}}"
outputParameters:
- name: points_balance
type: string
mapping: "$.items[0].values.PointsBalance"
- name: tier
type: string
mapping: "$.items[0].values.MemberTier"
- name: last_activity
type: string
mapping: "$.items[0].values.LastActivityDate"
- name: enrollment_date
type: string
mapping: "$.items[0].values.EnrollmentDate"
consumes:
- type: http
namespace: sfmc
baseUri: "https://mcdonalds.rest.marketingcloudapis.com/data/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: data-extensions
path: "/customobjectdata/key/{{data_extension}}/rowset"
inputParameters:
- name: data_extension
in: path
- name: member_id
in: query
operations:
- name: get-data-extension-row
method: GET
When a new promotional campaign is approved, creates the campaign in Salesforce Marketing Cloud, configures tracking in Adobe Analytics, pushes the offer to the McDonald's app via the loyalty platform, and notifies the marketing team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Marketing Campaign Launch Orchestrator"
description: "When a new promotional campaign is approved, creates the campaign in Salesforce Marketing Cloud, configures tracking in Adobe Analytics, pushes the offer to the McDonald's app via the loyalty platform, and notifies the marketing team in Microsoft Teams."
tags:
- marketing
- salesforce
- adobe-analytics
- loyalty
- microsoft-teams
- campaign-management
capability:
exposes:
- type: mcp
namespace: campaign-launch
port: 8080
tools:
- name: launch-promo-campaign
description: "Given campaign details, create in SFMC, configure Adobe Analytics tracking, push to loyalty platform, and notify the team."
inputParameters:
- name: campaign_name
in: body
type: string
description: "The promotional campaign name."
- name: campaign_code
in: body
type: string
description: "The unique campaign tracking code."
- name: offer_description
in: body
type: string
description: "The promotional offer description for the app."
- name: start_date
in: body
type: string
description: "Campaign start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "Campaign end date in YYYY-MM-DD format."
- name: team_channel_id
in: body
type: string
description: "The Microsoft Teams channel ID for the marketing team."
steps:
- name: create-sfmc-campaign
type: call
call: "sfmc.create-campaign"
with:
name: "{{campaign_name}}"
campaign_code: "{{campaign_code}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: configure-tracking
type: call
call: "adobe-analytics.create-classification"
with:
rsid: "mcd-global"
campaign_code: "{{campaign_code}}"
campaign_name: "{{campaign_name}}"
- name: push-loyalty-offer
type: call
call: "sfmc.create-data-extension-row"
with:
data_extension: "LoyaltyOffers"
campaign_code: "{{campaign_code}}"
offer_description: "{{offer_description}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: notify-team
type: call
call: "msteams.send-channel-message"
with:
channel_id: "{{team_channel_id}}"
text: "Campaign Launched: {{campaign_name}} ({{campaign_code}}). SFMC ID: {{create-sfmc-campaign.id}}. Loyalty offer active {{start_date}} to {{end_date}}. Adobe tracking configured."
consumes:
- type: http
namespace: sfmc
baseUri: "https://mcdonalds.rest.marketingcloudapis.com"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: campaigns
path: "/hub/v1/campaigns"
operations:
- name: create-campaign
method: POST
- name: data-extensions
path: "/data/v1/customobjectdata/key/{{data_extension}}/rowset"
inputParameters:
- name: data_extension
in: path
operations:
- name: create-data-extension-row
method: POST
- type: http
namespace: adobe-analytics
baseUri: "https://analytics.adobe.io/api"
authentication:
type: bearer
token: "$secrets.adobe_analytics_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: classifications
path: "/{{rsid}}/classifications"
inputParameters:
- name: rsid
in: path
operations:
- name: create-classification
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/{{channel_id}}/channels/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
When a delivery order exceeds the SLA threshold, retrieves the order from the POS, checks the delivery partner status, creates a ServiceNow incident, and notifies the operations team in Microsoft Teams with resolution steps.
naftiko: "0.5"
info:
label: "McDelivery Order Escalation Pipeline"
description: "When a delivery order exceeds the SLA threshold, retrieves the order from the POS, checks the delivery partner status, creates a ServiceNow incident, and notifies the operations team in Microsoft Teams with resolution steps."
tags:
- delivery
- restaurant-technology
- oracle
- servicenow
- microsoft-teams
- sla-management
capability:
exposes:
- type: mcp
namespace: delivery-escalation
port: 8080
tools:
- name: escalate-late-delivery
description: "Given a POS order ID, store ID, and partner name, check order and partner status, create incident, and notify ops."
inputParameters:
- name: pos_order_id
in: body
type: string
description: "The Simphony POS order identifier."
- name: store_id
in: body
type: string
description: "The restaurant store number."
- name: partner_name
in: body
type: string
description: "The delivery partner name."
- name: sla_minutes_exceeded
in: body
type: number
description: "Minutes beyond the delivery SLA."
- name: ops_channel_id
in: body
type: string
description: "The Microsoft Teams channel ID for delivery operations."
steps:
- name: get-order
type: call
call: "simphony.get-order"
with:
store_id: "{{store_id}}"
order_id: "{{pos_order_id}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Late Delivery: Order {{pos_order_id}} — {{partner_name}} — Store {{store_id}} ({{sla_minutes_exceeded}}m over SLA)"
category: "delivery_sla_breach"
priority: "3"
assigned_group: "Delivery_Operations"
description: "Order {{pos_order_id}} at Store {{store_id}} via {{partner_name}} is {{sla_minutes_exceeded}} minutes past SLA. Order placed: {{get-order.created_at}}. Items: {{get-order.item_count}}."
- name: notify-ops
type: call
call: "msteams.send-channel-message"
with:
channel_id: "{{ops_channel_id}}"
text: "DELIVERY SLA BREACH — Store {{store_id}}: Order {{pos_order_id}} via {{partner_name}} is {{sla_minutes_exceeded}}m late. Incident: {{create-incident.number}}."
consumes:
- type: http
namespace: simphony
baseUri: "https://mcd-simphony.oracle.com/api/v1"
authentication:
type: bearer
token: "$secrets.simphony_token"
resources:
- name: orders
path: "/stores/{{store_id}}/orders/{{order_id}}"
inputParameters:
- name: store_id
in: path
- name: order_id
in: path
operations:
- name: get-order
method: GET
- type: http
namespace: servicenow
baseUri: "https://mcdonalds.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/{{channel_id}}/channels/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
When a new McDonald's app release is approved, creates a Jira release version, posts release notes to Confluence, triggers the GitHub Actions deployment pipeline, and notifies the mobile engineering team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Mobile App Release Coordination"
description: "When a new McDonald's app release is approved, creates a Jira release version, posts release notes to Confluence, triggers the GitHub Actions deployment pipeline, and notifies the mobile engineering team in Microsoft Teams."
tags:
- digital
- mobile-app
- jira
- confluence
- github-actions
- microsoft-teams
- release-management
capability:
exposes:
- type: mcp
namespace: mobile-release
port: 8080
tools:
- name: coordinate-app-release
description: "Given a version number and release notes, create Jira version, post to Confluence, trigger deployment, and notify the team."
inputParameters:
- name: version_number
in: body
type: string
description: "The app version number (e.g., 8.5.0)."
- name: release_notes
in: body
type: string
description: "The release notes content."
- name: target_platform
in: body
type: string
description: "The target platform (ios, android, both)."
- name: engineering_channel_id
in: body
type: string
description: "The Microsoft Teams channel ID for mobile engineering."
steps:
- name: create-jira-version
type: call
call: "jira.create-version"
with:
project_key: "MCDAPP"
name: "v{{version_number}}"
released: true
release_date: "{{now}}"
- name: publish-release-notes
type: call
call: "confluence.create-page"
with:
space_key: "MCDMOBILE"
title: "Release Notes — v{{version_number}}"
body: "{{release_notes}}"
parent_page_id: "release-notes-archive"
- name: trigger-deployment
type: call
call: "github.trigger-workflow"
with:
repo: "mcdonalds/mobile-app"
workflow_id: "deploy-release.yml"
ref: "release/v{{version_number}}"
inputs_platform: "{{target_platform}}"
- name: notify-team
type: call
call: "msteams.send-channel-message"
with:
channel_id: "{{engineering_channel_id}}"
text: "App Release v{{version_number}} deployed ({{target_platform}}). Jira: {{create-jira-version.id}}. Release notes: {{publish-release-notes.url}}. GitHub run: {{trigger-deployment.run_url}}."
consumes:
- type: http
namespace: jira
baseUri: "https://mcdonalds.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: versions
path: "/version"
operations:
- name: create-version
method: POST
- type: http
namespace: confluence
baseUri: "https://mcdonalds.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: github
baseUri: "https://api.github.com/repos"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: workflows
path: "/{{repo}}/actions/workflows/{{workflow_id}}/dispatches"
inputParameters:
- name: repo
in: path
- name: workflow_id
in: path
operations:
- name: trigger-workflow
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/{{channel_id}}/channels/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
When a new franchise application is submitted, creates a Salesforce opportunity, provisions a SharePoint document library for due diligence, opens a Jira ticket for the franchise development team, and notifies the regional director in Microsoft Teams.
naftiko: "0.5"
info:
label: "New Franchise Application Processing"
description: "When a new franchise application is submitted, creates a Salesforce opportunity, provisions a SharePoint document library for due diligence, opens a Jira ticket for the franchise development team, and notifies the regional director in Microsoft Teams."
tags:
- franchise-ops
- salesforce
- sharepoint
- jira
- microsoft-teams
- franchise-development
capability:
exposes:
- type: mcp
namespace: franchise-applications
port: 8080
tools:
- name: process-franchise-application
description: "Given applicant details, create a Salesforce opportunity, provision SharePoint docs, open a Jira ticket, and notify the regional director."
inputParameters:
- name: applicant_name
in: body
type: string
description: "The franchise applicant full name."
- name: applicant_email
in: body
type: string
description: "The applicant email address."
- name: target_market
in: body
type: string
description: "The target market or region for the franchise."
- name: investment_amount
in: body
type: string
description: "The proposed investment amount."
- name: regional_director_upn
in: body
type: string
description: "The Microsoft UPN of the regional franchise director."
steps:
- name: create-opportunity
type: call
call: "salesforce.create-opportunity"
with:
name: "Franchise Application: {{applicant_name}} — {{target_market}}"
stage: "Application Received"
amount: "{{investment_amount}}"
contact_email: "{{applicant_email}}"
- name: provision-docs
type: call
call: "sharepoint.create-folder"
with:
site_id: "mcd-franchise-dev"
folder_path: "Applications/{{applicant_name}}_{{target_market}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project_key: "MCDFRANCHISE"
issue_type: "Task"
summary: "New Franchise Application: {{applicant_name}} — {{target_market}}"
description: "Applicant: {{applicant_name}} ({{applicant_email}}). Market: {{target_market}}. Investment: ${{investment_amount}}. Salesforce Opportunity: {{create-opportunity.id}}. Docs: {{provision-docs.url}}."
- name: notify-director
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{regional_director_upn}}"
text: "New Franchise Application: {{applicant_name}} for {{target_market}}. Investment: ${{investment_amount}}. Salesforce: {{create-opportunity.id}}. Jira: {{create-ticket.key}}. Docs: {{provision-docs.url}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://mcdonalds.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity"
operations:
- name: create-opportunity
method: POST
- type: http
namespace: 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: jira
baseUri: "https://mcdonalds.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
- 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
When a candidate completes a Paradox chatbot screening, creates a candidate profile in Workday Recruiting, schedules an interview via Microsoft Outlook calendar, and notifies the hiring manager in Microsoft Teams.
naftiko: "0.5"
info:
label: "Paradox Recruiting Chatbot Integration"
description: "When a candidate completes a Paradox chatbot screening, creates a candidate profile in Workday Recruiting, schedules an interview via Microsoft Outlook calendar, and notifies the hiring manager in Microsoft Teams."
tags:
- hr
- recruiting
- paradox
- workday
- microsoft-teams
- talent-acquisition
capability:
exposes:
- type: mcp
namespace: recruiting-pipeline
port: 8080
tools:
- name: process-candidate-screening
description: "Given Paradox screening data, create a Workday candidate, schedule an interview, and notify the hiring manager."
inputParameters:
- name: candidate_name
in: body
type: string
description: "The candidate full name."
- name: candidate_email
in: body
type: string
description: "The candidate email address."
- name: candidate_phone
in: body
type: string
description: "The candidate phone number."
- name: store_number
in: body
type: string
description: "The target restaurant store number."
- name: position
in: body
type: string
description: "The position applied for (e.g., Crew Member, Shift Manager)."
- name: screening_score
in: body
type: string
description: "The Paradox chatbot screening score."
- name: hiring_manager_upn
in: body
type: string
description: "The Microsoft UPN of the hiring manager."
steps:
- name: create-candidate
type: call
call: "workday.create-candidate"
with:
name: "{{candidate_name}}"
email: "{{candidate_email}}"
phone: "{{candidate_phone}}"
position: "{{position}}"
location: "Store_{{store_number}}"
source: "Paradox"
screening_score: "{{screening_score}}"
- name: schedule-interview
type: call
call: "outlook.create-event"
with:
organizer_upn: "{{hiring_manager_upn}}"
subject: "Interview: {{candidate_name}} — {{position}} (Store {{store_number}})"
attendees: "{{hiring_manager_upn}}"
body: "Candidate: {{candidate_name}} ({{candidate_email}}). Position: {{position}}. Paradox Score: {{screening_score}}. Workday ID: {{create-candidate.id}}."
duration_minutes: 30
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{hiring_manager_upn}}"
text: "New Candidate — Store {{store_number}}: {{candidate_name}} for {{position}}. Paradox Score: {{screening_score}}. Interview scheduled. Workday ID: {{create-candidate.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: candidates
path: "/recruiting/candidates"
operations:
- name: create-candidate
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: events
path: "/users/{{organizer_upn}}/events"
inputParameters:
- name: organizer_upn
in: path
operations:
- name: create-event
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
Compares Workday payroll data against crew scheduled hours, detects discrepancies, creates a ServiceNow HR case, and notifies the payroll team and store manager in Microsoft Teams.
naftiko: "0.5"
info:
label: "Payroll Discrepancy Alert Pipeline"
description: "Compares Workday payroll data against crew scheduled hours, detects discrepancies, creates a ServiceNow HR case, and notifies the payroll team and store manager in Microsoft Teams."
tags:
- hr
- payroll
- workday
- servicenow
- microsoft-teams
- compliance
capability:
exposes:
- type: mcp
namespace: payroll-compliance
port: 8080
tools:
- name: check-payroll-discrepancy
description: "Given an employee ID and pay period, compare payroll vs scheduled hours, flag discrepancies, and notify payroll and management."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
- name: pay_period
in: body
type: string
description: "The pay period in YYYY-MM-DD/YYYY-MM-DD format."
- name: payroll_team_upn
in: body
type: string
description: "The Microsoft UPN of the payroll team lead."
steps:
- name: get-payroll-data
type: call
call: "workday.get-payroll"
with:
worker_id: "{{worker_id}}"
period: "{{pay_period}}"
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
- name: create-hr-case
type: call
call: "servicenow.create-task"
with:
short_description: "Payroll Discrepancy: {{get-employee.full_name}} — {{pay_period}}"
assigned_group: "Payroll_Team"
category: "payroll_discrepancy"
description: "Employee: {{get-employee.full_name}} ({{worker_id}}). Pay period: {{pay_period}}. Paid hours: {{get-payroll-data.paid_hours}}. Scheduled hours: {{get-payroll-data.scheduled_hours}}. Variance: {{get-payroll-data.variance}} hours."
- name: notify-payroll
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{payroll_team_upn}}"
text: "Payroll Discrepancy: {{get-employee.full_name}} (Store {{get-employee.location}}). Paid: {{get-payroll-data.paid_hours}}h vs Scheduled: {{get-payroll-data.scheduled_hours}}h. Case: {{create-hr-case.number}}."
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.manager_email}}"
text: "Payroll Alert: {{get-employee.full_name}} has a {{get-payroll-data.variance}}h variance for {{pay_period}}. HR case: {{create-hr-case.number}}. Please verify time records."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: payroll
path: "/workers/{{worker_id}}/payroll"
inputParameters:
- name: worker_id
in: path
- name: period
in: query
operations:
- name: get-payroll
method: GET
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://mcdonalds.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
operations:
- name: create-task
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
Retrieves the run status of a Microsoft Power Automate flow by flow ID. Returns status, trigger time, duration, and error details for the operations automation team monitoring scheduled restaurant processes.
naftiko: "0.5"
info:
label: "Power Automate Flow Run Status Check"
description: "Retrieves the run status of a Microsoft Power Automate flow by flow ID. Returns status, trigger time, duration, and error details for the operations automation team monitoring scheduled restaurant processes."
tags:
- restaurant-technology
- automation
- microsoft-power-automate
- operations
capability:
exposes:
- type: mcp
namespace: flow-monitoring
port: 8080
tools:
- name: get-flow-run-status
description: "Check the latest run status of a Power Automate flow by flow ID. Returns status, trigger time, and duration."
inputParameters:
- name: flow_id
in: body
type: string
description: "The Power Automate flow identifier."
- name: environment_id
in: body
type: string
description: "The Power Platform environment ID."
call: "power-automate.get-flow-runs"
with:
environment_id: "{{environment_id}}"
flow_id: "{{flow_id}}"
outputParameters:
- name: status
type: string
mapping: "$.value[0].properties.status"
- name: trigger_time
type: string
mapping: "$.value[0].properties.startTime"
- name: duration
type: string
mapping: "$.value[0].properties.endTime"
- name: error_message
type: string
mapping: "$.value[0].properties.error.message"
consumes:
- type: http
namespace: power-automate
baseUri: "https://api.flow.microsoft.com/providers/Microsoft.ProcessSimple"
authentication:
type: bearer
token: "$secrets.power_automate_token"
resources:
- name: flow-runs
path: "/environments/{{environment_id}}/flows/{{flow_id}}/runs"
inputParameters:
- name: environment_id
in: path
- name: flow_id
in: path
operations:
- name: get-flow-runs
method: GET
When a new food safety regulation is published, uploads the document to SharePoint, creates Jira tasks for affected franchise regions, and sends a Salesforce Marketing Cloud email notification to all franchise operators in the affected market.
naftiko: "0.5"
info:
label: "Regulatory Compliance Document Distribution"
description: "When a new food safety regulation is published, uploads the document to SharePoint, creates Jira tasks for affected franchise regions, and sends a Salesforce Marketing Cloud email notification to all franchise operators in the affected market."
tags:
- compliance
- food-safety
- sharepoint
- jira
- salesforce
- regulatory
capability:
exposes:
- type: mcp
namespace: regulatory-compliance
port: 8080
tools:
- name: distribute-regulation
description: "Given a regulation document and affected market, upload to SharePoint, create Jira tasks, and notify franchise operators via email."
inputParameters:
- name: regulation_title
in: body
type: string
description: "The title of the new regulation."
- name: regulation_url
in: body
type: string
description: "The URL to the regulation document source."
- name: affected_market
in: body
type: string
description: "The affected geographic market."
- name: compliance_deadline
in: body
type: string
description: "The compliance deadline in YYYY-MM-DD format."
- name: notification_list_key
in: body
type: string
description: "The SFMC subscriber list key for the affected market."
steps:
- name: upload-document
type: call
call: "sharepoint.upload-file"
with:
site_id: "mcd-regulatory"
folder_path: "Regulations/{{affected_market}}"
file_url: "{{regulation_url}}"
file_name: "{{regulation_title}}"
- name: create-compliance-task
type: call
call: "jira.create-issue"
with:
project_key: "MCDCOMPLIANCE"
issue_type: "Task"
summary: "New Regulation: {{regulation_title}} — {{affected_market}}"
description: "Regulation: {{regulation_title}}. Market: {{affected_market}}. Deadline: {{compliance_deadline}}. Document: {{upload-document.url}}."
priority: "High"
due_date: "{{compliance_deadline}}"
- name: notify-operators
type: call
call: "sfmc.trigger-send"
with:
triggered_send_key: "RegulatoryNotification"
list_key: "{{notification_list_key}}"
regulation_title: "{{regulation_title}}"
compliance_deadline: "{{compliance_deadline}}"
document_url: "{{upload-document.url}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: file-upload
path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
- name: file_name
in: path
operations:
- name: upload-file
method: PUT
- type: http
namespace: jira
baseUri: "https://mcdonalds.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
- type: http
namespace: sfmc
baseUri: "https://mcdonalds.rest.marketingcloudapis.com"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: triggered-sends
path: "/messaging/v1/messageDefinitionSends/key:{{triggered_send_key}}/send"
inputParameters:
- name: triggered_send_key
in: path
operations:
- name: trigger-send
method: POST
When Datadog detects a kitchen equipment alert, creates a ServiceNow incident, looks up the equipment warranty in SAP, and notifies the store manager in Microsoft Teams with repair instructions.
naftiko: "0.5"
info:
label: "Restaurant Equipment Failure Workflow"
description: "When Datadog detects a kitchen equipment alert, creates a ServiceNow incident, looks up the equipment warranty in SAP, and notifies the store manager in Microsoft Teams with repair instructions."
tags:
- restaurant-technology
- equipment
- datadog
- servicenow
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: equipment-failure
port: 8080
tools:
- name: handle-equipment-alert
description: "Given an equipment alert from Datadog, create a ServiceNow incident, check SAP warranty, and notify the store manager."
inputParameters:
- name: alert_id
in: body
type: string
description: "The Datadog alert ID for the equipment failure."
- name: store_id
in: body
type: string
description: "The restaurant store number."
- name: equipment_tag
in: body
type: string
description: "The Datadog host tag identifying the equipment."
- name: sap_equipment_id
in: body
type: string
description: "The SAP equipment master ID."
- name: manager_upn
in: body
type: string
description: "The store manager Microsoft UPN."
steps:
- name: get-alert-details
type: call
call: "datadog.get-alert"
with:
alert_id: "{{alert_id}}"
- name: get-equipment-warranty
type: call
call: "sap.get-equipment"
with:
equipment_id: "{{sap_equipment_id}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Equipment failure: {{equipment_tag}} at Store {{store_id}}"
category: "equipment_failure"
priority: "2"
assigned_group: "Restaurant_Equipment"
description: "Alert: {{get-alert-details.title}}. Equipment: {{equipment_tag}}. Warranty status: {{get-equipment-warranty.warranty_status}}. Warranty expiry: {{get-equipment-warranty.warranty_end_date}}."
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{manager_upn}}"
text: "EQUIPMENT ALERT — Store {{store_id}}: {{get-alert-details.title}}. Equipment: {{equipment_tag}}. ServiceNow ticket: {{create-incident.number}}. Warranty: {{get-equipment-warranty.warranty_status}}."
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: alerts
path: "/alert/{{alert_id}}"
inputParameters:
- name: alert_id
in: path
operations:
- name: get-alert
method: GET
- type: http
namespace: sap
baseUri: "https://mcd-s4.sap.com/sap/opu/odata/sap/PM_EQUIPMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: Accept
in: header
value: "application/json"
resources:
- name: equipment
path: "/EquipmentSet('{{equipment_id}}')"
inputParameters:
- name: equipment_id
in: path
operations:
- name: get-equipment
method: GET
- type: http
namespace: servicenow
baseUri: "https://mcdonalds.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: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
When a restaurant manager submits a maintenance request, creates a ServiceNow work order, checks the equipment maintenance schedule in SAP PM, and notifies the facilities team in Microsoft Teams with priority and SLA details.
naftiko: "0.5"
info:
label: "Restaurant Maintenance Request Orchestrator"
description: "When a restaurant manager submits a maintenance request, creates a ServiceNow work order, checks the equipment maintenance schedule in SAP PM, and notifies the facilities team in Microsoft Teams with priority and SLA details."
tags:
- restaurant-technology
- maintenance
- servicenow
- sap
- microsoft-teams
- facilities
capability:
exposes:
- type: mcp
namespace: restaurant-maintenance
port: 8080
tools:
- name: submit-maintenance-request
description: "Given store ID, equipment, and issue details, create a ServiceNow work order, check SAP PM schedule, and notify facilities."
inputParameters:
- name: store_id
in: body
type: string
description: "The restaurant store number."
- name: equipment_description
in: body
type: string
description: "Description of the equipment needing maintenance."
- name: issue_description
in: body
type: string
description: "Description of the maintenance issue."
- name: sap_equipment_id
in: body
type: string
description: "The SAP Plant Maintenance equipment ID."
- name: facilities_channel_id
in: body
type: string
description: "The Microsoft Teams channel ID for the facilities team."
steps:
- name: check-pm-schedule
type: call
call: "sap.get-maintenance-plan"
with:
equipment_id: "{{sap_equipment_id}}"
- name: create-work-order
type: call
call: "servicenow.create-work-order"
with:
short_description: "Maintenance: {{equipment_description}} at Store {{store_id}}"
description: "Issue: {{issue_description}}. Equipment: {{equipment_description}}. Last PM: {{check-pm-schedule.last_maintenance_date}}. Next scheduled: {{check-pm-schedule.next_planned_date}}."
assigned_group: "Facilities_Maintenance"
category: "equipment_maintenance"
location: "Store {{store_id}}"
- name: notify-facilities
type: call
call: "msteams.send-channel-message"
with:
channel_id: "{{facilities_channel_id}}"
text: "Maintenance Request — Store {{store_id}}: {{equipment_description}}. Issue: {{issue_description}}. Work Order: {{create-work-order.number}}. Last PM: {{check-pm-schedule.last_maintenance_date}}."
consumes:
- type: http
namespace: sap
baseUri: "https://mcd-s4.sap.com/sap/opu/odata/sap/PM_MAINTENANCE_PLAN_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: Accept
in: header
value: "application/json"
resources:
- name: maintenance-plans
path: "/MaintenancePlanSet('{{equipment_id}}')"
inputParameters:
- name: equipment_id
in: path
operations:
- name: get-maintenance-plan
method: GET
- type: http
namespace: servicenow
baseUri: "https://mcdonalds.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: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
For a new restaurant opening, verifies POS system activation in Simphony, confirms supply chain orders in SAP, checks Workday staffing levels, and posts the readiness summary to the operations director in Microsoft Teams.
naftiko: "0.5"
info:
label: "Restaurant Opening Readiness Checklist"
description: "For a new restaurant opening, verifies POS system activation in Simphony, confirms supply chain orders in SAP, checks Workday staffing levels, and posts the readiness summary to the operations director in Microsoft Teams."
tags:
- franchise-ops
- restaurant-technology
- oracle
- sap
- workday
- microsoft-teams
- new-restaurant
capability:
exposes:
- type: mcp
namespace: restaurant-opening
port: 8080
tools:
- name: check-opening-readiness
description: "Given a new store ID, verify POS activation, supply chain orders, and staffing, then post a readiness summary."
inputParameters:
- name: store_id
in: body
type: string
description: "The new restaurant store number."
- name: opening_date
in: body
type: string
description: "The planned opening date in YYYY-MM-DD format."
- name: ops_director_upn
in: body
type: string
description: "The Microsoft UPN of the operations director."
steps:
- name: check-pos
type: call
call: "simphony.get-store-config"
with:
store_id: "{{store_id}}"
- name: check-supply-orders
type: call
call: "sap.get-plant-orders"
with:
plant_code: "{{store_id}}"
status: "open"
- name: check-staffing
type: call
call: "workday.get-headcount"
with:
location: "Store_{{store_id}}"
- name: post-summary
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{ops_director_upn}}"
text: "Opening Readiness — Store {{store_id}} ({{opening_date}}): POS Status: {{check-pos.activation_status}}. Open Supply Orders: {{check-supply-orders.order_count}}. Staffing: {{check-staffing.filled}}/{{check-staffing.planned}} positions filled."
consumes:
- type: http
namespace: simphony
baseUri: "https://mcd-simphony.oracle.com/api/v1"
authentication:
type: bearer
token: "$secrets.simphony_token"
resources:
- name: store-config
path: "/stores/{{store_id}}/config"
inputParameters:
- name: store_id
in: path
operations:
- name: get-store-config
method: GET
- type: http
namespace: sap
baseUri: "https://mcd-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"
resources:
- name: plant-orders
path: "/A_PurchaseOrder"
inputParameters:
- name: plant_code
in: query
- name: status
in: query
operations:
- name: get-plant-orders
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: "/headcount"
inputParameters:
- name: location
in: query
operations:
- name: get-headcount
method: GET
- 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
Retrieves a point-of-sale transaction from the Oracle MICROS Simphony system by transaction ID. Returns order total, items, payment method, and timestamp for crew and shift managers troubleshooting order issues.
naftiko: "0.5"
info:
label: "Restaurant POS Transaction Lookup"
description: "Retrieves a point-of-sale transaction from the Oracle MICROS Simphony system by transaction ID. Returns order total, items, payment method, and timestamp for crew and shift managers troubleshooting order issues."
tags:
- restaurant-technology
- pos
- oracle
- transactions
capability:
exposes:
- type: mcp
namespace: pos-operations
port: 8080
tools:
- name: get-pos-transaction
description: "Look up an Oracle MICROS Simphony POS transaction by ID. Returns order total, line items, payment method, and timestamp."
inputParameters:
- name: transaction_id
in: body
type: string
description: "The Simphony POS transaction identifier."
- name: store_id
in: body
type: string
description: "The McDonald's restaurant store number."
call: "simphony.get-transaction"
with:
transaction_id: "{{transaction_id}}"
store_id: "{{store_id}}"
outputParameters:
- name: order_total
type: string
mapping: "$.transaction.totalAmount"
- name: payment_method
type: string
mapping: "$.transaction.paymentType"
- name: items
type: string
mapping: "$.transaction.lineItems"
- name: timestamp
type: string
mapping: "$.transaction.createdAt"
consumes:
- type: http
namespace: simphony
baseUri: "https://mcd-simphony.oracle.com/api/v1"
authentication:
type: bearer
token: "$secrets.simphony_token"
resources:
- name: transactions
path: "/stores/{{store_id}}/transactions/{{transaction_id}}"
inputParameters:
- name: store_id
in: path
- name: transaction_id
in: path
operations:
- name: get-transaction
method: GET
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 1"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-1
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-1"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://mcdonalds.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/accounts"
operations:
- name: create-account
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 10"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-10
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-10"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-10
method: POST
- type: http
namespace: sharepoint
baseUri: "https://mcdonalds.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 11"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-11
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-11"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "hubspot.send-email"
with:
to: "{{process.email}}"
subject: "Workflow 11 Complete"
body: "{{process.summary}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-11
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/contacts"
operations:
- name: send-email
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 12"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- datadog
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-12
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-12"
with:
identifier: "{{identifier}}"
- name: push
type: call
call: "datadog.submit-metrics"
with:
metric_name: "restaurants.workflow_12"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-12
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_token"
resources:
- name: metrics
path: "/metrics"
operations:
- name: submit-metrics
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 13"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-13
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-13"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-13
method: POST
- type: http
namespace: salesforce
baseUri: "https://mcdonalds.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/accounts"
operations:
- name: create-account
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 14"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-14
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-14"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-14
method: POST
- type: http
namespace: servicenow
baseUri: "https://mcdonalds.service-now.com/api/now/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 15"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- slack
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-15
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-15"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#restaurants"
text: "Completed workflow 15: {{process.summary}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-15
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/messages"
operations:
- name: post-message
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 16"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-16
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-16"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "RESTAU"
title: "Report 16"
content: "{{process.report}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-16
method: POST
- type: http
namespace: confluence
baseUri: "https://mcdonalds.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 17"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-17
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-17"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "workflow_17"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-17
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets"
operations:
- name: refresh-dataset
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 18"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- jira
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-18
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-18"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "REST"
summary: "Task from workflow 18"
description: "{{process.details}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-18
method: POST
- type: http
namespace: jira
baseUri: "https://mcdonalds.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 19"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- teams
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-19
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-19"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "restaurants"
message: "Workflow 19 complete: {{process.summary}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-19
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-message
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 2"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-2
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-2"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://mcdonalds.service-now.com/api/now/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 20"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-20
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-20"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "tableau.publish-datasource"
with:
dataset_id: "workflow_20"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-20
method: POST
- type: http
namespace: tableau
baseUri: "https://mcdonalds-tableau.online.tableau.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/datasources"
operations:
- name: publish-datasource
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 21"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- box
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-21
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-21"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-21
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files"
operations:
- name: upload-file
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 22"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-22
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-22"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-22
method: POST
- type: http
namespace: sharepoint
baseUri: "https://mcdonalds.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 23"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-23
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-23"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "hubspot.send-email"
with:
to: "{{process.email}}"
subject: "Workflow 23 Complete"
body: "{{process.summary}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-23
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/contacts"
operations:
- name: send-email
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 24"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- datadog
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-24
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-24"
with:
identifier: "{{identifier}}"
- name: push
type: call
call: "datadog.submit-metrics"
with:
metric_name: "restaurants.workflow_24"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-24
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_token"
resources:
- name: metrics
path: "/metrics"
operations:
- name: submit-metrics
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 25"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-25
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-25"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-25
method: POST
- type: http
namespace: salesforce
baseUri: "https://mcdonalds.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/accounts"
operations:
- name: create-account
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 26"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-26
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-26"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-26
method: POST
- type: http
namespace: servicenow
baseUri: "https://mcdonalds.service-now.com/api/now/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 27"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- slack
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-27
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-27"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#restaurants"
text: "Completed workflow 27: {{process.summary}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-27
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/messages"
operations:
- name: post-message
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 28"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-28
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-28"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "RESTAU"
title: "Report 28"
content: "{{process.report}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-28
method: POST
- type: http
namespace: confluence
baseUri: "https://mcdonalds.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 29"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-29
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-29"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "workflow_29"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-29
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets"
operations:
- name: refresh-dataset
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 3"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- slack
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-3
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-3"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#restaurants"
text: "Completed workflow 3: {{process.summary}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-3
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/messages"
operations:
- name: post-message
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 30"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- jira
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-30
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-30"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "REST"
summary: "Task from workflow 30"
description: "{{process.details}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-30
method: POST
- type: http
namespace: jira
baseUri: "https://mcdonalds.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 31"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- teams
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-31
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-31"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "restaurants"
message: "Workflow 31 complete: {{process.summary}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-31
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-message
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 32"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-32
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-32"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "tableau.publish-datasource"
with:
dataset_id: "workflow_32"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-32
method: POST
- type: http
namespace: tableau
baseUri: "https://mcdonalds-tableau.online.tableau.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/datasources"
operations:
- name: publish-datasource
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 33"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- box
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-33
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-33"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-33
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files"
operations:
- name: upload-file
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 34"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-34
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-34"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-34
method: POST
- type: http
namespace: sharepoint
baseUri: "https://mcdonalds.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 35"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-35
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-35"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "hubspot.send-email"
with:
to: "{{process.email}}"
subject: "Workflow 35 Complete"
body: "{{process.summary}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-35
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/contacts"
operations:
- name: send-email
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 4"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-4
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-4"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "RESTAU"
title: "Report 4"
content: "{{process.report}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-4
method: POST
- type: http
namespace: confluence
baseUri: "https://mcdonalds.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 5"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-5
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-5"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "workflow_5"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-5
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets"
operations:
- name: refresh-dataset
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 6"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- jira
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-6
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-6"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "REST"
summary: "Task from workflow 6"
description: "{{process.details}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-6
method: POST
- type: http
namespace: jira
baseUri: "https://mcdonalds.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 7"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- teams
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-7
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-7"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "restaurants"
message: "Workflow 7 complete: {{process.summary}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-7
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-message
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 8"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-8
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-8"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "tableau.publish-datasource"
with:
dataset_id: "workflow_8"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-8
method: POST
- type: http
namespace: tableau
baseUri: "https://mcdonalds-tableau.online.tableau.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/datasources"
operations:
- name: publish-datasource
method: POST
Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds.
naftiko: "0.5"
info:
label: "Mcdonalds Workflow 9"
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
tags:
- restaurants
- operations
- box
capability:
exposes:
- type: mcp
namespace: restaurants
port: 8080
tools:
- name: mcdonalds-workflow-9
description: "Orchestrates restaurants operations including data retrieval, processing, and automated notification for Mcdonalds."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mcdonalds-ops.run-workflow-9"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mcdonalds-ops
baseUri: "https://api.mcdonalds.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-9
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files"
operations:
- name: upload-file
method: POST
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 1"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-1
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-1"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-1
path: "/data-1/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-1
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 10"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-10
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-10"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-10
path: "/data-10/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-10
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 11"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-11
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-11"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-11
path: "/data-11/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-11
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 12"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-12
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-12"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-12
path: "/data-12/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-12
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 13"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-13
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-13"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-13
path: "/data-13/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-13
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 14"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-14
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-14"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-14
path: "/data-14/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-14
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 15"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-15
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-15"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-15
path: "/data-15/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-15
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 2"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-2
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-2"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-2
path: "/data-2/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-2
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 3"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-3
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-3"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-3
path: "/data-3/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-3
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 4"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-4
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-4"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-4
path: "/data-4/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-4
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 5"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-5
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-5"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-5
path: "/data-5/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-5
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 6"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-6
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-6"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-6
path: "/data-6/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-6
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 7"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-7
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-7"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-7
path: "/data-7/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-7
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 8"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-8
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-8"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-8
path: "/data-8/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-8
method: GET
Retrieves operational data for Mcdonalds restaurants workflows.
naftiko: "0.5"
info:
label: "Mcdonalds Data Lookup 9"
description: "Retrieves operational data for Mcdonalds restaurants workflows."
tags:
- restaurants
- operations
capability:
exposes:
- type: mcp
namespace: mcdonalds-data
port: 8080
tools:
- name: get-data-9
description: "Retrieves operational data for Mcdonalds restaurants workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mcdonalds-data.get-data-9"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mcdonalds-data
baseUri: "https://api.mcdonalds.com/data/v1"
authentication:
type: bearer
token: "$secrets.mcdonalds_api_token"
resources:
- name: data-9
path: "/data-9/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-9
method: GET
Retrieves a franchise owner or operator contact record from Salesforce by contact ID. Returns name, email, franchise region, and assigned field consultant for the franchise relations team.
naftiko: "0.5"
info:
label: "Salesforce Franchise Contact Lookup"
description: "Retrieves a franchise owner or operator contact record from Salesforce by contact ID. Returns name, email, franchise region, and assigned field consultant for the franchise relations team."
tags:
- franchise-ops
- salesforce
- crm
- franchise-relations
capability:
exposes:
- type: mcp
namespace: franchise-crm
port: 8080
tools:
- name: get-franchise-contact
description: "Look up a franchise owner or operator in Salesforce by contact ID. Returns name, email, franchise region, and field consultant."
inputParameters:
- name: contact_id
in: body
type: string
description: "The Salesforce contact record ID."
call: "salesforce.get-contact"
with:
contact_id: "{{contact_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.Name"
- name: email
type: string
mapping: "$.Email"
- name: franchise_region
type: string
mapping: "$.Franchise_Region__c"
- name: field_consultant
type: string
mapping: "$.Field_Consultant__r.Name"
consumes:
- type: http
namespace: salesforce
baseUri: "https://mcdonalds.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
Queries SAP S/4HANA for current inventory levels of a material at a specific distribution center. Returns available quantity, unit, and last goods receipt date for supply chain planners.
naftiko: "0.5"
info:
label: "SAP Inventory Level Check"
description: "Queries SAP S/4HANA for current inventory levels of a material at a specific distribution center. Returns available quantity, unit, and last goods receipt date for supply chain planners."
tags:
- supply-chain
- inventory
- sap
- distribution
capability:
exposes:
- type: mcp
namespace: inventory-management
port: 8080
tools:
- name: get-inventory-level
description: "Check SAP S/4HANA inventory for a material at a distribution center. Returns available quantity, unit, and last goods receipt."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
- name: plant_code
in: body
type: string
description: "The SAP plant code for the distribution center."
call: "sap.get-material-stock"
with:
material_number: "{{material_number}}"
plant_code: "{{plant_code}}"
outputParameters:
- name: available_quantity
type: string
mapping: "$.d.AvailableStock"
- name: unit
type: string
mapping: "$.d.BaseUnit"
- name: last_goods_receipt
type: string
mapping: "$.d.LastGoodsReceiptDate"
consumes:
- type: http
namespace: sap
baseUri: "https://mcd-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_STOCK_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: material-stock
path: "/A_MatlStkInAcctMod(Material='{{material_number}}',Plant='{{plant_code}}')"
inputParameters:
- name: material_number
in: path
- name: plant_code
in: path
operations:
- name: get-material-stock
method: GET
When a SAP purchase order exceeds the spend threshold, retrieves PO details, resolves the approver from Workday, and notifies the requestor and approver in Microsoft Teams with approval status.
naftiko: "0.5"
info:
label: "SAP Purchase Order Approval Pipeline"
description: "When a SAP purchase order exceeds the spend threshold, retrieves PO details, resolves the approver from Workday, and notifies the requestor and approver in Microsoft Teams with approval status."
tags:
- supply-chain
- procurement
- sap
- workday
- microsoft-teams
- approval
capability:
exposes:
- type: mcp
namespace: procurement-approval
port: 8080
tools:
- name: route-po-approval
description: "Given a PO number and requestor employee ID, check the PO amount, resolve the approver from Workday, and notify both parties in Microsoft Teams."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
- name: requestor_employee_id
in: body
type: string
description: "The Workday employee ID of the PO requestor."
steps:
- name: get-po
type: call
call: "sap.get-po"
with:
po_number: "{{po_number}}"
- name: get-requestor
type: call
call: "workday.get-worker"
with:
worker_id: "{{requestor_employee_id}}"
- name: get-approver
type: call
call: "workday.get-worker"
with:
worker_id: "{{get-requestor.manager_id}}"
- name: notify-approver
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-approver.work_email}}"
text: "PO Approval Required: {{po_number}} from {{get-requestor.full_name}} for ${{get-po.total_value}} {{get-po.currency}}. Vendor: {{get-po.vendor}}. Please review."
- name: notify-requestor
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-requestor.work_email}}"
text: "Your PO {{po_number}} (${{get-po.total_value}}) has been routed to {{get-approver.full_name}} for approval."
consumes:
- type: http
namespace: sap
baseUri: "https://mcd-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
- 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: 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
Retrieves an open equipment incident from ServiceNow by incident number. Returns short description, priority, assigned group, and status for restaurant managers tracking kitchen equipment repair tickets.
naftiko: "0.5"
info:
label: "ServiceNow Equipment Incident Lookup"
description: "Retrieves an open equipment incident from ServiceNow by incident number. Returns short description, priority, assigned group, and status for restaurant managers tracking kitchen equipment repair tickets."
tags:
- restaurant-technology
- servicenow
- equipment
- incident-management
capability:
exposes:
- type: mcp
namespace: equipment-support
port: 8080
tools:
- name: get-equipment-incident
description: "Look up a ServiceNow equipment incident by number. Returns description, priority, assigned group, and status."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number (e.g., INC0012345)."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
outputParameters:
- name: short_description
type: string
mapping: "$.result.short_description"
- name: priority
type: string
mapping: "$.result.priority"
- name: assigned_group
type: string
mapping: "$.result.assignment_group.display_value"
- name: status
type: string
mapping: "$.result.state"
consumes:
- type: http
namespace: servicenow
baseUri: "https://mcdonalds.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
inputParameters:
- name: incident_number
in: query
operations:
- name: get-incident
method: GET
Retrieves a food safety compliance document from SharePoint by document title. Returns file URL, last modified date, and author for quality assurance teams conducting restaurant audits.
naftiko: "0.5"
info:
label: "SharePoint Food Safety Document Lookup"
description: "Retrieves a food safety compliance document from SharePoint by document title. Returns file URL, last modified date, and author for quality assurance teams conducting restaurant audits."
tags:
- food-safety
- compliance
- sharepoint
- quality-assurance
capability:
exposes:
- type: mcp
namespace: food-safety-docs
port: 8080
tools:
- name: get-food-safety-document
description: "Search SharePoint for a food safety compliance document by title. Returns file URL, last modified, and author."
inputParameters:
- name: document_title
in: body
type: string
description: "The title or partial title of the food safety document."
call: "sharepoint.search-files"
with:
site_id: "mcd-food-safety"
query: "{{document_title}}"
outputParameters:
- name: file_url
type: string
mapping: "$.value[0].webUrl"
- name: last_modified
type: string
mapping: "$.value[0].lastModifiedDateTime"
- name: author
type: string
mapping: "$.value[0].createdBy.user.displayName"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-search
path: "/{{site_id}}/drive/root/search(q='{{query}}')"
inputParameters:
- name: site_id
in: path
- name: query
in: path
operations:
- name: search-files
method: GET
When a negative social media mention is flagged, retrieves the post details from the social monitoring platform, creates a Jira ticket for the communications team, opens a ServiceNow incident for PR, and notifies the VP of communications in Microsoft Teams.
naftiko: "0.5"
info:
label: "Social Media Crisis Response Pipeline"
description: "When a negative social media mention is flagged, retrieves the post details from the social monitoring platform, creates a Jira ticket for the communications team, opens a ServiceNow incident for PR, and notifies the VP of communications in Microsoft Teams."
tags:
- marketing
- social-media
- jira
- servicenow
- microsoft-teams
- crisis-management
capability:
exposes:
- type: mcp
namespace: social-crisis
port: 8080
tools:
- name: escalate-social-mention
description: "Given a flagged social post ID and platform, retrieve post details, create Jira and ServiceNow tickets, and notify the VP of communications."
inputParameters:
- name: post_id
in: body
type: string
description: "The social media post identifier."
- name: platform
in: body
type: string
description: "The social media platform (twitter, instagram, facebook, tiktok)."
- name: sentiment_score
in: body
type: number
description: "The sentiment analysis score (-1.0 to 1.0)."
- name: post_content
in: body
type: string
description: "The content of the flagged social media post."
- name: vp_comms_upn
in: body
type: string
description: "The Microsoft UPN of the VP of Communications."
steps:
- name: create-comms-ticket
type: call
call: "jira.create-issue"
with:
project_key: "MCDCOMMS"
issue_type: "Task"
summary: "Social Media Alert: {{platform}} post {{post_id}} — Sentiment {{sentiment_score}}"
description: "Platform: {{platform}}. Post ID: {{post_id}}. Sentiment: {{sentiment_score}}. Content: {{post_content}}."
priority: "High"
- name: create-pr-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Social media crisis alert: {{platform}} — Sentiment {{sentiment_score}}"
category: "public_relations"
priority: "2"
assigned_group: "Communications_Team"
description: "Negative social mention on {{platform}}. Post: {{post_content}}. Jira ticket: {{create-comms-ticket.key}}."
- name: notify-vp
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{vp_comms_upn}}"
text: "SOCIAL MEDIA ALERT: {{platform}} post with sentiment {{sentiment_score}}. Content: \"{{post_content}}\". Jira: {{create-comms-ticket.key}}. ServiceNow: {{create-pr-incident.number}}."
consumes:
- type: http
namespace: jira
baseUri: "https://mcdonalds.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
- type: http
namespace: servicenow
baseUri: "https://mcdonalds.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: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
When a supplier quality issue is detected, retrieves vendor details from SAP, creates a Jira ticket for the quality team, updates the supplier scorecard in SharePoint, and notifies procurement in Microsoft Teams.
naftiko: "0.5"
info:
label: "Supplier Quality Incident Escalation"
description: "When a supplier quality issue is detected, retrieves vendor details from SAP, creates a Jira ticket for the quality team, updates the supplier scorecard in SharePoint, and notifies procurement in Microsoft Teams."
tags:
- supply-chain
- quality-assurance
- sap
- jira
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: supplier-quality
port: 8080
tools:
- name: escalate-supplier-issue
description: "Given a supplier ID and issue details, retrieve vendor info, create Jira ticket, update scorecard, and notify procurement."
inputParameters:
- name: sap_vendor_id
in: body
type: string
description: "The SAP vendor master ID."
- name: issue_description
in: body
type: string
description: "Description of the quality issue."
- name: affected_material
in: body
type: string
description: "The affected material or product."
- name: severity
in: body
type: string
description: "Issue severity: critical, high, medium, low."
- name: procurement_upn
in: body
type: string
description: "The Microsoft UPN of the procurement manager."
steps:
- name: get-vendor
type: call
call: "sap.get-vendor"
with:
vendor_id: "{{sap_vendor_id}}"
- name: create-quality-ticket
type: call
call: "jira.create-issue"
with:
project_key: "MCDQUAL"
issue_type: "Bug"
summary: "Supplier Quality Issue: {{get-vendor.vendor_name}} — {{affected_material}}"
description: "Vendor: {{get-vendor.vendor_name}} ({{sap_vendor_id}}). Material: {{affected_material}}. Issue: {{issue_description}}. Severity: {{severity}}."
priority: "{{severity}}"
- name: update-scorecard
type: call
call: "sharepoint.create-list-item"
with:
site_id: "mcd-procurement"
list_name: "SupplierScorecard"
vendor_id: "{{sap_vendor_id}}"
vendor_name: "{{get-vendor.vendor_name}}"
issue_date: "{{now}}"
severity: "{{severity}}"
jira_ticket: "{{create-quality-ticket.key}}"
- name: notify-procurement
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{procurement_upn}}"
text: "SUPPLIER QUALITY ALERT: {{get-vendor.vendor_name}} — {{affected_material}}. Severity: {{severity}}. Jira: {{create-quality-ticket.key}}. Scorecard updated."
consumes:
- type: http
namespace: sap
baseUri: "https://mcd-s4.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: Accept
in: header
value: "application/json"
resources:
- name: vendors
path: "/A_Supplier('{{vendor_id}}')"
inputParameters:
- name: vendor_id
in: path
operations:
- name: get-vendor
method: GET
- type: http
namespace: jira
baseUri: "https://mcdonalds.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
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: list-items
path: "/{{site_id}}/lists/{{list_name}}/items"
inputParameters:
- name: site_id
in: path
- name: list_name
in: path
operations:
- name: create-list-item
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
When a SAP Transportation Management shipment is delayed beyond threshold, checks inventory at the destination distribution center, creates a ServiceNow incident, and notifies the supply chain manager in Microsoft Teams with mitigation details.
naftiko: "0.5"
info:
label: "Supply Chain Disruption Alert Pipeline"
description: "When a SAP Transportation Management shipment is delayed beyond threshold, checks inventory at the destination distribution center, creates a ServiceNow incident, and notifies the supply chain manager in Microsoft Teams with mitigation details."
tags:
- supply-chain
- logistics
- sap
- servicenow
- microsoft-teams
- disruption-management
capability:
exposes:
- type: mcp
namespace: supply-chain-alerts
port: 8080
tools:
- name: escalate-shipment-delay
description: "Given a delayed shipment ID and destination plant, check inventory impact, create an incident, and notify supply chain management."
inputParameters:
- name: shipment_id
in: body
type: string
description: "The SAP TM shipment identifier."
- name: destination_plant
in: body
type: string
description: "The destination distribution center plant code."
- name: delay_hours
in: body
type: number
description: "Number of hours the shipment is delayed."
- name: manager_upn
in: body
type: string
description: "The Microsoft UPN of the supply chain manager."
steps:
- name: get-shipment
type: call
call: "sap-tm.get-shipment"
with:
shipment_id: "{{shipment_id}}"
- name: check-inventory
type: call
call: "sap.get-plant-stock"
with:
plant_code: "{{destination_plant}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Shipment delay: {{shipment_id}} — {{delay_hours}}h late to {{destination_plant}}"
category: "supply_chain_disruption"
priority: "2"
assigned_group: "Supply_Chain_Ops"
description: "Shipment {{shipment_id}} from {{get-shipment.origin}} delayed {{delay_hours}} hours. Carrier: {{get-shipment.carrier}}. Current stock at {{destination_plant}}: {{check-inventory.available_stock}} units."
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{manager_upn}}"
text: "SUPPLY CHAIN ALERT: Shipment {{shipment_id}} delayed {{delay_hours}}h. Destination: {{destination_plant}}. Stock on hand: {{check-inventory.available_stock}} units. Incident: {{create-incident.number}}."
consumes:
- type: http
namespace: sap-tm
baseUri: "https://mcd-s4.sap.com/sap/opu/odata/sap/TM_SHIPMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: Accept
in: header
value: "application/json"
resources:
- name: shipments
path: "/ShipmentSet('{{shipment_id}}')"
inputParameters:
- name: shipment_id
in: path
operations:
- name: get-shipment
method: GET
- type: http
namespace: sap
baseUri: "https://mcd-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: Accept
in: header
value: "application/json"
resources:
- name: plant-stock
path: "/A_PlantStock('{{plant_code}}')"
inputParameters:
- name: plant_code
in: path
operations:
- name: get-plant-stock
method: GET
- type: http
namespace: servicenow
baseUri: "https://mcdonalds.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: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Looks up a supply chain shipment in the SAP Transportation Management system by shipment ID. Returns carrier, status, ETA, and origin/destination for distribution center logistics coordinators.
naftiko: "0.5"
info:
label: "Supply Chain Shipment Tracker"
description: "Looks up a supply chain shipment in the SAP Transportation Management system by shipment ID. Returns carrier, status, ETA, and origin/destination for distribution center logistics coordinators."
tags:
- supply-chain
- logistics
- sap
- shipment-tracking
capability:
exposes:
- type: mcp
namespace: supply-chain
port: 8080
tools:
- name: get-shipment-status
description: "Track a supply chain shipment in SAP TM by shipment ID. Returns carrier, status, ETA, and origin/destination."
inputParameters:
- name: shipment_id
in: body
type: string
description: "The SAP Transportation Management shipment identifier."
call: "sap-tm.get-shipment"
with:
shipment_id: "{{shipment_id}}"
outputParameters:
- name: carrier
type: string
mapping: "$.d.CarrierName"
- name: status
type: string
mapping: "$.d.ShipmentStatus"
- name: eta
type: string
mapping: "$.d.EstimatedArrival"
- name: origin
type: string
mapping: "$.d.OriginLocation"
- name: destination
type: string
mapping: "$.d.DestinationLocation"
consumes:
- type: http
namespace: sap-tm
baseUri: "https://mcd-s4.sap.com/sap/opu/odata/sap/TM_SHIPMENT_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: shipments
path: "/ShipmentSet('{{shipment_id}}')"
inputParameters:
- name: shipment_id
in: path
operations:
- name: get-shipment
method: GET
Aggregates energy usage data from the IoT platform, waste diversion metrics from the sustainability tracker in SharePoint, and carbon emission estimates from SAP, then publishes a consolidated ESG report to Confluence and notifies the sustainability team.
naftiko: "0.5"
info:
label: "Sustainability Reporting Data Aggregation"
description: "Aggregates energy usage data from the IoT platform, waste diversion metrics from the sustainability tracker in SharePoint, and carbon emission estimates from SAP, then publishes a consolidated ESG report to Confluence and notifies the sustainability team."
tags:
- sustainability
- esg
- sharepoint
- sap
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: sustainability-reporting
port: 8080
tools:
- name: generate-esg-report
description: "Given a reporting period and region, aggregate energy, waste, and emission data and publish a consolidated ESG report."
inputParameters:
- name: reporting_period
in: body
type: string
description: "The reporting period (e.g., 2026-Q1)."
- name: region
in: body
type: string
description: "The geographic region for the report."
- name: sustainability_channel_id
in: body
type: string
description: "The Microsoft Teams channel ID for the sustainability team."
steps:
- name: get-waste-metrics
type: call
call: "sharepoint.get-list-items"
with:
site_id: "mcd-sustainability"
list_name: "WasteDiversion"
filter: "Region eq '{{region}}' and Period eq '{{reporting_period}}'"
- name: get-emissions
type: call
call: "sap.get-emissions-data"
with:
region: "{{region}}"
period: "{{reporting_period}}"
- name: publish-report
type: call
call: "confluence.create-page"
with:
space_key: "MCDESG"
title: "ESG Report — {{region}} {{reporting_period}}"
body: "Waste Diversion Rate: {{get-waste-metrics.diversion_rate}}%. Recycled: {{get-waste-metrics.recycled_tons}} tons. Carbon Emissions: {{get-emissions.total_co2}} tCO2e. Energy: {{get-emissions.total_energy}} MWh."
- name: notify-team
type: call
call: "msteams.send-channel-message"
with:
channel_id: "{{sustainability_channel_id}}"
text: "ESG Report Published — {{region}} {{reporting_period}}: Waste diversion: {{get-waste-metrics.diversion_rate}}%. Emissions: {{get-emissions.total_co2}} tCO2e. Report: {{publish-report.url}}."
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: list-items
path: "/{{site_id}}/lists/{{list_name}}/items"
inputParameters:
- name: site_id
in: path
- name: list_name
in: path
- name: filter
in: query
operations:
- name: get-list-items
method: GET
- type: http
namespace: sap
baseUri: "https://mcd-s4.sap.com/sap/opu/odata/sap/SUSTAINABILITY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: Accept
in: header
value: "application/json"
resources:
- name: emissions
path: "/EmissionsDataSet"
inputParameters:
- name: region
in: query
- name: period
in: query
operations:
- name: get-emissions-data
method: GET
- type: http
namespace: confluence
baseUri: "https://mcdonalds.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
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/{{channel_id}}/channels/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Retrieves a vendor invoice from SAP, validates against the purchase order, creates a Workday expense entry for the cost center, and notifies the accounts payable team in Microsoft Teams with discrepancy details.
naftiko: "0.5"
info:
label: "Vendor Invoice Processing Pipeline"
description: "Retrieves a vendor invoice from SAP, validates against the purchase order, creates a Workday expense entry for the cost center, and notifies the accounts payable team in Microsoft Teams with discrepancy details."
tags:
- finance
- sap
- workday
- microsoft-teams
- accounts-payable
- invoice-processing
capability:
exposes:
- type: mcp
namespace: invoice-processing
port: 8080
tools:
- name: process-vendor-invoice
description: "Given an invoice number and PO number, validate the invoice against the PO, log to Workday, and notify AP of any discrepancies."
inputParameters:
- name: invoice_number
in: body
type: string
description: "The SAP vendor invoice number."
- name: po_number
in: body
type: string
description: "The associated SAP purchase order number."
- name: ap_team_upn
in: body
type: string
description: "The Microsoft UPN of the accounts payable team lead."
steps:
- name: get-invoice
type: call
call: "sap.get-invoice"
with:
invoice_number: "{{invoice_number}}"
- name: get-po
type: call
call: "sap.get-po"
with:
po_number: "{{po_number}}"
- name: log-expense
type: call
call: "workday.create-expense"
with:
cost_center: "{{get-po.cost_center}}"
amount: "{{get-invoice.total_amount}}"
vendor: "{{get-invoice.vendor_name}}"
invoice_ref: "{{invoice_number}}"
- name: notify-ap
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{ap_team_upn}}"
text: "Invoice Processed: {{invoice_number}} from {{get-invoice.vendor_name}}. Amount: ${{get-invoice.total_amount}}. PO: {{po_number}} (PO Total: ${{get-po.total_value}}). Cost Center: {{get-po.cost_center}}. Workday ref: {{log-expense.id}}."
consumes:
- type: http
namespace: sap
baseUri: "https://mcd-s4.sap.com/sap/opu/odata/sap"
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: invoices
path: "/API_SUPPLIERINVOICE_PROCESS_SRV/A_SupplierInvoice('{{invoice_number}}')"
inputParameters:
- name: invoice_number
in: path
operations:
- name: get-invoice
method: GET
- name: purchase-orders
path: "/MM_PUR_PO_MAINT_V2_SRV/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
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: expenses
path: "/expenses"
operations:
- name: create-expense
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
Retrieves an employee profile from Workday by worker ID. Returns name, role, store assignment, hire date, and manager for HR teams and franchise operators.
naftiko: "0.5"
info:
label: "Workday Employee Profile Lookup"
description: "Retrieves an employee profile from Workday by worker ID. Returns name, role, store assignment, hire date, and manager for HR teams and franchise operators."
tags:
- hr
- workday
- employee-profile
capability:
exposes:
- type: mcp
namespace: hr-employee
port: 8080
tools:
- name: get-employee-profile
description: "Look up a McDonald's employee profile in Workday by worker ID. Returns full name, job title, store assignment, hire date, and manager."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID for the employee."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.worker.fullName"
- name: job_title
type: string
mapping: "$.worker.jobTitle"
- name: store_assignment
type: string
mapping: "$.worker.location"
- name: hire_date
type: string
mapping: "$.worker.hireDate"
- name: manager_name
type: string
mapping: "$.worker.manager.fullName"
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 a customer support ticket from Zendesk by ticket ID. Returns subject, status, requester, priority, and last update for customer service agents handling escalations.
naftiko: "0.5"
info:
label: "Zendesk Customer Ticket Lookup"
description: "Retrieves a customer support ticket from Zendesk by ticket ID. Returns subject, status, requester, priority, and last update for customer service agents handling escalations."
tags:
- customer-service
- zendesk
- support
capability:
exposes:
- type: mcp
namespace: customer-support
port: 8080
tools:
- name: get-support-ticket
description: "Look up a Zendesk support ticket by ID. Returns subject, status, requester, priority, and last update."
inputParameters:
- name: ticket_id
in: body
type: string
description: "The Zendesk ticket ID."
call: "zendesk.get-ticket"
with:
ticket_id: "{{ticket_id}}"
outputParameters:
- name: subject
type: string
mapping: "$.ticket.subject"
- name: status
type: string
mapping: "$.ticket.status"
- name: requester
type: string
mapping: "$.ticket.requester.name"
- name: priority
type: string
mapping: "$.ticket.priority"
- name: last_updated
type: string
mapping: "$.ticket.updated_at"
consumes:
- type: http
namespace: zendesk
baseUri: "https://mcdonalds.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: tickets
path: "/tickets/{{ticket_id}}"
inputParameters:
- name: ticket_id
in: path
operations:
- name: get-ticket
method: GET