Republic Services Capabilities
Naftiko 0.5 capability definitions for Republic Services - 100 capabilities showing integration workflows and service orchestrations.
Triggers an Alteryx workflow for data preparation and analytics processing.
naftiko: "0.5"
info:
label: "Alteryx Workflow Execution"
description: "Triggers an Alteryx workflow for data preparation and analytics processing."
tags:
- analytics
- data-preparation
- alteryx
capability:
exposes:
- type: mcp
namespace: analytics-alteryx
port: 8080
tools:
- name: run-workflow
description: "Trigger an Alteryx workflow by app ID. Returns the job ID and status."
inputParameters:
- name: app_id
in: body
type: string
description: "The Alteryx workflow app ID."
call: "alteryx.run-job"
with:
app_id: "{{app_id}}"
consumes:
- type: http
namespace: alteryx
baseUri: "https://republicservices.alteryxcloud.com/api/v3"
authentication:
type: bearer
token: "$secrets.alteryx_token"
resources:
- name: jobs
path: "/workflows/{{app_id}}/jobs"
inputParameters:
- name: app_id
in: path
operations:
- name: run-job
method: POST
Retrieves a user profile from Azure Active Directory by UPN, returning display name, job title, and department.
naftiko: "0.5"
info:
label: "Azure Active Directory User Lookup"
description: "Retrieves a user profile from Azure Active Directory by UPN, returning display name, job title, and department."
tags:
- identity
- directory
- azure-active-directory
capability:
exposes:
- type: mcp
namespace: identity-aad
port: 8080
tools:
- name: get-user
description: "Look up an Azure AD user by UPN. Returns display name, job title, department, and group memberships."
inputParameters:
- name: user_upn
in: body
type: string
description: "The user principal name (email)."
call: "aad.get-user"
with:
upn: "{{user_upn}}"
consumes:
- type: http
namespace: aad
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: users
path: "/users/{{upn}}"
inputParameters:
- name: upn
in: path
operations:
- name: get-user
method: GET
Retrieves the latest build status for a given Azure DevOps pipeline.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status"
description: "Retrieves the latest build status for a given Azure DevOps pipeline."
tags:
- devops
- ci-cd
- azure-devops
capability:
exposes:
- type: mcp
namespace: devops-builds
port: 8080
tools:
- name: get-build-status
description: "Get the latest build status for an Azure DevOps pipeline. Returns result, duration, and source branch."
inputParameters:
- name: project
in: body
type: string
description: "The Azure DevOps project name."
- name: pipeline_id
in: body
type: string
description: "The pipeline definition ID."
call: "azuredevops.get-builds"
with:
project: "{{project}}"
pipeline_id: "{{pipeline_id}}"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/republicservices"
authentication:
type: basic
username: ""
password: "$secrets.azure_devops_pat"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
inputParameters:
- name: project
in: path
- name: pipeline_id
in: path
operations:
- name: get-builds
method: GET
Searches Confluence for articles matching a query and returns page titles, excerpts, and links.
naftiko: "0.5"
info:
label: "Confluence Knowledge Base Search"
description: "Searches Confluence for articles matching a query and returns page titles, excerpts, and links."
tags:
- knowledge-management
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: knowledge-base
port: 8080
tools:
- name: search-articles
description: "Search Confluence for knowledge base articles. Returns titles, excerpts, and URLs."
inputParameters:
- name: query
in: body
type: string
description: "The search query."
call: "confluence.search"
with:
cql: "text ~ '{{query}}'"
consumes:
- type: http
namespace: confluence
baseUri: "https://republicservices.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: search
path: "/search?cql={{cql}}"
inputParameters:
- name: cql
in: path
operations:
- name: search
method: GET
Orchestrates construction debris management pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Construction Debris Management Pipeline"
description: "Orchestrates construction debris management pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- construction
- republic-services
- jira
- workday
- datadog
capability:
exposes:
- type: mcp
namespace: construction
port: 8080
tools:
- name: construction-debris-management-pipeline
description: "Orchestrates construction debris management pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "workday.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://republic.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/construction"
operations:
- name: execute-1
method: POST
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/republic/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/api/construction"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/construction"
operations:
- name: execute-3
method: POST
Retrieves container rfid tag status data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Container Rfid Tag Status"
description: "Retrieves container rfid tag status data from the Republic Services waste management and recycling systems."
tags:
- container
- republic-services
- status
capability:
exposes:
- type: mcp
namespace: container
port: 8080
tools:
- name: container-rfid-tag-status
description: "Retrieves container rfid tag status data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.container-rfid-tag-status"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/container/rfid/tag/status/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: container-rfid-tag-status
method: GET
Retrieves container service level lookup data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Container Service Level Lookup"
description: "Retrieves container service level lookup data from the Republic Services waste management and recycling systems."
tags:
- container
- republic-services
- lookup
capability:
exposes:
- type: mcp
namespace: container
port: 8080
tools:
- name: container-service-level-lookup
description: "Retrieves container service level lookup data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.container-service-level-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/container/service/level/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: container-service-level-lookup
method: GET
When an overweight container is detected, logs the violation in SAP, creates a Salesforce case for the customer, notifies the route supervisor via Microsoft Teams, and records the event in Datadog.
naftiko: "0.5"
info:
label: "Container Weight Compliance Orchestrator"
description: "When an overweight container is detected, logs the violation in SAP, creates a Salesforce case for the customer, notifies the route supervisor via Microsoft Teams, and records the event in Datadog."
tags:
- compliance
- fleet
- sap
- salesforce
- microsoft-teams
- datadog
capability:
exposes:
- type: mcp
namespace: compliance-weight
port: 8080
tools:
- name: handle-overweight-container
description: "Given container and weight data, log the violation, create customer case, notify supervisor, and record in Datadog."
inputParameters:
- name: container_id
in: body
type: string
description: "The container barcode or ID."
- name: measured_weight
in: body
type: number
description: "The measured weight in pounds."
- name: weight_limit
in: body
type: number
description: "The weight limit in pounds."
- name: account_number
in: body
type: string
description: "The customer account number."
- name: driver_id
in: body
type: string
description: "The driver who detected the violation."
steps:
- name: get-billing
type: call
call: "billing-api.get-account"
with:
account_number: "{{account_number}}"
- name: log-violation
type: call
call: "sap.create-quality-notification"
with:
notification_type: "weight_violation"
description: "Container {{container_id}} overweight: {{measured_weight}} lbs (limit: {{weight_limit}} lbs). Customer: {{get-billing.customer_name}}."
equipment: "{{container_id}}"
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "Overweight container: {{container_id}} — {{get-billing.customer_name}}"
description: "Container {{container_id}} weighed {{measured_weight}} lbs, exceeding limit of {{weight_limit}} lbs. Address: {{get-billing.service_address}}."
type: "Compliance"
priority: "Medium"
- name: notify-supervisor
type: call
call: "msteams.send-channel-message"
with:
team_id: "ops_{{get-billing.district}}"
channel: "Compliance"
text: "Overweight container {{container_id}} at {{get-billing.service_address}}: {{measured_weight}} lbs (limit {{weight_limit}}). Driver: {{driver_id}}. Case: {{create-case.case_number}}."
- name: log-metric
type: call
call: "datadog.send-event"
with:
title: "Overweight container: {{container_id}}"
text: "Weight: {{measured_weight}}, Limit: {{weight_limit}}, Customer: {{account_number}}"
tags: "type:weight_violation,district:{{get-billing.district}}"
consumes:
- type: http
namespace: billing-api
baseUri: "https://billing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: accounts
path: "/accounts/{{account_number}}"
inputParameters:
- name: account_number
in: path
operations:
- name: get-account
method: GET
- type: http
namespace: sap
baseUri: "https://republicservices-s4.sap.com/sap/opu/odata/sap/QM_NOTIFICATION_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: notifications
path: "/QualityNotifications"
operations:
- name: create-quality-notification
method: POST
- type: http
namespace: salesforce
baseUri: "https://republicservices.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}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel
in: path
operations:
- name: send-channel-message
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: events
path: "/events"
operations:
- name: send-event
method: POST
Processes a rate change by updating the billing system, creating a Salesforce task for account manager notification, generating a customer letter via DocuSign, and logging in ServiceNow.
naftiko: "0.5"
info:
label: "Customer Account Rate Change Orchestrator"
description: "Processes a rate change by updating the billing system, creating a Salesforce task for account manager notification, generating a customer letter via DocuSign, and logging in ServiceNow."
tags:
- billing
- customer-service
- salesforce
- docusign
- servicenow
capability:
exposes:
- type: mcp
namespace: billing-rate-change
port: 8080
tools:
- name: process-rate-change
description: "Given an account number and new rate, update billing, notify account manager, generate customer letter, and log in ServiceNow."
inputParameters:
- name: account_number
in: body
type: string
description: "The customer billing account number."
- name: new_rate
in: body
type: number
description: "The new monthly rate amount."
- name: effective_date
in: body
type: string
description: "The rate change effective date in YYYY-MM-DD."
- name: reason
in: body
type: string
description: "The reason for the rate change."
steps:
- name: get-account
type: call
call: "billing-api.get-account"
with:
account_number: "{{account_number}}"
- name: update-rate
type: call
call: "billing-api.update-rate"
with:
account_number: "{{account_number}}"
new_rate: "{{new_rate}}"
effective_date: "{{effective_date}}"
- name: create-sf-task
type: call
call: "salesforce.create-task"
with:
subject: "Rate change: {{get-account.customer_name}} — effective {{effective_date}}"
description: "Old rate: {{get-account.current_rate}}. New rate: {{new_rate}}. Reason: {{reason}}."
priority: "Normal"
- name: send-letter
type: call
call: "docusign.send-envelope"
with:
recipient_email: "{{get-account.contact_email}}"
template_id: "rate_change_notification"
data:
customer_name: "{{get-account.customer_name}}"
new_rate: "{{new_rate}}"
effective_date: "{{effective_date}}"
- name: log-change
type: call
call: "servicenow.create-task"
with:
short_description: "Rate change: {{account_number}} — ${{new_rate}} effective {{effective_date}}"
description: "Customer: {{get-account.customer_name}}. Previous rate: {{get-account.current_rate}}. Reason: {{reason}}."
category: "billing_change"
consumes:
- type: http
namespace: billing-api
baseUri: "https://billing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: accounts
path: "/accounts/{{account_number}}"
inputParameters:
- name: account_number
in: path
operations:
- name: get-account
method: GET
- name: update-rate
method: PATCH
- type: http
namespace: salesforce
baseUri: "https://republicservices.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: tasks
path: "/sobjects/Task"
operations:
- name: create-task
method: POST
- type: http
namespace: docusign
baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/{{account_id}}"
authentication:
type: bearer
token: "$secrets.docusign_token"
resources:
- name: envelopes
path: "/envelopes"
operations:
- name: send-envelope
method: POST
- type: http
namespace: servicenow
baseUri: "https://republicservices.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
operations:
- name: create-task
method: POST
Orchestrates customer acquisition pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Acquisition Pipeline"
description: "Orchestrates customer acquisition pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- republic-services
- snowflake
- slack
- sap
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-acquisition-pipeline
description: "Orchestrates customer acquisition pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sap.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: sap
baseUri: "https://republic-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Retrieves a customer billing account from the billing system, returning account balance, payment history, and service address.
naftiko: "0.5"
info:
label: "Customer Billing Account Lookup"
description: "Retrieves a customer billing account from the billing system, returning account balance, payment history, and service address."
tags:
- billing
- customer-service
- finance
capability:
exposes:
- type: mcp
namespace: billing-accounts
port: 8080
tools:
- name: get-billing-account
description: "Look up a customer billing account. Returns balance, payment history, service address, and account status."
inputParameters:
- name: account_number
in: body
type: string
description: "The customer billing account number."
call: "billing-api.get-account"
with:
account_number: "{{account_number}}"
consumes:
- type: http
namespace: billing-api
baseUri: "https://billing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: accounts
path: "/accounts/{{account_number}}"
inputParameters:
- name: account_number
in: path
operations:
- name: get-account
method: GET
Orchestrates customer billing dispute pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Billing Dispute Pipeline"
description: "Orchestrates customer billing dispute pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- republic-services
- sap
- teams
- jira
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-billing-dispute-pipeline
description: "Orchestrates customer billing dispute pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sap.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "teams.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://republic-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://republic.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Orchestrates customer contract renewal pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Contract Renewal Pipeline"
description: "Orchestrates customer contract renewal pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- republic-services
- teams
- jira
- workday
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-contract-renewal-pipeline
description: "Orchestrates customer contract renewal pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "teams.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "workday.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://republic.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/republic/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Retrieves customer contract terms lookup data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Customer Contract Terms Lookup"
description: "Retrieves customer contract terms lookup data from the Republic Services waste management and recycling systems."
tags:
- customer
- republic-services
- lookup
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-contract-terms-lookup
description: "Retrieves customer contract terms lookup data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.customer-contract-terms-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/customer/contract/terms/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: customer-contract-terms-lookup
method: GET
Orchestrates customer onboarding provisioning pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Onboarding Provisioning Pipeline"
description: "Orchestrates customer onboarding provisioning pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- republic-services
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-onboarding-provisioning-pipeline
description: "Orchestrates customer onboarding provisioning pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://republic.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Orchestrates customer rate adjustment pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Rate Adjustment Pipeline"
description: "Orchestrates customer rate adjustment pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- republic-services
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-rate-adjustment-pipeline
description: "Orchestrates customer rate adjustment pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Orchestrates customer retention pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Retention Pipeline"
description: "Orchestrates customer retention pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- republic-services
- datadog
- republic
- salesforce
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-retention-pipeline
description: "Orchestrates customer retention pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "republic.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "salesforce.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: republic-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: salesforce
baseUri: "https://republic.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Retrieves customer service agreement lookup data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Customer Service Agreement Lookup"
description: "Retrieves customer service agreement lookup data from the Republic Services waste management and recycling systems."
tags:
- customer
- republic-services
- lookup
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-service-agreement-lookup
description: "Retrieves customer service agreement lookup data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.customer-service-agreement-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/customer/service/agreement/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: customer-service-agreement-lookup
method: GET
Orchestrates customer service level monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Service Level Monitoring Pipeline"
description: "Orchestrates customer service level monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- republic-services
- republic
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-service-level-monitoring-pipeline
description: "Orchestrates customer service level monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "republic.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: republic-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://republic.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
When a customer service request arrives in Salesforce, looks up billing data, creates a ServiceNow work order, and notifies the local operations team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Customer Service Request Orchestrator"
description: "When a customer service request arrives in Salesforce, looks up billing data, creates a ServiceNow work order, and notifies the local operations team via Microsoft Teams."
tags:
- customer-service
- salesforce
- servicenow
- microsoft-teams
- billing
capability:
exposes:
- type: mcp
namespace: customer-service-requests
port: 8080
tools:
- name: process-service-request
description: "Given a Salesforce case ID, look up billing, create ServiceNow work order, and notify local ops."
inputParameters:
- name: case_id
in: body
type: string
description: "The Salesforce case ID."
steps:
- name: get-case
type: call
call: "salesforce.get-case"
with:
case_id: "{{case_id}}"
- name: get-billing
type: call
call: "billing-api.get-account"
with:
account_number: "{{get-case.account_number}}"
- name: create-work-order
type: call
call: "servicenow.create-work-order"
with:
short_description: "Service request: {{get-case.subject}}"
description: "Customer: {{get-billing.customer_name}}. Address: {{get-billing.service_address}}. Request: {{get-case.description}}."
assigned_group: "Local_Ops_{{get-billing.district}}"
priority: "{{get-case.priority}}"
- name: notify-ops
type: call
call: "msteams.send-channel-message"
with:
team_id: "ops_{{get-billing.district}}"
channel: "Service-Requests"
text: "New service request: {{get-case.subject}}. Customer: {{get-billing.customer_name}} at {{get-billing.service_address}}. Work order: {{create-work-order.number}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://republicservices.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case/{{case_id}}"
inputParameters:
- name: case_id
in: path
operations:
- name: get-case
method: GET
- type: http
namespace: billing-api
baseUri: "https://billing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: accounts
path: "/accounts/{{account_number}}"
inputParameters:
- name: account_number
in: path
operations:
- name: get-account
method: GET
- type: http
namespace: servicenow
baseUri: "https://republicservices.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: work-orders
path: "/table/wm_order"
operations:
- name: create-work-order
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel
in: path
operations:
- name: send-channel-message
method: POST
Orchestrates customer sustainability reporting pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Customer Sustainability Reporting Pipeline"
description: "Orchestrates customer sustainability reporting pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- customer
- republic-services
- slack
- sap
- teams
capability:
exposes:
- type: mcp
namespace: customer
port: 8080
tools:
- name: customer-sustainability-reporting-pipeline
description: "Orchestrates customer sustainability reporting pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sap.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/customer"
operations:
- name: execute-1
method: POST
- type: http
namespace: sap
baseUri: "https://republic-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/api/customer"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/customer"
operations:
- name: execute-3
method: POST
Generates a daily fleet operations summary by pulling route completion data, vehicle status, and safety metrics, then posting to Microsoft Teams and refreshing Power BI.
naftiko: "0.5"
info:
label: "Daily Fleet Operations Summary Orchestrator"
description: "Generates a daily fleet operations summary by pulling route completion data, vehicle status, and safety metrics, then posting to Microsoft Teams and refreshing Power BI."
tags:
- fleet
- operations
- routing
- datadog
- microsoft-teams
- power-bi
capability:
exposes:
- type: mcp
namespace: fleet-daily-summary
port: 8080
tools:
- name: generate-daily-summary
description: "Generate a daily fleet operations summary, post to Teams, and refresh Power BI dashboards."
inputParameters:
- name: district
in: body
type: string
description: "The operating district code."
- name: report_date
in: body
type: string
description: "The report date in YYYY-MM-DD format."
steps:
- name: get-route-completion
type: call
call: "routing-api.get-daily-summary"
with:
district: "{{district}}"
date: "{{report_date}}"
- name: get-fleet-status
type: call
call: "fleet-api.get-district-status"
with:
district: "{{district}}"
- name: get-safety-metrics
type: call
call: "datadog.query-metrics"
with:
query: "sum:safety.incidents{district:{{district}}}.rollup(count, 86400)"
from: "{{report_date}}T00:00:00Z"
to: "{{report_date}}T23:59:59Z"
- name: post-summary
type: call
call: "msteams.send-channel-message"
with:
team_id: "ops_{{district}}"
channel: "Daily-Summary"
text: "Fleet Summary {{report_date}} — District {{district}}: Routes completed: {{get-route-completion.completed}}/{{get-route-completion.total}}. Vehicles active: {{get-fleet-status.active_count}}. Safety incidents: {{get-safety-metrics.value}}."
- name: refresh-dashboard
type: call
call: "powerbi.trigger-refresh"
with:
dataset_id: "$secrets.fleet_dashboard_dataset_id"
group_id: "$secrets.fleet_dashboard_group_id"
consumes:
- type: http
namespace: routing-api
baseUri: "https://routing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.routing_api_token"
resources:
- name: daily-summary
path: "/summary?district={{district}}&date={{date}}"
inputParameters:
- name: district
in: path
- name: date
in: path
operations:
- name: get-daily-summary
method: GET
- type: http
namespace: fleet-api
baseUri: "https://fleet.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.fleet_api_token"
resources:
- name: district-status
path: "/districts/{{district}}/status"
inputParameters:
- name: district
in: path
operations:
- name: get-district-status
method: GET
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: query
path: "/query?query={{query}}&from={{from}}&to={{to}}"
inputParameters:
- name: query
in: path
- name: from
in: path
- name: to
in: path
operations:
- name: query-metrics
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel
in: path
operations:
- name: send-channel-message
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
Queries Datadog for the health status of a monitored service, returning uptime and active alerts.
naftiko: "0.5"
info:
label: "Datadog Service Health Check"
description: "Queries Datadog for the health status of a monitored service, returning uptime and active alerts."
tags:
- monitoring
- observability
- datadog
capability:
exposes:
- type: mcp
namespace: ops-monitoring
port: 8080
tools:
- name: get-service-health
description: "Query Datadog for a service health summary. Returns active monitors and alert status."
inputParameters:
- name: service_name
in: body
type: string
description: "The Datadog service name tag."
call: "datadog.get-monitors"
with:
service_name: "{{service_name}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: monitors
path: "/monitor?tag=service:{{service_name}}"
inputParameters:
- name: service_name
in: path
operations:
- name: get-monitors
method: GET
Retrieves the status of a DocuSign envelope for contract signing workflows.
naftiko: "0.5"
info:
label: "DocuSign Contract Status"
description: "Retrieves the status of a DocuSign envelope for contract signing workflows."
tags:
- legal
- contracts
- docusign
capability:
exposes:
- type: mcp
namespace: legal-docusign
port: 8080
tools:
- name: get-envelope-status
description: "Look up a DocuSign envelope by ID. Returns signer status and completion details."
inputParameters:
- name: envelope_id
in: body
type: string
description: "The DocuSign envelope ID."
call: "docusign.get-envelope"
with:
envelope_id: "{{envelope_id}}"
consumes:
- type: http
namespace: docusign
baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/{{account_id}}"
authentication:
type: bearer
token: "$secrets.docusign_token"
inputParameters:
- name: account_id
in: path
value: "$secrets.docusign_account_id"
resources:
- name: envelopes
path: "/envelopes/{{envelope_id}}"
inputParameters:
- name: envelope_id
in: path
operations:
- name: get-envelope
method: GET
Retrieves driver license verification status data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Driver License Verification Status"
description: "Retrieves driver license verification status data from the Republic Services waste management and recycling systems."
tags:
- driver
- republic-services
- status
capability:
exposes:
- type: mcp
namespace: driver
port: 8080
tools:
- name: driver-license-verification-status
description: "Retrieves driver license verification status data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.driver-license-verification-status"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/driver/license/verification/status/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: driver-license-verification-status
method: GET
Orchestrates driver onboarding pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Driver Onboarding Pipeline"
description: "Orchestrates driver onboarding pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- driver
- republic-services
- teams
- jira
- workday
capability:
exposes:
- type: mcp
namespace: driver
port: 8080
tools:
- name: driver-onboarding-pipeline
description: "Orchestrates driver onboarding pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "teams.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "workday.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/driver"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://republic.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/driver"
operations:
- name: execute-2
method: POST
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/republic/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/api/driver"
operations:
- name: execute-3
method: POST
Orchestrates driver route efficiency pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Driver Route Efficiency Pipeline"
description: "Orchestrates driver route efficiency pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- driver
- republic-services
- jira
- workday
- datadog
capability:
exposes:
- type: mcp
namespace: driver
port: 8080
tools:
- name: driver-route-efficiency-pipeline
description: "Orchestrates driver route efficiency pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "workday.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://republic.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/driver"
operations:
- name: execute-1
method: POST
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/republic/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/api/driver"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/driver"
operations:
- name: execute-3
method: POST
Orchestrates driver safety coaching pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Driver Safety Coaching Pipeline"
description: "Orchestrates driver safety coaching pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- driver
- republic-services
- workday
- datadog
- republic
capability:
exposes:
- type: mcp
namespace: driver
port: 8080
tools:
- name: driver-safety-coaching-pipeline
description: "Orchestrates driver safety coaching pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "workday.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "republic.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/republic/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/api/driver"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/driver"
operations:
- name: execute-2
method: POST
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: republic-resource
path: "/api/driver"
operations:
- name: execute-3
method: POST
When a driver safety incident is reported, creates a ServiceNow incident, updates the driver record in Workday, notifies safety management via Microsoft Teams, and records in Datadog.
naftiko: "0.5"
info:
label: "Driver Safety Incident Orchestrator"
description: "When a driver safety incident is reported, creates a ServiceNow incident, updates the driver record in Workday, notifies safety management via Microsoft Teams, and records in Datadog."
tags:
- safety
- fleet
- servicenow
- workday
- microsoft-teams
- datadog
capability:
exposes:
- type: mcp
namespace: safety-incidents
port: 8080
tools:
- name: report-safety-incident
description: "Given driver ID and incident details, create ServiceNow incident, update Workday, notify safety team, and log in Datadog."
inputParameters:
- name: driver_id
in: body
type: string
description: "The driver employee ID."
- name: incident_type
in: body
type: string
description: "Type of safety incident (collision, near-miss, injury)."
- name: location
in: body
type: string
description: "Location of the incident."
- name: description
in: body
type: string
description: "Description of the incident."
steps:
- name: get-driver
type: call
call: "workday.get-worker"
with:
worker_id: "{{driver_id}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Safety incident: {{incident_type}} — Driver {{get-driver.full_name}}"
priority: "2"
category: "safety"
assigned_group: "Safety_Management"
description: "Driver: {{get-driver.full_name}}. Type: {{incident_type}}. Location: {{location}}. Details: {{description}}."
- name: notify-safety
type: call
call: "msteams.send-channel-message"
with:
team_id: "safety_team"
channel: "Incidents"
text: "SAFETY INCIDENT: {{incident_type}} by {{get-driver.full_name}} at {{location}}. Incident: {{create-incident.number}}. Details: {{description}}."
- name: log-event
type: call
call: "datadog.send-event"
with:
title: "Safety incident: {{incident_type}}"
text: "Driver: {{driver_id}}, Location: {{location}}, Type: {{incident_type}}"
alert_type: "warning"
tags: "type:safety,incident:{{incident_type}}"
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://republicservices.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel
in: path
operations:
- name: send-channel-message
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: events
path: "/events"
operations:
- name: send-event
method: POST
Queries Dynatrace for host performance metrics including CPU, memory, and disk utilization.
naftiko: "0.5"
info:
label: "Dynatrace Infrastructure Monitoring"
description: "Queries Dynatrace for host performance metrics including CPU, memory, and disk utilization."
tags:
- monitoring
- infrastructure
- dynatrace
capability:
exposes:
- type: mcp
namespace: ops-dynatrace
port: 8080
tools:
- name: get-host-metrics
description: "Query Dynatrace for host performance. Returns CPU, memory, and disk utilization."
inputParameters:
- name: host_id
in: body
type: string
description: "The Dynatrace host entity ID."
call: "dynatrace.get-host-metrics"
with:
host_id: "{{host_id}}"
consumes:
- type: http
namespace: dynatrace
baseUri: "https://republicservices.live.dynatrace.com/api/v2"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: metrics
path: "/metrics/query?metricSelector=builtin:host.cpu.usage,builtin:host.mem.usage&entitySelector=entityId({{host_id}})"
inputParameters:
- name: host_id
in: path
operations:
- name: get-host-metrics
method: GET
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence across ServiceNow, SharePoint, and Microsoft Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the new hire."
- name: start_date
in: body
type: string
description: "The employee start date in YYYY-MM-DD format."
- name: 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: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding_site"
folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to Republic Services, {{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://republicservices.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
Orchestrates environmental compliance monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Environmental Compliance Monitoring Pipeline"
description: "Orchestrates environmental compliance monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- environmental
- republic-services
- jira
- workday
- datadog
capability:
exposes:
- type: mcp
namespace: environmental
port: 8080
tools:
- name: environmental-compliance-monitoring-pipeline
description: "Orchestrates environmental compliance monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "workday.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://republic.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/environmental"
operations:
- name: execute-1
method: POST
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/republic/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/api/environmental"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/environmental"
operations:
- name: execute-3
method: POST
Generates an environmental compliance report by pulling monitoring data, cross-referencing with SAP maintenance records, creating a Confluence report, and notifying the compliance team.
naftiko: "0.5"
info:
label: "Environmental Compliance Report Orchestrator"
description: "Generates an environmental compliance report by pulling monitoring data, cross-referencing with SAP maintenance records, creating a Confluence report, and notifying the compliance team."
tags:
- compliance
- environmental
- sap
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: compliance-environmental
port: 8080
tools:
- name: generate-compliance-report
description: "Given a site ID and reporting period, pull environmental data, cross-reference SAP, create Confluence report, and notify compliance."
inputParameters:
- name: site_id
in: body
type: string
description: "The facility site identifier."
- name: reporting_period
in: body
type: string
description: "The reporting period (e.g. 2026-Q1)."
steps:
- name: get-monitoring-data
type: call
call: "env-api.get-monitoring-report"
with:
site_id: "{{site_id}}"
period: "{{reporting_period}}"
- name: get-maintenance-records
type: call
call: "sap.get-maintenance-history"
with:
site: "{{site_id}}"
period: "{{reporting_period}}"
- name: create-report
type: call
call: "confluence.create-page"
with:
space_key: "ENV_COMPLIANCE"
title: "Environmental Compliance: {{site_id}} — {{reporting_period}}"
body: "Emissions: {{get-monitoring-data.emissions_summary}}. Maintenance items: {{get-maintenance-records.count}}. Status: {{get-monitoring-data.compliance_status}}."
- name: notify-compliance
type: call
call: "msteams.send-channel-message"
with:
team_id: "compliance_team"
channel: "Environmental"
text: "Environmental compliance report ready: {{site_id}} for {{reporting_period}}. Status: {{get-monitoring-data.compliance_status}}. Report: {{create-report.url}}."
consumes:
- type: http
namespace: env-api
baseUri: "https://environmental.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.env_api_token"
resources:
- name: monitoring
path: "/sites/{{site_id}}/monitoring?period={{period}}"
inputParameters:
- name: site_id
in: path
- name: period
in: path
operations:
- name: get-monitoring-report
method: GET
- type: http
namespace: sap
baseUri: "https://republicservices-s4.sap.com/sap/opu/odata/sap/API_MAINTORDER"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: maintenance-history
path: "/MaintenanceOrder?$filter=FunctionalLocation eq '{{site}}' and CreationDate ge '{{period}}'"
inputParameters:
- name: site
in: path
- name: period
in: path
operations:
- name: get-maintenance-history
method: GET
- type: http
namespace: confluence
baseUri: "https://republicservices.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel
in: path
operations:
- name: send-channel-message
method: POST
Orchestrates environmental incident response pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Environmental Incident Response Pipeline"
description: "Orchestrates environmental incident response pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- environmental
- republic-services
- sap
- teams
- jira
capability:
exposes:
- type: mcp
namespace: environmental
port: 8080
tools:
- name: environmental-incident-response-pipeline
description: "Orchestrates environmental incident response pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sap.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "teams.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://republic-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/api/environmental"
operations:
- name: execute-1
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/environmental"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://republic.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/environmental"
operations:
- name: execute-3
method: POST
Retrieves environmental monitoring well data data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Environmental Monitoring Well Data"
description: "Retrieves environmental monitoring well data data from the Republic Services waste management and recycling systems."
tags:
- environmental
- republic-services
- data
capability:
exposes:
- type: mcp
namespace: environmental
port: 8080
tools:
- name: environmental-monitoring-well-data
description: "Retrieves environmental monitoring well data data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.environmental-monitoring-well-data"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/environmental/monitoring/well/data/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: environmental-monitoring-well-data
method: GET
Orchestrates environmental remediation tracking pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Environmental Remediation Tracking Pipeline"
description: "Orchestrates environmental remediation tracking pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- environmental
- republic-services
- teams
- jira
- workday
capability:
exposes:
- type: mcp
namespace: environmental
port: 8080
tools:
- name: environmental-remediation-tracking-pipeline
description: "Orchestrates environmental remediation tracking pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "teams.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "workday.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/environmental"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://republic.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/environmental"
operations:
- name: execute-2
method: POST
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/republic/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/api/environmental"
operations:
- name: execute-3
method: POST
Retrieves submitted expense reports from SAP Concur, validates against Workday cost center data, and opens a ServiceNow task for finance review.
naftiko: "0.5"
info:
label: "Expense Report Processing"
description: "Retrieves submitted expense reports from SAP Concur, validates against Workday cost center data, and opens a ServiceNow task for finance review."
tags:
- finance
- expense
- sap-concur
- workday
- servicenow
capability:
exposes:
- type: mcp
namespace: finance-expense
port: 8080
tools:
- name: review-expense-report
description: "Given a Concur expense report ID and employee ID, fetch report details, validate cost center, and flag violations."
inputParameters:
- name: expense_report_id
in: body
type: string
description: "The SAP Concur expense report ID."
- name: employee_id
in: body
type: string
description: "The Workday employee ID of the submitter."
steps:
- name: get-expense-report
type: call
call: "concur.get-expense-report"
with:
report_id: "{{expense_report_id}}"
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: open-review-task
type: call
call: "servicenow.create-task"
with:
short_description: "Expense review: {{get-expense-report.report_name}} — {{get-employee.full_name}}"
description: "Total: {{get-expense-report.total_amount}}. Cost center: {{get-employee.cost_center}}."
assigned_group: "Finance_Audit"
category: "expense_review"
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: 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://republicservices.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
operations:
- name: create-task
method: POST
Retrieves Facebook Ads campaign insights including reach, impressions, and spend.
naftiko: "0.5"
info:
label: "Facebook Ads Campaign Report"
description: "Retrieves Facebook Ads campaign insights including reach, impressions, and spend."
tags:
- marketing
- advertising
- facebook-ads
capability:
exposes:
- type: mcp
namespace: marketing-facebook
port: 8080
tools:
- name: get-fb-campaign-insights
description: "Retrieve Facebook Ads campaign insights by campaign ID. Returns reach, impressions, and spend."
inputParameters:
- name: campaign_id
in: body
type: string
description: "The Facebook Ads campaign ID."
- name: date_preset
in: body
type: string
description: "Date preset (e.g. last_7d, last_30d)."
call: "fbads.get-insights"
with:
campaign_id: "{{campaign_id}}"
date_preset: "{{date_preset}}"
consumes:
- type: http
namespace: fbads
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.meta_access_token"
resources:
- name: insights
path: "/{{campaign_id}}/insights?date_preset={{date_preset}}"
inputParameters:
- name: campaign_id
in: path
- name: date_preset
in: path
operations:
- name: get-insights
method: GET
Orchestrates fleet accident response pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Fleet Accident Response Pipeline"
description: "Orchestrates fleet accident response pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- fleet
- republic-services
- sap
- teams
- jira
capability:
exposes:
- type: mcp
namespace: fleet
port: 8080
tools:
- name: fleet-accident-response-pipeline
description: "Orchestrates fleet accident response pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sap.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "teams.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://republic-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/api/fleet"
operations:
- name: execute-1
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/fleet"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://republic.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/fleet"
operations:
- name: execute-3
method: POST
When a vehicle breaks down, creates a ServiceNow P1 incident, reassigns the route via the routing system, notifies dispatch via Microsoft Teams, and logs a Datadog event.
naftiko: "0.5"
info:
label: "Fleet Breakdown Orchestrator"
description: "When a vehicle breaks down, creates a ServiceNow P1 incident, reassigns the route via the routing system, notifies dispatch via Microsoft Teams, and logs a Datadog event."
tags:
- fleet
- maintenance
- servicenow
- microsoft-teams
- datadog
- routing
capability:
exposes:
- type: mcp
namespace: fleet-breakdown
port: 8080
tools:
- name: handle-breakdown
description: "Given a vehicle unit and driver ID, create ServiceNow incident, reassign route, notify dispatch, and log in Datadog."
inputParameters:
- name: vehicle_unit
in: body
type: string
description: "The fleet vehicle unit number."
- name: driver_id
in: body
type: string
description: "The driver employee ID."
- name: location
in: body
type: string
description: "GPS coordinates of the breakdown location."
- name: issue_description
in: body
type: string
description: "Description of the vehicle issue."
steps:
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Vehicle breakdown: Unit {{vehicle_unit}} at {{location}}"
priority: "1"
category: "fleet_maintenance"
assigned_group: "Fleet_Maintenance"
description: "Driver: {{driver_id}}. Issue: {{issue_description}}. Location: {{location}}."
- name: reassign-route
type: call
call: "routing-api.reassign-route"
with:
driver_id: "{{driver_id}}"
reason: "vehicle_breakdown"
vehicle_unit: "{{vehicle_unit}}"
- name: notify-dispatch
type: call
call: "msteams.send-channel-message"
with:
team_id: "dispatch_ops"
channel: "Fleet-Alerts"
text: "BREAKDOWN: Unit {{vehicle_unit}}, driver {{driver_id}} at {{location}}. Issue: {{issue_description}}. Incident: {{create-incident.number}}. Route reassigned to: {{reassign-route.new_driver_id}}."
- name: log-event
type: call
call: "datadog.send-event"
with:
title: "Fleet breakdown: Unit {{vehicle_unit}}"
text: "Driver: {{driver_id}}, Location: {{location}}, Issue: {{issue_description}}"
alert_type: "error"
tags: "fleet:{{vehicle_unit}},type:breakdown"
consumes:
- type: http
namespace: servicenow
baseUri: "https://republicservices.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: routing-api
baseUri: "https://routing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.routing_api_token"
resources:
- name: reassignments
path: "/routes/reassign"
operations:
- name: reassign-route
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel
in: path
operations:
- name: send-channel-message
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: events
path: "/events"
operations:
- name: send-event
method: POST
Orchestrates fleet compliance audit pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Fleet Compliance Audit Pipeline"
description: "Orchestrates fleet compliance audit pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- fleet
- republic-services
- datadog
- republic
- salesforce
capability:
exposes:
- type: mcp
namespace: fleet
port: 8080
tools:
- name: fleet-compliance-audit-pipeline
description: "Orchestrates fleet compliance audit pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "republic.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "salesforce.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/fleet"
operations:
- name: execute-1
method: POST
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: republic-resource
path: "/api/fleet"
operations:
- name: execute-2
method: POST
- type: http
namespace: salesforce
baseUri: "https://republic.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/fleet"
operations:
- name: execute-3
method: POST
Orchestrates fleet electrification planning pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Fleet Electrification Planning Pipeline"
description: "Orchestrates fleet electrification planning pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- fleet
- republic-services
- workday
- datadog
- republic
capability:
exposes:
- type: mcp
namespace: fleet
port: 8080
tools:
- name: fleet-electrification-planning-pipeline
description: "Orchestrates fleet electrification planning pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "workday.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "republic.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/republic/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/api/fleet"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/fleet"
operations:
- name: execute-2
method: POST
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: republic-resource
path: "/api/fleet"
operations:
- name: execute-3
method: POST
Retrieves fleet fuel consumption report data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Fleet Fuel Consumption Report"
description: "Retrieves fleet fuel consumption report data from the Republic Services waste management and recycling systems."
tags:
- fleet
- republic-services
- report
capability:
exposes:
- type: mcp
namespace: fleet
port: 8080
tools:
- name: fleet-fuel-consumption-report
description: "Retrieves fleet fuel consumption report data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.fleet-fuel-consumption-report"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/fleet/fuel/consumption/report/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: fleet-fuel-consumption-report
method: GET
Orchestrates fleet fuel optimization pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Fleet Fuel Optimization Pipeline"
description: "Orchestrates fleet fuel optimization pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- fleet
- republic-services
- snowflake
- slack
- sap
capability:
exposes:
- type: mcp
namespace: fleet
port: 8080
tools:
- name: fleet-fuel-optimization-pipeline
description: "Orchestrates fleet fuel optimization pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sap.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/fleet"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/fleet"
operations:
- name: execute-2
method: POST
- type: http
namespace: sap
baseUri: "https://republic-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/api/fleet"
operations:
- name: execute-3
method: POST
Retrieves fleet gps tracking lookup data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Fleet Gps Tracking Lookup"
description: "Retrieves fleet gps tracking lookup data from the Republic Services waste management and recycling systems."
tags:
- fleet
- republic-services
- lookup
capability:
exposes:
- type: mcp
namespace: fleet
port: 8080
tools:
- name: fleet-gps-tracking-lookup
description: "Retrieves fleet gps tracking lookup data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.fleet-gps-tracking-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/fleet/gps/tracking/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: fleet-gps-tracking-lookup
method: GET
Orchestrates fleet insurance claims pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Fleet Insurance Claims Pipeline"
description: "Orchestrates fleet insurance claims pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- fleet
- republic-services
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: fleet
port: 8080
tools:
- name: fleet-insurance-claims-pipeline
description: "Orchestrates fleet insurance claims pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/fleet"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/fleet"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/fleet"
operations:
- name: execute-3
method: POST
Retrieves the maintenance schedule for a fleet vehicle from SAP, returning upcoming service items, mileage thresholds, and last service date.
naftiko: "0.5"
info:
label: "Fleet Maintenance Schedule Lookup"
description: "Retrieves the maintenance schedule for a fleet vehicle from SAP, returning upcoming service items, mileage thresholds, and last service date."
tags:
- fleet
- maintenance
- sap
capability:
exposes:
- type: mcp
namespace: fleet-maintenance
port: 8080
tools:
- name: get-maintenance-schedule
description: "Look up a vehicle maintenance schedule in SAP by equipment number. Returns upcoming service items and due dates."
inputParameters:
- name: equipment_number
in: body
type: string
description: "The SAP equipment number for the vehicle."
call: "sap.get-maintenance-plan"
with:
equipment: "{{equipment_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://republicservices-s4.sap.com/sap/opu/odata/sap/API_MAINTORDER"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: maintenance-plans
path: "/MaintenancePlan?$filter=Equipment eq '{{equipment}}'"
inputParameters:
- name: equipment
in: path
operations:
- name: get-maintenance-plan
method: GET
Orchestrates fleet preventive maintenance scheduler across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Fleet Preventive Maintenance Scheduler"
description: "Orchestrates fleet preventive maintenance scheduler across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- fleet
- republic-services
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: fleet
port: 8080
tools:
- name: fleet-preventive-maintenance-scheduler
description: "Orchestrates fleet preventive maintenance scheduler across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://republic.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/fleet"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/fleet"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/fleet"
operations:
- name: execute-3
method: POST
Orchestrates fleet telematics analytics pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Fleet Telematics Analytics Pipeline"
description: "Orchestrates fleet telematics analytics pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- fleet
- republic-services
- slack
- sap
- teams
capability:
exposes:
- type: mcp
namespace: fleet
port: 8080
tools:
- name: fleet-telematics-analytics-pipeline
description: "Orchestrates fleet telematics analytics pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sap.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/fleet"
operations:
- name: execute-1
method: POST
- type: http
namespace: sap
baseUri: "https://republic-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/api/fleet"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/fleet"
operations:
- name: execute-3
method: POST
Orchestrates fleet vehicle replacement pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Fleet Vehicle Replacement Pipeline"
description: "Orchestrates fleet vehicle replacement pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- fleet
- republic-services
- republic
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: fleet
port: 8080
tools:
- name: fleet-vehicle-replacement-pipeline
description: "Orchestrates fleet vehicle replacement pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "republic.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: republic-resource
path: "/api/fleet"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://republic.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/fleet"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/fleet"
operations:
- name: execute-3
method: POST
Retrieves real-time vehicle telematics data from the fleet management system including location, speed, fuel level, and engine status.
naftiko: "0.5"
info:
label: "Fleet Vehicle Telematics Lookup"
description: "Retrieves real-time vehicle telematics data from the fleet management system including location, speed, fuel level, and engine status."
tags:
- fleet
- telematics
- operations
capability:
exposes:
- type: mcp
namespace: fleet-telematics
port: 8080
tools:
- name: get-vehicle-status
description: "Query vehicle telematics by unit number. Returns GPS location, speed, fuel level, and engine status."
inputParameters:
- name: vehicle_unit
in: body
type: string
description: "The fleet vehicle unit number."
call: "fleet-api.get-vehicle"
with:
unit_number: "{{vehicle_unit}}"
consumes:
- type: http
namespace: fleet-api
baseUri: "https://fleet.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.fleet_api_token"
resources:
- name: vehicles
path: "/vehicles/{{unit_number}}/telematics"
inputParameters:
- name: unit_number
in: path
operations:
- name: get-vehicle
method: GET
Retrieves Google Ads campaign performance data for digital marketing analysis.
naftiko: "0.5"
info:
label: "Google Ads Campaign Report"
description: "Retrieves Google Ads campaign performance data for digital marketing analysis."
tags:
- marketing
- advertising
- google-ads
capability:
exposes:
- type: mcp
namespace: marketing-ads
port: 8080
tools:
- name: get-ads-performance
description: "Retrieve Google Ads campaign performance. Returns impressions, clicks, cost, and conversions."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Google Ads customer ID."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
call: "googleads.search-stream"
with:
customer_id: "{{customer_id}}"
query: "SELECT campaign.name, metrics.impressions, metrics.clicks, metrics.cost_micros FROM campaign WHERE segments.date BETWEEN '{{start_date}}' AND '{{end_date}}'"
consumes:
- type: http
namespace: googleads
baseUri: "https://googleads.googleapis.com/v15"
authentication:
type: bearer
token: "$secrets.google_ads_token"
resources:
- name: search
path: "/customers/{{customer_id}}/googleAds:searchStream"
inputParameters:
- name: customer_id
in: path
operations:
- name: search-stream
method: POST
Uploads a file to a specified Google Drive folder and returns the file ID and shareable link.
naftiko: "0.5"
info:
label: "Google Drive File Upload"
description: "Uploads a file to a specified Google Drive folder and returns the file ID and shareable link."
tags:
- collaboration
- storage
- google-drive
capability:
exposes:
- type: mcp
namespace: storage-gdrive
port: 8080
tools:
- name: upload-file
description: "Upload a file to a Google Drive folder. Returns file ID and shareable link."
inputParameters:
- name: folder_id
in: body
type: string
description: "The Google Drive folder ID."
- name: file_name
in: body
type: string
description: "The name for the uploaded file."
call: "gdrive.upload-file"
with:
folder_id: "{{folder_id}}"
name: "{{file_name}}"
consumes:
- type: http
namespace: gdrive
baseUri: "https://www.googleapis.com/upload/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files?uploadType=multipart"
operations:
- name: upload-file
method: POST
Geocodes an address via Google Maps API, returning latitude, longitude, and formatted address.
naftiko: "0.5"
info:
label: "Google Maps Geocoding"
description: "Geocodes an address via Google Maps API, returning latitude, longitude, and formatted address."
tags:
- routing
- geolocation
- google-maps
capability:
exposes:
- type: mcp
namespace: geo-maps
port: 8080
tools:
- name: geocode-address
description: "Geocode an address via Google Maps. Returns latitude, longitude, and formatted address."
inputParameters:
- name: address
in: body
type: string
description: "The address to geocode."
call: "googlemaps.geocode"
with:
address: "{{address}}"
consumes:
- type: http
namespace: googlemaps
baseUri: "https://maps.googleapis.com/maps/api"
authentication:
type: apiKey
key: "$secrets.google_maps_key"
resources:
- name: geocode
path: "/geocode/json?address={{address}}"
inputParameters:
- name: address
in: path
operations:
- name: geocode
method: GET
Retrieves hauling route details lookup data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Hauling Route Details Lookup"
description: "Retrieves hauling route details lookup data from the Republic Services waste management and recycling systems."
tags:
- hauling
- republic-services
- lookup
capability:
exposes:
- type: mcp
namespace: hauling
port: 8080
tools:
- name: hauling-route-details-lookup
description: "Retrieves hauling route details lookup data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.hauling-route-details-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/hauling/route/details/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: hauling-route-details-lookup
method: GET
Retrieves invoice payment status from the billing system for a customer account.
naftiko: "0.5"
info:
label: "Invoice Payment Status"
description: "Retrieves invoice payment status from the billing system for a customer account."
tags:
- billing
- finance
- accounts-receivable
capability:
exposes:
- type: mcp
namespace: billing-invoices
port: 8080
tools:
- name: get-invoice-status
description: "Look up an invoice by number. Returns amount, due date, payment status, and payment date."
inputParameters:
- name: invoice_number
in: body
type: string
description: "The invoice number."
call: "billing-api.get-invoice"
with:
invoice_number: "{{invoice_number}}"
consumes:
- type: http
namespace: billing-api
baseUri: "https://billing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: invoices
path: "/invoices/{{invoice_number}}"
inputParameters:
- name: invoice_number
in: path
operations:
- name: get-invoice
method: GET
When an employee leaves in Workday, deactivates their Azure AD account, closes ServiceNow tickets, and logs the offboarding in Microsoft Teams.
naftiko: "0.5"
info:
label: "IT Asset Offboarding Orchestrator"
description: "When an employee leaves in Workday, deactivates their Azure AD account, closes ServiceNow tickets, and logs the offboarding in Microsoft Teams."
tags:
- hr
- offboarding
- workday
- azure-active-directory
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-offboarding
port: 8080
tools:
- name: offboard-employee
description: "Given a Workday employee ID, deactivate Azure AD, close ServiceNow tickets, and notify via Teams."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday employee ID of the departing employee."
- name: last_day
in: body
type: string
description: "The employee's last working day in YYYY-MM-DD format."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: disable-ad-account
type: call
call: "aad.disable-user"
with:
upn: "{{get-employee.work_email}}"
- name: close-tickets
type: call
call: "servicenow.close-user-tickets"
with:
caller_id: "{{get-employee.work_email}}"
close_notes: "Employee offboarding: {{get-employee.full_name}} last day {{last_day}}"
- name: notify-hr
type: call
call: "msteams.send-message"
with:
recipient_upn: "hr-team@republicservices.com"
text: "Offboarding complete for {{get-employee.full_name}} ({{employee_id}}). AD disabled, tickets closed. Last day: {{last_day}}."
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: aad
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: users
path: "/users/{{upn}}"
inputParameters:
- name: upn
in: path
operations:
- name: disable-user
method: PATCH
- type: http
namespace: servicenow
baseUri: "https://republicservices.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=caller_id={{caller_id}}^state!=7"
inputParameters:
- name: caller_id
in: path
operations:
- name: close-user-tickets
method: PATCH
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Checks landfill capacity data from the environmental monitoring system, updates SAP asset records, generates a Tableau report, and alerts operations if capacity thresholds are exceeded.
naftiko: "0.5"
info:
label: "Landfill Capacity Monitoring Orchestrator"
description: "Checks landfill capacity data from the environmental monitoring system, updates SAP asset records, generates a Tableau report, and alerts operations if capacity thresholds are exceeded."
tags:
- operations
- environmental
- sap
- tableau
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: ops-landfill
port: 8080
tools:
- name: check-landfill-capacity
description: "Given a landfill site ID, check capacity, update SAP records, refresh Tableau, and alert if thresholds exceeded."
inputParameters:
- name: site_id
in: body
type: string
description: "The landfill site identifier."
steps:
- name: get-capacity
type: call
call: "env-api.get-site-capacity"
with:
site_id: "{{site_id}}"
- name: update-sap-asset
type: call
call: "sap.update-asset"
with:
asset_id: "{{site_id}}"
remaining_capacity: "{{get-capacity.remaining_cubic_yards}}"
utilization_pct: "{{get-capacity.utilization_percentage}}"
- name: refresh-report
type: call
call: "tableau.refresh-workbook"
with:
workbook_id: "landfill_capacity_dashboard"
site_id: "$secrets.tableau_site_id"
- name: alert-if-critical
type: call
call: "msteams.send-channel-message"
with:
team_id: "landfill_ops"
channel: "Capacity-Alerts"
text: "Landfill {{site_id}} capacity update: {{get-capacity.utilization_percentage}}% utilized. Remaining: {{get-capacity.remaining_cubic_yards}} cu yds. Est. closure: {{get-capacity.estimated_closure_date}}."
consumes:
- type: http
namespace: env-api
baseUri: "https://environmental.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.env_api_token"
resources:
- name: site-capacity
path: "/sites/{{site_id}}/capacity"
inputParameters:
- name: site_id
in: path
operations:
- name: get-site-capacity
method: GET
- type: http
namespace: sap
baseUri: "https://republicservices-s4.sap.com/sap/opu/odata/sap/API_FIXEDASSET"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: assets
path: "/A_FixedAsset('{{asset_id}}')"
inputParameters:
- name: asset_id
in: path
operations:
- name: update-asset
method: PATCH
- type: http
namespace: tableau
baseUri: "https://republicservices.online.tableau.com/api/3.21"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: workbooks
path: "/sites/{{site_id}}/workbooks/{{workbook_id}}/refresh"
inputParameters:
- name: site_id
in: path
- name: workbook_id
in: path
operations:
- name: refresh-workbook
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel
in: path
operations:
- name: send-channel-message
method: POST
Orchestrates landfill capacity monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Landfill Capacity Monitoring Pipeline"
description: "Orchestrates landfill capacity monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- landfill
- republic-services
- snowflake
- slack
- sap
capability:
exposes:
- type: mcp
namespace: landfill
port: 8080
tools:
- name: landfill-capacity-monitoring-pipeline
description: "Orchestrates landfill capacity monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sap.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/landfill"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/landfill"
operations:
- name: execute-2
method: POST
- type: http
namespace: sap
baseUri: "https://republic-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/api/landfill"
operations:
- name: execute-3
method: POST
Orchestrates landfill closure planning pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Landfill Closure Planning Pipeline"
description: "Orchestrates landfill closure planning pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- landfill
- republic-services
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: landfill
port: 8080
tools:
- name: landfill-closure-planning-pipeline
description: "Orchestrates landfill closure planning pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://republic.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/landfill"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/landfill"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/landfill"
operations:
- name: execute-3
method: POST
Retrieves landfill gas collection metrics data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Landfill Gas Collection Metrics"
description: "Retrieves landfill gas collection metrics data from the Republic Services waste management and recycling systems."
tags:
- landfill
- republic-services
- metrics
capability:
exposes:
- type: mcp
namespace: landfill
port: 8080
tools:
- name: landfill-gas-collection-metrics
description: "Retrieves landfill gas collection metrics data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.landfill-gas-collection-metrics"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/landfill/gas/collection/metrics/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: landfill-gas-collection-metrics
method: GET
Orchestrates landfill gas to energy monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Landfill Gas To Energy Monitoring Pipeline"
description: "Orchestrates landfill gas to energy monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- landfill
- republic-services
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: landfill
port: 8080
tools:
- name: landfill-gas-to-energy-monitoring-pipeline
description: "Orchestrates landfill gas to energy monitoring pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/landfill"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/landfill"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/landfill"
operations:
- name: execute-3
method: POST
Orchestrates landfill leachate treatment pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Landfill Leachate Treatment Pipeline"
description: "Orchestrates landfill leachate treatment pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- landfill
- republic-services
- republic
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: landfill
port: 8080
tools:
- name: landfill-leachate-treatment-pipeline
description: "Orchestrates landfill leachate treatment pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "republic.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: republic-resource
path: "/api/landfill"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://republic.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/landfill"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/landfill"
operations:
- name: execute-3
method: POST
Retrieves landfill permit status lookup data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Landfill Permit Status Lookup"
description: "Retrieves landfill permit status lookup data from the Republic Services waste management and recycling systems."
tags:
- landfill
- republic-services
- lookup
capability:
exposes:
- type: mcp
namespace: landfill
port: 8080
tools:
- name: landfill-permit-status-lookup
description: "Retrieves landfill permit status lookup data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.landfill-permit-status-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/landfill/permit/status/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: landfill-permit-status-lookup
method: GET
Retrieves a Microsoft Dynamics 365 opportunity record, returning stage, estimated value, and close date.
naftiko: "0.5"
info:
label: "Microsoft Dynamics CRM Opportunity Lookup"
description: "Retrieves a Microsoft Dynamics 365 opportunity record, returning stage, estimated value, and close date."
tags:
- sales
- crm
- microsoft-dynamics
capability:
exposes:
- type: mcp
namespace: sales-dynamics
port: 8080
tools:
- name: get-opportunity
description: "Look up a Dynamics 365 opportunity by ID. Returns stage, estimated value, close date, and owner."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "The Dynamics 365 opportunity ID."
call: "dynamics.get-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
consumes:
- type: http
namespace: dynamics
baseUri: "https://republicservices.crm.dynamics.com/api/data/v9.2"
authentication:
type: bearer
token: "$secrets.dynamics_token"
resources:
- name: opportunities
path: "/opportunities({{opportunity_id}})"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: get-opportunity
method: GET
Sends an email notification via Microsoft Graph to a specified recipient.
naftiko: "0.5"
info:
label: "Microsoft Outlook Email Notification"
description: "Sends an email notification via Microsoft Graph to a specified recipient."
tags:
- communications
- email
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: comms-email
port: 8080
tools:
- name: send-email
description: "Send an email via Microsoft Graph. Specify recipient, subject, and body."
inputParameters:
- name: to_email
in: body
type: string
description: "The recipient email address."
- name: subject
in: body
type: string
description: "The email subject."
- name: body
in: body
type: string
description: "The email body content."
call: "outlook.send-mail"
with:
to: "{{to_email}}"
subject: "{{subject}}"
body: "{{body}}"
consumes:
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST
Sends a message to a Microsoft Teams channel, used by workflows for dispatch and operations alerts.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notification"
description: "Sends a message to a Microsoft Teams channel, used by workflows for dispatch and operations alerts."
tags:
- collaboration
- messaging
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: comms-teams
port: 8080
tools:
- name: send-channel-message
description: "Send a message to a Microsoft Teams channel by team and channel ID."
inputParameters:
- name: team_id
in: body
type: string
description: "The Microsoft Teams team ID."
- name: channel_id
in: body
type: string
description: "The channel ID within the team."
- name: message
in: body
type: string
description: "The message content."
call: "msteams.post-channel-message"
with:
team_id: "{{team_id}}"
channel_id: "{{channel_id}}"
text: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
When a missed pickup is reported, looks up the route data, creates a Salesforce case, dispatches a recovery truck via the routing system, and notifies the customer.
naftiko: "0.5"
info:
label: "Missed Pickup Resolution Orchestrator"
description: "When a missed pickup is reported, looks up the route data, creates a Salesforce case, dispatches a recovery truck via the routing system, and notifies the customer."
tags:
- customer-service
- routing
- salesforce
- microsoft-teams
- operations
capability:
exposes:
- type: mcp
namespace: customer-missed-pickup
port: 8080
tools:
- name: resolve-missed-pickup
description: "Given a customer account number and service date, create a case, dispatch recovery, and notify the customer."
inputParameters:
- name: account_number
in: body
type: string
description: "The customer billing account number."
- name: service_date
in: body
type: string
description: "The missed service date in YYYY-MM-DD format."
- name: service_type
in: body
type: string
description: "Type of service missed (trash, recycling, bulk)."
steps:
- name: get-billing
type: call
call: "billing-api.get-account"
with:
account_number: "{{account_number}}"
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "Missed {{service_type}} pickup: {{account_number}}"
description: "Customer: {{get-billing.customer_name}}. Address: {{get-billing.service_address}}. Service date: {{service_date}}."
type: "Missed Pickup"
priority: "High"
- name: dispatch-recovery
type: call
call: "routing-api.create-recovery-stop"
with:
address: "{{get-billing.service_address}}"
service_type: "{{service_type}}"
district: "{{get-billing.district}}"
- name: notify-dispatch
type: call
call: "msteams.send-channel-message"
with:
team_id: "ops_{{get-billing.district}}"
channel: "Missed-Pickups"
text: "Missed {{service_type}} pickup: {{get-billing.customer_name}} at {{get-billing.service_address}}. Case: {{create-case.case_number}}. Recovery assigned to: {{dispatch-recovery.driver_id}}."
consumes:
- type: http
namespace: billing-api
baseUri: "https://billing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: accounts
path: "/accounts/{{account_number}}"
inputParameters:
- name: account_number
in: path
operations:
- name: get-account
method: GET
- type: http
namespace: salesforce
baseUri: "https://republicservices.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: routing-api
baseUri: "https://routing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.routing_api_token"
resources:
- name: recovery-stops
path: "/recovery-stops"
operations:
- name: create-recovery-stop
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel
in: path
operations:
- name: send-channel-message
method: POST
Orchestrates municipal contract compliance pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Municipal Contract Compliance Pipeline"
description: "Orchestrates municipal contract compliance pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- municipal
- republic-services
- slack
- sap
- teams
capability:
exposes:
- type: mcp
namespace: municipal
port: 8080
tools:
- name: municipal-contract-compliance-pipeline
description: "Orchestrates municipal contract compliance pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sap.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/municipal"
operations:
- name: execute-1
method: POST
- type: http
namespace: sap
baseUri: "https://republic-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/api/municipal"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/municipal"
operations:
- name: execute-3
method: POST
When a new customer is signed in Salesforce, creates the billing account, schedules the first pickup via routing, provisions a customer portal account, and sends a welcome notification.
naftiko: "0.5"
info:
label: "New Customer Onboarding Orchestrator"
description: "When a new customer is signed in Salesforce, creates the billing account, schedules the first pickup via routing, provisions a customer portal account, and sends a welcome notification."
tags:
- customer-service
- onboarding
- salesforce
- billing
- routing
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: customer-onboarding
port: 8080
tools:
- name: onboard-customer
description: "Given a Salesforce opportunity ID, create billing account, schedule first pickup, and send welcome notification."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "The Salesforce opportunity ID."
steps:
- name: get-opportunity
type: call
call: "salesforce.get-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
- name: create-billing-account
type: call
call: "billing-api.create-account"
with:
customer_name: "{{get-opportunity.account_name}}"
service_address: "{{get-opportunity.service_address}}"
service_type: "{{get-opportunity.service_type}}"
rate_code: "{{get-opportunity.rate_code}}"
- name: schedule-first-pickup
type: call
call: "routing-api.schedule-stop"
with:
address: "{{get-opportunity.service_address}}"
service_type: "{{get-opportunity.service_type}}"
district: "{{get-opportunity.district}}"
- name: notify-sales
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-opportunity.owner_email}}"
text: "Customer onboarded: {{get-opportunity.account_name}}. Billing account: {{create-billing-account.account_number}}. First pickup: {{schedule-first-pickup.scheduled_date}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://republicservices.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: get-opportunity
method: GET
- type: http
namespace: billing-api
baseUri: "https://billing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: accounts
path: "/accounts"
operations:
- name: create-account
method: POST
- type: http
namespace: routing-api
baseUri: "https://routing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.routing_api_token"
resources:
- name: stops
path: "/stops"
operations:
- name: schedule-stop
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
Queries New Relic for application performance metrics including response time, throughput, and error rate.
naftiko: "0.5"
info:
label: "New Relic Application Performance"
description: "Queries New Relic for application performance metrics including response time, throughput, and error rate."
tags:
- monitoring
- apm
- new-relic
capability:
exposes:
- type: mcp
namespace: ops-apm
port: 8080
tools:
- name: get-app-performance
description: "Query New Relic for application performance. Returns response time, throughput, and error rate."
inputParameters:
- name: app_id
in: body
type: string
description: "The New Relic application ID."
call: "newrelic.get-app-metrics"
with:
app_id: "{{app_id}}"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
key: "$secrets.newrelic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}/metrics/data.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-app-metrics
method: GET
Queries Oracle Essbase for financial planning data including budget vs. actuals and variance analysis.
naftiko: "0.5"
info:
label: "Oracle Essbase Financial Query"
description: "Queries Oracle Essbase for financial planning data including budget vs. actuals and variance analysis."
tags:
- finance
- planning
- oracle-essbase
capability:
exposes:
- type: mcp
namespace: finance-essbase
port: 8080
tools:
- name: query-financials
description: "Query Oracle Essbase for budget vs. actuals data. Returns planned, actual, and variance amounts."
inputParameters:
- name: cube
in: body
type: string
description: "The Essbase cube name."
- name: dimension_filter
in: body
type: string
description: "The dimension member filter (e.g. cost center, period)."
call: "essbase.run-mdx"
with:
cube: "{{cube}}"
query: "{{dimension_filter}}"
consumes:
- type: http
namespace: essbase
baseUri: "https://republicservices-essbase.oracle.com/essbase/rest/v1"
authentication:
type: basic
username: "$secrets.essbase_user"
password: "$secrets.essbase_password"
resources:
- name: queries
path: "/applications/{{cube}}/databases/{{cube}}/mdx"
inputParameters:
- name: cube
in: path
operations:
- name: run-mdx
method: POST
Triggers a dataset refresh in Power BI for fleet and operations dashboards.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresh"
description: "Triggers a dataset refresh in Power BI for fleet and operations dashboards."
tags:
- analytics
- reporting
- power-bi
capability:
exposes:
- type: mcp
namespace: bi-reporting
port: 8080
tools:
- name: refresh-dataset
description: "Trigger a Power BI dataset refresh by dataset ID and return refresh status."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
- name: group_id
in: body
type: string
description: "The Power BI workspace (group) ID."
call: "powerbi.trigger-refresh"
with:
dataset_id: "{{dataset_id}}"
group_id: "{{group_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
Triggers a Qlik Sense application reload for updated analytics data.
naftiko: "0.5"
info:
label: "Qlik Sense App Reload"
description: "Triggers a Qlik Sense application reload for updated analytics data."
tags:
- analytics
- reporting
- qlik
capability:
exposes:
- type: mcp
namespace: analytics-qlik
port: 8080
tools:
- name: reload-app
description: "Trigger a Qlik Sense app reload by app ID. Returns the reload task status."
inputParameters:
- name: app_id
in: body
type: string
description: "The Qlik Sense app ID."
call: "qlik.reload-app"
with:
app_id: "{{app_id}}"
consumes:
- type: http
namespace: qlik
baseUri: "https://republicservices.us.qlikcloud.com/api/v1"
authentication:
type: bearer
token: "$secrets.qlik_token"
resources:
- name: reloads
path: "/reloads"
operations:
- name: reload-app
method: POST
Retrieves recycling commodity market lookup data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Recycling Commodity Market Lookup"
description: "Retrieves recycling commodity market lookup data from the Republic Services waste management and recycling systems."
tags:
- recycling
- republic-services
- lookup
capability:
exposes:
- type: mcp
namespace: recycling
port: 8080
tools:
- name: recycling-commodity-market-lookup
description: "Retrieves recycling commodity market lookup data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.recycling-commodity-market-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/recycling/commodity/market/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: recycling-commodity-market-lookup
method: GET
When recycling contamination is detected at a facility, logs the event in SAP, creates a Salesforce case for the customer, generates a Datadog metric, and notifies the recycling team.
naftiko: "0.5"
info:
label: "Recycling Contamination Alert Orchestrator"
description: "When recycling contamination is detected at a facility, logs the event in SAP, creates a Salesforce case for the customer, generates a Datadog metric, and notifies the recycling team."
tags:
- operations
- recycling
- sap
- salesforce
- datadog
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: ops-recycling
port: 8080
tools:
- name: report-contamination
description: "Given facility ID and contamination details, log in SAP, create customer case, record metrics, and alert recycling team."
inputParameters:
- name: facility_id
in: body
type: string
description: "The recycling facility ID."
- name: account_number
in: body
type: string
description: "The customer account number."
- name: contamination_type
in: body
type: string
description: "Type of contamination detected."
- name: severity
in: body
type: string
description: "Severity level (low, medium, high)."
steps:
- name: get-billing
type: call
call: "billing-api.get-account"
with:
account_number: "{{account_number}}"
- name: log-sap-event
type: call
call: "sap.create-quality-notification"
with:
notification_type: "contamination"
description: "Recycling contamination at {{facility_id}}: {{contamination_type}} ({{severity}}). Customer: {{get-billing.customer_name}}."
plant: "{{facility_id}}"
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "Recycling contamination: {{get-billing.customer_name}}"
description: "Contamination type: {{contamination_type}}. Severity: {{severity}}. Facility: {{facility_id}}."
type: "Contamination"
priority: "{{severity}}"
- name: record-metric
type: call
call: "datadog.send-event"
with:
title: "Recycling contamination at {{facility_id}}"
text: "Customer: {{account_number}}, Type: {{contamination_type}}, Severity: {{severity}}"
tags: "facility:{{facility_id}},type:contamination,severity:{{severity}}"
- name: notify-team
type: call
call: "msteams.send-channel-message"
with:
team_id: "recycling_ops"
channel: "Contamination"
text: "Contamination alert at {{facility_id}}: {{contamination_type}} ({{severity}}). Customer: {{get-billing.customer_name}}. Case: {{create-case.case_number}}."
consumes:
- type: http
namespace: billing-api
baseUri: "https://billing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.billing_api_token"
resources:
- name: accounts
path: "/accounts/{{account_number}}"
inputParameters:
- name: account_number
in: path
operations:
- name: get-account
method: GET
- type: http
namespace: sap
baseUri: "https://republicservices-s4.sap.com/sap/opu/odata/sap/QM_NOTIFICATION_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: notifications
path: "/QualityNotifications"
operations:
- name: create-quality-notification
method: POST
- type: http
namespace: salesforce
baseUri: "https://republicservices.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: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: events
path: "/events"
operations:
- name: send-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}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel
in: path
operations:
- name: send-channel-message
method: POST
Orchestrates recycling contamination remediation pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Recycling Contamination Remediation Pipeline"
description: "Orchestrates recycling contamination remediation pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- recycling
- republic-services
- slack
- sap
- teams
capability:
exposes:
- type: mcp
namespace: recycling
port: 8080
tools:
- name: recycling-contamination-remediation-pipeline
description: "Orchestrates recycling contamination remediation pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sap.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/recycling"
operations:
- name: execute-1
method: POST
- type: http
namespace: sap
baseUri: "https://republic-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/api/recycling"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/recycling"
operations:
- name: execute-3
method: POST
Orchestrates recycling education campaign pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Recycling Education Campaign Pipeline"
description: "Orchestrates recycling education campaign pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- recycling
- republic-services
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: recycling
port: 8080
tools:
- name: recycling-education-campaign-pipeline
description: "Orchestrates recycling education campaign pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://republic.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/recycling"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/recycling"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/recycling"
operations:
- name: execute-3
method: POST
Orchestrates recycling market opportunity pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Recycling Market Opportunity Pipeline"
description: "Orchestrates recycling market opportunity pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- recycling
- republic-services
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: recycling
port: 8080
tools:
- name: recycling-market-opportunity-pipeline
description: "Orchestrates recycling market opportunity pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/recycling"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/recycling"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/recycling"
operations:
- name: execute-3
method: POST
Retrieves recycling material pricing lookup data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Recycling Material Pricing Lookup"
description: "Retrieves recycling material pricing lookup data from the Republic Services waste management and recycling systems."
tags:
- recycling
- republic-services
- lookup
capability:
exposes:
- type: mcp
namespace: recycling
port: 8080
tools:
- name: recycling-material-pricing-lookup
description: "Retrieves recycling material pricing lookup data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.recycling-material-pricing-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/recycling/material/pricing/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: recycling-material-pricing-lookup
method: GET
Orchestrates recycling sorting quality pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Recycling Sorting Quality Pipeline"
description: "Orchestrates recycling sorting quality pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- recycling
- republic-services
- snowflake
- slack
- sap
capability:
exposes:
- type: mcp
namespace: recycling
port: 8080
tools:
- name: recycling-sorting-quality-pipeline
description: "Orchestrates recycling sorting quality pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sap.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://republic.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/recycling"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/recycling"
operations:
- name: execute-2
method: POST
- type: http
namespace: sap
baseUri: "https://republic-erp.s4hana.ondemand.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: sap-resource
path: "/api/recycling"
operations:
- name: execute-3
method: POST
Orchestrates route optimization rebalancing pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Route Optimization Rebalancing Pipeline"
description: "Orchestrates route optimization rebalancing pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- route
- republic-services
- republic
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: route
port: 8080
tools:
- name: route-optimization-rebalancing-pipeline
description: "Orchestrates route optimization rebalancing pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "republic.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: republic-resource
path: "/api/route"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://republic.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/route"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://republic.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/route"
operations:
- name: execute-3
method: POST
Retrieves the current route plan for a driver, including stops, estimated arrival times, and completion percentage.
naftiko: "0.5"
info:
label: "Route Optimization Status"
description: "Retrieves the current route plan for a driver, including stops, estimated arrival times, and completion percentage."
tags:
- fleet
- routing
- operations
capability:
exposes:
- type: mcp
namespace: fleet-routing
port: 8080
tools:
- name: get-route-plan
description: "Query the route optimization system for a driver's current route. Returns stops, ETAs, and completion status."
inputParameters:
- name: driver_id
in: body
type: string
description: "The driver employee ID."
- name: route_date
in: body
type: string
description: "The route date in YYYY-MM-DD format."
call: "routing-api.get-route"
with:
driver_id: "{{driver_id}}"
date: "{{route_date}}"
consumes:
- type: http
namespace: routing-api
baseUri: "https://routing.republicservices.com/api/v1"
authentication:
type: bearer
token: "$secrets.routing_api_token"
resources:
- name: routes
path: "/routes?driver={{driver_id}}&date={{date}}"
inputParameters:
- name: driver_id
in: path
- name: date
in: path
operations:
- name: get-route
method: GET
Retrieves a Salesforce account record by ID, returning company name, industry, annual revenue, and assigned owner.
naftiko: "0.5"
info:
label: "Salesforce Account Lookup"
description: "Retrieves a Salesforce account record by ID, returning company name, industry, annual revenue, and assigned owner."
tags:
- sales
- crm
- salesforce
capability:
exposes:
- type: mcp
namespace: sales-crm
port: 8080
tools:
- name: get-account
description: "Look up a Salesforce account by ID. Returns name, industry, revenue, and owner."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce account record ID."
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://republicservices.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 lead record by ID, returning contact info, lead source, status, and assigned owner.
naftiko: "0.5"
info:
label: "Salesforce Lead Lookup"
description: "Retrieves a Salesforce lead record by ID, returning contact info, lead source, status, and assigned owner."
tags:
- sales
- crm
- salesforce
capability:
exposes:
- type: mcp
namespace: sales-leads
port: 8080
tools:
- name: get-lead
description: "Look up a Salesforce lead by ID. Returns name, email, company, lead source, and status."
inputParameters:
- name: lead_id
in: body
type: string
description: "The Salesforce lead record ID."
call: "salesforce.get-lead"
with:
lead_id: "{{lead_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://republicservices.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: leads
path: "/sobjects/Lead/{{lead_id}}"
inputParameters:
- name: lead_id
in: path
operations:
- name: get-lead
method: GET
Retrieves a travel booking from SAP Concur by trip ID, returning itinerary and estimated cost.
naftiko: "0.5"
info:
label: "SAP Concur Travel Booking Lookup"
description: "Retrieves a travel booking from SAP Concur by trip ID, returning itinerary and estimated cost."
tags:
- travel
- expense
- sap-concur
capability:
exposes:
- type: mcp
namespace: travel-concur
port: 8080
tools:
- name: get-travel-booking
description: "Look up a SAP Concur travel booking by trip ID. Returns itinerary, approval status, and cost estimate."
inputParameters:
- name: trip_id
in: body
type: string
description: "The SAP Concur trip ID."
call: "concur.get-trip"
with:
trip_id: "{{trip_id}}"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: trips
path: "/travel/trips/{{trip_id}}"
inputParameters:
- name: trip_id
in: path
operations:
- name: get-trip
method: GET
Queries SAP HANA for fleet performance analytics including fuel consumption, route efficiency, and maintenance cost metrics.
naftiko: "0.5"
info:
label: "SAP HANA Fleet Analytics Query"
description: "Queries SAP HANA for fleet performance analytics including fuel consumption, route efficiency, and maintenance cost metrics."
tags:
- fleet
- analytics
- sap-hana
capability:
exposes:
- type: mcp
namespace: fleet-analytics
port: 8080
tools:
- name: get-fleet-metrics
description: "Query SAP HANA for fleet performance metrics. Returns fuel consumption, route efficiency, and maintenance costs."
inputParameters:
- name: district
in: body
type: string
description: "The operating district code."
- name: period
in: body
type: string
description: "The reporting period (YYYY-MM)."
call: "saphana.query-fleet-metrics"
with:
district: "{{district}}"
period: "{{period}}"
consumes:
- type: http
namespace: saphana
baseUri: "https://republicservices-hana.sap.com/sap/opu/odata/sap/FLEET_ANALYTICS_SRV"
authentication:
type: basic
username: "$secrets.sap_hana_user"
password: "$secrets.sap_hana_password"
resources:
- name: fleet-metrics
path: "/FleetMetrics?$filter=District eq '{{district}}' and Period eq '{{period}}'"
inputParameters:
- name: district
in: path
- name: period
in: path
operations:
- name: query-fleet-metrics
method: GET
Retrieves a material master record from SAP S/4HANA by material number.
naftiko: "0.5"
info:
label: "SAP Material Master Lookup"
description: "Retrieves a material master record from SAP S/4HANA by material number."
tags:
- erp
- master-data
- sap
capability:
exposes:
- type: mcp
namespace: erp-materials
port: 8080
tools:
- name: get-material
description: "Look up a SAP material master by number. Returns description, UoM, and material group."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
call: "sap.get-material"
with:
material_number: "{{material_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://republicservices-s4.sap.com/sap/opu/odata/sap/API_PRODUCT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: materials
path: "/A_Product('{{material_number}}')"
inputParameters:
- name: material_number
in: path
operations:
- name: get-material
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 S/4HANA 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
- erp
- sap
- sap-s4hana
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."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://republicservices-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
Retrieves a ServiceNow incident by number, returning priority, state, assigned group, and description for IT support.
naftiko: "0.5"
info:
label: "ServiceNow Incident Status"
description: "Retrieves a ServiceNow incident by number, returning priority, state, assigned group, and description for IT support."
tags:
- it-support
- itsm
- servicenow
capability:
exposes:
- type: mcp
namespace: itsm
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number. Returns priority, state, assigned group, and short description."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number (e.g. INC0012345)."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://republicservices.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: path
operations:
- name: get-incident
method: GET
Retrieves document metadata and download URL from a SharePoint site by file path.
naftiko: "0.5"
info:
label: "SharePoint Document Retrieval"
description: "Retrieves document metadata and download URL from a SharePoint site by file path."
tags:
- collaboration
- documents
- sharepoint
capability:
exposes:
- type: mcp
namespace: docs-sharepoint
port: 8080
tools:
- name: get-document
description: "Retrieve a SharePoint document by site ID and file path. Returns metadata and download URL."
inputParameters:
- name: site_id
in: body
type: string
description: "The SharePoint site ID."
- name: file_path
in: body
type: string
description: "The file path within the document library."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
file_path: "{{file_path}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file
method: GET
Executes a SQL query against Snowflake and returns the result set for analytics and reporting workflows.
naftiko: "0.5"
info:
label: "Snowflake Data Warehouse Query"
description: "Executes a SQL query against Snowflake and returns the result set for analytics and reporting workflows."
tags:
- analytics
- data-warehouse
- snowflake
capability:
exposes:
- type: mcp
namespace: data-snowflake
port: 8080
tools:
- name: run-query
description: "Execute a SQL query against Snowflake. Returns the result set."
inputParameters:
- name: warehouse
in: body
type: string
description: "The Snowflake warehouse to use."
- name: database
in: body
type: string
description: "The Snowflake database name."
- name: query
in: body
type: string
description: "The SQL query to execute."
call: "snowflake.execute-statement"
with:
warehouse: "{{warehouse}}"
database: "{{database}}"
statement: "{{query}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://republicservices.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-statement
method: POST
Triggers a Tableau workbook extract refresh and returns the refresh job status.
naftiko: "0.5"
info:
label: "Tableau Workbook Refresh"
description: "Triggers a Tableau workbook extract refresh and returns the refresh job status."
tags:
- analytics
- reporting
- tableau
capability:
exposes:
- type: mcp
namespace: analytics-tableau
port: 8080
tools:
- name: refresh-workbook
description: "Trigger a Tableau workbook extract refresh by workbook ID. Returns refresh job status."
inputParameters:
- name: workbook_id
in: body
type: string
description: "The Tableau workbook ID."
- name: site_id
in: body
type: string
description: "The Tableau site ID."
call: "tableau.refresh-workbook"
with:
workbook_id: "{{workbook_id}}"
site_id: "{{site_id}}"
consumes:
- type: http
namespace: tableau
baseUri: "https://republicservices.online.tableau.com/api/3.21"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: workbooks
path: "/sites/{{site_id}}/workbooks/{{workbook_id}}/refresh"
inputParameters:
- name: site_id
in: path
- name: workbook_id
in: path
operations:
- name: refresh-workbook
method: POST
Retrieves transfer station throughput lookup data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Transfer Station Throughput Lookup"
description: "Retrieves transfer station throughput lookup data from the Republic Services waste management and recycling systems."
tags:
- transfer
- republic-services
- lookup
capability:
exposes:
- type: mcp
namespace: transfer
port: 8080
tools:
- name: transfer-station-throughput-lookup
description: "Retrieves transfer station throughput lookup data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.transfer-station-throughput-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/transfer/station/throughput/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: transfer-station-throughput-lookup
method: GET
Retrieves VMware vCenter virtual machine status including power state, CPU, memory, and storage utilization.
naftiko: "0.5"
info:
label: "VMware Infrastructure Status"
description: "Retrieves VMware vCenter virtual machine status including power state, CPU, memory, and storage utilization."
tags:
- infrastructure
- virtualization
- vmware
capability:
exposes:
- type: mcp
namespace: infra-vmware
port: 8080
tools:
- name: get-vm-status
description: "Query VMware vCenter for VM status. Returns power state, CPU, memory, and storage usage."
inputParameters:
- name: vm_id
in: body
type: string
description: "The vCenter virtual machine ID."
call: "vmware.get-vm"
with:
vm_id: "{{vm_id}}"
consumes:
- type: http
namespace: vmware
baseUri: "https://vcenter.republicservices.com/rest/vcenter"
authentication:
type: bearer
token: "$secrets.vmware_session_token"
resources:
- name: vms
path: "/vm/{{vm_id}}"
inputParameters:
- name: vm_id
in: path
operations:
- name: get-vm
method: GET
Retrieves waste diversion rate lookup data from the Republic Services waste management and recycling systems.
naftiko: "0.5"
info:
label: "Waste Diversion Rate Lookup"
description: "Retrieves waste diversion rate lookup data from the Republic Services waste management and recycling systems."
tags:
- waste
- republic-services
- lookup
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: waste-diversion-rate-lookup
description: "Retrieves waste diversion rate lookup data from the Republic Services waste management and recycling systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "republic.waste-diversion-rate-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: resource
path: "/waste/diversion/rate/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: waste-diversion-rate-lookup
method: GET
Orchestrates waste stream analysis pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Waste Stream Analysis Pipeline"
description: "Orchestrates waste stream analysis pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- waste
- republic-services
- datadog
- republic
- salesforce
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: waste-stream-analysis-pipeline
description: "Orchestrates waste stream analysis pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "republic.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "salesforce.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/waste"
operations:
- name: execute-1
method: POST
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: republic-resource
path: "/api/waste"
operations:
- name: execute-2
method: POST
- type: http
namespace: salesforce
baseUri: "https://republic.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/waste"
operations:
- name: execute-3
method: POST
Orchestrates waste volume forecasting pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Waste Volume Forecasting Pipeline"
description: "Orchestrates waste volume forecasting pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
tags:
- waste
- republic-services
- workday
- datadog
- republic
capability:
exposes:
- type: mcp
namespace: waste
port: 8080
tools:
- name: waste-volume-forecasting-pipeline
description: "Orchestrates waste volume forecasting pipeline across waste management and recycling systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "workday.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "republic.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl.workday.com/republic/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workday-resource
path: "/api/waste"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/waste"
operations:
- name: execute-2
method: POST
- type: http
namespace: republic
baseUri: "https://api.republicservices.com/v2"
authentication:
type: bearer
token: "$secrets.republic_api_token"
resources:
- name: republic-resource
path: "/api/waste"
operations:
- name: execute-3
method: POST
Looks up an employee in Workday by ID, returning name, department, title, and manager.
naftiko: "0.5"
info:
label: "Workday Employee Directory Lookup"
description: "Looks up an employee in Workday by ID, returning name, department, title, and manager."
tags:
- hr
- directory
- workday
capability:
exposes:
- type: mcp
namespace: hr-directory
port: 8080
tools:
- name: get-employee
description: "Look up a Workday employee by ID. Returns name, department, title, manager, and work email."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday employee ID."
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
Creates a Zoom meeting and returns the join URL and meeting ID.
naftiko: "0.5"
info:
label: "Zoom Meeting Scheduler"
description: "Creates a Zoom meeting and returns the join URL and meeting ID."
tags:
- collaboration
- meetings
- zoom
capability:
exposes:
- type: mcp
namespace: comms-zoom
port: 8080
tools:
- name: create-meeting
description: "Create a Zoom meeting. Returns meeting ID and join URL."
inputParameters:
- name: topic
in: body
type: string
description: "The meeting topic."
- name: start_time
in: body
type: string
description: "Start time in ISO 8601 format."
- name: duration
in: body
type: number
description: "Duration in minutes."
call: "zoom.create-meeting"
with:
topic: "{{topic}}"
start_time: "{{start_time}}"
duration: "{{duration}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_token"
resources:
- name: meetings
path: "/users/me/meetings"
operations:
- name: create-meeting
method: POST