Waste Management Capabilities
Naftiko 0.5 capability definitions for Waste Management - 100 capabilities showing integration workflows and service orchestrations.
Retrieves ADP payroll summary for a given pay period including gross pay, deductions, and net pay.
naftiko: "0.5"
info:
label: "ADP Payroll Summary"
description: "Retrieves ADP payroll summary for a given pay period including gross pay, deductions, and net pay."
tags:
- hr
- adp
- payroll
capability:
exposes:
- type: mcp
namespace: payroll
port: 8080
tools:
- name: get-payroll-summary
description: "Fetch ADP payroll summary for a worker and pay period."
inputParameters:
- name: worker_id
in: body
type: string
description: "The ADP worker identifier."
- name: pay_period
in: body
type: string
description: "The pay period identifier."
call: "adp.get-pay-statement"
with:
worker_id: "{{worker_id}}"
pay_period: "{{pay_period}}"
outputParameters:
- name: gross_pay
type: number
mapping: "$.payStatement.grossPayAmount"
- name: net_pay
type: number
mapping: "$.payStatement.netPayAmount"
- name: deductions
type: number
mapping: "$.payStatement.totalDeductions"
consumes:
- type: http
namespace: adp
baseUri: "https://api.adp.com/hr/v2"
authentication:
type: bearer
token: "$secrets.adp_token"
resources:
- name: pay-statements
path: "/workers/{{worker_id}}/pay-statements"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-pay-statement
method: GET
Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.
naftiko: "0.5"
info:
label: "Annual Compliance Certification Orchestrator"
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
tags:
- compliance
- hr
- legal
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-annual-compliance-certification-orchestrator
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.
naftiko: "0.5"
info:
label: "API Lifecycle Management Orchestrator"
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
tags:
- engineering
- api
- operations
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: run-api-lifecycle-management-orchestrator
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
When a vehicle is approved for CNG conversion, creates a SAP maintenance order, schedules conversion with the vendor via ServiceNow, updates fleet records, and notifies the sustainability team in Microsoft Teams.
naftiko: "0.5"
info:
label: "CNG Fleet Conversion Orchestrator"
description: "When a vehicle is approved for CNG conversion, creates a SAP maintenance order, schedules conversion with the vendor via ServiceNow, updates fleet records, and notifies the sustainability team in Microsoft Teams."
tags:
- fleet
- sustainability
- cng
- sap
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: fleet-conversion
port: 8080
tools:
- name: schedule-cng-conversion
description: "Given a vehicle ID and conversion vendor, create SAP order, schedule with vendor, update fleet, and notify team."
inputParameters:
- name: vehicle_id
in: body
type: string
description: "The fleet vehicle identifier."
- name: vendor_id
in: body
type: string
description: "The CNG conversion vendor ID."
- name: target_date
in: body
type: string
description: "Target conversion date in YYYY-MM-DD format."
steps:
- name: create-sap-order
type: call
call: "sap.create-maintenance-order"
with:
equipment_id: "{{vehicle_id}}"
order_type: "CNG_CONVERSION"
vendor: "{{vendor_id}}"
- name: schedule-vendor
type: call
call: "servicenow.create-request"
with:
short_description: "CNG conversion: {{vehicle_id}}"
category: "fleet_conversion"
vendor: "{{vendor_id}}"
target_date: "{{target_date}}"
- name: update-fleet-record
type: call
call: "fleet.update-vehicle"
with:
vehicle_id: "{{vehicle_id}}"
fuel_type_pending: "CNG"
conversion_order: "{{create-sap-order.order_number}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "sustainability-fleet"
text: "CNG conversion scheduled for {{vehicle_id}} on {{target_date}}. SAP order: {{create-sap-order.order_number}}. Vendor: {{vendor_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://wm-s4.sap.com/sap/opu/odata/sap/API_MAINTENANCEORDER_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://wm.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: fleet
baseUri: "https://api.wm.com/fleet/v2"
authentication:
type: bearer
token: "$secrets.fleet_api_token"
resources:
- name: vehicles
path: "/vehicles/{{vehicle_id}}"
inputParameters:
- name: vehicle_id
in: path
operations:
- name: update-vehicle
method: PATCH
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
When a commercial customer contract approaches renewal, retrieves contract details from Salesforce, generates a renewal proposal in Google Sheets, sends it via SendGrid, and creates a follow-up task in Salesforce.
naftiko: "0.5"
info:
label: "Commercial Contract Renewal Pipeline"
description: "When a commercial customer contract approaches renewal, retrieves contract details from Salesforce, generates a renewal proposal in Google Sheets, sends it via SendGrid, and creates a follow-up task in Salesforce."
tags:
- sales
- contracts
- salesforce
- google-sheets
- sendgrid
capability:
exposes:
- type: mcp
namespace: contract-renewal
port: 8080
tools:
- name: initiate-contract-renewal
description: "Given a Salesforce contract ID, generate renewal proposal, send to customer, and create follow-up."
inputParameters:
- name: contract_id
in: body
type: string
description: "The Salesforce contract record ID."
- name: account_id
in: body
type: string
description: "The Salesforce account ID."
steps:
- name: get-contract
type: call
call: "salesforce.get-contract"
with:
contract_id: "{{contract_id}}"
- name: get-account
type: call
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
- name: create-proposal
type: call
call: "gsheets.create-spreadsheet"
with:
title: "Renewal Proposal: {{get-account.name}} - {{get-contract.end_date}}"
- name: send-proposal
type: call
call: "sendgrid.send-email"
with:
to: "{{get-account.contact_email}}"
template_id: "contract_renewal_proposal"
dynamic_data:
customer_name: "{{get-account.name}}"
contract_end: "{{get-contract.end_date}}"
proposal_url: "{{create-proposal.url}}"
- name: create-task
type: call
call: "salesforce.create-task"
with:
subject: "Follow up on renewal: {{get-account.name}}"
due_date_offset: "7"
priority: "High"
consumes:
- type: http
namespace: salesforce
baseUri: "https://wm.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contracts
path: "/sobjects/Contract/{{contract_id}}"
inputParameters:
- name: contract_id
in: path
operations:
- name: get-contract
method: GET
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
- name: tasks
path: "/sobjects/Task"
operations:
- name: create-task
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: spreadsheets
path: "/spreadsheets"
operations:
- name: create-spreadsheet
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
Retrieves a Confluence wiki page.
naftiko: "0.5"
info:
label: "Confluence Page Viewer"
description: "Retrieves a Confluence wiki page."
tags:
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-confluence
description: "Retrieves a Confluence wiki page."
inputParameters:
- name: entity_id
in: body
type: string
description: "The confluence page viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.waste-management.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: confluence
path: "/confluence/page/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-confluence
method: GET
Retrieves a Confluence wiki page by ID, returning title, content, author, and space key.
naftiko: "0.5"
info:
label: "Confluence Wiki Page Lookup"
description: "Retrieves a Confluence wiki page by ID, returning title, content, author, and space key."
tags:
- collaboration
- confluence
- documentation
capability:
exposes:
- type: mcp
namespace: wiki
port: 8080
tools:
- name: get-wiki-page
description: "Fetch a Confluence page by ID. Returns title, author, and space key."
inputParameters:
- name: page_id
in: body
type: string
description: "The Confluence page ID."
call: "confluence.get-page"
with:
page_id: "{{page_id}}"
outputParameters:
- name: title
type: string
mapping: "$.title"
- name: space_key
type: string
mapping: "$.space.key"
- name: author
type: string
mapping: "$.version.by.displayName"
consumes:
- type: http
namespace: confluence
baseUri: "https://wm.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: content
path: "/content/{{page_id}}?expand=space,version"
inputParameters:
- name: page_id
in: path
operations:
- name: get-page
method: GET
Tracks container placement, retrieval, and swap requests by querying the operations system, updating container inventory in SAP, and logging changes in ServiceNow.
naftiko: "0.5"
info:
label: "Container Inventory Manager"
description: "Tracks container placement, retrieval, and swap requests by querying the operations system, updating container inventory in SAP, and logging changes in ServiceNow."
tags:
- operations
- containers
- sap
- servicenow
capability:
exposes:
- type: mcp
namespace: container-ops
port: 8080
tools:
- name: process-container-action
description: "Given a customer ID, container type, and action, process the container change across operations, SAP, and ServiceNow."
inputParameters:
- name: customer_id
in: body
type: string
description: "The customer account identifier."
- name: container_type
in: body
type: string
description: "Container type (e.g., 2yd_front_load, 8yd_front_load, 30yd_rolloff)."
- name: action
in: body
type: string
description: "Action to perform (place, retrieve, swap)."
- name: service_address
in: body
type: string
description: "The service location address."
steps:
- name: update-inventory
type: call
call: "sap.update-equipment"
with:
customer_id: "{{customer_id}}"
equipment_type: "{{container_type}}"
action: "{{action}}"
location: "{{service_address}}"
- name: create-work-order
type: call
call: "servicenow.create-work-order"
with:
short_description: "Container {{action}}: {{container_type}} at {{service_address}}"
category: "container_operations"
customer: "{{customer_id}}"
- name: schedule-dispatch
type: call
call: "dispatch.schedule-service"
with:
customer_id: "{{customer_id}}"
service_type: "container_{{action}}"
address: "{{service_address}}"
container_type: "{{container_type}}"
consumes:
- type: http
namespace: sap
baseUri: "https://wm-s4.sap.com/sap/opu/odata/sap/API_EQUIPMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: equipment
path: "/A_Equipment"
operations:
- name: update-equipment
method: POST
- type: http
namespace: servicenow
baseUri: "https://wm.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: work-orders
path: "/table/wm_order"
operations:
- name: create-work-order
method: POST
- type: http
namespace: dispatch
baseUri: "https://api.wm.com/dispatch/v2"
authentication:
type: bearer
token: "$secrets.dispatch_api_token"
resources:
- name: services
path: "/schedule"
operations:
- name: schedule-service
method: POST
Retrieves weight data for a waste container.
naftiko: "0.5"
info:
label: "Container Weight Lookup"
description: "Retrieves weight data for a waste container."
tags:
- operations
- sustainability
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: get-container
description: "Retrieves weight data for a waste container."
inputParameters:
- name: entity_id
in: body
type: string
description: "The container weight lookup identifier."
call: "operations-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: operations-api
baseUri: "https://api.waste-management.com/operations/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: container
path: "/container/weight/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-container
method: GET
Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.
naftiko: "0.5"
info:
label: "Cross-Functional Project Kickoff Orchestrator"
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
tags:
- project-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: project-management
port: 8080
tools:
- name: run-cross-functional-project-kickoff-orchestrator
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
When a customer calls about billing, retrieves the account from Salesforce, pulls the latest invoice from SAP, and creates a ServiceNow case with the combined details.
naftiko: "0.5"
info:
label: "Customer Billing Inquiry Handler"
description: "When a customer calls about billing, retrieves the account from Salesforce, pulls the latest invoice from SAP, and creates a ServiceNow case with the combined details."
tags:
- billing
- salesforce
- sap
- servicenow
- customer-service
capability:
exposes:
- type: mcp
namespace: customer-billing
port: 8080
tools:
- name: handle-billing-inquiry
description: "Given a customer account ID, retrieve account details, latest invoice, and create a service case."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce customer account ID."
- name: inquiry_description
in: body
type: string
description: "Description of the billing inquiry."
steps:
- name: get-account
type: call
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
- name: get-invoice
type: call
call: "sap.get-latest-invoice"
with:
customer_number: "{{get-account.sap_customer_number}}"
- name: create-case
type: call
call: "servicenow.create-incident"
with:
short_description: "Billing inquiry: {{get-account.name}}"
category: "billing"
description: "Customer: {{get-account.name}}. Latest invoice: {{get-invoice.invoice_number}} for {{get-invoice.amount}} {{get-invoice.currency}}. Inquiry: {{inquiry_description}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://wm.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: sap
baseUri: "https://wm-s4.sap.com/sap/opu/odata/sap/API_BILLING_DOCUMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: invoices
path: "/A_BillingDocument?$filter=SoldToParty eq '{{customer_number}}'&$top=1&$orderby=BillingDocumentDate desc"
inputParameters:
- name: customer_number
in: query
operations:
- name: get-latest-invoice
method: GET
- type: http
namespace: servicenow
baseUri: "https://wm.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
Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.
naftiko: "0.5"
info:
label: "Customer Data Privacy Request Handler"
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
tags:
- compliance
- privacy
- customer-service
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-customer-data-privacy-request-handler
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.
naftiko: "0.5"
info:
label: "Customer Journey Mapping Orchestrator"
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
tags:
- customer-experience
- analytics
- product-management
capability:
exposes:
- type: mcp
namespace: customer-experience
port: 8080
tools:
- name: run-customer-journey-mapping-orchestrator
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
When a customer submits a service request, creates a Salesforce case, schedules a pickup via the dispatch system, sends confirmation via SendGrid, and updates the customer portal.
naftiko: "0.5"
info:
label: "Customer Service Request Pipeline"
description: "When a customer submits a service request, creates a Salesforce case, schedules a pickup via the dispatch system, sends confirmation via SendGrid, and updates the customer portal."
tags:
- customer-service
- salesforce
- sendgrid
- dispatch
capability:
exposes:
- type: mcp
namespace: service-requests
port: 8080
tools:
- name: process-service-request
description: "Given a customer ID and request type, create a case, schedule pickup, and send confirmation."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Salesforce customer account ID."
- name: request_type
in: body
type: string
description: "Type of service request (extra_pickup, container_swap, missed_pickup)."
- name: service_address
in: body
type: string
description: "The service location address."
steps:
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "Service request: {{request_type}} for {{customer_id}}"
priority: "Medium"
type: "{{request_type}}"
- name: schedule-pickup
type: call
call: "dispatch.schedule-service"
with:
customer_id: "{{customer_id}}"
service_type: "{{request_type}}"
address: "{{service_address}}"
- name: send-confirmation
type: call
call: "sendgrid.send-email"
with:
to: "{{customer_id}}"
template_id: "service_request_confirmation"
dynamic_data:
request_type: "{{request_type}}"
scheduled_date: "{{schedule-pickup.date}}"
case_number: "{{create-case.id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://wm.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: dispatch
baseUri: "https://api.wm.com/dispatch/v2"
authentication:
type: bearer
token: "$secrets.dispatch_api_token"
resources:
- name: services
path: "/schedule"
operations:
- name: schedule-service
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.
naftiko: "0.5"
info:
label: "Data Governance Review Orchestrator"
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
tags:
- data-governance
- compliance
- analytics
capability:
exposes:
- type: mcp
namespace: data-governance
port: 8080
tools:
- name: run-data-governance-review-orchestrator
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries Datadog for fleet vehicle telemetry metrics including engine diagnostics, fuel efficiency, and idle time.
naftiko: "0.5"
info:
label: "Datadog Fleet Telemetry Monitor"
description: "Queries Datadog for fleet vehicle telemetry metrics including engine diagnostics, fuel efficiency, and idle time."
tags:
- monitoring
- datadog
- fleet
- telemetry
capability:
exposes:
- type: mcp
namespace: fleet-telemetry
port: 8080
tools:
- name: get-fleet-telemetry
description: "Fetch Datadog fleet telemetry metrics for a time window."
inputParameters:
- name: vehicle_id
in: body
type: string
description: "The fleet vehicle identifier."
- name: from_ts
in: body
type: integer
description: "Start timestamp in epoch seconds."
- name: to_ts
in: body
type: integer
description: "End timestamp in epoch seconds."
call: "datadog.query-metrics"
with:
query: "avg:fleet.fuel_efficiency{vehicle_id:{{vehicle_id}}}"
from: "{{from_ts}}"
to: "{{to_ts}}"
outputParameters:
- name: fuel_efficiency
type: number
mapping: "$.series[0].pointlist[-1][1]"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: metrics
path: "/query"
operations:
- name: query-metrics
method: GET
Retrieves a Datadog monitor status.
naftiko: "0.5"
info:
label: "Datadog Monitor Viewer"
description: "Retrieves a Datadog monitor status."
tags:
- monitoring
- datadog
capability:
exposes:
- type: mcp
namespace: monitoring
port: 8080
tools:
- name: get-datadog
description: "Retrieves a Datadog monitor status."
inputParameters:
- name: entity_id
in: body
type: string
description: "The datadog monitor viewer identifier."
call: "monitoring-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: monitoring-api
baseUri: "https://api.waste-management.com/monitoring/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: datadog
path: "/datadog/monitor/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-datadog
method: GET
Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.
naftiko: "0.5"
info:
label: "Digital Transformation Progress Orchestrator"
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
tags:
- strategy
- analytics
- project-management
capability:
exposes:
- type: mcp
namespace: strategy
port: 8080
tools:
- name: run-digital-transformation-progress-orchestrator
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.
naftiko: "0.5"
info:
label: "Disaster Recovery Test Orchestrator"
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
tags:
- infrastructure
- operations
- compliance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-disaster-recovery-test-orchestrator
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Checks remaining capacity at a disposal site.
naftiko: "0.5"
info:
label: "Disposal Site Capacity"
description: "Checks remaining capacity at a disposal site."
tags:
- operations
- planning
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: get-disposal
description: "Checks remaining capacity at a disposal site."
inputParameters:
- name: entity_id
in: body
type: string
description: "The disposal site capacity identifier."
call: "operations-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: operations-api
baseUri: "https://api.waste-management.com/operations/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: disposal
path: "/disposal/site/capacity/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-disposal
method: GET
Aggregates driver behavior data from the telematics system, safety incidents from ServiceNow, and training records from the LMS, then generates a safety scorecard in Google Sheets and notifies managers.
naftiko: "0.5"
info:
label: "Driver Safety Scorecard Builder"
description: "Aggregates driver behavior data from the telematics system, safety incidents from ServiceNow, and training records from the LMS, then generates a safety scorecard in Google Sheets and notifies managers."
tags:
- safety
- fleet
- servicenow
- google-sheets
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: driver-safety
port: 8080
tools:
- name: build-safety-scorecard
description: "Given a driver ID and period, aggregate safety data and generate a scorecard."
inputParameters:
- name: driver_id
in: body
type: string
description: "The driver employee identifier."
- name: period
in: body
type: string
description: "Reporting period (e.g., 2026-Q1)."
steps:
- name: get-telematics
type: call
call: "fleet.get-driver-events"
with:
driver_id: "{{driver_id}}"
period: "{{period}}"
- name: get-incidents
type: call
call: "servicenow.query-incidents"
with:
query: "driver_id={{driver_id}}^period={{period}}"
category: "safety"
- name: update-scorecard
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "driver_safety_scorecards"
range: "Scorecards!A:F"
values:
- "{{driver_id}}"
- "{{period}}"
- "{{get-telematics.hard_brakes}}"
- "{{get-telematics.speeding_events}}"
- "{{get-incidents.count}}"
- "{{get-telematics.safety_score}}"
- name: notify-manager
type: call
call: "msteams.send-message"
with:
channel_id: "fleet-safety"
text: "Safety scorecard updated for driver {{driver_id}} ({{period}}). Score: {{get-telematics.safety_score}}. Incidents: {{get-incidents.count}}"
consumes:
- type: http
namespace: fleet
baseUri: "https://api.wm.com/fleet/v2"
authentication:
type: bearer
token: "$secrets.fleet_api_token"
resources:
- name: driver-events
path: "/drivers/{{driver_id}}/events"
inputParameters:
- name: driver_id
in: path
operations:
- name: get-driver-events
method: GET
- type: http
namespace: servicenow
baseUri: "https://wm.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: query-incidents
method: GET
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: values
path: "/spreadsheets/{{spreadsheet_id}}/values/{{range}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-row
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
When emission credits become available, retrieves credit balance from the sustainability system, creates a trade listing in the marketplace, records the transaction in SAP, and notifies the sustainability team in Slack.
naftiko: "0.5"
info:
label: "Emission Credit Trading Workflow"
description: "When emission credits become available, retrieves credit balance from the sustainability system, creates a trade listing in the marketplace, records the transaction in SAP, and notifies the sustainability team in Slack."
tags:
- sustainability
- emissions
- sap
- slack
- carbon-credits
capability:
exposes:
- type: mcp
namespace: emissions-trading
port: 8080
tools:
- name: list-emission-credits
description: "Given a site ID and credit type, check balance, list for trade, record in SAP, and notify team."
inputParameters:
- name: site_id
in: body
type: string
description: "The facility site identifier."
- name: credit_type
in: body
type: string
description: "Type of emission credit (carbon, methane, renewable)."
- name: quantity
in: body
type: number
description: "Number of credits to list."
steps:
- name: check-balance
type: call
call: "sustainability.get-credit-balance"
with:
site_id: "{{site_id}}"
credit_type: "{{credit_type}}"
- name: create-listing
type: call
call: "sustainability.create-trade-listing"
with:
site_id: "{{site_id}}"
credit_type: "{{credit_type}}"
quantity: "{{quantity}}"
- name: record-in-sap
type: call
call: "sap.create-journal-entry"
with:
description: "Emission credit listing: {{quantity}} {{credit_type}} from {{site_id}}"
amount: "{{create-listing.estimated_value}}"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "sustainability-trading"
text: "Emission credits listed: {{quantity}} {{credit_type}} from site {{site_id}}. Estimated value: {{create-listing.estimated_value}}. Listing ID: {{create-listing.id}}"
consumes:
- type: http
namespace: sustainability
baseUri: "https://api.wm.com/sustainability/v1"
authentication:
type: bearer
token: "$secrets.sustainability_api_token"
resources:
- name: credits
path: "/credits/{{site_id}}"
inputParameters:
- name: site_id
in: path
operations:
- name: get-credit-balance
method: GET
- name: trade-listings
path: "/trade-listings"
operations:
- name: create-trade-listing
method: POST
- type: http
namespace: sap
baseUri: "https://wm-s4.sap.com/sap/opu/odata/sap/API_FINANCIALACCOUNTING_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: journal-entries
path: "/A_JournalEntry"
operations:
- name: create-journal-entry
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.
naftiko: "0.5"
info:
label: "Employee Offboarding Orchestrator"
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
tags:
- hr
- identity
- operations
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: run-employee-offboarding-orchestrator
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, assigns safety training in the LMS, 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, assigns safety training in the LMS, 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 across ServiceNow, SharePoint, and Microsoft Teams."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday worker ID for the new hire."
- name: start_date
in: body
type: string
description: "The employee start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "The department the new hire is joining."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{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"
- 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.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to Waste Management, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. Documents: {{provision-folder.url}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://wm.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.
naftiko: "0.5"
info:
label: "Executive Dashboard Refresh Orchestrator"
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
tags:
- analytics
- power-bi
- business
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-executive-dashboard-refresh-orchestrator
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
When a vehicle reaches a mileage threshold, creates a maintenance work order in ServiceNow, schedules an appointment in the fleet system, orders parts via SAP, and notifies the fleet manager in Microsoft Teams.
naftiko: "0.5"
info:
label: "Fleet Maintenance Scheduler"
description: "When a vehicle reaches a mileage threshold, creates a maintenance work order in ServiceNow, schedules an appointment in the fleet system, orders parts via SAP, and notifies the fleet manager in Microsoft Teams."
tags:
- fleet
- maintenance
- servicenow
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: fleet-maintenance
port: 8080
tools:
- name: schedule-maintenance
description: "Given a vehicle ID and maintenance type, create work order, schedule appointment, order parts, and notify manager."
inputParameters:
- name: vehicle_id
in: body
type: string
description: "The fleet vehicle identifier."
- name: maintenance_type
in: body
type: string
description: "Type of maintenance (preventive, corrective, inspection)."
- name: mileage
in: body
type: integer
description: "Current vehicle mileage."
steps:
- name: create-work-order
type: call
call: "servicenow.create-work-order"
with:
short_description: "Fleet maintenance: {{vehicle_id}} - {{maintenance_type}}"
category: "fleet_maintenance"
description: "Vehicle {{vehicle_id}} at {{mileage}} miles. Maintenance type: {{maintenance_type}}"
- name: schedule-appointment
type: call
call: "fleet.schedule-service"
with:
vehicle_id: "{{vehicle_id}}"
service_type: "{{maintenance_type}}"
work_order: "{{create-work-order.number}}"
- name: order-parts
type: call
call: "sap.create-purchase-requisition"
with:
material_group: "fleet_parts"
vehicle_id: "{{vehicle_id}}"
maintenance_type: "{{maintenance_type}}"
- name: notify-manager
type: call
call: "msteams.send-message"
with:
channel_id: "fleet-maintenance"
text: "Maintenance scheduled for {{vehicle_id}} ({{maintenance_type}}) at {{mileage}} mi. Work order: {{create-work-order.number}}. Service date: {{schedule-appointment.date}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://wm.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: work-orders
path: "/table/wm_order"
operations:
- name: create-work-order
method: POST
- type: http
namespace: fleet
baseUri: "https://api.wm.com/fleet/v2"
authentication:
type: bearer
token: "$secrets.fleet_api_token"
resources:
- name: service
path: "/vehicles/{{vehicle_id}}/service"
inputParameters:
- name: vehicle_id
in: path
operations:
- name: schedule-service
method: POST
- type: http
namespace: sap
baseUri: "https://wm-s4.sap.com/sap/opu/odata/sap/API_PURCHASEREQ_PROCESS_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: requisitions
path: "/A_PurchaseRequisitionHeader"
operations:
- name: create-purchase-requisition
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Aggregates fleet fuel consumption data from the telematics system and Snowflake, calculates efficiency metrics, and updates the fleet management dashboard.
naftiko: "0.5"
info:
label: "Fuel Consumption Tracker"
description: "Aggregates fleet fuel consumption data from the telematics system and Snowflake, calculates efficiency metrics, and updates the fleet management dashboard."
tags:
- fleet
- fuel
- snowflake
- sustainability
capability:
exposes:
- type: mcp
namespace: fuel-management
port: 8080
tools:
- name: get-fuel-report
description: "Given a fleet zone and date range, aggregate fuel consumption and efficiency metrics."
inputParameters:
- name: zone_id
in: body
type: string
description: "The fleet service zone identifier."
- 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."
steps:
- name: query-fuel-data
type: call
call: "snowflake.execute-query"
with:
statement: "SELECT vehicle_id, SUM(gallons) as total_gallons, SUM(miles) as total_miles, SUM(miles)/SUM(gallons) as mpg FROM fleet.fuel_transactions WHERE zone_id = '{{zone_id}}' AND transaction_date BETWEEN '{{start_date}}' AND '{{end_date}}' GROUP BY vehicle_id"
database: "WM_FLEET"
- name: refresh-dashboard
type: call
call: "powerbi.trigger-refresh"
with:
group_id: "fleet_workspace"
dataset_id: "fuel_consumption"
consumes:
- type: http
namespace: snowflake
baseUri: "https://wm.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: "/groups/{{group_id}}/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: group_id
in: path
- name: dataset_id
in: path
operations:
- name: trigger-refresh
method: POST
Retrieves GitHub repository information.
naftiko: "0.5"
info:
label: "GitHub Repo Viewer"
description: "Retrieves GitHub repository information."
tags:
- engineering
- github
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-github
description: "Retrieves GitHub repository information."
inputParameters:
- name: entity_id
in: body
type: string
description: "The github repo viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.waste-management.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: github
path: "/github/repo/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-github
method: GET
Retrieves GitHub repository statistics including star count, fork count, and open issues.
naftiko: "0.5"
info:
label: "GitHub Repository Stats"
description: "Retrieves GitHub repository statistics including star count, fork count, and open issues."
tags:
- engineering
- github
- devops
capability:
exposes:
- type: mcp
namespace: source-control
port: 8080
tools:
- name: get-repo-stats
description: "Fetch GitHub repository statistics for a given org and repo name."
inputParameters:
- name: org
in: body
type: string
description: "The GitHub organization name."
- name: repo
in: body
type: string
description: "The repository name."
call: "github.get-repo"
with:
org: "{{org}}"
repo: "{{repo}}"
outputParameters:
- name: stars
type: integer
mapping: "$.stargazers_count"
- name: forks
type: integer
mapping: "$.forks_count"
- name: open_issues
type: integer
mapping: "$.open_issues_count"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: repos
path: "/repos/{{org}}/{{repo}}"
inputParameters:
- name: org
in: path
- name: repo
in: path
operations:
- name: get-repo
method: GET
Retrieves a document from Google Drive by file ID, returning metadata including name, owner, last modified date, and sharing permissions.
naftiko: "0.5"
info:
label: "Google Drive Document Retrieval"
description: "Retrieves a document from Google Drive by file ID, returning metadata including name, owner, last modified date, and sharing permissions."
tags:
- collaboration
- google-drive
- documents
capability:
exposes:
- type: mcp
namespace: document-mgmt
port: 8080
tools:
- name: get-drive-file
description: "Fetch a Google Drive file's metadata by file ID."
inputParameters:
- name: file_id
in: body
type: string
description: "The Google Drive file identifier."
call: "gdrive.get-file"
with:
file_id: "{{file_id}}"
outputParameters:
- name: name
type: string
mapping: "$.name"
- name: owner
type: string
mapping: "$.owners[0].displayName"
- name: modified_time
type: string
mapping: "$.modifiedTime"
consumes:
- type: http
namespace: gdrive
baseUri: "https://www.googleapis.com/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files/{{file_id}}?fields=name,owners,modifiedTime"
inputParameters:
- name: file_id
in: path
operations:
- name: get-file
method: GET
Retrieves a file from Google Drive.
naftiko: "0.5"
info:
label: "Google Drive File Viewer"
description: "Retrieves a file from Google Drive."
tags:
- collaboration
- google-drive
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-google
description: "Retrieves a file from Google Drive."
inputParameters:
- name: entity_id
in: body
type: string
description: "The google drive file viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.waste-management.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: google
path: "/google/drive/file/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-google
method: GET
Geocodes a service address using Google Maps API and returns latitude, longitude, and formatted address.
naftiko: "0.5"
info:
label: "Google Maps Geocode Address"
description: "Geocodes a service address using Google Maps API and returns latitude, longitude, and formatted address."
tags:
- routing
- google-maps
- geocoding
capability:
exposes:
- type: mcp
namespace: geocoding
port: 8080
tools:
- name: geocode-address
description: "Geocode a street address using Google Maps. Returns coordinates and formatted address."
inputParameters:
- name: address
in: body
type: string
description: "The street address to geocode."
call: "gmaps.geocode"
with:
address: "{{address}}"
outputParameters:
- name: latitude
type: number
mapping: "$.results[0].geometry.location.lat"
- name: longitude
type: number
mapping: "$.results[0].geometry.location.lng"
- name: formatted_address
type: string
mapping: "$.results[0].formatted_address"
consumes:
- type: http
namespace: gmaps
baseUri: "https://maps.googleapis.com/maps/api"
authentication:
type: apiKey
key: "$secrets.google_maps_api_key"
resources:
- name: geocode
path: "/geocode/json?address={{address}}"
inputParameters:
- name: address
in: query
operations:
- name: geocode
method: GET
Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.
naftiko: "0.5"
info:
label: "Infrastructure Capacity Planning Orchestrator"
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
tags:
- infrastructure
- planning
- finance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-infrastructure-capacity-planning-orchestrator
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.
naftiko: "0.5"
info:
label: "IT Change Management Orchestrator"
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
tags:
- it
- servicenow
- operations
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: run-it-change-management-orchestrator
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed IT Change Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves the current sprint status from Jira for a given project board.
naftiko: "0.5"
info:
label: "Jira Sprint Status"
description: "Retrieves the current sprint status from Jira for a given project board."
tags:
- engineering
- jira
- agile
capability:
exposes:
- type: mcp
namespace: project-mgmt
port: 8080
tools:
- name: get-sprint-status
description: "Fetch active sprint details from Jira for a given board ID."
inputParameters:
- name: board_id
in: body
type: string
description: "The Jira board identifier."
call: "jira.get-active-sprint"
with:
board_id: "{{board_id}}"
outputParameters:
- name: sprint_name
type: string
mapping: "$.values[0].name"
- name: start_date
type: string
mapping: "$.values[0].startDate"
- name: end_date
type: string
mapping: "$.values[0].endDate"
- name: state
type: string
mapping: "$.values[0].state"
consumes:
- type: http
namespace: jira
baseUri: "https://wm.atlassian.net/rest/agile/1.0"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_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 ticket by issue key.
naftiko: "0.5"
info:
label: "Jira Ticket Viewer"
description: "Retrieves a Jira ticket by issue key."
tags:
- engineering
- jira
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-jira
description: "Retrieves a Jira ticket by issue key."
inputParameters:
- name: entity_id
in: body
type: string
description: "The jira ticket viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.waste-management.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: jira
path: "/jira/ticket/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-jira
method: GET
Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.
naftiko: "0.5"
info:
label: "Knowledge Base Refresh Orchestrator"
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
tags:
- knowledge-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: knowledge-management
port: 8080
tools:
- name: run-knowledge-base-refresh-orchestrator
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Checks landfill capacity levels via the operations API, updates the capacity tracking spreadsheet in Google Sheets, and sends alerts to Slack when capacity exceeds thresholds.
naftiko: "0.5"
info:
label: "Landfill Capacity Monitor"
description: "Checks landfill capacity levels via the operations API, updates the capacity tracking spreadsheet in Google Sheets, and sends alerts to Slack when capacity exceeds thresholds."
tags:
- operations
- sustainability
- google-sheets
- slack
- landfill
capability:
exposes:
- type: mcp
namespace: landfill-ops
port: 8080
tools:
- name: check-landfill-capacity
description: "Given a landfill site ID, check capacity, update tracker, and alert if threshold exceeded."
inputParameters:
- name: site_id
in: body
type: string
description: "The landfill site identifier."
- name: alert_threshold
in: body
type: number
description: "Capacity percentage threshold for alerts (e.g., 85)."
steps:
- name: get-capacity
type: call
call: "operations.get-site-capacity"
with:
site_id: "{{site_id}}"
- name: update-tracker
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "landfill_capacity_tracker"
range: "Capacity!A:D"
values:
- "{{site_id}}"
- "{{get-capacity.current_tons}}"
- "{{get-capacity.max_tons}}"
- "{{get-capacity.utilization_pct}}"
- name: alert-if-high
type: call
call: "slack.post-message"
with:
channel: "landfill-ops"
text: "Landfill {{site_id}} capacity: {{get-capacity.utilization_pct}}% ({{get-capacity.current_tons}}/{{get-capacity.max_tons}} tons). Threshold: {{alert_threshold}}%"
consumes:
- type: http
namespace: operations
baseUri: "https://api.wm.com/operations/v1"
authentication:
type: bearer
token: "$secrets.operations_api_token"
resources:
- name: sites
path: "/sites/{{site_id}}/capacity"
inputParameters:
- name: site_id
in: path
operations:
- name: get-site-capacity
method: GET
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: values
path: "/spreadsheets/{{spreadsheet_id}}/values/{{range}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-row
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Orchestrator"
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
tags:
- marketing
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: run-marketing-campaign-performance-orchestrator
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Sends a formatted notification message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notification"
description: "Sends a formatted notification message to a Microsoft Teams channel."
tags:
- collaboration
- microsoft-teams
- messaging
capability:
exposes:
- type: mcp
namespace: teams-messaging
port: 8080
tools:
- name: send-teams-notification
description: "Send a notification message to a Microsoft Teams channel."
inputParameters:
- name: team_id
in: body
type: string
description: "The Microsoft Teams team ID."
- name: channel_id
in: body
type: string
description: "The Microsoft Teams channel ID."
- name: message
in: body
type: string
description: "The notification message text."
call: "msteams.send-message"
with:
team_id: "{{team_id}}"
channel_id: "{{channel_id}}"
text: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Sends a message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Message Sender"
description: "Sends a message to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-microsoft
description: "Sends a message to a Microsoft Teams channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The microsoft teams message sender identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.waste-management.com/communications/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: microsoft
path: "/microsoft/teams/message/sender/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-microsoft
method: GET
Queries New Relic for infrastructure health metrics for Waste Management's fleet management and customer portal applications.
naftiko: "0.5"
info:
label: "New Relic Infrastructure Health"
description: "Queries New Relic for infrastructure health metrics for Waste Management's fleet management and customer portal applications."
tags:
- monitoring
- new-relic
- infrastructure
capability:
exposes:
- type: mcp
namespace: infra-monitoring
port: 8080
tools:
- name: get-app-health
description: "Fetch New Relic application health metrics including response time, throughput, and error rate."
inputParameters:
- name: app_id
in: body
type: string
description: "The New Relic application ID."
call: "newrelic.get-application"
with:
app_id: "{{app_id}}"
outputParameters:
- name: response_time
type: number
mapping: "$.application.application_summary.response_time"
- name: throughput
type: number
mapping: "$.application.application_summary.throughput"
- name: error_rate
type: number
mapping: "$.application.application_summary.error_rate"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
key: "$secrets.newrelic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-application
method: GET
Triggers a Power BI dataset refresh.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresher"
description: "Triggers a Power BI dataset refresh."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-power
description: "Triggers a Power BI dataset refresh."
inputParameters:
- name: entity_id
in: body
type: string
description: "The power bi dashboard refresher identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.waste-management.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: power
path: "/power/bi/dashboard/refresher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-power
method: GET
Triggers a Power BI dataset refresh for a given workspace and dataset, used to update operational and financial dashboards.
naftiko: "0.5"
info:
label: "Power BI Report Refresh"
description: "Triggers a Power BI dataset refresh for a given workspace and dataset, used to update operational and financial dashboards."
tags:
- analytics
- power-bi
- reporting
capability:
exposes:
- type: mcp
namespace: bi-reporting
port: 8080
tools:
- name: refresh-dataset
description: "Trigger a Power BI dataset refresh for a workspace and dataset ID."
inputParameters:
- name: workspace_id
in: body
type: string
description: "The Power BI workspace (group) ID."
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID to refresh."
call: "powerbi.trigger-refresh"
with:
group_id: "{{workspace_id}}"
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/groups/{{group_id}}/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: group_id
in: path
- name: dataset_id
in: path
operations:
- name: trigger-refresh
method: POST
Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.
naftiko: "0.5"
info:
label: "Procurement Spend Analysis Orchestrator"
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
tags:
- procurement
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-procurement-spend-analysis-orchestrator
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.
naftiko: "0.5"
info:
label: "Quarterly Business Review Orchestrator"
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
tags:
- analytics
- business
- sharepoint
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-quarterly-business-review-orchestrator
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves contamination rate for recycling streams.
naftiko: "0.5"
info:
label: "Recycling Contamination Rate"
description: "Retrieves contamination rate for recycling streams."
tags:
- sustainability
- quality
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: get-recycling
description: "Retrieves contamination rate for recycling streams."
inputParameters:
- name: entity_id
in: body
type: string
description: "The recycling contamination rate identifier."
call: "sustainability-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: sustainability-api
baseUri: "https://api.waste-management.com/sustainability/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: recycling
path: "/recycling/contamination/rate/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-recycling
method: GET
Queries Snowflake for recycling rate data by material type and region for a given period.
naftiko: "0.5"
info:
label: "Recycling Rate Report"
description: "Queries Snowflake for recycling rate data by material type and region for a given period."
tags:
- sustainability
- recycling
- snowflake
- analytics
capability:
exposes:
- type: mcp
namespace: recycling-analytics
port: 8080
tools:
- name: get-recycling-rates
description: "Fetch recycling rates by material type and region for a given period from Snowflake."
inputParameters:
- name: period
in: body
type: string
description: "Reporting period (e.g., 2026-Q1)."
- name: region
in: body
type: string
description: "Geographic region code."
call: "snowflake.execute-query"
with:
statement: "SELECT material_type, SUM(tons_recycled)/SUM(tons_collected)*100 as recycling_rate FROM operations.recycling WHERE period = '{{period}}' AND region = '{{region}}' GROUP BY material_type ORDER BY recycling_rate DESC"
database: "WM_OPERATIONS"
outputParameters:
- name: results
type: array
mapping: "$.data"
consumes:
- type: http
namespace: snowflake
baseUri: "https://wm.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
When a regulatory filing deadline approaches, gathers environmental data from Snowflake, generates the compliance report, uploads to SharePoint, creates a ServiceNow task for review, and notifies the compliance team in Slack.
naftiko: "0.5"
info:
label: "Regulatory Compliance Filing Orchestrator"
description: "When a regulatory filing deadline approaches, gathers environmental data from Snowflake, generates the compliance report, uploads to SharePoint, creates a ServiceNow task for review, and notifies the compliance team in Slack."
tags:
- compliance
- regulatory
- snowflake
- sharepoint
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: regulatory-compliance
port: 8080
tools:
- name: prepare-compliance-filing
description: "Given a filing type and period, gather data, generate report, upload docs, create review task, and notify team."
inputParameters:
- name: filing_type
in: body
type: string
description: "Type of regulatory filing (EPA_annual, state_emissions, landfill_monitoring)."
- name: period
in: body
type: string
description: "Filing period (e.g., 2025)."
- name: site_id
in: body
type: string
description: "The facility or site identifier."
steps:
- name: gather-data
type: call
call: "snowflake.execute-query"
with:
statement: "SELECT * FROM compliance.{{filing_type}}_data WHERE period = '{{period}}' AND site_id = '{{site_id}}'"
database: "WM_COMPLIANCE"
- name: upload-report
type: call
call: "sharepoint.upload-file"
with:
site_id: "compliance_filings"
folder_path: "{{filing_type}}/{{period}}/{{site_id}}"
file_name: "{{filing_type}}_{{site_id}}_{{period}}.pdf"
- name: create-review-task
type: call
call: "servicenow.create-request"
with:
short_description: "Review {{filing_type}} filing for site {{site_id}} - {{period}}"
category: "regulatory_compliance"
priority: "High"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "compliance-filings"
text: "{{filing_type}} report prepared for site {{site_id}} ({{period}}). Document: {{upload-report.url}}. Review task: {{create-review-task.number}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://wm.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: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
- name: file_name
in: path
operations:
- name: upload-file
method: PUT
- type: http
namespace: servicenow
baseUri: "https://wm.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
When a residential customer signs up for service, creates the account in Salesforce, sets up billing in SAP, assigns to a route in the dispatch system, and sends a welcome email via SendGrid.
naftiko: "0.5"
info:
label: "Residential Service Scheduling Pipeline"
description: "When a residential customer signs up for service, creates the account in Salesforce, sets up billing in SAP, assigns to a route in the dispatch system, and sends a welcome email via SendGrid."
tags:
- customer-service
- salesforce
- sap
- sendgrid
- onboarding
capability:
exposes:
- type: mcp
namespace: residential-service
port: 8080
tools:
- name: onboard-residential-customer
description: "Given customer details, create account, set up billing, assign route, and send welcome email."
inputParameters:
- name: customer_name
in: body
type: string
description: "The customer full name."
- name: service_address
in: body
type: string
description: "The service location address."
- name: service_type
in: body
type: string
description: "Type of residential service (trash, recycling, yard_waste, all)."
- name: email
in: body
type: string
description: "Customer email address."
steps:
- name: create-account
type: call
call: "salesforce.create-account"
with:
name: "{{customer_name}}"
type: "Residential"
billing_address: "{{service_address}}"
- name: setup-billing
type: call
call: "sap.create-customer"
with:
name: "{{customer_name}}"
address: "{{service_address}}"
service_type: "{{service_type}}"
- name: assign-route
type: call
call: "dispatch.assign-address"
with:
address: "{{service_address}}"
service_type: "{{service_type}}"
customer_id: "{{create-account.id}}"
- name: send-welcome
type: call
call: "sendgrid.send-email"
with:
to: "{{email}}"
template_id: "residential_welcome"
dynamic_data:
customer_name: "{{customer_name}}"
service_type: "{{service_type}}"
pickup_day: "{{assign-route.pickup_day}}"
account_id: "{{create-account.id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://wm.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: sap
baseUri: "https://wm-s4.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: customers
path: "/A_BusinessPartner"
operations:
- name: create-customer
method: POST
- type: http
namespace: dispatch
baseUri: "https://api.wm.com/dispatch/v2"
authentication:
type: bearer
token: "$secrets.dispatch_api_token"
resources:
- name: assignments
path: "/route-assignments"
operations:
- name: assign-address
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
Retrieves collection schedule for a service route.
naftiko: "0.5"
info:
label: "Route Collection Schedule"
description: "Retrieves collection schedule for a service route."
tags:
- operations
- customer-service
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: get-route
description: "Retrieves collection schedule for a service route."
inputParameters:
- name: entity_id
in: body
type: string
description: "The route collection schedule identifier."
call: "operations-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: operations-api
baseUri: "https://api.waste-management.com/operations/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: route
path: "/route/collection/schedule/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-route
method: GET
Retrieves fleet vehicle locations from the GPS tracking system, runs route optimization via Google Maps, updates the dispatch schedule in ServiceNow, and notifies drivers via Microsoft Teams.
naftiko: "0.5"
info:
label: "Route Optimization Orchestrator"
description: "Retrieves fleet vehicle locations from the GPS tracking system, runs route optimization via Google Maps, updates the dispatch schedule in ServiceNow, and notifies drivers via Microsoft Teams."
tags:
- fleet
- routing
- google-maps
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: fleet-routing
port: 8080
tools:
- name: optimize-routes
description: "Given a service zone and date, retrieve vehicle positions, optimize routes, update dispatch, and notify drivers."
inputParameters:
- name: zone_id
in: body
type: string
description: "The service zone identifier."
- name: service_date
in: body
type: string
description: "The service date in YYYY-MM-DD format."
- name: vehicle_count
in: body
type: integer
description: "Number of available vehicles in the zone."
steps:
- name: get-stops
type: call
call: "dispatch.get-service-stops"
with:
zone_id: "{{zone_id}}"
date: "{{service_date}}"
- name: optimize
type: call
call: "gmaps.optimize-routes"
with:
origins: "{{get-stops.depot_address}}"
waypoints: "{{get-stops.stop_addresses}}"
vehicle_count: "{{vehicle_count}}"
- name: update-dispatch
type: call
call: "servicenow.update-schedule"
with:
zone_id: "{{zone_id}}"
date: "{{service_date}}"
routes: "{{optimize.optimized_routes}}"
- name: notify-drivers
type: call
call: "msteams.send-message"
with:
channel_id: "fleet-dispatch-{{zone_id}}"
text: "Routes optimized for {{service_date}} in zone {{zone_id}}. {{vehicle_count}} vehicles, {{get-stops.total_stops}} stops. Check ServiceNow for updated schedules."
consumes:
- type: http
namespace: dispatch
baseUri: "https://api.wm.com/dispatch/v2"
authentication:
type: bearer
token: "$secrets.dispatch_api_token"
resources:
- name: service-stops
path: "/zones/{{zone_id}}/stops"
inputParameters:
- name: zone_id
in: path
operations:
- name: get-service-stops
method: GET
- type: http
namespace: gmaps
baseUri: "https://routes.googleapis.com/distanceMatrix/v2"
authentication:
type: apiKey
key: "$secrets.google_maps_api_key"
resources:
- name: routes
path: ":computeRouteMatrix"
operations:
- name: optimize-routes
method: POST
- type: http
namespace: servicenow
baseUri: "https://wm.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: schedules
path: "/table/dispatch_schedule"
operations:
- name: update-schedule
method: PATCH
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
When a safety incident occurs, creates a ServiceNow incident, logs the event in Salesforce for the customer account, notifies the safety team in Microsoft Teams, and uploads documentation to SharePoint.
naftiko: "0.5"
info:
label: "Safety Incident Reporting Pipeline"
description: "When a safety incident occurs, creates a ServiceNow incident, logs the event in Salesforce for the customer account, notifies the safety team in Microsoft Teams, and uploads documentation to SharePoint."
tags:
- safety
- servicenow
- salesforce
- microsoft-teams
- sharepoint
capability:
exposes:
- type: mcp
namespace: safety-reporting
port: 8080
tools:
- name: report-safety-incident
description: "Given incident details, create ServiceNow ticket, log in Salesforce, notify safety team, and upload docs."
inputParameters:
- name: incident_type
in: body
type: string
description: "Type of safety incident (vehicle_accident, injury, spill, near_miss)."
- name: location
in: body
type: string
description: "Location of the incident."
- name: vehicle_id
in: body
type: string
description: "The fleet vehicle ID involved, if applicable."
- name: description
in: body
type: string
description: "Detailed description of the incident."
steps:
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Safety incident: {{incident_type}} at {{location}}"
priority: "1"
category: "safety"
description: "{{description}}. Vehicle: {{vehicle_id}}"
- name: log-in-salesforce
type: call
call: "salesforce.create-case"
with:
subject: "Safety incident: {{incident_type}}"
priority: "High"
description: "Location: {{location}}. Vehicle: {{vehicle_id}}. ServiceNow: {{create-incident.number}}"
- name: notify-safety-team
type: call
call: "msteams.send-message"
with:
channel_id: "safety-alerts"
text: "SAFETY ALERT: {{incident_type}} at {{location}}. Vehicle: {{vehicle_id}}. ServiceNow: {{create-incident.number}}. Immediate review required."
- name: upload-docs
type: call
call: "sharepoint.create-folder"
with:
site_id: "safety_incidents"
folder_path: "Incidents/{{create-incident.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://wm.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://wm.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
Retrieves a Salesforce customer account by ID and returns name, service address, contract type, and account status.
naftiko: "0.5"
info:
label: "Salesforce Account Lookup"
description: "Retrieves a Salesforce customer account by ID and returns name, service address, contract type, and account status."
tags:
- crm
- salesforce
- customer
capability:
exposes:
- type: mcp
namespace: crm
port: 8080
tools:
- name: get-customer-account
description: "Look up a Salesforce customer account by ID. Returns name, address, contract type, and status."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce account ID."
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
outputParameters:
- name: name
type: string
mapping: "$.Name"
- name: service_address
type: string
mapping: "$.BillingAddress"
- name: contract_type
type: string
mapping: "$.Contract_Type__c"
- name: status
type: string
mapping: "$.Account_Status__c"
consumes:
- type: http
namespace: salesforce
baseUri: "https://wm.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 a Salesforce account by account ID.
naftiko: "0.5"
info:
label: "Salesforce Account Viewer"
description: "Retrieves a Salesforce account by account ID."
tags:
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: get-salesforce
description: "Retrieves a Salesforce account by account ID."
inputParameters:
- name: entity_id
in: body
type: string
description: "The salesforce account viewer identifier."
call: "sales-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: sales-api
baseUri: "https://api.waste-management.com/sales/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: salesforce
path: "/salesforce/account/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-salesforce
method: GET
When an expense report is submitted in SAP Concur, validates the report, creates a matching entry in SAP S/4HANA, and notifies the finance team via Microsoft Teams.
naftiko: "0.5"
info:
label: "SAP Concur Expense Report Sync"
description: "When an expense report is submitted in SAP Concur, validates the report, creates a matching entry in SAP S/4HANA, and notifies the finance team via Microsoft Teams."
tags:
- finance
- sap-concur
- sap-s4hana
- microsoft-teams
- expense
capability:
exposes:
- type: mcp
namespace: expense-management
port: 8080
tools:
- name: sync-expense-report
description: "Given a Concur expense report ID, validate it, post to SAP S/4HANA, and notify finance."
inputParameters:
- name: report_id
in: body
type: string
description: "The SAP Concur expense report identifier."
steps:
- name: get-report
type: call
call: "concur.get-expense-report"
with:
report_id: "{{report_id}}"
- name: post-to-sap
type: call
call: "sap.create-expense-entry"
with:
amount: "{{get-report.total_amount}}"
currency: "{{get-report.currency_code}}"
cost_center: "{{get-report.cost_center}}"
- name: notify-finance
type: call
call: "msteams.send-message"
with:
channel_id: "finance-expenses"
text: "Expense report {{report_id}} for {{get-report.total_amount}} {{get-report.currency_code}} posted to SAP. Document: {{post-to-sap.document_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-expense-report
method: GET
- type: http
namespace: sap
baseUri: "https://wm-s4.sap.com/sap/opu/odata/sap/API_FINANCIALACCOUNTING_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: journal-entries
path: "/A_JournalEntry"
operations:
- name: create-expense-entry
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves a SAP billing document by invoice number and returns amount, date, customer, and payment status.
naftiko: "0.5"
info:
label: "SAP Invoice Lookup"
description: "Retrieves a SAP billing document by invoice number and returns amount, date, customer, and payment status."
tags:
- billing
- sap
- finance
capability:
exposes:
- type: mcp
namespace: billing
port: 8080
tools:
- name: get-invoice
description: "Look up a SAP billing document by invoice number. Returns amount, date, customer, and payment status."
inputParameters:
- name: invoice_number
in: body
type: string
description: "The SAP billing document number."
call: "sap.get-billing-doc"
with:
invoice_number: "{{invoice_number}}"
outputParameters:
- name: amount
type: number
mapping: "$.d.TotalNetAmount"
- name: currency
type: string
mapping: "$.d.TransactionCurrency"
- name: billing_date
type: string
mapping: "$.d.BillingDocumentDate"
- name: customer
type: string
mapping: "$.d.SoldToParty"
- name: payment_status
type: string
mapping: "$.d.OverallBillingStatus"
consumes:
- type: http
namespace: sap
baseUri: "https://wm-s4.sap.com/sap/opu/odata/sap/API_BILLING_DOCUMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: billing-documents
path: "/A_BillingDocument('{{invoice_number}}')"
inputParameters:
- name: invoice_number
in: path
operations:
- name: get-billing-doc
method: GET
Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and delivery date.
naftiko: "0.5"
info:
label: "SAP Purchase Order Status"
description: "Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and delivery date."
tags:
- procurement
- sap
- sap-s4hana
- purchase-order
capability:
exposes:
- type: mcp
namespace: erp-procurement
port: 8080
tools:
- name: get-purchase-order
description: "Look up a SAP S/4HANA purchase order by PO number. Returns status, vendor, total value, and delivery date."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP purchase order number (10-digit)."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: status
type: string
mapping: "$.d.OverallStatus"
- name: vendor
type: string
mapping: "$.d.Supplier.CompanyName"
- name: total_value
type: string
mapping: "$.d.TotalAmount"
- name: delivery_date
type: string
mapping: "$.d.DeliveryDate"
consumes:
- type: http
namespace: sap
baseUri: "https://wm-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.
naftiko: "0.5"
info:
label: "Security Audit Orchestrator"
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
tags:
- security
- servicenow
- compliance
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: run-security-audit-orchestrator
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Security Audit Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Creates a new incident in ServiceNow.
naftiko: "0.5"
info:
label: "ServiceNow Incident Creator"
description: "Creates a new incident in ServiceNow."
tags:
- it
- servicenow
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: get-servicenow
description: "Creates a new incident in ServiceNow."
inputParameters:
- name: entity_id
in: body
type: string
description: "The servicenow incident creator identifier."
call: "it-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: it-api
baseUri: "https://api.waste-management.com/it/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: servicenow
path: "/servicenow/incident/creator/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-servicenow
method: GET
Retrieves a ServiceNow incident by number and returns status, priority, assigned group, and resolution notes.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves a ServiceNow incident by number and returns status, priority, assigned group, and resolution notes."
tags:
- it-ops
- servicenow
- incident
capability:
exposes:
- type: mcp
namespace: it-service
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number. Returns status, priority, assigned group, and description."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number (e.g., INC0012345)."
call: "servicenow.get-incident"
with:
number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result.state"
- name: priority
type: string
mapping: "$.result.priority"
- name: assigned_group
type: string
mapping: "$.result.assignment_group.display_value"
- name: description
type: string
mapping: "$.result.short_description"
consumes:
- type: http
namespace: servicenow
baseUri: "https://wm.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{number}}"
inputParameters:
- name: number
in: query
operations:
- name: get-incident
method: GET
Retrieves a document from SharePoint.
naftiko: "0.5"
info:
label: "SharePoint Document Viewer"
description: "Retrieves a document from SharePoint."
tags:
- collaboration
- sharepoint
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-sharepoint
description: "Retrieves a document from SharePoint."
inputParameters:
- name: entity_id
in: body
type: string
description: "The sharepoint document viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.waste-management.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: sharepoint
path: "/sharepoint/document/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-sharepoint
method: GET
Posts a formatted message to a specified Slack channel, used for notifications and alerts across Waste Management teams.
naftiko: "0.5"
info:
label: "Slack Channel Message Post"
description: "Posts a formatted message to a specified Slack channel, used for notifications and alerts across Waste Management teams."
tags:
- collaboration
- slack
- messaging
capability:
exposes:
- type: mcp
namespace: messaging
port: 8080
tools:
- name: post-slack-message
description: "Post a message to a Slack channel."
inputParameters:
- name: channel
in: body
type: string
description: "The Slack channel name or ID."
- name: text
in: body
type: string
description: "The message text to post."
call: "slack.post-message"
with:
channel: "{{channel}}"
text: "{{text}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Sends a notification to a Slack channel.
naftiko: "0.5"
info:
label: "Slack Notification Publisher"
description: "Sends a notification to a Slack channel."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-slack
description: "Sends a notification to a Slack channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The slack notification publisher identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.waste-management.com/communications/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: slack
path: "/slack/notification/publisher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-slack
method: GET
Runs an analytics query against the Snowflake data warehouse.
naftiko: "0.5"
info:
label: "Snowflake Analytics Query"
description: "Runs an analytics query against the Snowflake data warehouse."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-snowflake
description: "Runs an analytics query against the Snowflake data warehouse."
inputParameters:
- name: entity_id
in: body
type: string
description: "The snowflake analytics query identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.waste-management.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: snowflake
path: "/snowflake/analytics/query/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-snowflake
method: GET
Executes a Splunk search query against operational logs and returns matching events for fleet and facility operations.
naftiko: "0.5"
info:
label: "Splunk Operational Log Search"
description: "Executes a Splunk search query against operational logs and returns matching events for fleet and facility operations."
tags:
- monitoring
- splunk
- logging
- operations
capability:
exposes:
- type: mcp
namespace: ops-logs
port: 8080
tools:
- name: search-ops-logs
description: "Run a Splunk search query against operational logs for a given time range."
inputParameters:
- name: search_query
in: body
type: string
description: "The Splunk search query (SPL)."
- name: earliest_time
in: body
type: string
description: "Earliest time (e.g., -24h)."
- name: latest_time
in: body
type: string
description: "Latest time (e.g., now)."
call: "splunk.create-search"
with:
search: "{{search_query}}"
earliest_time: "{{earliest_time}}"
latest_time: "{{latest_time}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://wm-splunk.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search-jobs
path: "/search/jobs"
operations:
- name: create-search
method: POST
Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.
naftiko: "0.5"
info:
label: "Sustainability Metrics Collection Orchestrator"
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
tags:
- sustainability
- analytics
- compliance
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: run-sustainability-metrics-collection-orchestrator
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Aggregates recycling rates from the operations database, landfill diversion data from Snowflake, and carbon emissions from the sustainability API, then populates a Power BI dataset for executive reporting.
naftiko: "0.5"
info:
label: "Sustainability Metrics Dashboard Builder"
description: "Aggregates recycling rates from the operations database, landfill diversion data from Snowflake, and carbon emissions from the sustainability API, then populates a Power BI dataset for executive reporting."
tags:
- sustainability
- snowflake
- power-bi
- reporting
- recycling
capability:
exposes:
- type: mcp
namespace: sustainability-reporting
port: 8080
tools:
- name: build-sustainability-dashboard
description: "Given a reporting period and region, aggregate sustainability metrics and push to Power BI."
inputParameters:
- name: period
in: body
type: string
description: "Reporting period (e.g., 2026-Q1)."
- name: region
in: body
type: string
description: "Geographic region code."
steps:
- name: get-recycling-rates
type: call
call: "snowflake.execute-query"
with:
statement: "SELECT region, material_type, SUM(tons_recycled) as recycled, SUM(tons_collected) as collected FROM operations.recycling WHERE period = '{{period}}' AND region = '{{region}}' GROUP BY region, material_type"
database: "WM_OPERATIONS"
- name: get-emissions
type: call
call: "sustainability.get-emissions"
with:
period: "{{period}}"
region: "{{region}}"
- name: refresh-dashboard
type: call
call: "powerbi.trigger-refresh"
with:
group_id: "sustainability_workspace"
dataset_id: "sustainability_metrics"
consumes:
- type: http
namespace: snowflake
baseUri: "https://wm.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: sustainability
baseUri: "https://api.wm.com/sustainability/v1"
authentication:
type: bearer
token: "$secrets.sustainability_api_token"
resources:
- name: emissions
path: "/emissions"
operations:
- name: get-emissions
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: "/groups/{{group_id}}/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: group_id
in: path
- name: dataset_id
in: path
operations:
- name: trigger-refresh
method: POST
Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.
naftiko: "0.5"
info:
label: "Third Party Risk Assessment Orchestrator"
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
tags:
- risk
- procurement
- compliance
capability:
exposes:
- type: mcp
namespace: risk
port: 8080
tools:
- name: run-third-party-risk-assessment-orchestrator
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves the current GPS location and status of a fleet vehicle by vehicle ID from the fleet management system.
naftiko: "0.5"
info:
label: "Vehicle GPS Location Lookup"
description: "Retrieves the current GPS location and status of a fleet vehicle by vehicle ID from the fleet management system."
tags:
- fleet
- gps
- tracking
capability:
exposes:
- type: mcp
namespace: fleet-tracking
port: 8080
tools:
- name: get-vehicle-location
description: "Look up a fleet vehicle's current GPS coordinates, speed, and status."
inputParameters:
- name: vehicle_id
in: body
type: string
description: "The fleet vehicle identifier."
call: "fleet.get-vehicle-position"
with:
vehicle_id: "{{vehicle_id}}"
outputParameters:
- name: latitude
type: number
mapping: "$.position.latitude"
- name: longitude
type: number
mapping: "$.position.longitude"
- name: speed_mph
type: number
mapping: "$.position.speed"
- name: status
type: string
mapping: "$.vehicle.status"
consumes:
- type: http
namespace: fleet
baseUri: "https://api.wm.com/fleet/v2"
authentication:
type: bearer
token: "$secrets.fleet_api_token"
resources:
- name: vehicles
path: "/vehicles/{{vehicle_id}}/position"
inputParameters:
- name: vehicle_id
in: path
operations:
- name: get-vehicle-position
method: GET
Retrieves maintenance history for a fleet vehicle.
naftiko: "0.5"
info:
label: "Vehicle Maintenance History"
description: "Retrieves maintenance history for a fleet vehicle."
tags:
- fleet-management
- operations
capability:
exposes:
- type: mcp
namespace: fleet-management
port: 8080
tools:
- name: get-vehicle
description: "Retrieves maintenance history for a fleet vehicle."
inputParameters:
- name: entity_id
in: body
type: string
description: "The vehicle maintenance history identifier."
call: "fleet-management-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: fleet-management-api
baseUri: "https://api.waste-management.com/fleet-management/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: vehicle
path: "/vehicle/maintenance/history/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-vehicle
method: GET
Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.
naftiko: "0.5"
info:
label: "Vendor Contract Renewal Pipeline"
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
tags:
- procurement
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-vendor-contract-renewal-pipeline
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Initiates a waste characterization study by creating a project in Salesforce, scheduling sampling via the operations API, setting up data collection in Google Sheets, and notifying the environmental team in Slack.
naftiko: "0.5"
info:
label: "Waste Characterization Study Orchestrator"
description: "Initiates a waste characterization study by creating a project in Salesforce, scheduling sampling via the operations API, setting up data collection in Google Sheets, and notifying the environmental team in Slack."
tags:
- sustainability
- waste-characterization
- salesforce
- google-sheets
- slack
capability:
exposes:
- type: mcp
namespace: waste-studies
port: 8080
tools:
- name: initiate-waste-study
description: "Given a site ID and study parameters, create project, schedule sampling, set up data collection, and notify team."
inputParameters:
- name: site_id
in: body
type: string
description: "The facility or landfill site identifier."
- name: study_type
in: body
type: string
description: "Type of waste characterization study."
- name: start_date
in: body
type: string
description: "Study start date in YYYY-MM-DD format."
steps:
- name: create-project
type: call
call: "salesforce.create-opportunity"
with:
name: "Waste Study: {{site_id}} - {{study_type}}"
stage: "Planning"
close_date: "{{start_date}}"
- name: schedule-sampling
type: call
call: "operations.schedule-sampling"
with:
site_id: "{{site_id}}"
study_type: "{{study_type}}"
start_date: "{{start_date}}"
- name: create-data-sheet
type: call
call: "gsheets.create-spreadsheet"
with:
title: "Waste Characterization: {{site_id}} - {{study_type}} - {{start_date}}"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "environmental-studies"
text: "Waste characterization study initiated for site {{site_id}} ({{study_type}}). Start: {{start_date}}. Salesforce: {{create-project.id}}. Data sheet: {{create-data-sheet.url}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://wm.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity"
operations:
- name: create-opportunity
method: POST
- type: http
namespace: operations
baseUri: "https://api.wm.com/operations/v1"
authentication:
type: bearer
token: "$secrets.operations_api_token"
resources:
- name: sampling
path: "/sites/{{site_id}}/sampling"
inputParameters:
- name: site_id
in: path
operations:
- name: schedule-sampling
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: spreadsheets
path: "/spreadsheets"
operations:
- name: create-spreadsheet
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Orchestrates waste mgmt workflow 1 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 1"
description: "Orchestrates waste mgmt workflow 1 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-001
description: "Orchestrates waste mgmt workflow 1 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 1 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates waste mgmt workflow 2 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 2"
description: "Orchestrates waste mgmt workflow 2 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-002
description: "Orchestrates waste mgmt workflow 2 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 2 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves waste mgmt operational data for workflow 3.
naftiko: "0.5"
info:
label: "Waste Mgmt Data Query 3"
description: "Retrieves waste mgmt operational data for workflow 3."
tags:
- waste
- operations
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: get-data-3
description: "Query waste mgmt data for workflow 3."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "waste-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: waste-api
baseUri: "https://api.waste-management.com/waste-mgmt/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-3
method: GET
Orchestrates waste mgmt workflow 4 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 4"
description: "Orchestrates waste mgmt workflow 4 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-004
description: "Orchestrates waste mgmt workflow 4 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 4 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates waste mgmt workflow 5 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 5"
description: "Orchestrates waste mgmt workflow 5 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-005
description: "Orchestrates waste mgmt workflow 5 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 5 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves waste mgmt operational data for workflow 6.
naftiko: "0.5"
info:
label: "Waste Mgmt Data Query 6"
description: "Retrieves waste mgmt operational data for workflow 6."
tags:
- waste
- operations
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: get-data-6
description: "Query waste mgmt data for workflow 6."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "waste-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: waste-api
baseUri: "https://api.waste-management.com/waste-mgmt/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-6
method: GET
Orchestrates waste mgmt workflow 7 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 7"
description: "Orchestrates waste mgmt workflow 7 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-007
description: "Orchestrates waste mgmt workflow 7 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 7 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates waste mgmt workflow 8 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 8"
description: "Orchestrates waste mgmt workflow 8 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-008
description: "Orchestrates waste mgmt workflow 8 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 8 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves waste mgmt operational data for workflow 9.
naftiko: "0.5"
info:
label: "Waste Mgmt Data Query 9"
description: "Retrieves waste mgmt operational data for workflow 9."
tags:
- waste
- operations
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: get-data-9
description: "Query waste mgmt data for workflow 9."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "waste-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: waste-api
baseUri: "https://api.waste-management.com/waste-mgmt/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-9
method: GET
Orchestrates waste mgmt workflow 10 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 10"
description: "Orchestrates waste mgmt workflow 10 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-010
description: "Orchestrates waste mgmt workflow 10 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 10 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates waste mgmt workflow 11 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 11"
description: "Orchestrates waste mgmt workflow 11 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-011
description: "Orchestrates waste mgmt workflow 11 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 11 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves waste mgmt operational data for workflow 12.
naftiko: "0.5"
info:
label: "Waste Mgmt Data Query 12"
description: "Retrieves waste mgmt operational data for workflow 12."
tags:
- waste
- operations
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: get-data-12
description: "Query waste mgmt data for workflow 12."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "waste-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: waste-api
baseUri: "https://api.waste-management.com/waste-mgmt/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-12
method: GET
Orchestrates waste mgmt workflow 13 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 13"
description: "Orchestrates waste mgmt workflow 13 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-013
description: "Orchestrates waste mgmt workflow 13 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 13 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates waste mgmt workflow 14 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 14"
description: "Orchestrates waste mgmt workflow 14 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-014
description: "Orchestrates waste mgmt workflow 14 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 14 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves waste mgmt operational data for workflow 15.
naftiko: "0.5"
info:
label: "Waste Mgmt Data Query 15"
description: "Retrieves waste mgmt operational data for workflow 15."
tags:
- waste
- operations
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: get-data-15
description: "Query waste mgmt data for workflow 15."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "waste-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: waste-api
baseUri: "https://api.waste-management.com/waste-mgmt/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-15
method: GET
Orchestrates waste mgmt workflow 16 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 16"
description: "Orchestrates waste mgmt workflow 16 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-016
description: "Orchestrates waste mgmt workflow 16 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 16 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates waste mgmt workflow 17 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 17"
description: "Orchestrates waste mgmt workflow 17 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-017
description: "Orchestrates waste mgmt workflow 17 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 17 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves waste mgmt operational data for workflow 18.
naftiko: "0.5"
info:
label: "Waste Mgmt Data Query 18"
description: "Retrieves waste mgmt operational data for workflow 18."
tags:
- waste
- operations
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: get-data-18
description: "Query waste mgmt data for workflow 18."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "waste-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: waste-api
baseUri: "https://api.waste-management.com/waste-mgmt/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-18
method: GET
Orchestrates waste mgmt workflow 19 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 19"
description: "Orchestrates waste mgmt workflow 19 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-019
description: "Orchestrates waste mgmt workflow 19 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 19 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates waste mgmt workflow 20 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 20"
description: "Orchestrates waste mgmt workflow 20 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-020
description: "Orchestrates waste mgmt workflow 20 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 20 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves waste mgmt operational data for workflow 21.
naftiko: "0.5"
info:
label: "Waste Mgmt Data Query 21"
description: "Retrieves waste mgmt operational data for workflow 21."
tags:
- waste
- operations
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: get-data-21
description: "Query waste mgmt data for workflow 21."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "waste-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: waste-api
baseUri: "https://api.waste-management.com/waste-mgmt/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-21
method: GET
Orchestrates waste mgmt workflow 22 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 22"
description: "Orchestrates waste mgmt workflow 22 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-022
description: "Orchestrates waste mgmt workflow 22 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 22 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates waste mgmt workflow 23 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Waste Mgmt Workflow 23"
description: "Orchestrates waste mgmt workflow 23 by coordinating across systems, validating data, and sending notifications."
tags:
- waste
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: run-waste-mgmt-workflow-023
description: "Orchestrates waste mgmt workflow 23 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Waste Mgmt Workflow 23 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.waste-management.com/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.waste-management.com/v2"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
When a truck crosses a landfill scale, processes the weight ticket, updates the customer billing record in SAP, logs the transaction in Snowflake, and sends a receipt via SendGrid.
naftiko: "0.5"
info:
label: "Weight Ticket Processing Pipeline"
description: "When a truck crosses a landfill scale, processes the weight ticket, updates the customer billing record in SAP, logs the transaction in Snowflake, and sends a receipt via SendGrid."
tags:
- billing
- operations
- sap
- snowflake
- sendgrid
capability:
exposes:
- type: mcp
namespace: weight-tickets
port: 8080
tools:
- name: process-weight-ticket
description: "Given scale data, process the weight ticket, update billing, log transaction, and send receipt."
inputParameters:
- name: ticket_number
in: body
type: string
description: "The weight ticket number."
- name: vehicle_id
in: body
type: string
description: "The fleet vehicle identifier."
- name: gross_weight
in: body
type: number
description: "Gross weight in tons."
- name: tare_weight
in: body
type: number
description: "Tare weight in tons."
- name: customer_id
in: body
type: string
description: "The customer account identifier."
steps:
- name: create-billing-entry
type: call
call: "sap.create-billing-entry"
with:
customer_id: "{{customer_id}}"
net_weight: "{{gross_weight - tare_weight}}"
ticket_number: "{{ticket_number}}"
vehicle_id: "{{vehicle_id}}"
- name: log-transaction
type: call
call: "snowflake.execute-query"
with:
statement: "INSERT INTO operations.weight_tickets (ticket_number, vehicle_id, customer_id, gross_weight, tare_weight, net_weight, created_at) VALUES ('{{ticket_number}}', '{{vehicle_id}}', '{{customer_id}}', {{gross_weight}}, {{tare_weight}}, {{gross_weight}} - {{tare_weight}}, CURRENT_TIMESTAMP())"
database: "WM_OPERATIONS"
- name: send-receipt
type: call
call: "sendgrid.send-email"
with:
to: "{{customer_id}}"
template_id: "weight_ticket_receipt"
dynamic_data:
ticket_number: "{{ticket_number}}"
net_weight: "{{gross_weight - tare_weight}}"
billing_ref: "{{create-billing-entry.document_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://wm-s4.sap.com/sap/opu/odata/sap/API_BILLING_DOCUMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: billing
path: "/A_BillingDocument"
operations:
- name: create-billing-entry
method: POST
- type: http
namespace: snowflake
baseUri: "https://wm.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: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
Retrieves employee details from Workday including name, department, manager, and contact information.
naftiko: "0.5"
info:
label: "Workday Employee Directory Lookup"
description: "Retrieves employee details from Workday including name, department, manager, and contact information."
tags:
- hr
- workday
- employee
capability:
exposes:
- type: mcp
namespace: hr-directory
port: 8080
tools:
- name: get-employee
description: "Look up a Workday employee by worker ID. Returns name, department, manager, and email."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.worker.name.full"
- name: department
type: string
mapping: "$.worker.organization.name"
- name: manager
type: string
mapping: "$.worker.manager.name.full"
- name: email
type: string
mapping: "$.worker.contact.email"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
Retrieves employee profile from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Profile"
description: "Retrieves employee profile from Workday."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-workday
description: "Retrieves employee profile from Workday."
inputParameters:
- name: entity_id
in: body
type: string
description: "The workday employee profile identifier."
call: "hr-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: hr-api
baseUri: "https://api.waste-management.com/hr/v1"
authentication:
type: bearer
token: "$secrets.waste_management_api_token"
resources:
- name: workday
path: "/workday/employee/profile/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-workday
method: GET
Creates a Zoom meeting for a given host, sends calendar invites via Microsoft Outlook, and posts the meeting link in a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Zoom Meeting Scheduler"
description: "Creates a Zoom meeting for a given host, sends calendar invites via Microsoft Outlook, and posts the meeting link in a Microsoft Teams channel."
tags:
- collaboration
- zoom
- microsoft-outlook
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: meeting-mgmt
port: 8080
tools:
- name: schedule-meeting
description: "Given a host email, topic, and time, create a Zoom meeting, send Outlook invites, and post to Teams."
inputParameters:
- name: host_email
in: body
type: string
description: "The Zoom host email address."
- name: topic
in: body
type: string
description: "The meeting topic."
- name: start_time
in: body
type: string
description: "Meeting start time in ISO 8601 format."
- name: duration_minutes
in: body
type: integer
description: "Meeting duration in minutes."
steps:
- name: create-meeting
type: call
call: "zoom.create-meeting"
with:
host_email: "{{host_email}}"
topic: "{{topic}}"
start_time: "{{start_time}}"
duration: "{{duration_minutes}}"
- name: send-invite
type: call
call: "outlook.create-event"
with:
subject: "{{topic}}"
start: "{{start_time}}"
body: "Join Zoom: {{create-meeting.join_url}}"
- name: post-to-teams
type: call
call: "msteams.send-message"
with:
channel_id: "general"
text: "Meeting scheduled: {{topic}} at {{start_time}}. Zoom: {{create-meeting.join_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_token"
resources:
- name: meetings
path: "/users/{{host_email}}/meetings"
inputParameters:
- name: host_email
in: path
operations:
- name: create-meeting
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: events
path: "/me/events"
operations:
- name: create-event
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST