Mondelez International Capabilities
Naftiko 0.5 capability definitions for Mondelez International - 100 capabilities showing integration workflows and service orchestrations.
Retrieves the latest build pipeline run status from Azure DevOps for a specified project and pipeline, returning build number, status, result, and duration.
naftiko: "0.5"
info:
label: "Azure DevOps Build Pipeline Status"
description: "Retrieves the latest build pipeline run status from Azure DevOps for a specified project and pipeline, returning build number, status, result, and duration."
tags:
- devops
- azure-devops
- ci-cd
capability:
exposes:
- type: mcp
namespace: build-pipelines
port: 8080
tools:
- name: get-pipeline-status
description: "Look up the latest Azure DevOps pipeline run for a project. Returns build number, status, result, and duration."
inputParameters:
- name: project
in: body
type: string
description: "The Azure DevOps project name."
- name: pipeline_id
in: body
type: string
description: "The pipeline definition ID."
call: "azuredevops.get-pipeline-run"
with:
project: "{{project}}"
pipeline_id: "{{pipeline_id}}"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/mondelez"
authentication:
type: basic
username: ""
password: "$secrets.azuredevops_pat"
resources:
- name: pipeline-runs
path: "/{{project}}/_apis/pipelines/{{pipeline_id}}/runs?$top=1&api-version=7.0"
inputParameters:
- name: project
in: path
- name: pipeline_id
in: path
operations:
- name: get-pipeline-run
method: GET
Checks the latest build status of a given pipeline in Azure DevOps for manufacturing and IT deployments.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status"
description: "Checks the latest build status of a given pipeline in Azure DevOps for manufacturing and IT deployments."
tags:
- devops
- azure-devops
capability:
exposes:
- type: mcp
namespace: ci-cd
port: 8080
tools:
- name: get-build-status
description: "Check the latest Azure DevOps build for a pipeline definition."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "The Azure DevOps pipeline definition ID."
call: "azuredevops.get-builds"
with:
pipeline_id: "{{pipeline_id}}"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/mondelez/MDLZ/_apis/build"
authentication:
type: basic
username: "$secrets.azdo_user"
password: "$secrets.azdo_pat"
resources:
- name: builds
path: "/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
inputParameters:
- name: pipeline_id
in: query
operations:
- name: get-builds
method: GET
Compiles brand performance data by pulling sales metrics from Snowflake, market share data from Salesforce, campaign ROI from Google Analytics, and distributing the review package via SharePoint and Microsoft Teams.
naftiko: "0.5"
info:
label: "Brand Performance Review Pipeline"
description: "Compiles brand performance data by pulling sales metrics from Snowflake, market share data from Salesforce, campaign ROI from Google Analytics, and distributing the review package via SharePoint and Microsoft Teams."
tags:
- marketing
- brand-performance
- snowflake
- salesforce
- google-analytics
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: brand-performance
port: 8080
tools:
- name: generate-brand-review
description: "Given a brand and period, compile a comprehensive brand performance review."
inputParameters:
- name: brand
in: body
type: string
description: "The brand name."
- name: period
in: body
type: string
description: "The review period."
steps:
- name: get-sales-metrics
type: call
call: "snowflake.execute-query"
with:
brand: "{{brand}}"
period: "{{period}}"
- name: get-market-share
type: call
call: "salesforce.get-market-data"
with:
brand: "{{brand}}"
period: "{{period}}"
- name: get-campaign-roi
type: call
call: "ga.get-report"
with:
campaign_name: "{{brand}}"
period: "{{period}}"
- name: upload-review
type: call
call: "sharepoint.create-folder"
with:
site_id: "brand_site"
folder_path: "Reviews/{{brand}}/{{period}}"
- name: notify-brand-team
type: call
call: "msteams.post-message"
with:
team_id: "brand-{{brand}}-team"
channel_id: "performance"
message: "Brand performance review for {{brand}} ({{period}}) ready. Sales data: {{get-sales-metrics.rowCount}} records. Review: {{upload-review.webUrl}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: market-data
path: "/query/?q=SELECT+Market_Share__c,Growth_Rate__c+FROM+Market_Data__c+WHERE+Brand__c='{{brand}}'+AND+Period__c='{{period}}'"
inputParameters:
- name: brand
in: query
- name: period
in: query
operations:
- name: get-market-data
method: GET
- 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"
operations:
- name: get-report
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Processes a travel expense approval by retrieving the Concur report, validating against Snowflake budget data, creating a Jira approval task, and notifying the finance team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Concur Travel Expense Approval Workflow"
description: "Processes a travel expense approval by retrieving the Concur report, validating against Snowflake budget data, creating a Jira approval task, and notifying the finance team via Microsoft Teams."
tags:
- finance
- travel
- concur
- snowflake
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: travel-expense-approval
port: 8080
tools:
- name: process-travel-expense
description: "Given a Concur report ID and cost center, validate budget and route for approval."
inputParameters:
- name: report_id
in: body
type: string
description: "The Concur expense report ID."
- name: cost_center
in: body
type: string
description: "The cost center code."
steps:
- name: get-expense-report
type: call
call: "concur.get-report"
with:
report_id: "{{report_id}}"
- name: check-budget
type: call
call: "snowflake.execute-query"
with:
cost_center: "{{cost_center}}"
amount: "{{get-expense-report.Total}}"
- name: create-approval-task
type: call
call: "jira.create-issue"
with:
project: "FIN"
summary: "Expense Approval: {{report_id}} - ${{get-expense-report.Total}}"
description: "Concur report {{report_id}} for cost center {{cost_center}}. Total: ${{get-expense-report.Total}}. Budget remaining: ${{check-budget.remaining}}."
issuetype: "Task"
- name: notify-finance
type: call
call: "msteams.post-message"
with:
team_id: "finance-team"
channel_id: "expense-approvals"
message: "Expense report {{report_id}} pending approval. Amount: ${{get-expense-report.Total}}. Cost center: {{cost_center}}. Jira: {{create-approval-task.key}}."
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: expense-reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-report
method: GET
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: jira
baseUri: "https://mondelez.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Aggregates consumer insights by pulling social media sentiment from HubSpot, sales data from Snowflake, and market research from Salesforce, then distributing the insights to innovation teams via SharePoint and Microsoft Teams.
naftiko: "0.5"
info:
label: "Consumer Insights Aggregation Pipeline"
description: "Aggregates consumer insights by pulling social media sentiment from HubSpot, sales data from Snowflake, and market research from Salesforce, then distributing the insights to innovation teams via SharePoint and Microsoft Teams."
tags:
- marketing
- consumer-insights
- hubspot
- snowflake
- salesforce
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: consumer-insights
port: 8080
tools:
- name: aggregate-consumer-insights
description: "Given a brand and time period, aggregate consumer insights across multiple data sources."
inputParameters:
- name: brand
in: body
type: string
description: "The brand name."
- name: period
in: body
type: string
description: "The analysis period."
steps:
- name: get-sentiment
type: call
call: "hubspot.get-social-metrics"
with:
brand: "{{brand}}"
period: "{{period}}"
- name: get-sales-data
type: call
call: "snowflake.execute-query"
with:
brand: "{{brand}}"
period: "{{period}}"
- name: get-research
type: call
call: "salesforce.get-research"
with:
brand: "{{brand}}"
period: "{{period}}"
- name: upload-insights
type: call
call: "sharepoint.create-folder"
with:
site_id: "insights_site"
folder_path: "ConsumerInsights/{{brand}}/{{period}}"
- name: notify-innovation
type: call
call: "msteams.post-message"
with:
team_id: "innovation-team"
channel_id: "consumer-insights"
message: "Consumer insights for {{brand}} ({{period}}) ready. Sentiment: {{get-sentiment.overall_score}}. Sales trend: {{get-sales-data.trend}}. Report: {{upload-insights.webUrl}}."
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: social-metrics
path: "/analytics/v2/reports/social"
operations:
- name: get-social-metrics
method: GET
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: research
path: "/query/?q=SELECT+Research_Type__c,Key_Findings__c+FROM+Market_Research__c+WHERE+Brand__c='{{brand}}'+AND+Period__c='{{period}}'"
inputParameters:
- name: brand
in: query
- name: period
in: query
operations:
- name: get-research
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Runs demand forecasting by querying historical sales from Snowflake, pulling market data from Salesforce, refreshing the forecast Power BI dashboard, and distributing insights to planning teams via Microsoft Teams.
naftiko: "0.5"
info:
label: "Demand Forecasting Pipeline"
description: "Runs demand forecasting by querying historical sales from Snowflake, pulling market data from Salesforce, refreshing the forecast Power BI dashboard, and distributing insights to planning teams via Microsoft Teams."
tags:
- supply-chain
- forecasting
- snowflake
- salesforce
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: demand-forecasting
port: 8080
tools:
- name: run-demand-forecast
description: "Given a product category and horizon, run the demand forecast pipeline."
inputParameters:
- name: product_category
in: body
type: string
description: "Product category for forecast."
- name: forecast_horizon
in: body
type: string
description: "Forecast horizon in months."
- name: region
in: body
type: string
description: "The region to forecast."
steps:
- name: query-historical-sales
type: call
call: "snowflake.execute-query"
with:
product_category: "{{product_category}}"
region: "{{region}}"
- name: get-market-context
type: call
call: "salesforce.get-market-data"
with:
region: "{{region}}"
category: "{{product_category}}"
- name: refresh-forecast-dashboard
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "demand-forecast-dataset"
- name: notify-planning
type: call
call: "msteams.post-message"
with:
team_id: "supply-planning-team"
channel_id: "forecasts"
message: "Demand forecast for {{product_category}} in {{region}} ({{forecast_horizon}} months) complete. {{query-historical-sales.rowCount}} data points. Dashboard refreshed."
consumes:
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: market-data
path: "/query/?q=SELECT+Market_Trend__c,Competitor_Activity__c+FROM+Market_Data__c+WHERE+Region__c='{{region}}'+AND+Category__c='{{category}}'"
inputParameters:
- name: region
in: query
- name: category
in: query
operations:
- name: get-market-data
method: GET
- 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}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Tracks distribution order fulfillment by querying SAP for delivery status, pulling customer data from Salesforce, and sending delivery updates to the distribution team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Distribution Order Fulfillment Tracker"
description: "Tracks distribution order fulfillment by querying SAP for delivery status, pulling customer data from Salesforce, and sending delivery updates to the distribution team via Microsoft Teams."
tags:
- distribution
- fulfillment
- sap
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: distribution-tracking
port: 8080
tools:
- name: track-distribution-order
description: "Given a sales order number, pull delivery status from SAP, get customer details from Salesforce, and report status."
inputParameters:
- name: sales_order
in: body
type: string
description: "The SAP sales order number."
steps:
- name: get-delivery-status
type: call
call: "sap.get-delivery"
with:
sales_order: "{{sales_order}}"
- name: get-customer
type: call
call: "salesforce.get-account"
with:
account_id: "{{get-delivery-status.SoldToParty}}"
- name: notify-distribution
type: call
call: "msteams.post-message"
with:
team_id: "distribution-team"
channel_id: "fulfillment"
message: "Order {{sales_order}} for {{get-customer.Name}}: Status {{get-delivery-status.DeliveryStatus}}. Shipped: {{get-delivery-status.ShipDate}}. Tracking: {{get-delivery-status.TrackingNumber}}."
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/SD_DELIVERY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: deliveries
path: "/A_OutbDeliveryHeader?$filter=SalesOrder eq '{{sales_order}}'"
inputParameters:
- name: sales_order
in: query
operations:
- name: get-delivery
method: GET
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
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/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Tracks distributor order fulfillment by querying SAP for delivery status and Snowflake for on-time-in-full metrics, then posting a summary to the supply chain team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Distributor Order Fulfillment Tracker"
description: "Tracks distributor order fulfillment by querying SAP for delivery status and Snowflake for on-time-in-full metrics, then posting a summary to the supply chain team via Microsoft Teams."
tags:
- distribution
- fulfillment
- sap
- snowflake
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: order-fulfillment
port: 8080
tools:
- name: track-order-fulfillment
description: "Given a sales order number, retrieve SAP delivery status and Snowflake OTIF metrics, then notify supply chain."
inputParameters:
- name: sales_order
in: body
type: string
description: "The SAP sales order number."
- name: distributor_name
in: body
type: string
description: "The distributor name for context."
steps:
- name: get-delivery-status
type: call
call: "sap.get-delivery"
with:
sales_order: "{{sales_order}}"
- name: get-otif-metrics
type: call
call: "snowflake.execute-query"
with:
sales_order: "{{sales_order}}"
- name: notify-supply-chain
type: call
call: "msteams.post-message"
with:
team_id: "supply-chain-team"
channel_id: "fulfillment"
message: "Order {{sales_order}} for {{distributor_name}}: Delivery status: {{get-delivery-status.DeliveryStatus}}. OTIF: {{get-otif-metrics.otif_pct}}%. Shipped qty: {{get-delivery-status.ShippedQuantity}}."
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/SD_DELIVERY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: deliveries
path: "/A_Delivery?$filter=SalesOrder eq '{{sales_order}}'"
inputParameters:
- name: sales_order
in: query
operations:
- name: get-delivery
method: GET
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
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/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "The department."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding_site"
folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.post-message"
with:
team_id: "hr-team"
channel_id: "new-hires"
message: "Welcome to Mondelez, {{get-employee.first_name}}! Onboarding ticket: {{open-ticket.number}}. Documents: {{provision-folder.webUrl}}."
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://mondelez.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: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Routes SAP Concur expense reports for approval by pulling report details, resolving the manager in Workday, creating an approval task in ServiceNow, and notifying via Microsoft Teams.
naftiko: "0.5"
info:
label: "Expense Report Approval Workflow"
description: "Routes SAP Concur expense reports for approval by pulling report details, resolving the manager in Workday, creating an approval task in ServiceNow, and notifying via Microsoft Teams."
tags:
- finance
- expense
- sap-concur
- workday
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: expense-approval
port: 8080
tools:
- name: route-expense-approval
description: "Given an expense report ID and employee ID, route the report for manager approval."
inputParameters:
- name: report_id
in: body
type: string
description: "The Concur expense report ID."
- name: employee_id
in: body
type: string
description: "The Workday employee ID of the submitter."
steps:
- name: get-report
type: call
call: "concur.get-report"
with:
report_id: "{{report_id}}"
- name: get-manager
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: create-approval-task
type: call
call: "servicenow.create-incident"
with:
short_description: "Expense approval: {{report_id}} - {{get-report.Total}}"
category: "expense_approval"
assigned_to: "{{get-manager.manager_id}}"
description: "Expense report {{report_id}} from {{get-manager.full_name}} for {{get-report.Total}} {{get-report.CurrencyCode}}."
- name: notify-manager
type: call
call: "msteams.post-message"
with:
team_id: "finance-team"
channel_id: "expense-approvals"
message: "Expense report {{report_id}} ({{get-report.Total}} {{get-report.CurrencyCode}}) from {{get-manager.full_name}} pending your approval. Case: {{create-approval-task.number}}."
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: expense-reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-report
method: GET
- type: http
namespace: 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://mondelez.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Schedules a food safety audit by creating an audit record in Salesforce, a Jira task for the quality team, uploading the audit checklist to SharePoint, and notifying the plant quality manager via Microsoft Teams.
naftiko: "0.5"
info:
label: "Food Safety Audit Scheduling"
description: "Schedules a food safety audit by creating an audit record in Salesforce, a Jira task for the quality team, uploading the audit checklist to SharePoint, and notifying the plant quality manager via Microsoft Teams."
tags:
- quality
- food-safety
- salesforce
- jira
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: food-safety-audit
port: 8080
tools:
- name: schedule-food-safety-audit
description: "Given plant and audit details, create records in Salesforce, Jira, and SharePoint, then notify the quality manager."
inputParameters:
- name: plant_code
in: body
type: string
description: "The SAP plant code."
- name: audit_type
in: body
type: string
description: "Audit type (e.g., FSSC 22000, BRC, internal)."
- name: audit_date
in: body
type: string
description: "Scheduled audit date in YYYY-MM-DD format."
steps:
- name: create-audit-record
type: call
call: "salesforce.create-audit"
with:
plant_code: "{{plant_code}}"
audit_type: "{{audit_type}}"
audit_date: "{{audit_date}}"
- name: create-audit-task
type: call
call: "jira.create-issue"
with:
project: "QA"
summary: "Food Safety Audit: {{audit_type}} at {{plant_code}} on {{audit_date}}"
description: "Prepare for {{audit_type}} audit at plant {{plant_code}} on {{audit_date}}. Salesforce record: {{create-audit-record.id}}."
issuetype: "Task"
- name: upload-checklist
type: call
call: "sharepoint.create-folder"
with:
site_id: "quality-site"
folder_path: "Audits/{{plant_code}}/{{audit_type}}-{{audit_date}}"
- name: notify-quality-manager
type: call
call: "msteams.post-message"
with:
team_id: "quality-team"
channel_id: "audits"
message: "Food safety audit scheduled: {{audit_type}} at plant {{plant_code}} on {{audit_date}}. Salesforce: {{create-audit-record.id}}. Jira: {{create-audit-task.key}}. Docs: {{upload-checklist.webUrl}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: audits
path: "/sobjects/Food_Safety_Audit__c"
operations:
- name: create-audit
method: POST
- type: http
namespace: jira
baseUri: "https://mondelez.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_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: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Retrieves campaign performance metrics from Google Analytics for a specified brand and date range, returning impressions, clicks, conversion rate, and cost per acquisition.
naftiko: "0.5"
info:
label: "Google Analytics Brand Campaign Performance"
description: "Retrieves campaign performance metrics from Google Analytics for a specified brand and date range, returning impressions, clicks, conversion rate, and cost per acquisition."
tags:
- marketing
- google-analytics
- brand
capability:
exposes:
- type: mcp
namespace: brand-analytics
port: 8080
tools:
- name: get-campaign-performance
description: "Query Google Analytics for brand campaign metrics by brand name and date range."
inputParameters:
- name: brand
in: body
type: string
description: "The brand name (e.g., Oreo, Cadbury, Toblerone)."
- 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: "google-analytics.run-report"
with:
brand: "{{brand}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
consumes:
- type: http
namespace: google-analytics
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.ga_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
operations:
- name: run-report
method: POST
Retrieves campaign performance metrics from Google Analytics including sessions, conversion rate, and revenue for a specified date range and campaign.
naftiko: "0.5"
info:
label: "Google Analytics Campaign Performance"
description: "Retrieves campaign performance metrics from Google Analytics including sessions, conversion rate, and revenue for a specified date range and campaign."
tags:
- marketing
- google-analytics
- digital
capability:
exposes:
- type: mcp
namespace: marketing-analytics
port: 8080
tools:
- name: get-campaign-performance
description: "Query Google Analytics for campaign performance metrics by campaign name and date range."
inputParameters:
- name: campaign_name
in: body
type: string
description: "The marketing campaign name."
- 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.get-report"
with:
campaign_name: "{{campaign_name}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
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"
operations:
- name: get-report
method: POST
Traces ingredient sourcing by querying SAP for batch genealogy, pulling supplier certifications from SharePoint, and generating a traceability report in Snowflake for food safety compliance.
naftiko: "0.5"
info:
label: "Ingredient Traceability Pipeline"
description: "Traces ingredient sourcing by querying SAP for batch genealogy, pulling supplier certifications from SharePoint, and generating a traceability report in Snowflake for food safety compliance."
tags:
- supply-chain
- traceability
- food-safety
- sap
- sharepoint
- snowflake
capability:
exposes:
- type: mcp
namespace: ingredient-traceability
port: 8080
tools:
- name: trace-ingredient
description: "Given a finished goods batch and ingredient, trace the supply chain from source to product."
inputParameters:
- name: finished_batch
in: body
type: string
description: "The finished goods batch number."
- name: ingredient_material
in: body
type: string
description: "The ingredient material number."
steps:
- name: get-batch-genealogy
type: call
call: "sap.get-batch-genealogy"
with:
batch: "{{finished_batch}}"
material: "{{ingredient_material}}"
- name: get-supplier-certs
type: call
call: "sharepoint.get-file"
with:
site_id: "supplier_compliance_site"
file_path: "Certifications/{{get-batch-genealogy.SupplierID}}"
- name: generate-trace-report
type: call
call: "snowflake.execute-query"
with:
finished_batch: "{{finished_batch}}"
ingredient_material: "{{ingredient_material}}"
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_BATCH_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: batch-genealogy
path: "/A_BatchGenealogy(Batch='{{batch}}',Material='{{material}}')"
inputParameters:
- name: batch
in: path
- name: material
in: path
operations:
- name: get-batch-genealogy
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file
method: GET
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Creates an IT change request in ServiceNow, links documentation from Confluence, creates a Jira task for implementation, and notifies the change advisory board via Microsoft Teams.
naftiko: "0.5"
info:
label: "IT Change Request Pipeline"
description: "Creates an IT change request in ServiceNow, links documentation from Confluence, creates a Jira task for implementation, and notifies the change advisory board via Microsoft Teams."
tags:
- it-service
- change-management
- servicenow
- confluence
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: change-management
port: 8080
tools:
- name: submit-change-request
description: "Given change details, create a ServiceNow change, link docs, and notify the CAB."
inputParameters:
- name: change_summary
in: body
type: string
description: "Summary of the change."
- name: change_type
in: body
type: string
description: "Type of change."
- name: doc_page_id
in: body
type: string
description: "Confluence page ID with implementation details."
steps:
- name: create-change
type: call
call: "servicenow.create-change"
with:
short_description: "{{change_summary}}"
type: "{{change_type}}"
- name: get-doc
type: call
call: "confluence.get-page"
with:
page_id: "{{doc_page_id}}"
- name: create-task
type: call
call: "jira.create-issue"
with:
project_key: "ITOPS"
summary: "Implement: {{change_summary}}"
description: "Change: {{create-change.number}}. Docs: {{get-doc._links.webui}}."
issue_type: "Task"
- name: notify-cab
type: call
call: "msteams.post-message"
with:
team_id: "it-operations-team"
channel_id: "change-advisory"
message: "Change request {{create-change.number}}: {{change_summary}}. Type: {{change_type}}. Jira: {{create-task.key}}."
consumes:
- type: http
namespace: servicenow
baseUri: "https://mondelez.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: changes
path: "/table/change_request"
operations:
- name: create-change
method: POST
- type: http
namespace: confluence
baseUri: "https://mondelez.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content/{{page_id}}"
inputParameters:
- name: page_id
in: path
operations:
- name: get-page
method: GET
- type: http
namespace: jira
baseUri: "https://mondelez.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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Retrieves the current sprint summary for an R&D project from Jira, returning sprint name, total story points, completed points, and remaining items for product development tracking.
naftiko: "0.5"
info:
label: "Jira R&D Sprint Summary"
description: "Retrieves the current sprint summary for an R&D project from Jira, returning sprint name, total story points, completed points, and remaining items for product development tracking."
tags:
- r-and-d
- jira
- product-development
capability:
exposes:
- type: mcp
namespace: rd-sprints
port: 8080
tools:
- name: get-sprint-summary
description: "Look up the active sprint for a Jira R&D board. Returns sprint name, total points, completed points, and remaining."
inputParameters:
- name: board_id
in: body
type: string
description: "The Jira board ID for the R&D project."
call: "jira.get-active-sprint"
with:
board_id: "{{board_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://mondelez.atlassian.net/rest/agile/1.0"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_token"
resources:
- name: sprints
path: "/board/{{board_id}}/sprint?state=active"
inputParameters:
- name: board_id
in: path
operations:
- name: get-active-sprint
method: GET
Retrieves a Jira issue by key for IT and manufacturing project tracking, returning summary, status, assignee, and priority.
naftiko: "0.5"
info:
label: "Jira Task Lookup"
description: "Retrieves a Jira issue by key for IT and manufacturing project tracking, returning summary, status, assignee, and priority."
tags:
- project-management
- jira
capability:
exposes:
- type: mcp
namespace: project-tracking
port: 8080
tools:
- name: get-jira-issue
description: "Look up a Jira issue by key. Returns summary, status, assignee, and priority."
inputParameters:
- name: issue_key
in: body
type: string
description: "The Jira issue key."
call: "jira.get-issue"
with:
issue_key: "{{issue_key}}"
consumes:
- type: http
namespace: jira
baseUri: "https://mondelez.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
Queries Snowflake for Overall Equipment Effectiveness metrics for a manufacturing line and shift, returning availability, performance rate, quality rate, and calculated OEE percentage.
naftiko: "0.5"
info:
label: "Manufacturing Line OEE Query"
description: "Queries Snowflake for Overall Equipment Effectiveness metrics for a manufacturing line and shift, returning availability, performance rate, quality rate, and calculated OEE percentage."
tags:
- manufacturing
- oee
- snowflake
capability:
exposes:
- type: mcp
namespace: manufacturing-oee
port: 8080
tools:
- name: get-line-oee
description: "Query OEE metrics for a manufacturing line and shift from Snowflake."
inputParameters:
- name: line_id
in: body
type: string
description: "The manufacturing line identifier."
- name: shift_date
in: body
type: string
description: "The shift date in YYYY-MM-DD format."
- name: shift_number
in: body
type: string
description: "The shift number (1, 2, or 3)."
call: "snowflake.execute-query"
with:
line_id: "{{line_id}}"
shift_date: "{{shift_date}}"
shift_number: "{{shift_number}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Launches a digital marketing campaign by creating a Salesforce campaign, configuring Google Analytics tracking, uploading creative assets to SharePoint, and notifying the brand team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Marketing Campaign Launch Pipeline"
description: "Launches a digital marketing campaign by creating a Salesforce campaign, configuring Google Analytics tracking, uploading creative assets to SharePoint, and notifying the brand team via Microsoft Teams."
tags:
- marketing
- campaign
- salesforce
- google-analytics
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: campaign-launch
port: 8080
tools:
- name: launch-marketing-campaign
description: "Given campaign details, create Salesforce campaign, set up analytics, upload assets, and notify brand team."
inputParameters:
- name: campaign_name
in: body
type: string
description: "The campaign name."
- name: brand
in: body
type: string
description: "The brand name."
- name: start_date
in: body
type: string
description: "Campaign start date."
- name: budget
in: body
type: string
description: "Campaign budget in USD."
steps:
- name: create-campaign
type: call
call: "salesforce.create-campaign"
with:
name: "{{campaign_name}}"
brand: "{{brand}}"
start_date: "{{start_date}}"
budget: "{{budget}}"
- name: setup-tracking
type: call
call: "ga.create-audience"
with:
campaign_name: "{{campaign_name}}"
- name: upload-assets
type: call
call: "sharepoint.create-folder"
with:
site_id: "marketing_site"
folder_path: "Campaigns/{{brand}}/{{campaign_name}}"
- name: notify-brand-team
type: call
call: "msteams.post-message"
with:
team_id: "brand-{{brand}}-team"
channel_id: "campaigns"
message: "Campaign '{{campaign_name}}' launched for {{brand}}. Budget: ${{budget}}. Salesforce: {{create-campaign.id}}. Assets: {{upload-assets.webUrl}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: campaigns
path: "/sobjects/Campaign"
operations:
- name: create-campaign
method: POST
- type: http
namespace: ga
baseUri: "https://analyticsadmin.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: audiences
path: "/properties/{{property_id}}/audiences"
operations:
- name: create-audience
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Sends a formatted notification message to a specified Microsoft Teams channel for cross-functional communication.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notification"
description: "Sends a formatted notification message to a specified Microsoft Teams channel for cross-functional communication."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: team-notifications
port: 8080
tools:
- name: send-teams-notification
description: "Post a message to a Microsoft Teams channel."
inputParameters:
- name: team_id
in: body
type: string
description: "The Teams team ID."
- name: channel_id
in: body
type: string
description: "The Teams channel ID."
- name: message
in: body
type: string
description: "The message body."
call: "msteams.post-message"
with:
team_id: "{{team_id}}"
channel_id: "{{channel_id}}"
message: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Coordinates a new product launch by creating a SAP material master record, setting up a Salesforce campaign, creating a Jira epic for marketing tasks, uploading brand assets to SharePoint, and notifying cross-functional teams via Microsoft Teams.
naftiko: "0.5"
info:
label: "New Product Launch Coordination"
description: "Coordinates a new product launch by creating a SAP material master record, setting up a Salesforce campaign, creating a Jira epic for marketing tasks, uploading brand assets to SharePoint, and notifying cross-functional teams via Microsoft Teams."
tags:
- product-launch
- sap
- salesforce
- jira
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: product-launch
port: 8080
tools:
- name: coordinate-product-launch
description: "Given new product details, create records in SAP, Salesforce, Jira, and SharePoint, then notify teams."
inputParameters:
- name: product_name
in: body
type: string
description: "The new product name."
- name: brand
in: body
type: string
description: "The brand (e.g., Oreo, Cadbury)."
- name: category
in: body
type: string
description: "Product category (e.g., biscuits, chocolate, gum)."
- name: launch_date
in: body
type: string
description: "Target launch date in YYYY-MM-DD format."
steps:
- name: create-material-master
type: call
call: "sap.create-material"
with:
product_name: "{{product_name}}"
brand: "{{brand}}"
category: "{{category}}"
- name: create-launch-campaign
type: call
call: "salesforce.create-campaign"
with:
name: "Launch: {{product_name}}"
brand: "{{brand}}"
start_date: "{{launch_date}}"
- name: create-marketing-epic
type: call
call: "jira.create-issue"
with:
project: "MKT"
summary: "Product Launch: {{product_name}} ({{brand}})"
description: "Marketing tasks for {{product_name}} launch on {{launch_date}}. SAP material: {{create-material-master.MaterialNumber}}. Campaign: {{create-launch-campaign.id}}."
issuetype: "Epic"
- name: create-asset-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "brand-assets"
folder_path: "Launches/{{brand}}/{{product_name}}"
- name: notify-teams
type: call
call: "msteams.post-message"
with:
team_id: "product-team"
channel_id: "launches"
message: "New product launch: {{product_name}} ({{brand}}, {{category}}) targeting {{launch_date}}. SAP: {{create-material-master.MaterialNumber}}. Campaign: {{create-launch-campaign.id}}. Jira: {{create-marketing-epic.key}}. Assets: {{create-asset-folder.webUrl}}."
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_MATERIAL_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: materials
path: "/A_Material"
operations:
- name: create-material
method: POST
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: campaigns
path: "/sobjects/Campaign"
operations:
- name: create-campaign
method: POST
- type: http
namespace: jira
baseUri: "https://mondelez.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_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: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Orchestrates a new snack product launch by creating a SAP material master record, setting up a Salesforce campaign, provisioning a SharePoint document library for product assets, and notifying the marketing team via Microsoft Teams.
naftiko: "0.5"
info:
label: "New Product Launch Orchestrator"
description: "Orchestrates a new snack product launch by creating a SAP material master record, setting up a Salesforce campaign, provisioning a SharePoint document library for product assets, and notifying the marketing team via Microsoft Teams."
tags:
- product-launch
- manufacturing
- sap
- salesforce
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: product-launch
port: 8080
tools:
- name: launch-new-product
description: "Given product details, create SAP material, Salesforce campaign, SharePoint library, and notify marketing."
inputParameters:
- name: product_name
in: body
type: string
description: "The new product name."
- name: product_category
in: body
type: string
description: "Product category (e.g., biscuits, chocolate, gum)."
- name: launch_date
in: body
type: string
description: "Target launch date in YYYY-MM-DD format."
- name: brand
in: body
type: string
description: "The brand (e.g., Oreo, Cadbury, Trident)."
steps:
- name: create-material
type: call
call: "sap.create-material"
with:
product_name: "{{product_name}}"
product_category: "{{product_category}}"
brand: "{{brand}}"
- name: create-campaign
type: call
call: "salesforce.create-campaign"
with:
name: "{{brand}} {{product_name}} Launch"
start_date: "{{launch_date}}"
type: "Product Launch"
- name: provision-assets
type: call
call: "sharepoint.create-folder"
with:
site_id: "product_launches_site"
folder_path: "Launches/{{brand}}_{{product_name}}_{{launch_date}}"
- name: notify-marketing
type: call
call: "msteams.post-message"
with:
team_id: "marketing-team"
channel_id: "product-launches"
message: "New product launch initiated: {{brand}} {{product_name}} ({{product_category}}). Launch date: {{launch_date}}. SAP material: {{create-material.MaterialNumber}}. Campaign: {{create-campaign.id}}. Assets: {{provision-assets.webUrl}}."
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_MATERIAL_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: materials
path: "/A_Material"
operations:
- name: create-material
method: POST
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: campaigns
path: "/sobjects/Campaign"
operations:
- name: create-campaign
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Creates a plant maintenance work order in SAP, logs a ServiceNow ticket for tracking, assigns the work via Jira, and notifies the maintenance team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Plant Maintenance Work Order Pipeline"
description: "Creates a plant maintenance work order in SAP, logs a ServiceNow ticket for tracking, assigns the work via Jira, and notifies the maintenance team via Microsoft Teams."
tags:
- manufacturing
- maintenance
- sap
- servicenow
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: plant-maintenance
port: 8080
tools:
- name: create-maintenance-order
description: "Given equipment and issue details, create a SAP work order, log in ServiceNow, assign via Jira, and notify."
inputParameters:
- name: equipment_id
in: body
type: string
description: "The SAP equipment ID."
- name: plant
in: body
type: string
description: "The plant code."
- name: issue_description
in: body
type: string
description: "Description of the maintenance issue."
- name: priority
in: body
type: string
description: "Priority level (high, medium, low)."
steps:
- name: create-work-order
type: call
call: "sap.create-maintenance-order"
with:
equipment_id: "{{equipment_id}}"
plant: "{{plant}}"
description: "{{issue_description}}"
priority: "{{priority}}"
- name: log-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "Maintenance: {{equipment_id}} at plant {{plant}}"
category: "plant_maintenance"
description: "{{issue_description}}. SAP order: {{create-work-order.OrderNumber}}."
- name: assign-task
type: call
call: "jira.create-issue"
with:
project_key: "MAINT"
summary: "Maintenance: {{equipment_id}} - {{priority}}"
description: "{{issue_description}}. SAP order: {{create-work-order.OrderNumber}}. ServiceNow: {{log-ticket.number}}."
issue_type: "Task"
- name: notify-team
type: call
call: "msteams.post-message"
with:
team_id: "maintenance-team-{{plant}}"
channel_id: "work-orders"
message: "Maintenance order {{create-work-order.OrderNumber}} created for {{equipment_id}} at plant {{plant}}. Priority: {{priority}}. Jira: {{assign-task.key}}."
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/PM_ORDER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: maintenance-orders
path: "/A_MaintenanceOrder"
operations:
- name: create-maintenance-order
method: POST
- type: http
namespace: servicenow
baseUri: "https://mondelez.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: jira
baseUri: "https://mondelez.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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Triggers a Power BI dataset refresh for regional sales dashboards used by category managers to monitor snack and confectionery performance.
naftiko: "0.5"
info:
label: "Power BI Sales Dashboard Refresh"
description: "Triggers a Power BI dataset refresh for regional sales dashboards used by category managers to monitor snack and confectionery performance."
tags:
- sales
- power-bi
- reporting
capability:
exposes:
- type: mcp
namespace: sales-dashboards
port: 8080
tools:
- name: refresh-sales-dashboard
description: "Trigger a Power BI dataset refresh for a regional sales dashboard."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Triggers a dataset refresh in Power BI for the supply chain operations dashboard so logistics teams can view real-time distribution metrics.
naftiko: "0.5"
info:
label: "Power BI Supply Chain Dashboard Refresh"
description: "Triggers a dataset refresh in Power BI for the supply chain operations dashboard so logistics teams can view real-time distribution metrics."
tags:
- analytics
- power-bi
- supply-chain
capability:
exposes:
- type: mcp
namespace: supply-chain-analytics
port: 8080
tools:
- name: refresh-supply-chain-dashboard
description: "Trigger a Power BI dataset refresh for the supply chain dashboard."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID to refresh."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Handles production quality incidents by pulling batch details from SAP, creating a quality case in ServiceNow, uploading test results to SharePoint, and alerting the quality team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Production Quality Incident Pipeline"
description: "Handles production quality incidents by pulling batch details from SAP, creating a quality case in ServiceNow, uploading test results to SharePoint, and alerting the quality team via Microsoft Teams."
tags:
- manufacturing
- quality
- sap
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: quality-incidents
port: 8080
tools:
- name: report-quality-incident
description: "Given a production batch and defect type, pull batch data, create quality case, and alert team."
inputParameters:
- name: batch_number
in: body
type: string
description: "The SAP production batch number."
- name: defect_type
in: body
type: string
description: "Type of quality defect."
- name: plant
in: body
type: string
description: "The manufacturing plant code."
steps:
- name: get-batch-details
type: call
call: "sap.get-batch"
with:
batch_number: "{{batch_number}}"
plant: "{{plant}}"
- name: create-quality-case
type: call
call: "servicenow.create-incident"
with:
short_description: "Quality incident: {{defect_type}} - Batch {{batch_number}}"
category: "quality"
description: "Batch {{batch_number}} at plant {{plant}}. Product: {{get-batch-details.MaterialDescription}}. Defect: {{defect_type}}."
- name: upload-results
type: call
call: "sharepoint.create-folder"
with:
site_id: "quality_site"
folder_path: "Incidents/{{batch_number}}_{{defect_type}}"
- name: alert-quality-team
type: call
call: "msteams.post-message"
with:
team_id: "quality-team"
channel_id: "incidents"
message: "QUALITY ALERT: {{defect_type}} in batch {{batch_number}} at plant {{plant}}. Product: {{get-batch-details.MaterialDescription}}. Case: {{create-quality-case.number}}."
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_BATCH_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: batches
path: "/A_Batch(Batch='{{batch_number}}',Plant='{{plant}}')"
inputParameters:
- name: batch_number
in: path
- name: plant
in: path
operations:
- name: get-batch
method: GET
- type: http
namespace: servicenow
baseUri: "https://mondelez.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: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Manages product recalls by identifying affected batches in SAP, pulling distribution data from Snowflake, creating a recall case in ServiceNow, notifying retailers via Salesforce, and alerting leadership via Microsoft Teams.
naftiko: "0.5"
info:
label: "Recall Management Pipeline"
description: "Manages product recalls by identifying affected batches in SAP, pulling distribution data from Snowflake, creating a recall case in ServiceNow, notifying retailers via Salesforce, and alerting leadership via Microsoft Teams."
tags:
- food-safety
- recall
- sap
- snowflake
- servicenow
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: recall-management
port: 8080
tools:
- name: initiate-recall
description: "Given a material and batch range, initiate a product recall across all systems."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
- name: batch_range_start
in: body
type: string
description: "Start of affected batch range."
- name: batch_range_end
in: body
type: string
description: "End of affected batch range."
- name: recall_reason
in: body
type: string
description: "Reason for the recall."
steps:
- name: identify-batches
type: call
call: "sap.query-batches"
with:
material: "{{material_number}}"
batch_start: "{{batch_range_start}}"
batch_end: "{{batch_range_end}}"
- name: get-distribution
type: call
call: "snowflake.execute-query"
with:
material: "{{material_number}}"
batch_start: "{{batch_range_start}}"
batch_end: "{{batch_range_end}}"
- name: create-recall-case
type: call
call: "servicenow.create-incident"
with:
short_description: "RECALL: {{material_number}} batches {{batch_range_start}}-{{batch_range_end}}"
category: "product_recall"
priority: "1"
description: "{{recall_reason}}. Affected batches: {{identify-batches.count}}. Distribution points: {{get-distribution.rowCount}}."
- name: notify-retailers
type: call
call: "salesforce.create-recall-notification"
with:
material: "{{material_number}}"
recall_reason: "{{recall_reason}}"
case_number: "{{create-recall-case.number}}"
- name: alert-leadership
type: call
call: "msteams.post-message"
with:
team_id: "executive-team"
channel_id: "urgent"
message: "PRODUCT RECALL: {{material_number}} (batches {{batch_range_start}}-{{batch_range_end}}). Reason: {{recall_reason}}. {{identify-batches.count}} batches, {{get-distribution.rowCount}} distribution points. Case: {{create-recall-case.number}}."
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_BATCH_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: batches
path: "/A_Batch?$filter=Material eq '{{material}}' and Batch ge '{{batch_start}}' and Batch le '{{batch_end}}'"
inputParameters:
- name: material
in: query
- name: batch_start
in: query
- name: batch_end
in: query
operations:
- name: query-batches
method: GET
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: servicenow
baseUri: "https://mondelez.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: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: recall-notifications
path: "/sobjects/Recall_Notification__c"
operations:
- name: create-recall-notification
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Plans retail promotions by creating a promotion record in Salesforce, generating a SAP pricing condition, uploading promotional materials to SharePoint, and notifying the sales team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Retail Promotion Planning Workflow"
description: "Plans retail promotions by creating a promotion record in Salesforce, generating a SAP pricing condition, uploading promotional materials to SharePoint, and notifying the sales team via Microsoft Teams."
tags:
- sales
- promotions
- salesforce
- sap
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: promotion-planning
port: 8080
tools:
- name: plan-retail-promotion
description: "Given promotion details, create records across Salesforce, SAP, and SharePoint, then notify sales."
inputParameters:
- name: promotion_name
in: body
type: string
description: "Name of the promotion."
- name: retailer_account_id
in: body
type: string
description: "The Salesforce retailer account ID."
- name: discount_percentage
in: body
type: string
description: "Discount percentage."
- name: start_date
in: body
type: string
description: "Promotion start date."
- name: end_date
in: body
type: string
description: "Promotion end date."
steps:
- name: create-promotion
type: call
call: "salesforce.create-promotion"
with:
name: "{{promotion_name}}"
account_id: "{{retailer_account_id}}"
discount: "{{discount_percentage}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: create-pricing-condition
type: call
call: "sap.create-pricing"
with:
promotion_id: "{{create-promotion.id}}"
discount: "{{discount_percentage}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: upload-materials
type: call
call: "sharepoint.create-folder"
with:
site_id: "sales_site"
folder_path: "Promotions/{{promotion_name}}"
- name: notify-sales
type: call
call: "msteams.post-message"
with:
team_id: "sales-team"
channel_id: "promotions"
message: "Promotion '{{promotion_name}}' created. {{discount_percentage}}% off from {{start_date}} to {{end_date}}. Salesforce: {{create-promotion.id}}. Materials: {{upload-materials.webUrl}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: promotions
path: "/sobjects/Promotion__c"
operations:
- name: create-promotion
method: POST
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/SD_PRICING_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: pricing-conditions
path: "/A_PricingCondition"
operations:
- name: create-pricing
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Queries Snowflake for planogram compliance scores by retailer and category, returning compliance percentage, out-of-stock rate, and facing count accuracy.
naftiko: "0.5"
info:
label: "Retailer Planogram Compliance Check"
description: "Queries Snowflake for planogram compliance scores by retailer and category, returning compliance percentage, out-of-stock rate, and facing count accuracy."
tags:
- retail
- planogram
- snowflake
capability:
exposes:
- type: mcp
namespace: planogram-compliance
port: 8080
tools:
- name: check-planogram-compliance
description: "Query planogram compliance data by retailer and product category."
inputParameters:
- name: retailer_id
in: body
type: string
description: "The retailer account ID."
- name: category
in: body
type: string
description: "Product category (e.g., biscuits, chocolate, gum)."
call: "snowflake.execute-query"
with:
retailer_id: "{{retailer_id}}"
category: "{{category}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Retrieves a retail account's details from Salesforce including account name, region, segment, and annual revenue for sales planning.
naftiko: "0.5"
info:
label: "Salesforce Account Lookup"
description: "Retrieves a retail account's details from Salesforce including account name, region, segment, and annual revenue for sales planning."
tags:
- sales
- salesforce
- distribution
capability:
exposes:
- type: mcp
namespace: sales-accounts
port: 8080
tools:
- name: get-retail-account
description: "Look up a Salesforce account by account ID. Returns account name, region, segment, and annual revenue."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce account ID."
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
Retrieves trade spend data from Salesforce for a retailer account and fiscal quarter, returning total spend, accruals, and remaining budget for trade promotion management.
naftiko: "0.5"
info:
label: "Salesforce Trade Spend Lookup"
description: "Retrieves trade spend data from Salesforce for a retailer account and fiscal quarter, returning total spend, accruals, and remaining budget for trade promotion management."
tags:
- trade-spend
- salesforce
- finance
capability:
exposes:
- type: mcp
namespace: trade-spend
port: 8080
tools:
- name: get-trade-spend
description: "Look up trade spend by retailer and fiscal quarter. Returns total spend, accruals, and remaining budget."
inputParameters:
- name: retailer_account_id
in: body
type: string
description: "The Salesforce retailer account ID."
- name: fiscal_quarter
in: body
type: string
description: "The fiscal quarter (e.g., Q1-2026, Q2-2026)."
call: "salesforce.query-trade-spend"
with:
retailer_account_id: "{{retailer_account_id}}"
fiscal_quarter: "{{fiscal_quarter}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: trade-spend
path: "/query/?q=SELECT+Total_Spend__c,Accruals__c,Remaining_Budget__c+FROM+Trade_Spend__c+WHERE+Account__c='{{retailer_account_id}}'+AND+Fiscal_Quarter__c='{{fiscal_quarter}}'"
inputParameters:
- name: retailer_account_id
in: query
- name: fiscal_quarter
in: query
operations:
- name: query-trade-spend
method: GET
Retrieves current cocoa commodity pricing from SAP for a specified origin and grade, returning price per metric ton, currency, and last update timestamp for procurement planning.
naftiko: "0.5"
info:
label: "SAP Cocoa Price Monitoring"
description: "Retrieves current cocoa commodity pricing from SAP for a specified origin and grade, returning price per metric ton, currency, and last update timestamp for procurement planning."
tags:
- commodities
- cocoa
- sap
- procurement
capability:
exposes:
- type: mcp
namespace: commodity-pricing
port: 8080
tools:
- name: get-cocoa-price
description: "Look up current cocoa pricing by origin and grade from SAP. Returns price per metric ton and currency."
inputParameters:
- name: origin
in: body
type: string
description: "Cocoa origin country (e.g., Ghana, Ivory Coast, Ecuador)."
- name: grade
in: body
type: string
description: "Cocoa grade classification."
call: "sap.get-commodity-price"
with:
origin: "{{origin}}"
grade: "{{grade}}"
outputParameters:
- name: price_per_mt
type: string
mapping: "$.d.PricePerMetricTon"
- name: currency
type: string
mapping: "$.d.Currency"
- name: last_updated
type: string
mapping: "$.d.LastUpdated"
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_COMMODITY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: commodity-prices
path: "/A_CommodityPrice(Origin='{{origin}}',Grade='{{grade}}')"
inputParameters:
- name: origin
in: path
- name: grade
in: path
operations:
- name: get-commodity-price
method: GET
Checks the status of a SAP Concur expense report by report ID, returning approval state, total amount, and submission date.
naftiko: "0.5"
info:
label: "SAP Concur Expense Report Status"
description: "Checks the status of a SAP Concur expense report by report ID, returning approval state, total amount, and submission date."
tags:
- finance
- sap-concur
- expense
capability:
exposes:
- type: mcp
namespace: expense-mgmt
port: 8080
tools:
- name: get-expense-report
description: "Look up a SAP Concur expense report by report ID."
inputParameters:
- name: report_id
in: body
type: string
description: "The Concur expense report ID."
call: "concur.get-report"
with:
report_id: "{{report_id}}"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: expense-reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-report
method: GET
Retrieves demand forecast data from SAP APO for a material and planning horizon, returning forecast quantities by period for supply planning.
naftiko: "0.5"
info:
label: "SAP Demand Forecast Retrieval"
description: "Retrieves demand forecast data from SAP APO for a material and planning horizon, returning forecast quantities by period for supply planning."
tags:
- supply-chain
- demand-planning
- sap
capability:
exposes:
- type: mcp
namespace: demand-forecast
port: 8080
tools:
- name: get-demand-forecast
description: "Look up demand forecast for a material over a planning horizon. Returns forecast quantities by period."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
- name: planning_horizon_weeks
in: body
type: string
description: "Number of weeks in the planning horizon."
call: "sap.get-forecast"
with:
material_number: "{{material_number}}"
planning_horizon_weeks: "{{planning_horizon_weeks}}"
outputParameters:
- name: forecast_periods
type: string
mapping: "$.d.results"
- name: total_forecast_qty
type: string
mapping: "$.d.TotalForecastQuantity"
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/APO_FORECAST_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: forecasts
path: "/A_DemandForecast(Material='{{material_number}}',Horizon='{{planning_horizon_weeks}}')"
inputParameters:
- name: material_number
in: path
- name: planning_horizon_weeks
in: path
operations:
- name: get-forecast
method: GET
Queries SAP S/4HANA for current inventory levels of a material by plant and storage location, returning available stock and reserved quantities.
naftiko: "0.5"
info:
label: "SAP Material Inventory Lookup"
description: "Queries SAP S/4HANA for current inventory levels of a material by plant and storage location, returning available stock and reserved quantities."
tags:
- supply-chain
- inventory
- sap
capability:
exposes:
- type: mcp
namespace: inventory
port: 8080
tools:
- name: get-material-inventory
description: "Look up inventory for a material number at a specific plant. Returns available stock, reserved stock, and unit of measure."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
- name: plant
in: body
type: string
description: "The SAP plant code."
call: "sap.get-inventory"
with:
material_number: "{{material_number}}"
plant: "{{plant}}"
outputParameters:
- name: available_stock
type: string
mapping: "$.d.AvailableStock"
- name: reserved_stock
type: string
mapping: "$.d.ReservedStock"
- name: unit
type: string
mapping: "$.d.BaseUnit"
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: Accept
in: header
value: "application/json"
resources:
- name: material-stock
path: "/A_MaterialStock(Material='{{material_number}}',Plant='{{plant}}')"
inputParameters:
- name: material_number
in: path
- name: plant
in: path
operations:
- name: get-inventory
method: GET
Queries SAP Plant Maintenance for equipment status by functional location, returning equipment ID, description, condition, and last maintenance date.
naftiko: "0.5"
info:
label: "SAP Plant Equipment Status"
description: "Queries SAP Plant Maintenance for equipment status by functional location, returning equipment ID, description, condition, and last maintenance date."
tags:
- manufacturing
- maintenance
- sap
capability:
exposes:
- type: mcp
namespace: equipment-status
port: 8080
tools:
- name: get-equipment-status
description: "Look up equipment at a SAP functional location. Returns equipment ID, description, condition, and last maintenance date."
inputParameters:
- name: functional_location
in: body
type: string
description: "The SAP functional location ID."
call: "sap.get-equipment"
with:
functional_location: "{{functional_location}}"
outputParameters:
- name: equipment_id
type: string
mapping: "$.d.Equipment"
- name: description
type: string
mapping: "$.d.EquipmentDescription"
- name: condition
type: string
mapping: "$.d.ConditionRating"
- name: last_maintenance
type: string
mapping: "$.d.LastMaintenanceDate"
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/PM_EQUIPMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: equipment
path: "/A_Equipment?$filter=FunctionalLocation eq '{{functional_location}}'"
inputParameters:
- name: functional_location
in: query
operations:
- name: get-equipment
method: GET
Looks up a SAP S/4HANA production order by number and returns order status, planned quantity, actual quantity, and completion date for manufacturing operations.
naftiko: "0.5"
info:
label: "SAP Production Order Status"
description: "Looks up a SAP S/4HANA production order by number and returns order status, planned quantity, actual quantity, and completion date for manufacturing operations."
tags:
- manufacturing
- sap
- production
capability:
exposes:
- type: mcp
namespace: manufacturing-ops
port: 8080
tools:
- name: get-production-order
description: "Look up a SAP production order by order number. Returns status, planned quantity, actual quantity, and scheduled completion."
inputParameters:
- name: order_number
in: body
type: string
description: "The SAP production order number."
call: "sap.get-production-order"
with:
order_number: "{{order_number}}"
outputParameters:
- name: status
type: string
mapping: "$.d.OrderStatus"
- name: planned_qty
type: string
mapping: "$.d.PlannedQuantity"
- name: actual_qty
type: string
mapping: "$.d.ActualQuantity"
- name: completion_date
type: string
mapping: "$.d.ScheduledCompletionDate"
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/PP_ORDER_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: production-orders
path: "/A_ProductionOrder('{{order_number}}')"
inputParameters:
- name: order_number
in: path
operations:
- name: get-production-order
method: GET
Queries SAP S/4HANA for the procurement status of a raw material purchase order, returning vendor, delivery date, quantity, and goods receipt status.
naftiko: "0.5"
info:
label: "SAP Raw Material Procurement Status"
description: "Queries SAP S/4HANA for the procurement status of a raw material purchase order, returning vendor, delivery date, quantity, and goods receipt status."
tags:
- procurement
- supply-chain
- sap
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-procurement-status
description: "Look up a SAP purchase order for raw materials. Returns vendor, delivery date, ordered quantity, and goods receipt status."
inputParameters:
- name: purchase_order
in: body
type: string
description: "The SAP purchase order number."
call: "sap.get-purchase-order"
with:
purchase_order: "{{purchase_order}}"
outputParameters:
- name: vendor
type: string
mapping: "$.d.Vendor"
- name: delivery_date
type: string
mapping: "$.d.DeliveryDate"
- name: ordered_qty
type: string
mapping: "$.d.OrderedQuantity"
- name: gr_status
type: string
mapping: "$.d.GoodsReceiptStatus"
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_PO_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{purchase_order}}')"
inputParameters:
- name: purchase_order
in: path
operations:
- name: get-purchase-order
method: GET
Retrieves an IT incident from ServiceNow by incident number, returning priority, assigned group, status, and short description.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves an IT incident from ServiceNow by incident number, returning priority, assigned group, status, and short description."
tags:
- it-service
- servicenow
capability:
exposes:
- type: mcp
namespace: it-incidents
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number. Returns priority, state, assigned group, and description."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
outputParameters:
- name: priority
type: string
mapping: "$.result[0].priority"
- name: state
type: string
mapping: "$.result[0].state"
consumes:
- type: http
namespace: servicenow
baseUri: "https://mondelez.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: query
operations:
- name: get-incident
method: GET
Retrieves metadata for a document stored in SharePoint by site and file path, returning file name, last modified date, and author.
naftiko: "0.5"
info:
label: "SharePoint Document Retrieval"
description: "Retrieves metadata for a document stored in SharePoint by site and file path, returning file name, last modified date, and author."
tags:
- document-management
- sharepoint
capability:
exposes:
- type: mcp
namespace: document-mgmt
port: 8080
tools:
- name: get-document-metadata
description: "Retrieve SharePoint document metadata by site and file path."
inputParameters:
- name: site_id
in: body
type: string
description: "The SharePoint site ID."
- name: file_path
in: body
type: string
description: "The file path relative to drive root."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
file_path: "{{file_path}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file
method: GET
Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 1"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-1
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-1"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://mondelez.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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 10"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-10
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-10"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-10
method: POST
- type: http
namespace: sharepoint
baseUri: "https://mondelez.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 11"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-11
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-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: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 12"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- datadog
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-12
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-12"
with:
identifier: "{{identifier}}"
- name: push
type: call
call: "datadog.submit-metrics"
with:
metric_name: "snacks.workflow_12"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 13"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-13
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-13"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-13
method: POST
- type: http
namespace: salesforce
baseUri: "https://mondelez.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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 14"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-14
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-14"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-14
method: POST
- type: http
namespace: servicenow
baseUri: "https://mondelez.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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 15"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- slack
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-15
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-15"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#snacks"
text: "Completed workflow 15: {{process.summary}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 16"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-16
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-16"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "SNACKS"
title: "Report 16"
content: "{{process.report}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-16
method: POST
- type: http
namespace: confluence
baseUri: "https://mondelez.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 17"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-17
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-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: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 18"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- jira
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-18
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-18"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "SNAC"
summary: "Task from workflow 18"
description: "{{process.details}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-18
method: POST
- type: http
namespace: jira
baseUri: "https://mondelez.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 19"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- teams
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-19
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-19"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "snacks"
message: "Workflow 19 complete: {{process.summary}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 2"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-2
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-2"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://mondelez.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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 20"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-20
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-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: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-20
method: POST
- type: http
namespace: tableau
baseUri: "https://mondelez-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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 21"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- box
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-21
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-21"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 22"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-22
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-22"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-22
method: POST
- type: http
namespace: sharepoint
baseUri: "https://mondelez.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 23"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-23
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-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: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 24"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- datadog
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-24
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-24"
with:
identifier: "{{identifier}}"
- name: push
type: call
call: "datadog.submit-metrics"
with:
metric_name: "snacks.workflow_24"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 25"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-25
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-25"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-25
method: POST
- type: http
namespace: salesforce
baseUri: "https://mondelez.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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 26"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-26
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-26"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-26
method: POST
- type: http
namespace: servicenow
baseUri: "https://mondelez.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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 27"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- slack
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-27
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-27"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#snacks"
text: "Completed workflow 27: {{process.summary}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 28"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-28
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-28"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "SNACKS"
title: "Report 28"
content: "{{process.report}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-28
method: POST
- type: http
namespace: confluence
baseUri: "https://mondelez.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 29"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-29
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-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: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 3"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- slack
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-3
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-3"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#snacks"
text: "Completed workflow 3: {{process.summary}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 30"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- jira
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-30
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-30"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "SNAC"
summary: "Task from workflow 30"
description: "{{process.details}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-30
method: POST
- type: http
namespace: jira
baseUri: "https://mondelez.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 31"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- teams
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-31
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-31"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "snacks"
message: "Workflow 31 complete: {{process.summary}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 32"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-32
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-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: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-32
method: POST
- type: http
namespace: tableau
baseUri: "https://mondelez-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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 33"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- box
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-33
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-33"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 34"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-34
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-34"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-34
method: POST
- type: http
namespace: sharepoint
baseUri: "https://mondelez.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 35"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-35
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-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: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 4"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-4
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-4"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "SNACKS"
title: "Report 4"
content: "{{process.report}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-4
method: POST
- type: http
namespace: confluence
baseUri: "https://mondelez.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 5"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-5
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-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: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 6"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- jira
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-6
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-6"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "SNAC"
summary: "Task from workflow 6"
description: "{{process.details}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-6
method: POST
- type: http
namespace: jira
baseUri: "https://mondelez.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 7"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- teams
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-7
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-7"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "snacks"
message: "Workflow 7 complete: {{process.summary}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 8"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-8
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-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: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-8
method: POST
- type: http
namespace: tableau
baseUri: "https://mondelez-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 snacks operations including data retrieval, processing, and automated notification for Mondelez.
naftiko: "0.5"
info:
label: "Mondelez Workflow 9"
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
tags:
- snacks
- operations
- box
capability:
exposes:
- type: mcp
namespace: snacks
port: 8080
tools:
- name: mondelez-workflow-9
description: "Orchestrates snacks operations including data retrieval, processing, and automated notification for Mondelez."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "mondelez-ops.run-workflow-9"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: mondelez-ops
baseUri: "https://api.mondelez.com/operations/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 1"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-1
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-1"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 10"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-10
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-10"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 11"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-11
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-11"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 12"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-12
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-12"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 13"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-13
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-13"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 14"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-14
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-14"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 15"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-15
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-15"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 2"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-2
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-2"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 3"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-3
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-3"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 4"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-4
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-4"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 5"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-5
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-5"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 6"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-6
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-6"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 7"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-7
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-7"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 8"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-8
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-8"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_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 Mondelez snacks workflows.
naftiko: "0.5"
info:
label: "Mondelez Data Lookup 9"
description: "Retrieves operational data for Mondelez snacks workflows."
tags:
- snacks
- operations
capability:
exposes:
- type: mcp
namespace: mondelez-data
port: 8080
tools:
- name: get-data-9
description: "Retrieves operational data for Mondelez snacks workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "mondelez-data.get-data-9"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: mondelez-data
baseUri: "https://api.mondelez.com/data/v1"
authentication:
type: bearer
token: "$secrets.mondelez_api_token"
resources:
- name: data-9
path: "/data-9/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-9
method: GET
Executes a parameterized query against the Snowflake data warehouse to retrieve aggregate sales volumes by product category and region.
naftiko: "0.5"
info:
label: "Snowflake Sales Data Query"
description: "Executes a parameterized query against the Snowflake data warehouse to retrieve aggregate sales volumes by product category and region."
tags:
- data-warehouse
- snowflake
- sales
capability:
exposes:
- type: mcp
namespace: sales-warehouse
port: 8080
tools:
- name: query-sales-summary
description: "Query Snowflake for aggregate sales data by product category and region."
inputParameters:
- name: category
in: body
type: string
description: "Product category (e.g., biscuits, chocolate, gum)."
- name: region
in: body
type: string
description: "Sales region."
call: "snowflake.execute-query"
with:
category: "{{category}}"
region: "{{region}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Queries Snowflake for products approaching shelf life expiry within a specified number of days, returning material number, batch, expiry date, and warehouse location.
naftiko: "0.5"
info:
label: "Snowflake Shelf Life Expiry Report"
description: "Queries Snowflake for products approaching shelf life expiry within a specified number of days, returning material number, batch, expiry date, and warehouse location."
tags:
- quality
- shelf-life
- snowflake
capability:
exposes:
- type: mcp
namespace: shelf-life-monitoring
port: 8080
tools:
- name: query-expiring-products
description: "Query Snowflake for products expiring within a given number of days at a specific warehouse."
inputParameters:
- name: days_until_expiry
in: body
type: string
description: "Number of days until expiry threshold."
- name: warehouse_code
in: body
type: string
description: "The warehouse location code."
call: "snowflake.execute-query"
with:
days_until_expiry: "{{days_until_expiry}}"
warehouse_code: "{{warehouse_code}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Onboards a new ingredient supplier by creating a SAP vendor master record, a Salesforce supplier account, a Jira onboarding checklist, uploading contracts to SharePoint, and notifying the procurement team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Supplier Onboarding Pipeline"
description: "Onboards a new ingredient supplier by creating a SAP vendor master record, a Salesforce supplier account, a Jira onboarding checklist, uploading contracts to SharePoint, and notifying the procurement team via Microsoft Teams."
tags:
- procurement
- supplier
- sap
- salesforce
- jira
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: supplier-onboarding
port: 8080
tools:
- name: onboard-supplier
description: "Given supplier details, create records in SAP, Salesforce, Jira, and SharePoint, then notify procurement."
inputParameters:
- name: supplier_name
in: body
type: string
description: "The supplier company name."
- name: ingredient_category
in: body
type: string
description: "The ingredient category (e.g., cocoa, sugar, wheat flour)."
- name: country
in: body
type: string
description: "Supplier country of origin."
steps:
- name: create-vendor-master
type: call
call: "sap.create-vendor"
with:
supplier_name: "{{supplier_name}}"
category: "{{ingredient_category}}"
country: "{{country}}"
- name: create-supplier-account
type: call
call: "salesforce.create-account"
with:
name: "{{supplier_name}}"
type: "Supplier"
category: "{{ingredient_category}}"
- name: create-onboarding-checklist
type: call
call: "jira.create-issue"
with:
project: "PROC"
summary: "Supplier Onboarding: {{supplier_name}} ({{ingredient_category}})"
description: "Onboard {{supplier_name}} from {{country}} for {{ingredient_category}}. SAP vendor: {{create-vendor-master.VendorNumber}}. Salesforce: {{create-supplier-account.id}}."
issuetype: "Epic"
- name: create-contract-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "procurement-site"
folder_path: "Suppliers/{{supplier_name}}"
- name: notify-procurement
type: call
call: "msteams.post-message"
with:
team_id: "procurement-team"
channel_id: "onboarding"
message: "New supplier onboarding: {{supplier_name}} ({{ingredient_category}}, {{country}}). SAP: {{create-vendor-master.VendorNumber}}. Salesforce: {{create-supplier-account.id}}. Jira: {{create-onboarding-checklist.key}}. Contracts: {{create-contract-folder.webUrl}}."
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_VENDOR_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: vendors
path: "/A_Vendor"
operations:
- name: create-vendor
method: POST
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account"
operations:
- name: create-account
method: POST
- type: http
namespace: jira
baseUri: "https://mondelez.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_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: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Responds to supply chain disruptions by querying SAP for affected purchase orders, creating a ServiceNow incident, notifying the logistics team via Microsoft Teams, and updating the disruption tracker in Salesforce.
naftiko: "0.5"
info:
label: "Supply Chain Disruption Response"
description: "Responds to supply chain disruptions by querying SAP for affected purchase orders, creating a ServiceNow incident, notifying the logistics team via Microsoft Teams, and updating the disruption tracker in Salesforce."
tags:
- supply-chain
- disruption
- sap
- servicenow
- microsoft-teams
- salesforce
capability:
exposes:
- type: mcp
namespace: supply-chain-disruption
port: 8080
tools:
- name: respond-to-disruption
description: "Given a supplier ID and disruption type, identify affected POs, create incident, notify logistics, and update tracker."
inputParameters:
- name: supplier_id
in: body
type: string
description: "The SAP supplier ID."
- name: disruption_type
in: body
type: string
description: "Type of disruption (e.g., delay, shortage, quality_issue)."
- name: affected_plant
in: body
type: string
description: "The affected manufacturing plant code."
steps:
- name: get-affected-pos
type: call
call: "sap.query-open-pos"
with:
supplier_id: "{{supplier_id}}"
plant: "{{affected_plant}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Supply chain disruption: {{disruption_type}} - Supplier {{supplier_id}}"
category: "supply_chain"
description: "Disruption type: {{disruption_type}}. Supplier: {{supplier_id}}. Plant: {{affected_plant}}. Affected POs: {{get-affected-pos.count}}."
- name: notify-logistics
type: call
call: "msteams.post-message"
with:
team_id: "supply-chain-team"
channel_id: "disruptions"
message: "ALERT: {{disruption_type}} from supplier {{supplier_id}} affecting plant {{affected_plant}}. {{get-affected-pos.count}} POs impacted. Incident: {{create-incident.number}}."
- name: update-tracker
type: call
call: "salesforce.create-disruption"
with:
supplier_id: "{{supplier_id}}"
disruption_type: "{{disruption_type}}"
incident_number: "{{create-incident.number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder?$filter=Supplier eq '{{supplier_id}}' and Plant eq '{{plant}}' and Status eq 'Open'"
inputParameters:
- name: supplier_id
in: query
- name: plant
in: query
operations:
- name: query-open-pos
method: GET
- type: http
namespace: servicenow
baseUri: "https://mondelez.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: disruptions
path: "/sobjects/Supply_Chain_Disruption__c"
operations:
- name: create-disruption
method: POST
Compiles sustainability metrics by querying energy and waste data from Snowflake, pulling sourcing data from SAP, uploading the report to SharePoint, and notifying the sustainability team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Sustainability Reporting Pipeline"
description: "Compiles sustainability metrics by querying energy and waste data from Snowflake, pulling sourcing data from SAP, uploading the report to SharePoint, and notifying the sustainability team via Microsoft Teams."
tags:
- sustainability
- reporting
- snowflake
- sap
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: sustainability-reporting
port: 8080
tools:
- name: generate-sustainability-report
description: "Given a reporting period and scope, compile sustainability data and generate the report."
inputParameters:
- name: reporting_period
in: body
type: string
description: "The reporting period (e.g., 2025-annual)."
- name: scope
in: body
type: string
description: "Report scope (e.g., global, region, plant)."
steps:
- name: query-environmental-data
type: call
call: "snowflake.execute-query"
with:
reporting_period: "{{reporting_period}}"
scope: "{{scope}}"
- name: get-sourcing-data
type: call
call: "sap.get-sourcing-metrics"
with:
period: "{{reporting_period}}"
- name: upload-report
type: call
call: "sharepoint.create-folder"
with:
site_id: "sustainability_site"
folder_path: "Reports/{{reporting_period}}/{{scope}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
team_id: "sustainability-team"
channel_id: "reports"
message: "Sustainability report for {{reporting_period}} ({{scope}}) generated. Environmental data: {{query-environmental-data.rowCount}} records. Report: {{upload-report.webUrl}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_SOURCING_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: sourcing-metrics
path: "/A_SourcingMetrics?$filter=Period eq '{{period}}'"
inputParameters:
- name: period
in: query
operations:
- name: get-sourcing-metrics
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
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: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Retrieves metadata for a Tableau workbook including owner, last refresh time, and data source connections.
naftiko: "0.5"
info:
label: "Tableau Workbook Metadata"
description: "Retrieves metadata for a Tableau workbook including owner, last refresh time, and data source connections."
tags:
- analytics
- tableau
capability:
exposes:
- type: mcp
namespace: bi-metadata
port: 8080
tools:
- name: get-workbook-metadata
description: "Retrieve Tableau workbook metadata by workbook ID."
inputParameters:
- name: workbook_id
in: body
type: string
description: "The Tableau workbook ID."
call: "tableau.get-workbook"
with:
workbook_id: "{{workbook_id}}"
consumes:
- type: http
namespace: tableau
baseUri: "https://mondelez.online.tableau.com/api/3.21"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: workbooks
path: "/sites/{{site_id}}/workbooks/{{workbook_id}}"
inputParameters:
- name: workbook_id
in: path
operations:
- name: get-workbook
method: GET
Analyzes trade spend by pulling promotion spend from Salesforce, comparing against SAP actuals, building analytics in Snowflake, refreshing Power BI dashboards, and notifying finance.
naftiko: "0.5"
info:
label: "Trade Spend Analysis Pipeline"
description: "Analyzes trade spend by pulling promotion spend from Salesforce, comparing against SAP actuals, building analytics in Snowflake, refreshing Power BI dashboards, and notifying finance."
tags:
- finance
- trade-spend
- salesforce
- sap
- snowflake
- power-bi
capability:
exposes:
- type: mcp
namespace: trade-spend
port: 8080
tools:
- name: analyze-trade-spend
description: "Given a brand and period, analyze trade spend across planned vs actual."
inputParameters:
- name: brand
in: body
type: string
description: "The brand to analyze."
- name: period
in: body
type: string
description: "The analysis period (e.g., Q1-2026)."
steps:
- name: get-planned-spend
type: call
call: "salesforce.get-trade-plans"
with:
brand: "{{brand}}"
period: "{{period}}"
- name: get-actual-spend
type: call
call: "sap.get-trade-actuals"
with:
brand: "{{brand}}"
period: "{{period}}"
- name: run-analysis
type: call
call: "snowflake.execute-query"
with:
brand: "{{brand}}"
period: "{{period}}"
- name: refresh-dashboard
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "trade-spend-dataset"
consumes:
- type: http
namespace: salesforce
baseUri: "https://mondelez.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: trade-plans
path: "/query/?q=SELECT+Brand__c,Planned_Spend__c+FROM+Trade_Plan__c+WHERE+Brand__c='{{brand}}'+AND+Period__c='{{period}}'"
inputParameters:
- name: brand
in: query
- name: period
in: query
operations:
- name: get-trade-plans
method: GET
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/FI_TRADE_SPEND_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: trade-actuals
path: "/A_TradeSpend?$filter=Brand eq '{{brand}}' and Period eq '{{period}}'"
inputParameters:
- name: brand
in: query
- name: period
in: query
operations:
- name: get-trade-actuals
method: GET
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
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}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Generates vendor scorecards by pulling delivery performance from SAP, quality metrics from ServiceNow, and cost data from Snowflake, then uploading the scorecard to SharePoint and notifying procurement.
naftiko: "0.5"
info:
label: "Vendor Scorecard Generator"
description: "Generates vendor scorecards by pulling delivery performance from SAP, quality metrics from ServiceNow, and cost data from Snowflake, then uploading the scorecard to SharePoint and notifying procurement."
tags:
- procurement
- vendor-management
- sap
- servicenow
- snowflake
- sharepoint
capability:
exposes:
- type: mcp
namespace: vendor-scorecards
port: 8080
tools:
- name: generate-vendor-scorecard
description: "Given a vendor ID and period, compile delivery, quality, and cost metrics into a scorecard."
inputParameters:
- name: vendor_id
in: body
type: string
description: "The SAP vendor ID."
- name: period
in: body
type: string
description: "The evaluation period (e.g., Q1-2026)."
steps:
- name: get-delivery-metrics
type: call
call: "sap.get-vendor-deliveries"
with:
vendor_id: "{{vendor_id}}"
period: "{{period}}"
- name: get-quality-metrics
type: call
call: "servicenow.query-vendor-incidents"
with:
vendor_id: "{{vendor_id}}"
- name: get-cost-metrics
type: call
call: "snowflake.execute-query"
with:
vendor_id: "{{vendor_id}}"
period: "{{period}}"
- name: upload-scorecard
type: call
call: "sharepoint.create-folder"
with:
site_id: "procurement_site"
folder_path: "Scorecards/{{vendor_id}}/{{period}}"
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: vendor-deliveries
path: "/A_PurchaseOrder?$filter=Supplier eq '{{vendor_id}}'"
inputParameters:
- name: vendor_id
in: query
operations:
- name: get-vendor-deliveries
method: GET
- type: http
namespace: servicenow
baseUri: "https://mondelez.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: vendor-incidents
path: "/table/incident?sysparm_query=vendor={{vendor_id}}"
inputParameters:
- name: vendor_id
in: query
operations:
- name: query-vendor-incidents
method: GET
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
Plans warehouse capacity by querying current stock levels from SAP, forecasting inbound shipments from Snowflake, and alerting the logistics team via Microsoft Teams when capacity thresholds are at risk.
naftiko: "0.5"
info:
label: "Warehouse Capacity Planning"
description: "Plans warehouse capacity by querying current stock levels from SAP, forecasting inbound shipments from Snowflake, and alerting the logistics team via Microsoft Teams when capacity thresholds are at risk."
tags:
- supply-chain
- warehouse
- sap
- snowflake
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: warehouse-planning
port: 8080
tools:
- name: assess-warehouse-capacity
description: "Given a warehouse code, assess current capacity and forecast inbound volumes."
inputParameters:
- name: warehouse_code
in: body
type: string
description: "The SAP warehouse/storage location code."
- name: forecast_days
in: body
type: string
description: "Number of days to forecast."
steps:
- name: get-current-stock
type: call
call: "sap.get-warehouse-stock"
with:
warehouse: "{{warehouse_code}}"
- name: forecast-inbound
type: call
call: "snowflake.execute-query"
with:
warehouse: "{{warehouse_code}}"
days: "{{forecast_days}}"
- name: alert-logistics
type: call
call: "msteams.post-message"
with:
team_id: "logistics-team"
channel_id: "capacity"
message: "Warehouse {{warehouse_code}} capacity: Current stock {{get-current-stock.TotalQuantity}} units. {{forecast_days}}-day inbound forecast: {{forecast-inbound.projected_inbound}} units."
consumes:
- type: http
namespace: sap
baseUri: "https://mondelez-s4.sap.com/sap/opu/odata/sap/MM_WAREHOUSE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: warehouse-stock
path: "/A_WarehouseStock?$filter=StorageLocation eq '{{warehouse}}'"
inputParameters:
- name: warehouse
in: query
operations:
- name: get-warehouse-stock
method: GET
- type: http
namespace: snowflake
baseUri: "https://mondelez.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
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/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Fetches an employee's profile from Workday by worker ID, including department, title, manager, and location for HR operations.
naftiko: "0.5"
info:
label: "Workday Employee Profile"
description: "Fetches an employee's profile from Workday by worker ID, including department, title, manager, and location for HR operations."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr-employee
port: 8080
tools:
- name: get-employee-profile
description: "Retrieve a Workday employee profile by worker ID."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_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: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET