DHL Capabilities
Naftiko 0.5 capability definitions for DHL - 100 capabilities showing integration workflows and service orchestrations.
Reviews access at DHL via Okta, IAM, and Jira.
naftiko: "0.5"
info:
label: "Access Review Pipeline"
description: "Reviews access at DHL via Okta, IAM, and Jira."
tags:
- security
- access-management
- okta
- compliance
capability:
exposes:
- type: mcp
namespace: access-rev
port: 8080
tools:
- name: review
description: "Review access at DHL."
inputParameters:
- name: dept
in: body
type: string
description: "Department."
steps:
- name: ent
type: call
call: "okta.get-users"
with:
dept: "{{dept}}"
- name: compare
type: call
call: "iam.compare"
with:
data: "{{ent.data}}"
- name: flag
type: call
call: "iam.flag"
with:
violations: "{{compare.violations}}"
- name: fix
type: call
call: "jira.create-issue"
with:
project: "IAM"
summary: "Violations in {{dept}}"
consumes:
- type: http
namespace: okta
baseUri: "https://dhl.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users"
operations:
- name: get-users
method: GET
- type: http
namespace: iam
baseUri: "https://iam.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.iam_token"
resources:
- name: reviews
path: "/compare"
operations:
- name: compare
method: POST
- type: http
namespace: jira
baseUri: "https://dhl.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Validates a shipping address using the DHL Address Validation API, returning standardized address format, delivery capability, and any corrections needed.
naftiko: "0.5"
info:
label: "Address Validation"
description: "Validates a shipping address using the DHL Address Validation API, returning standardized address format, delivery capability, and any corrections needed."
tags:
- shipping
- address
- dhl-express
capability:
exposes:
- type: mcp
namespace: address-validation
port: 8080
tools:
- name: validate-address
description: "Validate and standardize a shipping address."
inputParameters:
- name: address_line_1
in: body
type: string
description: "Street address line 1."
- name: city
in: body
type: string
description: "City name."
- name: postal_code
in: body
type: string
description: "Postal or ZIP code."
- name: country_code
in: body
type: string
description: "Two-letter country ISO code."
call: "dhl-express.validate-address"
with:
street: "{{address_line_1}}"
city: "{{city}}"
postal: "{{postal_code}}"
country: "{{country_code}}"
consumes:
- type: http
namespace: dhl-express
baseUri: "https://api-eu.dhl.com/express"
authentication:
type: basic
username: "$secrets.dhl_express_user"
password: "$secrets.dhl_express_password"
resources:
- name: address-validation
path: "/address-validate"
operations:
- name: validate-address
method: GET
Manages API deprecation at DHL via consumer identification, notices, and tracking.
naftiko: "0.5"
info:
label: "API Deprecation Pipeline"
description: "Manages API deprecation at DHL via consumer identification, notices, and tracking."
tags:
- api-management
- communications
- governance
capability:
exposes:
- type: mcp
namespace: api-sunset
port: 8080
tools:
- name: notify-sunset
description: "Manage API sunset at DHL."
inputParameters:
- name: api
in: body
type: string
description: "API name."
- name: date
in: body
type: string
description: "Sunset date."
steps:
- name: consumers
type: call
call: "api-gw.consumers"
with:
api: "{{api}}"
- name: notify
type: call
call: "email.batch"
with:
to: "{{consumers.emails}}"
subject: "{{api}} sunset: {{date}}"
- name: track
type: call
call: "analytics.usage"
with:
api: "{{api}}"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "API"
summary: "Sunset {{api}} by {{date}}"
consumes:
- type: http
namespace: api-gw
baseUri: "https://api-gw.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.api_gw_token"
resources:
- name: consumers
path: "/apis/{{api}}/consumers"
inputParameters:
- name: api
in: path
operations:
- name: consumers
method: GET
- type: http
namespace: email
baseUri: "https://email.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: batch
path: "/send-batch"
operations:
- name: batch
method: POST
- type: http
namespace: analytics
baseUri: "https://analytics.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: usage
path: "/api-usage"
operations:
- name: usage
method: GET
- type: http
namespace: jira
baseUri: "https://dhl.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Checks S3 bucket at DHL.
naftiko: "0.5"
info:
label: "S3 Bucket Stats"
description: "Checks S3 bucket at DHL."
tags:
- storage
- aws
- s3
capability:
exposes:
- type: mcp
namespace: s3-stats
port: 8080
tools:
- name: get-bucket
description: "Get bucket stats at DHL."
inputParameters:
- name: bucket
in: body
type: string
description: "Bucket."
call: "s3.get-stats"
with:
bucket: "{{bucket}}"
outputParameters:
- name: objects
type: number
mapping: "$.NumberOfObjects"
consumes:
- type: http
namespace: s3
baseUri: "https://s3.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_token"
resources:
- name: buckets
path: "/{{bucket}}?metrics"
inputParameters:
- name: bucket
in: path
operations:
- name: get-stats
method: GET
Checks build at DHL.
naftiko: "0.5"
info:
label: "Azure DevOps Build Check"
description: "Checks build at DHL."
tags:
- devops
- azure-devops
- ci-cd
capability:
exposes:
- type: mcp
namespace: azdo-build
port: 8080
tools:
- name: check-build
description: "Check build at DHL."
inputParameters:
- name: project
in: body
type: string
description: "Project."
- name: build_id
in: body
type: string
description: "Build ID."
call: "azdo.get-build"
with:
project: "{{project}}"
build_id: "{{build_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: azdo
baseUri: "https://dev.azure.com/dhl.com"
authentication:
type: bearer
token: "$secrets.azdo_token"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds/{{build_id}}"
inputParameters:
- name: project
in: path
- name: build_id
in: path
operations:
- name: get-build
method: GET
Checks Azure resource at DHL.
naftiko: "0.5"
info:
label: "Azure Resource Health"
description: "Checks Azure resource at DHL."
tags:
- cloud
- azure
- infrastructure
capability:
exposes:
- type: mcp
namespace: az-health
port: 8080
tools:
- name: check-resource
description: "Check resource at DHL."
inputParameters:
- name: resource_id
in: body
type: string
description: "Resource ID."
call: "azure.get-health"
with:
id: "{{resource_id}}"
outputParameters:
- name: state
type: string
mapping: "$.properties.availabilityState"
consumes:
- type: http
namespace: azure
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_token"
resources:
- name: health
path: "/{{id}}/providers/Microsoft.ResourceHealth/availabilityStatuses/current"
inputParameters:
- name: id
in: path
operations:
- name: get-health
method: GET
Verifies backups at DHL.
naftiko: "0.5"
info:
label: "Backup Verification Pipeline"
description: "Verifies backups at DHL."
tags:
- database
- backup
- operations
capability:
exposes:
- type: mcp
namespace: backup-verify
port: 8080
tools:
- name: verify-backups
description: "Verify backups at DHL."
inputParameters:
- name: db
in: body
type: string
description: "Database."
- name: date
in: body
type: string
description: "Backup date."
steps:
- name: status
type: call
call: "backup.get-status"
with:
db: "{{db}}"
date: "{{date}}"
- name: verify
type: call
call: "backup.verify"
with:
id: "{{status.backup_id}}"
- name: log
type: call
call: "snowflake.query"
with:
query: "INSERT INTO backup_log VALUES ('{{db}}','{{date}}','{{verify.status}}')"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#dba"
text: "Backup {{db}}: {{verify.status}}"
consumes:
- type: http
namespace: backup
baseUri: "https://backup.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.backup_token"
resources:
- name: backups
path: "/databases/{{db}}/status"
inputParameters:
- name: db
in: path
operations:
- name: get-status
method: GET
- type: http
namespace: snowflake
baseUri: "https://dhl.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Analyzes budget variance at DHL via Oracle, Workday, and Slack.
naftiko: "0.5"
info:
label: "Budget Variance Pipeline"
description: "Analyzes budget variance at DHL via Oracle, Workday, and Slack."
tags:
- finance
- budget
- oracle
- workday
capability:
exposes:
- type: mcp
namespace: budget-var
port: 8080
tools:
- name: analyze-variance
description: "Check budget variance at DHL."
inputParameters:
- name: cc
in: body
type: string
description: "Cost center."
- name: period
in: body
type: string
description: "Period."
steps:
- name: actuals
type: call
call: "oracle.get-actuals"
with:
cc: "{{cc}}"
period: "{{period}}"
- name: budget
type: call
call: "workday.get-budget"
with:
cc: "{{cc}}"
- name: compute
type: call
call: "analytics.variance"
with:
a: "{{actuals.total}}"
b: "{{budget.total}}"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#finance"
text: "Variance {{cc}}: ${{compute.variance}}"
consumes:
- type: http
namespace: oracle
baseUri: "https://oracle.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: fin
path: "/actuals"
operations:
- name: get-actuals
method: GET
- type: http
namespace: workday
baseUri: "https://wd5.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: budgets
path: "/budgets"
operations:
- name: get-budget
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: var
path: "/compute"
operations:
- name: variance
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Processes a bulk shipment file by creating multiple DHL Express shipments and returning all tracking numbers and labels in a single response.
naftiko: "0.5"
info:
label: "Bulk Shipment Upload"
description: "Processes a bulk shipment file by creating multiple DHL Express shipments and returning all tracking numbers and labels in a single response."
tags:
- shipping
- bulk
- dhl-express
capability:
exposes:
- type: mcp
namespace: bulk-shipping
port: 8080
tools:
- name: create-bulk-shipments
description: "Process a bulk shipment file to create multiple DHL Express shipments."
inputParameters:
- name: shipments_data
in: body
type: string
description: "JSON array of shipment objects with shipper, recipient, weight, and service."
call: "dhl-express.create-bulk"
with:
shipments: "{{shipments_data}}"
consumes:
- type: http
namespace: dhl-express
baseUri: "https://api-eu.dhl.com/express"
authentication:
type: basic
username: "$secrets.dhl_express_user"
password: "$secrets.dhl_express_password"
resources:
- name: bulk-shipments
path: "/shipments/bulk"
operations:
- name: create-bulk
method: POST
Plans capacity at DHL by collecting utilization and forecasting.
naftiko: "0.5"
info:
label: "Capacity Planning Pipeline"
description: "Plans capacity at DHL by collecting utilization and forecasting."
tags:
- infrastructure
- capacity-planning
- forecasting
capability:
exposes:
- type: mcp
namespace: capacity
port: 8080
tools:
- name: plan-capacity
description: "Plan capacity at DHL."
inputParameters:
- name: resource
in: body
type: string
description: "Resource type."
- name: months
in: body
type: number
description: "Forecast months."
steps:
- name: util
type: call
call: "monitoring.get-util"
with:
resource: "{{resource}}"
- name: forecast
type: call
call: "analytics.forecast"
with:
current: "{{util.pct}}"
months: "{{months}}"
- name: procure
type: call
call: "servicenow.create-request"
with:
type: "capacity"
resource: "{{resource}}"
- name: dashboard
type: call
call: "power-bi.refresh"
with:
dataset: "capacity"
consumes:
- type: http
namespace: monitoring
baseUri: "https://monitoring.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.monitoring_token"
resources:
- name: util
path: "/resources/{{resource}}/util"
inputParameters:
- name: resource
in: path
operations:
- name: get-util
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: forecast
path: "/demand"
operations:
- name: forecast
method: POST
- type: http
namespace: servicenow
baseUri: "https://dhl.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
Monitors cert expiry at DHL.
naftiko: "0.5"
info:
label: "Certificate Expiry Pipeline"
description: "Monitors cert expiry at DHL."
tags:
- security
- certificates
- monitoring
capability:
exposes:
- type: mcp
namespace: cert-monitor
port: 8080
tools:
- name: check-certs
description: "Monitor certs at DHL."
inputParameters:
- name: domains
in: body
type: string
description: "Domains to check."
steps:
- name: scan
type: call
call: "cert-scanner.scan"
with:
domains: "{{domains}}"
- name: filter
type: call
call: "analytics.filter-expiring"
with:
certs: "{{scan.results}}"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "SEC"
summary: "{{filter.count}} certs expiring"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#security"
text: "Cert alert: {{filter.count}} expiring"
consumes:
- type: http
namespace: cert-scanner
baseUri: "https://certs.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.cert_token"
resources:
- name: scans
path: "/scan"
operations:
- name: scan
method: POST
- type: http
namespace: jira
baseUri: "https://dhl.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Routes changes at DHL through ServiceNow and CAB approval.
naftiko: "0.5"
info:
label: "Change Management Pipeline"
description: "Routes changes at DHL through ServiceNow and CAB approval."
tags:
- change-management
- servicenow
- itil
capability:
exposes:
- type: mcp
namespace: change-mgmt
port: 8080
tools:
- name: process-change
description: "Process changes at DHL."
inputParameters:
- name: change_id
in: body
type: string
description: "Change ID."
- name: date
in: body
type: string
description: "Date."
steps:
- name: get
type: call
call: "servicenow.get-change"
with:
id: "{{change_id}}"
- name: conflicts
type: call
call: "servicenow.check-conflicts"
with:
date: "{{date}}"
- name: submit
type: call
call: "servicenow.update"
with:
id: "{{change_id}}"
state: "approval"
- name: notify
type: call
call: "email.send"
with:
to: "cab@co.com"
subject: "CAB: {{change_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://dhl.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: changes
path: "/table/change_request/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-change
method: GET
- type: http
namespace: email
baseUri: "https://email.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Optimizes cloud costs at DHL via Azure, FinOps, Jira, and Power BI.
naftiko: "0.5"
info:
label: "Cloud Cost Optimization Pipeline"
description: "Optimizes cloud costs at DHL via Azure, FinOps, Jira, and Power BI."
tags:
- cloud
- cost-management
- finops
capability:
exposes:
- type: mcp
namespace: cloud-opt
port: 8080
tools:
- name: optimize
description: "Optimize cloud costs at DHL."
inputParameters:
- name: provider
in: body
type: string
description: "Provider."
- name: range
in: body
type: string
description: "Range."
steps:
- name: spend
type: call
call: "cloud.get-costs"
with:
provider: "{{provider}}"
range: "{{range}}"
- name: savings
type: call
call: "finops.analyze"
with:
data: "{{spend.data}}"
- name: action
type: call
call: "jira.create-issue"
with:
project: "FINOPS"
summary: "Save ${{savings.potential}}"
- name: report
type: call
call: "power-bi.refresh"
with:
dataset: "cloud"
consumes:
- type: http
namespace: cloud
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_token"
resources:
- name: costs
path: "/providers/Microsoft.CostManagement/query"
operations:
- name: get-costs
method: POST
- type: http
namespace: finops
baseUri: "https://finops.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.finops_token"
resources:
- name: analysis
path: "/savings"
operations:
- name: analyze
method: POST
- type: http
namespace: jira
baseUri: "https://dhl.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
Checks CloudWatch alarm at DHL.
naftiko: "0.5"
info:
label: "CloudWatch Alarm Check"
description: "Checks CloudWatch alarm at DHL."
tags:
- monitoring
- aws
- cloudwatch
capability:
exposes:
- type: mcp
namespace: cw-alarm
port: 8080
tools:
- name: check-alarm
description: "Check alarm at DHL."
inputParameters:
- name: alarm
in: body
type: string
description: "Alarm name."
call: "cw.describe-alarm"
with:
alarm: "{{alarm}}"
outputParameters:
- name: state
type: string
mapping: "$.MetricAlarms[0].StateValue"
consumes:
- type: http
namespace: cw
baseUri: "https://monitoring.us-east-1.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_token"
resources:
- name: alarms
path: "/"
operations:
- name: describe-alarm
method: GET
Retrieves temperature sensor data for cold chain shipments, checking if readings are within the acceptable range and alerting if deviations occur.
naftiko: "0.5"
info:
label: "Cold Chain Temperature Monitor"
description: "Retrieves temperature sensor data for cold chain shipments, checking if readings are within the acceptable range and alerting if deviations occur."
tags:
- logistics
- cold-chain
- monitoring
capability:
exposes:
- type: mcp
namespace: cold-chain-monitoring
port: 8080
tools:
- name: check-temperature-readings
description: "Check temperature readings for a cold chain shipment."
inputParameters:
- name: shipment_id
in: body
type: string
description: "The cold chain shipment identifier."
call: "dhl-iot.get-temperature"
with:
shipment_id: "{{shipment_id}}"
consumes:
- type: http
namespace: dhl-iot
baseUri: "https://api.dhl.com/iot/v1"
authentication:
type: bearer
token: "$secrets.dhl_iot_token"
resources:
- name: sensors
path: "/shipments/{{shipment_id}}/temperature"
inputParameters:
- name: shipment_id
in: path
operations:
- name: get-temperature
method: GET
Searches Confluence at DHL.
naftiko: "0.5"
info:
label: "Confluence Article Search"
description: "Searches Confluence at DHL."
tags:
- knowledge-management
- confluence
- documentation
capability:
exposes:
- type: mcp
namespace: confluence-search
port: 8080
tools:
- name: search-articles
description: "Search Confluence at DHL."
inputParameters:
- name: query
in: body
type: string
description: "Query."
call: "confluence.search"
with:
query: "{{query}}"
outputParameters:
- name: title
type: string
mapping: "$.results[0].title"
consumes:
- type: http
namespace: confluence
baseUri: "https://dhl.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: content
path: "/content/search"
operations:
- name: search
method: GET
Tracks contract renewals at DHL via contracts system, email, Jira, and Salesforce.
naftiko: "0.5"
info:
label: "Contract Renewal Pipeline"
description: "Tracks contract renewals at DHL via contracts system, email, Jira, and Salesforce."
tags:
- procurement
- contracts
- salesforce
- jira
capability:
exposes:
- type: mcp
namespace: contract-renew
port: 8080
tools:
- name: track
description: "Track renewals at DHL."
inputParameters:
- name: contract_id
in: body
type: string
description: "Contract ID."
- name: owner
in: body
type: string
description: "Owner email."
steps:
- name: get
type: call
call: "contracts.get"
with:
id: "{{contract_id}}"
- name: remind
type: call
call: "email.send"
with:
to: "{{owner}}"
subject: "Renewal: {{contract_id}}"
- name: task
type: call
call: "jira.create-issue"
with:
project: "PROC"
summary: "Renew {{contract_id}}"
- name: crm
type: call
call: "salesforce.update"
with:
id: "{{contract_id}}"
stage: "Renewal"
consumes:
- type: http
namespace: contracts
baseUri: "https://contracts.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.contracts_token"
resources:
- name: contracts
path: "/contracts/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get
method: GET
- type: http
namespace: email
baseUri: "https://email.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
- type: http
namespace: jira
baseUri: "https://dhl.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: salesforce
baseUri: "https://dhl.com.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opps
path: "/sobjects/Opportunity"
operations:
- name: update
method: PATCH
Reallocates costs at DHL.
naftiko: "0.5"
info:
label: "Cost Reallocation Pipeline"
description: "Reallocates costs at DHL."
tags:
- finance
- cost-allocation
- oracle
capability:
exposes:
- type: mcp
namespace: cost-realloc
port: 8080
tools:
- name: reallocate
description: "Reallocate costs at DHL."
inputParameters:
- name: source
in: body
type: string
description: "Source CC."
- name: target
in: body
type: string
description: "Target CC."
- name: amount
in: body
type: number
description: "Amount."
steps:
- name: current
type: call
call: "oracle.get-alloc"
with:
cc: "{{source}}"
- name: compute
type: call
call: "analytics.realloc"
with:
source: "{{source}}"
target: "{{target}}"
amount: "{{amount}}"
- name: post
type: call
call: "oracle.post-journal"
with:
entries: "{{compute.entries}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#finance"
text: "Reallocated ${{amount}} from {{source}} to {{target}}"
consumes:
- type: http
namespace: oracle
baseUri: "https://oracle.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: allocations
path: "/cost-centers/{{cc}}/allocations"
inputParameters:
- name: cc
in: path
operations:
- name: get-alloc
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: realloc
path: "/compute"
operations:
- name: realloc
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Validates export compliance for a shipment by checking denied party lists and trade sanctions, returning clearance status and any flagged entities.
naftiko: "0.5"
info:
label: "Cross-Border Trade Compliance Check"
description: "Validates export compliance for a shipment by checking denied party lists and trade sanctions, returning clearance status and any flagged entities."
tags:
- customs
- compliance
- trade
capability:
exposes:
- type: mcp
namespace: trade-compliance
port: 8080
tools:
- name: check-trade-compliance
description: "Check export compliance against denied party and sanctions lists."
inputParameters:
- name: consignee_name
in: body
type: string
description: "The consignee or end-user name."
- name: destination_country
in: body
type: string
description: "Destination country ISO code."
- name: product_description
in: body
type: string
description: "Description of exported goods."
call: "dhl-compliance.screen-party"
with:
name: "{{consignee_name}}"
country: "{{destination_country}}"
goods: "{{product_description}}"
consumes:
- type: http
namespace: dhl-compliance
baseUri: "https://api.dhl.com/trade-compliance/v1"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: screening
path: "/screen"
operations:
- name: screen-party
method: POST
Checks the customs clearance status for an international shipment, returning declaration status, duty amounts, and any holds or required documents.
naftiko: "0.5"
info:
label: "Customs Declaration Status"
description: "Checks the customs clearance status for an international shipment, returning declaration status, duty amounts, and any holds or required documents."
tags:
- customs
- compliance
- dhl-express
capability:
exposes:
- type: mcp
namespace: customs-status
port: 8080
tools:
- name: get-customs-status
description: "Check customs clearance status for an international shipment."
inputParameters:
- name: shipment_id
in: body
type: string
description: "The DHL shipment identifier."
call: "dhl-customs.get-declaration"
with:
shipment_id: "{{shipment_id}}"
consumes:
- type: http
namespace: dhl-customs
baseUri: "https://api-eu.dhl.com/customs"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: declarations
path: "/declarations/{{shipment_id}}"
inputParameters:
- name: shipment_id
in: path
operations:
- name: get-declaration
method: GET
Uploads customs documentation such as commercial invoices and certificates of origin to a DHL shipment for customs clearance processing.
naftiko: "0.5"
info:
label: "Customs Document Uploader"
description: "Uploads customs documentation such as commercial invoices and certificates of origin to a DHL shipment for customs clearance processing."
tags:
- customs
- documents
- dhl-express
capability:
exposes:
- type: mcp
namespace: customs-documents
port: 8080
tools:
- name: upload-customs-document
description: "Upload a customs document for a shipment."
inputParameters:
- name: shipment_id
in: body
type: string
description: "The DHL shipment identifier."
- name: document_type
in: body
type: string
description: "Document type (commercial_invoice, certificate_of_origin, packing_list)."
- name: document_content
in: body
type: string
description: "Base64-encoded document content."
call: "dhl-customs.upload-document"
with:
shipment_id: "{{shipment_id}}"
type: "{{document_type}}"
content: "{{document_content}}"
consumes:
- type: http
namespace: dhl-customs
baseUri: "https://api-eu.dhl.com/customs"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: documents
path: "/declarations/{{shipment_id}}/documents"
inputParameters:
- name: shipment_id
in: path
operations:
- name: upload-document
method: POST
When a shipment is held at customs, retrieves the hold reason from DHL, creates a ServiceNow incident for the customs team, and notifies the shipper via email.
naftiko: "0.5"
info:
label: "Customs Hold Resolution Pipeline"
description: "When a shipment is held at customs, retrieves the hold reason from DHL, creates a ServiceNow incident for the customs team, and notifies the shipper via email."
tags:
- customs
- compliance
- dhl-express
- servicenow
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: customs-resolution
port: 8080
tools:
- name: resolve-customs-hold
description: "Initiate the resolution process for a shipment held at customs."
inputParameters:
- name: shipment_id
in: body
type: string
description: "The DHL shipment identifier."
- name: shipper_email
in: body
type: string
description: "The shipper's email address."
steps:
- name: get-hold-details
type: call
call: "dhl-customs.get-declaration"
with:
shipment_id: "{{shipment_id}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Customs hold: Shipment {{shipment_id}}"
category: "customs_compliance"
urgency: "2"
description: "Hold reason: {{get-hold-details.hold_reason}}. Required documents: {{get-hold-details.required_documents}}. Duty amount: {{get-hold-details.duty_amount}}."
- name: notify-shipper
type: call
call: "outlook.send-email"
with:
to: "{{shipper_email}}"
subject: "Action required: Customs hold on shipment {{shipment_id}}"
body: "Your shipment {{shipment_id}} is held at customs. Reason: {{get-hold-details.hold_reason}}. Required documents: {{get-hold-details.required_documents}}. Please submit the required documentation. Reference: {{create-incident.number}}."
consumes:
- type: http
namespace: dhl-customs
baseUri: "https://api-eu.dhl.com/customs"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: declarations
path: "/declarations/{{shipment_id}}"
inputParameters:
- name: shipment_id
in: path
operations:
- name: get-declaration
method: GET
- type: http
namespace: servicenow
baseUri: "https://dhl.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: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Aggregates daily shipment volumes from DHL tracking, warehouse throughput from DHL WMS, and open incidents from ServiceNow into an operations summary.
naftiko: "0.5"
info:
label: "Daily Operations Dashboard"
description: "Aggregates daily shipment volumes from DHL tracking, warehouse throughput from DHL WMS, and open incidents from ServiceNow into an operations summary."
tags:
- reporting
- operations
- dhl-express
- dhl-supply-chain
- servicenow
capability:
exposes:
- type: mcp
namespace: ops-dashboard
port: 8080
tools:
- name: get-daily-ops-summary
description: "Generate a daily operations summary from multiple data sources."
inputParameters:
- name: date
in: body
type: string
description: "The report date in YYYY-MM-DD format."
- name: region
in: body
type: string
description: "The operational region."
steps:
- name: get-shipment-volume
type: call
call: "dhl-billing.get-daily-volume"
with:
date: "{{date}}"
region: "{{region}}"
- name: get-warehouse-throughput
type: call
call: "dhl-wms.get-throughput"
with:
date: "{{date}}"
region: "{{region}}"
- name: get-open-incidents
type: call
call: "servicenow.get-open-incidents"
with:
date: "{{date}}"
region: "{{region}}"
consumes:
- type: http
namespace: dhl-billing
baseUri: "https://api.dhl.com/billing/v1"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: daily-volume
path: "/daily-volume"
operations:
- name: get-daily-volume
method: GET
- type: http
namespace: dhl-wms
baseUri: "https://api.dhl.com/supplychain/wms/v1"
authentication:
type: bearer
token: "$secrets.dhl_wms_token"
resources:
- name: throughput
path: "/throughput"
operations:
- name: get-throughput
method: GET
- type: http
namespace: servicenow
baseUri: "https://dhl.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: get-open-incidents
method: GET
Validates and classifies dangerous goods shipment data against IATA/IMDG regulations, returning the appropriate UN number, packing group, and required documentation.
naftiko: "0.5"
info:
label: "Dangerous Goods Classification"
description: "Validates and classifies dangerous goods shipment data against IATA/IMDG regulations, returning the appropriate UN number, packing group, and required documentation."
tags:
- compliance
- dangerous-goods
- shipping
capability:
exposes:
- type: mcp
namespace: dg-classification
port: 8080
tools:
- name: classify-dangerous-goods
description: "Classify a dangerous goods shipment for regulatory compliance."
inputParameters:
- name: product_name
in: body
type: string
description: "The product or substance name."
- name: un_number
in: body
type: string
description: "The UN identification number if known."
- name: transport_mode
in: body
type: string
description: "Transport mode (air, ocean, road)."
call: "dhl-dg.classify"
with:
product: "{{product_name}}"
un_number: "{{un_number}}"
mode: "{{transport_mode}}"
consumes:
- type: http
namespace: dhl-dg
baseUri: "https://api.dhl.com/dangerous-goods/v1"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: classifications
path: "/classify"
operations:
- name: classify
method: POST
Monitors data pipelines at DHL via Databricks, Snowflake, Slack, and ServiceNow.
naftiko: "0.5"
info:
label: "Data Pipeline Monitor Pipeline"
description: "Monitors data pipelines at DHL via Databricks, Snowflake, Slack, and ServiceNow."
tags:
- data-engineering
- databricks
- monitoring
- slack
capability:
exposes:
- type: mcp
namespace: pipeline-mon
port: 8080
tools:
- name: monitor
description: "Monitor pipelines at DHL."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "Pipeline ID."
steps:
- name: status
type: call
call: "databricks.get-run"
with:
id: "{{pipeline_id}}"
- name: quality
type: call
call: "snowflake.query"
with:
query: "SELECT COUNT(*) FROM out WHERE p='{{pipeline_id}}'"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#data"
text: "Pipeline {{pipeline_id}}: {{status.state}}"
- name: incident
type: call
call: "servicenow.create-incident"
with:
desc: "Pipeline {{pipeline_id}} issue"
consumes:
- type: http
namespace: databricks
baseUri: "https://dhl.com.cloud.databricks.com/api/2.1"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: jobs
path: "/jobs/runs/get"
operations:
- name: get-run
method: GET
- type: http
namespace: snowflake
baseUri: "https://dhl.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: servicenow
baseUri: "https://dhl.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
Checks Datadog monitor at DHL.
naftiko: "0.5"
info:
label: "Datadog Monitor Check"
description: "Checks Datadog monitor at DHL."
tags:
- monitoring
- datadog
- observability
capability:
exposes:
- type: mcp
namespace: dd-monitor
port: 8080
tools:
- name: check-monitor
description: "Check monitor at DHL."
inputParameters:
- name: monitor_id
in: body
type: string
description: "Monitor ID."
call: "datadog.get-monitor"
with:
monitor_id: "{{monitor_id}}"
outputParameters:
- name: status
type: string
mapping: "$.overall_state"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: monitors
path: "/monitor/{{monitor_id}}"
inputParameters:
- name: monitor_id
in: path
operations:
- name: get-monitor
method: GET
When a delivery exception occurs, updates the tracking status, creates a ServiceNow incident, and sends a proactive notification to the customer via Twilio.
naftiko: "0.5"
info:
label: "Delivery Exception Handler"
description: "When a delivery exception occurs, updates the tracking status, creates a ServiceNow incident, and sends a proactive notification to the customer via Twilio."
tags:
- delivery
- exceptions
- dhl-express
- servicenow
- twilio
capability:
exposes:
- type: mcp
namespace: delivery-exceptions
port: 8080
tools:
- name: handle-delivery-exception
description: "Process a delivery exception with incident logging and customer notification."
inputParameters:
- name: tracking_number
in: body
type: string
description: "The DHL tracking number."
- name: exception_type
in: body
type: string
description: "Type of delivery exception."
- name: customer_phone
in: body
type: string
description: "Customer phone number for notification."
steps:
- name: get-shipment
type: call
call: "dhl-tracking.get-shipment"
with:
tracking_number: "{{tracking_number}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Delivery exception: {{tracking_number}} - {{exception_type}}"
category: "delivery_operations"
description: "Shipment {{tracking_number}} experienced {{exception_type}} at {{get-shipment.current_location}}. Original ETA: {{get-shipment.estimated_delivery}}."
- name: notify-customer
type: call
call: "twilio.send-sms"
with:
to: "{{customer_phone}}"
body: "DHL Update: Your shipment {{tracking_number}} has a delivery update. New estimated delivery: {{get-shipment.revised_delivery}}. We apologize for the inconvenience."
consumes:
- type: http
namespace: dhl-tracking
baseUri: "https://api-eu.dhl.com/track"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: shipments
path: "/shipments"
operations:
- name: get-shipment
method: GET
- type: http
namespace: servicenow
baseUri: "https://dhl.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: twilio
baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
authentication:
type: basic
username: "$secrets.twilio_account_sid"
password: "$secrets.twilio_auth_token"
resources:
- name: messages
path: "/Messages.json"
operations:
- name: send-sms
method: POST
Checks container at DHL.
naftiko: "0.5"
info:
label: "Docker Container Check"
description: "Checks container at DHL."
tags:
- containers
- docker
- infrastructure
capability:
exposes:
- type: mcp
namespace: docker
port: 8080
tools:
- name: check-container
description: "Check container at DHL."
inputParameters:
- name: id
in: body
type: string
description: "Container ID."
call: "docker.get-container"
with:
id: "{{id}}"
outputParameters:
- name: status
type: string
mapping: "$.State.Status"
consumes:
- type: http
namespace: docker
baseUri: "https://docker.dhl.com/v1.41"
authentication:
type: bearer
token: "$secrets.docker_token"
resources:
- name: containers
path: "/containers/{{id}}/json"
inputParameters:
- name: id
in: path
operations:
- name: get-container
method: GET
Tests disaster recovery at DHL via failover, health checks, and reporting.
naftiko: "0.5"
info:
label: "DR Test Pipeline"
description: "Tests disaster recovery at DHL via failover, health checks, and reporting."
tags:
- disaster-recovery
- business-continuity
- testing
capability:
exposes:
- type: mcp
namespace: dr-test
port: 8080
tools:
- name: test-dr
description: "Test DR at DHL."
inputParameters:
- name: plan_id
in: body
type: string
description: "Plan ID."
- name: type
in: body
type: string
description: "Test type."
steps:
- name: failover
type: call
call: "dr.failover"
with:
plan: "{{plan_id}}"
type: "{{type}}"
- name: validate
type: call
call: "monitoring.check"
with:
scope: "critical"
- name: measure
type: call
call: "dr.metrics"
with:
id: "{{failover.id}}"
- name: report
type: call
call: "confluence.create-page"
with:
title: "DR - {{plan_id}}"
body: "RTO:{{measure.rto}}m RPO:{{measure.rpo}}m"
consumes:
- type: http
namespace: dr
baseUri: "https://dr.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.dr_token"
resources:
- name: failovers
path: "/failovers"
operations:
- name: failover
method: POST
- type: http
namespace: monitoring
baseUri: "https://monitoring.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.monitoring_token"
resources:
- name: health
path: "/checks"
operations:
- name: check
method: POST
- type: http
namespace: confluence
baseUri: "https://dhl.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Detects infrastructure drift at DHL via Terraform, Slack, and Jira.
naftiko: "0.5"
info:
label: "Drift Detection Pipeline"
description: "Detects infrastructure drift at DHL via Terraform, Slack, and Jira."
tags:
- infrastructure
- terraform
- drift-detection
- devops
capability:
exposes:
- type: mcp
namespace: drift-det
port: 8080
tools:
- name: detect
description: "Detect drift at DHL."
inputParameters:
- name: ws_id
in: body
type: string
description: "Workspace ID."
- name: env
in: body
type: string
description: "Environment."
steps:
- name: plan
type: call
call: "terraform.run"
with:
ws: "{{ws_id}}"
- name: check
type: call
call: "terraform.get-plan"
with:
run: "{{plan.id}}"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#infra"
text: "Drift {{env}}: {{check.changes}} changes"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "INFRA"
summary: "Drift in {{env}}"
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_token"
resources:
- name: runs
path: "/runs"
operations:
- name: run
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: jira
baseUri: "https://dhl.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Assigns a delivery route to a driver and sends the route details and manifest to them via Microsoft Teams.
naftiko: "0.5"
info:
label: "Driver Dispatch Notification"
description: "Assigns a delivery route to a driver and sends the route details and manifest to them via Microsoft Teams."
tags:
- delivery
- fleet
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: driver-dispatch
port: 8080
tools:
- name: dispatch-driver
description: "Assign a route to a driver and send them the dispatch details."
inputParameters:
- name: route_id
in: body
type: string
description: "The route identifier."
- name: driver_upn
in: body
type: string
description: "The driver's Microsoft Teams UPN."
- name: stop_count
in: body
type: number
description: "Number of stops on the route."
steps:
- name: get-route
type: call
call: "dhl-routing.get-route"
with:
route_id: "{{route_id}}"
- name: notify-driver
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{driver_upn}}"
text: "Route {{route_id}} assigned. Stops: {{stop_count}}. First stop: {{get-route.first_stop_address}} at {{get-route.first_stop_time}}. Total estimated time: {{get-route.total_drive_time}}."
consumes:
- type: http
namespace: dhl-routing
baseUri: "https://api.dhl.com/routing/v1"
authentication:
type: bearer
token: "$secrets.dhl_routing_token"
resources:
- name: routes
path: "/routes/{{route_id}}"
inputParameters:
- name: route_id
in: path
operations:
- name: get-route
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
When a new order arrives from BigCommerce, creates a DHL Express shipment, updates the order with tracking info, and sends shipping confirmation to the customer.
naftiko: "0.5"
info:
label: "Ecommerce Order Integration"
description: "When a new order arrives from BigCommerce, creates a DHL Express shipment, updates the order with tracking info, and sends shipping confirmation to the customer."
tags:
- shipping
- ecommerce
- bigcommerce
- dhl-express
capability:
exposes:
- type: mcp
namespace: ecommerce-fulfillment
port: 8080
tools:
- name: fulfill-ecommerce-order
description: "Fulfill a BigCommerce order with DHL Express shipping."
inputParameters:
- name: order_id
in: body
type: string
description: "The BigCommerce order identifier."
steps:
- name: get-order
type: call
call: "bigcommerce.get-order"
with:
order_id: "{{order_id}}"
- name: create-shipment
type: call
call: "dhl-express.create-shipment"
with:
shipper: "$secrets.default_shipper_address"
recipient: "{{get-order.shipping_address}}"
weight: "{{get-order.total_weight}}"
product_code: "P"
- name: update-order
type: call
call: "bigcommerce.update-order-tracking"
with:
order_id: "{{order_id}}"
tracking_number: "{{create-shipment.tracking_number}}"
carrier: "DHL Express"
consumes:
- type: http
namespace: bigcommerce
baseUri: "https://api.bigcommerce.com/stores/$secrets.bigcommerce_store_hash/v2"
authentication:
type: bearer
token: "$secrets.bigcommerce_token"
resources:
- name: orders
path: "/orders/{{order_id}}"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- name: shipments
path: "/orders/{{order_id}}/shipments"
inputParameters:
- name: order_id
in: path
operations:
- name: update-order-tracking
method: POST
- type: http
namespace: dhl-express
baseUri: "https://api-eu.dhl.com/express"
authentication:
type: basic
username: "$secrets.dhl_express_user"
password: "$secrets.dhl_express_password"
resources:
- name: shipments
path: "/shipments"
operations:
- name: create-shipment
method: POST
Checks ES index at DHL.
naftiko: "0.5"
info:
label: "ES Index Health"
description: "Checks ES index at DHL."
tags:
- search
- elasticsearch
- infrastructure
capability:
exposes:
- type: mcp
namespace: es-health
port: 8080
tools:
- name: check-index
description: "Check ES index at DHL."
inputParameters:
- name: index
in: body
type: string
description: "Index name."
call: "es.get-health"
with:
index: "{{index}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: docs
type: number
mapping: "$.docs.count"
consumes:
- type: http
namespace: es
baseUri: "https://es.dhl.com:9200"
authentication:
type: bearer
token: "$secrets.es_token"
resources:
- name: indices
path: "/{{index}}/_stats"
inputParameters:
- name: index
in: path
operations:
- name: get-health
method: GET
Offboards employees at DHL via Okta, Slack, ServiceNow, and storage.
naftiko: "0.5"
info:
label: "Employee Offboarding Pipeline"
description: "Offboards employees at DHL via Okta, Slack, ServiceNow, and storage."
tags:
- hr
- offboarding
- okta
- servicenow
capability:
exposes:
- type: mcp
namespace: offboarding
port: 8080
tools:
- name: offboard
description: "Offboard employees at DHL."
inputParameters:
- name: emp_id
in: body
type: string
description: "Employee ID."
- name: last_day
in: body
type: string
description: "Last day."
steps:
- name: disable
type: call
call: "okta.deactivate"
with:
user: "{{emp_id}}"
- name: revoke
type: call
call: "slack.remove"
with:
user: "{{emp_id}}"
- name: return
type: call
call: "servicenow.create-request"
with:
type: "return"
emp: "{{emp_id}}"
- name: archive
type: call
call: "storage.archive"
with:
user: "{{emp_id}}"
consumes:
- type: http
namespace: okta
baseUri: "https://dhl.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users/{{user}}/lifecycle/deactivate"
inputParameters:
- name: user
in: path
operations:
- name: deactivate
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: users
path: "/users.admin.remove"
operations:
- name: remove
method: POST
- type: http
namespace: servicenow
baseUri: "https://dhl.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: storage
baseUri: "https://storage.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.storage_token"
resources:
- name: archives
path: "/archive"
operations:
- name: archive
method: POST
When a new logistics employee is added in Workday, creates a ServiceNow access request for warehouse systems, provisions DHL WMS access, and sends a welcome message via Microsoft Teams.
naftiko: "0.5"
info:
label: "Employee Onboarding for Logistics"
description: "When a new logistics employee is added in Workday, creates a ServiceNow access request for warehouse systems, provisions DHL WMS access, and sends a welcome message via Microsoft Teams."
tags:
- hr
- onboarding
- workday
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: logistics-onboarding
port: 8080
tools:
- name: onboard-logistics-employee
description: "Orchestrate onboarding for a new logistics team member."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday employee identifier."
- name: warehouse_id
in: body
type: string
description: "The warehouse location assignment."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: create-access-request
type: call
call: "servicenow.create-request"
with:
short_description: "WMS access for {{get-employee.full_name}}"
category: "access_provisioning"
description: "Provision DHL WMS access for new employee {{get-employee.full_name}} at warehouse {{warehouse_id}}."
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to DHL, {{get-employee.first_name}}! You've been assigned to warehouse {{warehouse_id}}. Your IT access request is {{create-access-request.number}}."
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://dhl.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: 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
Audits expenses at DHL via Concur, compliance checks, and email.
naftiko: "0.5"
info:
label: "Expense Audit Pipeline"
description: "Audits expenses at DHL via Concur, compliance checks, and email."
tags:
- finance
- travel
- sap-concur
- compliance
capability:
exposes:
- type: mcp
namespace: expense-audit
port: 8080
tools:
- name: audit
description: "Audit expenses at DHL."
inputParameters:
- name: report_id
in: body
type: string
description: "Report ID."
steps:
- name: get
type: call
call: "concur.get-report"
with:
id: "{{report_id}}"
- name: check
type: call
call: "compliance.check"
with:
expenses: "{{get.entries}}"
- name: flag
type: call
call: "workflow.flag"
with:
id: "{{report_id}}"
violations: "{{check.violations}}"
- name: notify
type: call
call: "email.send"
with:
to: "{{get.approver}}"
subject: "Expense {{report_id}} violations"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: reports
path: "/expense/reports/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-report
method: GET
- type: http
namespace: compliance
baseUri: "https://compliance.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: policies
path: "/check"
operations:
- name: check
method: POST
- type: http
namespace: workflow
baseUri: "https://workflow.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.workflow_token"
resources:
- name: reviews
path: "/flag"
operations:
- name: flag
method: POST
- type: http
namespace: email
baseUri: "https://email.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Analyzes feedback at DHL via surveys, AI sentiment, and Power BI.
naftiko: "0.5"
info:
label: "Customer Feedback Pipeline"
description: "Analyzes feedback at DHL via surveys, AI sentiment, and Power BI."
tags:
- customer-experience
- analytics
- sentiment-analysis
capability:
exposes:
- type: mcp
namespace: feedback
port: 8080
tools:
- name: analyze
description: "Analyze feedback at DHL."
inputParameters:
- name: survey_id
in: body
type: string
description: "Survey ID."
steps:
- name: collect
type: call
call: "survey.get"
with:
id: "{{survey_id}}"
- name: sentiment
type: call
call: "ai.analyze"
with:
text: "{{collect.responses}}"
- name: themes
type: call
call: "ai.themes"
with:
data: "{{collect.responses}}"
- name: dashboard
type: call
call: "power-bi.refresh"
with:
dataset: "cx"
consumes:
- type: http
namespace: survey
baseUri: "https://surveys.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.survey_token"
resources:
- name: responses
path: "/surveys/{{id}}/responses"
inputParameters:
- name: id
in: path
operations:
- name: get
method: GET
- type: http
namespace: ai
baseUri: "https://api.openai.com/v1"
authentication:
type: bearer
token: "$secrets.openai_api_key"
resources:
- name: completions
path: "/chat/completions"
operations:
- name: analyze
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
Tracks DHL delivery fleet vehicles in real time, returning current location, speed, route progress, and estimated arrival times.
naftiko: "0.5"
info:
label: "Fleet Vehicle Tracking"
description: "Tracks DHL delivery fleet vehicles in real time, returning current location, speed, route progress, and estimated arrival times."
tags:
- logistics
- fleet
- tracking
capability:
exposes:
- type: mcp
namespace: fleet-tracking
port: 8080
tools:
- name: track-vehicle
description: "Track a DHL fleet vehicle in real time."
inputParameters:
- name: vehicle_id
in: body
type: string
description: "The fleet vehicle identifier."
call: "dhl-fleet.get-vehicle-location"
with:
vehicle_id: "{{vehicle_id}}"
consumes:
- type: http
namespace: dhl-fleet
baseUri: "https://api.dhl.com/fleet/v1"
authentication:
type: bearer
token: "$secrets.dhl_fleet_token"
resources:
- name: vehicles
path: "/vehicles/{{vehicle_id}}/location"
inputParameters:
- name: vehicle_id
in: path
operations:
- name: get-vehicle-location
method: GET
Requests a freight shipping quote from DHL Freight for LTL or FTL shipments based on cargo details, origin, and destination.
naftiko: "0.5"
info:
label: "Freight Quote Request"
description: "Requests a freight shipping quote from DHL Freight for LTL or FTL shipments based on cargo details, origin, and destination."
tags:
- logistics
- freight
- dhl-freight
capability:
exposes:
- type: mcp
namespace: freight-quotes
port: 8080
tools:
- name: get-freight-quote
description: "Request a freight shipping quote for LTL or FTL cargo."
inputParameters:
- name: origin_city
in: body
type: string
description: "Origin city."
- name: destination_city
in: body
type: string
description: "Destination city."
- name: weight_kg
in: body
type: number
description: "Total cargo weight in kilograms."
- name: shipment_type
in: body
type: string
description: "Shipment type (ltl or ftl)."
- name: cargo_description
in: body
type: string
description: "Description of the cargo."
call: "dhl-freight.request-quote"
with:
origin: "{{origin_city}}"
destination: "{{destination_city}}"
weight: "{{weight_kg}}"
type: "{{shipment_type}}"
description: "{{cargo_description}}"
consumes:
- type: http
namespace: dhl-freight
baseUri: "https://api.dhl.com/freight/v1"
authentication:
type: bearer
token: "$secrets.dhl_freight_token"
resources:
- name: quotes
path: "/quotes"
operations:
- name: request-quote
method: POST
Checks GitHub repo at DHL.
naftiko: "0.5"
info:
label: "GitHub Repo Check"
description: "Checks GitHub repo at DHL."
tags:
- devops
- github
- version-control
capability:
exposes:
- type: mcp
namespace: gh-repo
port: 8080
tools:
- name: get-branch
description: "Check branch at DHL."
inputParameters:
- name: repo
in: body
type: string
description: "Repo."
- name: branch
in: body
type: string
description: "Branch."
call: "github.get-branch"
with:
repo: "{{repo}}"
branch: "{{branch}}"
outputParameters:
- name: sha
type: string
mapping: "$.commit.sha"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: branches
path: "/repos/org/{{repo}}/branches/{{branch}}"
inputParameters:
- name: repo
in: path
- name: branch
in: path
operations:
- name: get-branch
method: GET
Checks Google user at DHL.
naftiko: "0.5"
info:
label: "Google Workspace User Check"
description: "Checks Google user at DHL."
tags:
- identity
- google-workspace
- directory
capability:
exposes:
- type: mcp
namespace: gws
port: 8080
tools:
- name: check-user
description: "Check user at DHL."
inputParameters:
- name: email
in: body
type: string
description: "Email."
call: "google.get-user"
with:
email: "{{email}}"
outputParameters:
- name: suspended
type: boolean
mapping: "$.suspended"
consumes:
- type: http
namespace: google
baseUri: "https://admin.googleapis.com/admin/directory/v1"
authentication:
type: bearer
token: "$secrets.google_admin_token"
resources:
- name: users
path: "/users/{{email}}"
inputParameters:
- name: email
in: path
operations:
- name: get-user
method: GET
Checks Grafana dashboard at DHL.
naftiko: "0.5"
info:
label: "Grafana Dashboard Status"
description: "Checks Grafana dashboard at DHL."
tags:
- monitoring
- grafana
- dashboards
capability:
exposes:
- type: mcp
namespace: grafana
port: 8080
tools:
- name: check-dash
description: "Check dashboard at DHL."
inputParameters:
- name: uid
in: body
type: string
description: "Dashboard UID."
call: "grafana.get-dash"
with:
uid: "{{uid}}"
outputParameters:
- name: title
type: string
mapping: "$.dashboard.title"
consumes:
- type: http
namespace: grafana
baseUri: "https://grafana.dhl.com/api"
authentication:
type: bearer
token: "$secrets.grafana_token"
resources:
- name: dashboards
path: "/dashboards/uid/{{uid}}"
inputParameters:
- name: uid
in: path
operations:
- name: get-dash
method: GET
Pulls DHL shipping invoices, matches them against SAP purchase orders, and logs discrepancies as ServiceNow incidents for finance review.
naftiko: "0.5"
info:
label: "Invoice Reconciliation Pipeline"
description: "Pulls DHL shipping invoices, matches them against SAP purchase orders, and logs discrepancies as ServiceNow incidents for finance review."
tags:
- finance
- reconciliation
- dhl-express
- sap
- servicenow
capability:
exposes:
- type: mcp
namespace: invoice-reconciliation
port: 8080
tools:
- name: reconcile-invoices
description: "Reconcile DHL shipping invoices against SAP purchase orders."
inputParameters:
- name: invoice_id
in: body
type: string
description: "The DHL invoice identifier."
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
steps:
- name: get-invoice
type: call
call: "dhl-billing.get-invoice"
with:
invoice_id: "{{invoice_id}}"
- name: get-po
type: call
call: "sap.get-po"
with:
po_number: "{{po_number}}"
- name: log-discrepancy
type: call
call: "servicenow.create-incident"
with:
short_description: "Invoice discrepancy: DHL {{invoice_id}} vs PO {{po_number}}"
category: "finance"
description: "Invoice total: {{get-invoice.total}}. PO total: {{get-po.total_amount}}. Variance requires review."
consumes:
- type: http
namespace: dhl-billing
baseUri: "https://api.dhl.com/billing/v1"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: invoices
path: "/invoices/{{invoice_id}}"
inputParameters:
- name: invoice_id
in: path
operations:
- name: get-invoice
method: GET
- type: http
namespace: sap
baseUri: "https://dhl-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
- type: http
namespace: servicenow
baseUri: "https://dhl.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
Escalates IT incidents at DHL via ServiceNow, PagerDuty, and Slack.
naftiko: "0.5"
info:
label: "IT Incident Escalation Pipeline"
description: "Escalates IT incidents at DHL via ServiceNow, PagerDuty, and Slack."
tags:
- incident-management
- servicenow
- pagerduty
- slack
capability:
exposes:
- type: mcp
namespace: incident-escalation
port: 8080
tools:
- name: escalate-incident
description: "Escalate incidents at DHL."
inputParameters:
- name: incident_id
in: body
type: string
description: "Incident ID."
- name: severity
in: body
type: string
description: "Severity."
steps:
- name: get-incident
type: call
call: "servicenow.get-incident"
with:
incident_id: "{{incident_id}}"
- name: page
type: call
call: "pagerduty.create-incident"
with:
title: "{{get-incident.description}}"
urgency: "{{severity}}"
- name: channel
type: call
call: "slack.create-channel"
with:
name: "inc-{{incident_id}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#inc-{{incident_id}}"
text: "P{{severity}}: {{get-incident.description}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://dhl.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident/{{incident_id}}"
inputParameters:
- name: incident_id
in: path
operations:
- name: get-incident
method: GET
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: channels
path: "/conversations.create"
operations:
- name: create-channel
method: POST
Retrieves sprint progress at DHL.
naftiko: "0.5"
info:
label: "Jira Sprint Progress Lookup"
description: "Retrieves sprint progress at DHL."
tags:
- project-management
- jira
- agile
capability:
exposes:
- type: mcp
namespace: jira-sprint
port: 8080
tools:
- name: get-sprint
description: "Look up sprint at DHL."
inputParameters:
- name: project_key
in: body
type: string
description: "Project key."
call: "jira.get-sprints"
with:
project: "{{project_key}}"
outputParameters:
- name: name
type: string
mapping: "$.values[0].name"
- name: state
type: string
mapping: "$.values[0].state"
consumes:
- type: http
namespace: jira
baseUri: "https://dhl.com.atlassian.net/rest/agile/1.0"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: sprints
path: "/board/1/sprint"
operations:
- name: get-sprints
method: GET
Maintains KB at DHL by finding stale articles and notifying owners.
naftiko: "0.5"
info:
label: "Knowledge Base Maintenance Pipeline"
description: "Maintains KB at DHL by finding stale articles and notifying owners."
tags:
- knowledge-management
- confluence
- maintenance
capability:
exposes:
- type: mcp
namespace: kb-maint
port: 8080
tools:
- name: maintain-kb
description: "Maintain KB at DHL."
inputParameters:
- name: space
in: body
type: string
description: "Confluence space."
- name: stale_days
in: body
type: number
description: "Days threshold."
steps:
- name: find
type: call
call: "confluence.search-stale"
with:
space: "{{space}}"
days: "{{stale_days}}"
- name: notify
type: call
call: "email.batch"
with:
to: "{{find.owners}}"
subject: "KB review needed"
- name: flag
type: call
call: "confluence.add-label"
with:
pages: "{{find.ids}}"
label: "needs-review"
- name: report
type: call
call: "slack.post-message"
with:
channel: "#kb"
text: "KB: {{find.count}} stale articles"
consumes:
- type: http
namespace: confluence
baseUri: "https://dhl.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: content
path: "/content/search"
operations:
- name: search-stale
method: GET
- type: http
namespace: email
baseUri: "https://email.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: batch
path: "/send-batch"
operations:
- name: batch
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Generates KPI digest at DHL from Snowflake, Oracle, Power BI, and email.
naftiko: "0.5"
info:
label: "Weekly KPI Digest Pipeline"
description: "Generates KPI digest at DHL from Snowflake, Oracle, Power BI, and email."
tags:
- reporting
- kpi
- snowflake
- executive
capability:
exposes:
- type: mcp
namespace: kpi-digest
port: 8080
tools:
- name: gen-digest
description: "Generate KPI digest at DHL."
inputParameters:
- name: week
in: body
type: string
description: "Week ending."
- name: dist
in: body
type: string
description: "Distribution list."
steps:
- name: ops
type: call
call: "snowflake.query"
with:
query: "SELECT * FROM kpis WHERE w='{{week}}'"
- name: fin
type: call
call: "oracle.get-summary"
with:
period: "{{week}}"
- name: refresh
type: call
call: "power-bi.refresh"
with:
dataset: "exec_kpis"
- name: send
type: call
call: "email.send"
with:
to: "{{dist}}"
subject: "KPIs - {{week}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://dhl.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: oracle
baseUri: "https://oracle.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: fin
path: "/summary"
operations:
- name: get-summary
method: GET
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
- type: http
namespace: email
baseUri: "https://email.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Checks K8s pod health at DHL.
naftiko: "0.5"
info:
label: "K8s Pod Health"
description: "Checks K8s pod health at DHL."
tags:
- containers
- kubernetes
- infrastructure
capability:
exposes:
- type: mcp
namespace: k8s-pod
port: 8080
tools:
- name: check-pod
description: "Check pod at DHL."
inputParameters:
- name: namespace
in: body
type: string
description: "Namespace."
- name: pod
in: body
type: string
description: "Pod name."
call: "k8s.get-pod"
with:
namespace: "{{namespace}}"
pod: "{{pod}}"
outputParameters:
- name: phase
type: string
mapping: "$.status.phase"
consumes:
- type: http
namespace: k8s
baseUri: "https://k8s.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.k8s_token"
resources:
- name: pods
path: "/namespaces/{{namespace}}/pods/{{pod}}"
inputParameters:
- name: namespace
in: path
- name: pod
in: path
operations:
- name: get-pod
method: GET
Confirms last mile delivery completion, updates the SAP sales order status, and sends a delivery confirmation email to the customer via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Last Mile Delivery Confirmation"
description: "Confirms last mile delivery completion, updates the SAP sales order status, and sends a delivery confirmation email to the customer via Microsoft Outlook."
tags:
- delivery
- last-mile
- dhl-express
- sap
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: delivery-confirmation
port: 8080
tools:
- name: confirm-delivery
description: "Confirm delivery completion and update order systems."
inputParameters:
- name: tracking_number
in: body
type: string
description: "The DHL tracking number."
- name: customer_email
in: body
type: string
description: "Customer email address."
steps:
- name: get-pod
type: call
call: "dhl-tracking.get-pod"
with:
tracking_number: "{{tracking_number}}"
- name: update-sap
type: call
call: "sap.update-delivery-status"
with:
tracking_number: "{{tracking_number}}"
status: "delivered"
delivery_date: "{{get-pod.delivery_timestamp}}"
- name: send-confirmation
type: call
call: "outlook.send-email"
with:
to: "{{customer_email}}"
subject: "Your DHL delivery has been completed"
body: "Your shipment {{tracking_number}} was delivered on {{get-pod.delivery_timestamp}}. Signed by: {{get-pod.signee_name}}. Thank you for choosing DHL."
consumes:
- type: http
namespace: dhl-tracking
baseUri: "https://api-eu.dhl.com/track"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: pod
path: "/shipments/{{tracking_number}}/proof-of-delivery"
inputParameters:
- name: tracking_number
in: path
operations:
- name: get-pod
method: GET
- type: http
namespace: sap
baseUri: "https://dhl-s4.sap.com/sap/opu/odata/sap/API_OUTBOUND_DELIVERY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: deliveries
path: "/A_OutbDeliveryHeader"
operations:
- name: update-delivery-status
method: PATCH
- 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-email
method: POST
Checks license compliance at DHL via scanning, entitlements, and procurement.
naftiko: "0.5"
info:
label: "License Compliance Pipeline"
description: "Checks license compliance at DHL via scanning, entitlements, and procurement."
tags:
- compliance
- licensing
- procurement
capability:
exposes:
- type: mcp
namespace: license-comp
port: 8080
tools:
- name: check-licenses
description: "Check license compliance at DHL."
inputParameters:
- name: software
in: body
type: string
description: "Software."
- name: vendor
in: body
type: string
description: "Vendor."
steps:
- name: scan
type: call
call: "assets.installations"
with:
sw: "{{software}}"
- name: entitlements
type: call
call: "licenses.get"
with:
sw: "{{software}}"
- name: flag
type: call
call: "compliance.flag"
with:
installed: "{{scan.count}}"
entitled: "{{entitlements.count}}"
- name: procure
type: call
call: "servicenow.create-request"
with:
type: "license"
sw: "{{software}}"
consumes:
- type: http
namespace: assets
baseUri: "https://assets.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.asset_token"
resources:
- name: installations
path: "/installations"
operations:
- name: installations
method: GET
- type: http
namespace: licenses
baseUri: "https://licenses.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.license_token"
resources:
- name: ent
path: "/entitlements"
operations:
- name: get
method: GET
- type: http
namespace: compliance
baseUri: "https://compliance.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: overages
path: "/flag"
operations:
- name: flag
method: POST
- type: http
namespace: servicenow
baseUri: "https://dhl.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
Checks MongoDB at DHL.
naftiko: "0.5"
info:
label: "MongoDB Stats Check"
description: "Checks MongoDB at DHL."
tags:
- database
- mongodb
- operations
capability:
exposes:
- type: mcp
namespace: mongo
port: 8080
tools:
- name: get-stats
description: "Check MongoDB at DHL."
inputParameters:
- name: db
in: body
type: string
description: "Database."
- name: collection
in: body
type: string
description: "Collection."
call: "mongo.get-stats"
with:
db: "{{db}}"
collection: "{{collection}}"
outputParameters:
- name: count
type: number
mapping: "$.count"
consumes:
- type: http
namespace: mongo
baseUri: "https://mongo.dhl.com/api/atlas/v1.0"
authentication:
type: bearer
token: "$secrets.mongo_token"
resources:
- name: collections
path: "/collStats"
operations:
- name: get-stats
method: GET
Generates monthly security reports at DHL from Splunk and Qualys.
naftiko: "0.5"
info:
label: "Monthly Security Report Pipeline"
description: "Generates monthly security reports at DHL from Splunk and Qualys."
tags:
- security
- reporting
- splunk
- compliance
capability:
exposes:
- type: mcp
namespace: sec-report
port: 8080
tools:
- name: gen-sec-report
description: "Generate security report at DHL."
inputParameters:
- name: month
in: body
type: string
description: "Month."
steps:
- name: splunk
type: call
call: "splunk.search"
with:
query: "index=security earliest=-30d"
- name: scans
type: call
call: "qualys.results"
with:
month: "{{month}}"
- name: compile
type: call
call: "analytics.compile-security"
with:
events: "{{splunk.count}}"
vulns: "{{scans.critical}}"
- name: send
type: call
call: "email.send"
with:
to: "ciso@co.com"
subject: "Security - {{month}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://splunk.dhl.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search
path: "/search/jobs"
operations:
- name: search
method: POST
- type: http
namespace: qualys
baseUri: "https://qualysapi.qualys.com/api/v2"
authentication:
type: bearer
token: "$secrets.qualys_token"
resources:
- name: results
path: "/fo/scan/results"
operations:
- name: results
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: security
path: "/compile"
operations:
- name: compile-security
method: POST
- type: http
namespace: email
baseUri: "https://email.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Onboards employees at DHL with Okta, ServiceNow, Slack, and calendar.
naftiko: "0.5"
info:
label: "New Employee IT Onboarding Pipeline"
description: "Onboards employees at DHL with Okta, ServiceNow, Slack, and calendar."
tags:
- hr
- onboarding
- okta
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: it-onboarding
port: 8080
tools:
- name: onboard-employee
description: "Onboard employees at DHL."
inputParameters:
- name: name
in: body
type: string
description: "Name."
- name: dept
in: body
type: string
description: "Department."
- name: start
in: body
type: string
description: "Start date."
steps:
- name: okta
type: call
call: "okta.create-user"
with:
name: "{{name}}"
department: "{{dept}}"
- name: equip
type: call
call: "servicenow.create-request"
with:
type: "new_hire"
for: "{{name}}"
- name: slack
type: call
call: "slack.invite"
with:
email: "{{okta.email}}"
- name: orient
type: call
call: "calendar.create-event"
with:
title: "Orientation - {{name}}"
date: "{{start}}"
consumes:
- type: http
namespace: okta
baseUri: "https://dhl.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users"
operations:
- name: create-user
method: POST
- type: http
namespace: servicenow
baseUri: "https://dhl.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: users
path: "/users.admin.invite"
operations:
- name: invite
method: POST
- type: http
namespace: calendar
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: events
path: "/users/hr/events"
operations:
- name: create-event
method: POST
Checks New Relic APM at DHL.
naftiko: "0.5"
info:
label: "New Relic APM Check"
description: "Checks New Relic APM at DHL."
tags:
- monitoring
- new-relic
- apm
capability:
exposes:
- type: mcp
namespace: nr-apm
port: 8080
tools:
- name: check-apm
description: "Check APM at DHL."
inputParameters:
- name: app_id
in: body
type: string
description: "App ID."
call: "newrelic.get-app"
with:
app_id: "{{app_id}}"
outputParameters:
- name: health
type: string
mapping: "$.application.health_status"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: bearer
token: "$secrets.new_relic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-app
method: GET
Checks Okta user at DHL.
naftiko: "0.5"
info:
label: "Okta User Check"
description: "Checks Okta user at DHL."
tags:
- identity
- okta
- access-management
capability:
exposes:
- type: mcp
namespace: okta-user
port: 8080
tools:
- name: check-user
description: "Check user at DHL."
inputParameters:
- name: email
in: body
type: string
description: "Email."
call: "okta.get-user"
with:
email: "{{email}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: okta
baseUri: "https://dhl.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users/{{email}}"
inputParameters:
- name: email
in: path
operations:
- name: get-user
method: GET
When an SAP sales order is created, reserves warehouse inventory in DHL WMS, generates a shipping label via DHL Express, and sends tracking details to the customer via Twilio SMS.
naftiko: "0.5"
info:
label: "Outbound Order Fulfillment Pipeline"
description: "When an SAP sales order is created, reserves warehouse inventory in DHL WMS, generates a shipping label via DHL Express, and sends tracking details to the customer via Twilio SMS."
tags:
- logistics
- fulfillment
- sap
- dhl-supply-chain
- dhl-express
- twilio
capability:
exposes:
- type: mcp
namespace: order-fulfillment
port: 8080
tools:
- name: fulfill-order
description: "Orchestrate order fulfillment from warehouse to shipment with customer notification."
inputParameters:
- name: sales_order_id
in: body
type: string
description: "The SAP sales order identifier."
- name: warehouse_id
in: body
type: string
description: "The DHL warehouse identifier."
steps:
- name: get-order
type: call
call: "sap.get-sales-order"
with:
order_id: "{{sales_order_id}}"
- name: reserve-stock
type: call
call: "dhl-wms.reserve-inventory"
with:
warehouse_id: "{{warehouse_id}}"
sku: "{{get-order.sku}}"
quantity: "{{get-order.quantity}}"
- name: create-shipment
type: call
call: "dhl-express.create-shipment"
with:
shipper: "{{reserve-stock.warehouse_address}}"
recipient: "{{get-order.ship_to_address}}"
weight: "{{get-order.weight_kg}}"
product_code: "P"
- name: notify-customer
type: call
call: "twilio.send-sms"
with:
to: "{{get-order.customer_phone}}"
body: "Your order {{sales_order_id}} has shipped via DHL Express. Track it: https://www.dhl.com/track?num={{create-shipment.tracking_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://dhl-s4.sap.com/sap/opu/odata/sap/API_SALES_ORDER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: sales-orders
path: "/A_SalesOrder('{{order_id}}')"
inputParameters:
- name: order_id
in: path
operations:
- name: get-sales-order
method: GET
- type: http
namespace: dhl-wms
baseUri: "https://api.dhl.com/supplychain/wms/v1"
authentication:
type: bearer
token: "$secrets.dhl_wms_token"
resources:
- name: reservations
path: "/inventory/reserve"
operations:
- name: reserve-inventory
method: POST
- type: http
namespace: dhl-express
baseUri: "https://api-eu.dhl.com/express"
authentication:
type: basic
username: "$secrets.dhl_express_user"
password: "$secrets.dhl_express_password"
resources:
- name: shipments
path: "/shipments"
operations:
- name: create-shipment
method: POST
- type: http
namespace: twilio
baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
authentication:
type: basic
username: "$secrets.twilio_account_sid"
password: "$secrets.twilio_auth_token"
resources:
- name: messages
path: "/Messages.json"
operations:
- name: send-sms
method: POST
Checks on-call at DHL.
naftiko: "0.5"
info:
label: "PagerDuty On-Call Check"
description: "Checks on-call at DHL."
tags:
- incident-management
- pagerduty
- on-call
capability:
exposes:
- type: mcp
namespace: pd-oncall
port: 8080
tools:
- name: get-oncall
description: "Check on-call at DHL."
inputParameters:
- name: schedule_id
in: body
type: string
description: "Schedule ID."
call: "pagerduty.get-oncall"
with:
schedule_id: "{{schedule_id}}"
outputParameters:
- name: user
type: string
mapping: "$.oncalls[0].user.summary"
consumes:
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: oncalls
path: "/oncalls"
operations:
- name: get-oncall
method: GET
Checks DHL Packstation locker availability at a given location, returning available locker sizes and reservation capability.
naftiko: "0.5"
info:
label: "Parcel Locker Availability"
description: "Checks DHL Packstation locker availability at a given location, returning available locker sizes and reservation capability."
tags:
- shipping
- service-points
- dhl-location
capability:
exposes:
- type: mcp
namespace: locker-availability
port: 8080
tools:
- name: check-locker-availability
description: "Check DHL Packstation locker availability at a location."
inputParameters:
- name: station_id
in: body
type: string
description: "The Packstation identifier."
call: "dhl-location.get-locker-status"
with:
station_id: "{{station_id}}"
consumes:
- type: http
namespace: dhl-location
baseUri: "https://api-eu.dhl.com/location-finder/v1"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: lockers
path: "/locations/{{station_id}}/availability"
inputParameters:
- name: station_id
in: path
operations:
- name: get-locker-status
method: GET
Schedules a DHL Express pickup at a specified address and time window, returning a confirmation number and estimated driver arrival time.
naftiko: "0.5"
info:
label: "Pickup Scheduling"
description: "Schedules a DHL Express pickup at a specified address and time window, returning a confirmation number and estimated driver arrival time."
tags:
- shipping
- pickup
- dhl-express
capability:
exposes:
- type: mcp
namespace: pickup-scheduling
port: 8080
tools:
- name: schedule-pickup
description: "Schedule a DHL Express pickup for packages."
inputParameters:
- name: address
in: body
type: string
description: "The pickup address."
- name: pickup_date
in: body
type: string
description: "Requested pickup date in YYYY-MM-DD format."
- name: ready_by_time
in: body
type: string
description: "Time packages will be ready in HH:MM format."
- name: close_time
in: body
type: string
description: "Latest pickup time in HH:MM format."
- name: package_count
in: body
type: number
description: "Number of packages for pickup."
call: "dhl-express.create-pickup"
with:
address: "{{address}}"
date: "{{pickup_date}}"
ready_by: "{{ready_by_time}}"
close_time: "{{close_time}}"
pieces: "{{package_count}}"
consumes:
- type: http
namespace: dhl-express
baseUri: "https://api-eu.dhl.com/express"
authentication:
type: basic
username: "$secrets.dhl_express_user"
password: "$secrets.dhl_express_password"
resources:
- name: pickups
path: "/pickups"
operations:
- name: create-pickup
method: POST
Creates postmortems at DHL.
naftiko: "0.5"
info:
label: "Incident Postmortem Pipeline"
description: "Creates postmortems at DHL."
tags:
- incident-management
- postmortem
- pagerduty
- confluence
capability:
exposes:
- type: mcp
namespace: postmortem
port: 8080
tools:
- name: create-postmortem
description: "Create postmortem at DHL."
inputParameters:
- name: incident_id
in: body
type: string
description: "Incident ID."
steps:
- name: timeline
type: call
call: "pagerduty.get-log"
with:
id: "{{incident_id}}"
- name: metrics
type: call
call: "datadog.get-metrics"
with:
incident: "{{incident_id}}"
- name: doc
type: call
call: "confluence.create-page"
with:
title: "Postmortem: {{timeline.title}}"
body: "Impact: {{metrics.impact}}"
- name: review
type: call
call: "calendar.create-event"
with:
title: "Review: {{timeline.title}}"
consumes:
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: incidents
path: "/incidents/{{id}}/log_entries"
inputParameters:
- name: id
in: path
operations:
- name: get-log
method: GET
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: incidents
path: "/incidents"
operations:
- name: get-metrics
method: GET
- type: http
namespace: confluence
baseUri: "https://dhl.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: calendar
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: events
path: "/users/sre/events"
operations:
- name: create-event
method: POST
Checks Power BI refresh at DHL.
naftiko: "0.5"
info:
label: "Power BI Refresh Check"
description: "Checks Power BI refresh at DHL."
tags:
- analytics
- power-bi
- dashboards
capability:
exposes:
- type: mcp
namespace: pbi-refresh
port: 8080
tools:
- name: check-refresh
description: "Check refresh at DHL."
inputParameters:
- name: dataset_id
in: body
type: string
description: "Dataset ID."
call: "power-bi.get-refresh"
with:
dataset_id: "{{dataset_id}}"
outputParameters:
- name: status
type: string
mapping: "$.value[0].status"
consumes:
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: get-refresh
method: GET
Queries Prometheus metrics at DHL.
naftiko: "0.5"
info:
label: "Prometheus Metrics Query"
description: "Queries Prometheus metrics at DHL."
tags:
- monitoring
- prometheus
- metrics
capability:
exposes:
- type: mcp
namespace: prom
port: 8080
tools:
- name: query
description: "Query Prometheus at DHL."
inputParameters:
- name: query
in: body
type: string
description: "PromQL query."
call: "prometheus.query"
with:
query: "{{query}}"
outputParameters:
- name: value
type: number
mapping: "$.data.result[0].value[1]"
consumes:
- type: http
namespace: prometheus
baseUri: "https://prometheus.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.prometheus_token"
resources:
- name: queries
path: "/query"
operations:
- name: query
method: GET
Retrieves the proof of delivery document for a completed shipment, including signature image, delivery timestamp, and GPS coordinates.
naftiko: "0.5"
info:
label: "Proof of Delivery Retrieval"
description: "Retrieves the proof of delivery document for a completed shipment, including signature image, delivery timestamp, and GPS coordinates."
tags:
- shipping
- delivery
- dhl-express
capability:
exposes:
- type: mcp
namespace: proof-of-delivery
port: 8080
tools:
- name: get-proof-of-delivery
description: "Retrieve the proof of delivery for a completed shipment."
inputParameters:
- name: tracking_number
in: body
type: string
description: "The DHL shipment tracking number."
call: "dhl-tracking.get-pod"
with:
tracking_number: "{{tracking_number}}"
consumes:
- type: http
namespace: dhl-tracking
baseUri: "https://api-eu.dhl.com/track"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: pod
path: "/shipments/{{tracking_number}}/proof-of-delivery"
inputParameters:
- name: tracking_number
in: path
operations:
- name: get-pod
method: GET
Generates compliance reports at DHL from Snowflake, Power BI, and email.
naftiko: "0.5"
info:
label: "Quarterly Compliance Report Pipeline"
description: "Generates compliance reports at DHL from Snowflake, Power BI, and email."
tags:
- compliance
- reporting
- snowflake
- power-bi
capability:
exposes:
- type: mcp
namespace: compliance-rpt
port: 8080
tools:
- name: gen-report
description: "Generate compliance reports at DHL."
inputParameters:
- name: quarter
in: body
type: string
description: "Quarter."
- name: type
in: body
type: string
description: "Type."
steps:
- name: data
type: call
call: "snowflake.query"
with:
query: "SELECT * FROM compliance WHERE q='{{quarter}}'"
- name: metrics
type: call
call: "analytics.compute"
with:
data: "{{data.results}}"
- name: refresh
type: call
call: "power-bi.refresh"
with:
dataset: "compliance"
- name: send
type: call
call: "email.send"
with:
to: "compliance@co.com"
subject: "{{type}} - {{quarter}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://dhl.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: analytics
baseUri: "https://analytics.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: metrics
path: "/compute"
operations:
- name: compute
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
- type: http
namespace: email
baseUri: "https://email.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Checks Redis at DHL.
naftiko: "0.5"
info:
label: "Redis Cache Status"
description: "Checks Redis at DHL."
tags:
- caching
- redis
- infrastructure
capability:
exposes:
- type: mcp
namespace: redis
port: 8080
tools:
- name: check-cache
description: "Check Redis at DHL."
inputParameters:
- name: instance
in: body
type: string
description: "Instance ID."
call: "redis.get-info"
with:
instance: "{{instance}}"
outputParameters:
- name: memory
type: string
mapping: "$.used_memory_human"
consumes:
- type: http
namespace: redis
baseUri: "https://redis.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.redis_token"
resources:
- name: instances
path: "/instances/{{instance}}/info"
inputParameters:
- name: instance
in: path
operations:
- name: get-info
method: GET
Checks release readiness at DHL.
naftiko: "0.5"
info:
label: "Release Readiness Pipeline"
description: "Checks release readiness at DHL."
tags:
- release-management
- devops
- quality
capability:
exposes:
- type: mcp
namespace: release-ready
port: 8080
tools:
- name: check-release
description: "Check release at DHL."
inputParameters:
- name: release_id
in: body
type: string
description: "Release ID."
- name: project
in: body
type: string
description: "Project."
steps:
- name: tests
type: call
call: "azdo.get-tests"
with:
project: "{{project}}"
release: "{{release_id}}"
- name: quality
type: call
call: "sonarqube.get-gate"
with:
project: "{{project}}"
- name: security
type: call
call: "security.get-scan"
with:
project: "{{project}}"
- name: doc
type: call
call: "confluence.create-page"
with:
title: "Release - {{release_id}}"
body: "Tests: {{tests.pass_rate}}% Quality: {{quality.status}}"
consumes:
- type: http
namespace: azdo
baseUri: "https://dev.azure.com/dhl.com"
authentication:
type: bearer
token: "$secrets.azdo_token"
resources:
- name: tests
path: "/{{project}}/_apis/test/runs"
inputParameters:
- name: project
in: path
operations:
- name: get-tests
method: GET
- type: http
namespace: sonarqube
baseUri: "https://sonarqube.dhl.com/api"
authentication:
type: bearer
token: "$secrets.sonarqube_token"
resources:
- name: quality
path: "/qualitygates/project_status"
operations:
- name: get-gate
method: GET
- type: http
namespace: security
baseUri: "https://security.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.security_token"
resources:
- name: scans
path: "/results"
operations:
- name: get-scan
method: GET
- type: http
namespace: confluence
baseUri: "https://dhl.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Creates a return shipping label via DHL Express, generates a return authorization in SAP, and sends the return label to the customer via email.
naftiko: "0.5"
info:
label: "Return Shipment Processor"
description: "Creates a return shipping label via DHL Express, generates a return authorization in SAP, and sends the return label to the customer via email."
tags:
- shipping
- returns
- dhl-express
- sap
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: returns-processing
port: 8080
tools:
- name: process-return
description: "Process a return shipment with label generation and customer notification."
inputParameters:
- name: original_tracking
in: body
type: string
description: "The original shipment tracking number."
- name: return_reason
in: body
type: string
description: "Reason for the return."
- name: customer_email
in: body
type: string
description: "Customer email for label delivery."
steps:
- name: get-original
type: call
call: "dhl-tracking.get-shipment"
with:
tracking_number: "{{original_tracking}}"
- name: create-return-auth
type: call
call: "sap.create-return-order"
with:
original_order: "{{get-original.reference}}"
reason: "{{return_reason}}"
- name: create-return-label
type: call
call: "dhl-express.create-shipment"
with:
shipper: "{{get-original.recipient_address}}"
recipient: "{{get-original.shipper_address}}"
weight: "{{get-original.weight}}"
product_code: "P"
- name: send-label
type: call
call: "outlook.send-email"
with:
to: "{{customer_email}}"
subject: "Your DHL return label - RMA {{create-return-auth.rma_number}}"
body: "Your return has been authorized (RMA: {{create-return-auth.rma_number}}). DHL return tracking: {{create-return-label.tracking_number}}. Print label: {{create-return-label.label_url}}."
consumes:
- type: http
namespace: dhl-tracking
baseUri: "https://api-eu.dhl.com/track"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: shipments
path: "/shipments"
operations:
- name: get-shipment
method: GET
- type: http
namespace: sap
baseUri: "https://dhl-s4.sap.com/sap/opu/odata/sap/API_RETURNS_DELIVERY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: returns
path: "/A_ReturnsDelivery"
operations:
- name: create-return-order
method: POST
- type: http
namespace: dhl-express
baseUri: "https://api-eu.dhl.com/express"
authentication:
type: basic
username: "$secrets.dhl_express_user"
password: "$secrets.dhl_express_password"
resources:
- name: shipments
path: "/shipments"
operations:
- name: create-shipment
method: POST
- 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-email
method: POST
Optimizes delivery routes for a set of stops using the DHL routing engine, returning optimized stop sequence, estimated drive times, and fuel consumption.
naftiko: "0.5"
info:
label: "Route Optimization"
description: "Optimizes delivery routes for a set of stops using the DHL routing engine, returning optimized stop sequence, estimated drive times, and fuel consumption."
tags:
- logistics
- routing
- delivery
capability:
exposes:
- type: mcp
namespace: route-optimization
port: 8080
tools:
- name: optimize-route
description: "Optimize a delivery route for a set of stops."
inputParameters:
- name: depot_address
in: body
type: string
description: "Starting depot address."
- name: stops
in: body
type: string
description: "JSON array of delivery stop addresses."
- name: vehicle_type
in: body
type: string
description: "Vehicle type (van, truck, bike)."
call: "dhl-routing.optimize"
with:
depot: "{{depot_address}}"
stops: "{{stops}}"
vehicle: "{{vehicle_type}}"
consumes:
- type: http
namespace: dhl-routing
baseUri: "https://api.dhl.com/routing/v1"
authentication:
type: bearer
token: "$secrets.dhl_routing_token"
resources:
- name: optimization
path: "/optimize"
operations:
- name: optimize
method: POST
Checks SAP PO at DHL.
naftiko: "0.5"
info:
label: "SAP PO Check"
description: "Checks SAP PO at DHL."
tags:
- procurement
- sap
- purchase-orders
capability:
exposes:
- type: mcp
namespace: sap-po
port: 8080
tools:
- name: get-po
description: "Check PO at DHL."
inputParameters:
- name: po_number
in: body
type: string
description: "PO number."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: vendor
type: string
mapping: "$.order.vendor"
- name: status
type: string
mapping: "$.order.status"
consumes:
- type: http
namespace: sap
baseUri: "https://sap.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: purchase-orders
path: "/purchase-orders/{{po_number}}"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
Manages security training at DHL.
naftiko: "0.5"
info:
label: "Security Training Pipeline"
description: "Manages security training at DHL."
tags:
- security
- training
- compliance
capability:
exposes:
- type: mcp
namespace: sec-training
port: 8080
tools:
- name: manage-training
description: "Manage training at DHL."
inputParameters:
- name: campaign
in: body
type: string
description: "Campaign ID."
steps:
- name: untrained
type: call
call: "lms.get-incomplete"
with:
campaign: "{{campaign}}"
- name: remind
type: call
call: "email.batch"
with:
to: "{{untrained.emails}}"
subject: "Training due"
- name: track
type: call
call: "lms.get-completion"
with:
campaign: "{{campaign}}"
- name: report
type: call
call: "power-bi.refresh"
with:
dataset: "training"
consumes:
- type: http
namespace: lms
baseUri: "https://lms.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.lms_token"
resources:
- name: campaigns
path: "/campaigns/{{campaign}}/incomplete"
inputParameters:
- name: campaign
in: path
operations:
- name: get-incomplete
method: GET
- type: http
namespace: email
baseUri: "https://email.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: batch
path: "/send-batch"
operations:
- name: batch
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
Remediates vulnerabilities at DHL via scanning, Jira, and Slack.
naftiko: "0.5"
info:
label: "Security Vulnerability Remediation Pipeline"
description: "Remediates vulnerabilities at DHL via scanning, Jira, and Slack."
tags:
- security
- vulnerability-management
- jira
capability:
exposes:
- type: mcp
namespace: vuln-fix
port: 8080
tools:
- name: remediate
description: "Fix vulnerabilities at DHL."
inputParameters:
- name: target
in: body
type: string
description: "Target."
- name: policy
in: body
type: string
description: "Policy."
steps:
- name: scan
type: call
call: "qualys.scan"
with:
target: "{{target}}"
policy: "{{policy}}"
- name: prioritize
type: call
call: "security.prioritize"
with:
scan: "{{scan.id}}"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "SEC"
summary: "Vulns: {{prioritize.critical}} critical"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#security"
text: "Scan: {{prioritize.critical}} critical"
consumes:
- type: http
namespace: qualys
baseUri: "https://qualysapi.qualys.com/api/v2"
authentication:
type: bearer
token: "$secrets.qualys_token"
resources:
- name: scans
path: "/fo/scan"
operations:
- name: scan
method: POST
- type: http
namespace: security
baseUri: "https://security.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.security_token"
resources:
- name: vulns
path: "/prioritize"
operations:
- name: prioritize
method: POST
- type: http
namespace: jira
baseUri: "https://dhl.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Finds the nearest DHL service points, drop-off locations, and lockers based on geographic coordinates or postal code.
naftiko: "0.5"
info:
label: "Service Point Locator"
description: "Finds the nearest DHL service points, drop-off locations, and lockers based on geographic coordinates or postal code."
tags:
- shipping
- service-points
- dhl-location
capability:
exposes:
- type: mcp
namespace: service-points
port: 8080
tools:
- name: find-service-points
description: "Find nearby DHL service points and drop-off locations."
inputParameters:
- name: postal_code
in: body
type: string
description: "Postal code to search near."
- name: country_code
in: body
type: string
description: "Two-letter country ISO code."
- name: radius_km
in: body
type: number
description: "Search radius in kilometers."
call: "dhl-location.find-by-address"
with:
postal_code: "{{postal_code}}"
country: "{{country_code}}"
radius: "{{radius_km}}"
consumes:
- type: http
namespace: dhl-location
baseUri: "https://api-eu.dhl.com/location-finder/v1"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: locations
path: "/find-by-address"
operations:
- name: find-by-address
method: GET
Checks IT incident in ServiceNow for DHL.
naftiko: "0.5"
info:
label: "ServiceNow Incident Detail Check"
description: "Checks IT incident in ServiceNow for DHL."
tags:
- it-service
- servicenow
- incident-management
capability:
exposes:
- type: mcp
namespace: snow-incident
port: 8080
tools:
- name: check-incident
description: "Check incident at DHL."
inputParameters:
- name: incident_number
in: body
type: string
description: "Incident number."
call: "servicenow.get-incident"
with:
number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result.state"
- name: priority
type: string
mapping: "$.result.priority"
consumes:
- type: http
namespace: servicenow
baseUri: "https://dhl.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: get-incident
method: GET
Retrieves SharePoint metadata at DHL.
naftiko: "0.5"
info:
label: "SharePoint File Metadata"
description: "Retrieves SharePoint metadata at DHL."
tags:
- document-management
- sharepoint
- collaboration
capability:
exposes:
- type: mcp
namespace: sp-docs
port: 8080
tools:
- name: get-file
description: "Look up file at DHL."
inputParameters:
- name: site_id
in: body
type: string
description: "Site ID."
- name: file_path
in: body
type: string
description: "Path."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
path: "{{file_path}}"
outputParameters:
- name: name
type: string
mapping: "$.name"
- name: size
type: number
mapping: "$.size"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: files
path: "/sites/{{site_id}}/drive/root:/{{path}}"
inputParameters:
- name: site_id
in: path
- name: path
in: path
operations:
- name: get-file
method: GET
Analyzes current shipment data and weather conditions to predict potential delivery delays, triggering proactive customer notifications when delays are likely.
naftiko: "0.5"
info:
label: "Shipment Delay Predictor"
description: "Analyzes current shipment data and weather conditions to predict potential delivery delays, triggering proactive customer notifications when delays are likely."
tags:
- logistics
- prediction
- tracking
- twilio
capability:
exposes:
- type: mcp
namespace: delay-prediction
port: 8080
tools:
- name: predict-delays
description: "Predict potential delivery delays and notify affected customers."
inputParameters:
- name: tracking_number
in: body
type: string
description: "The DHL tracking number."
- name: customer_phone
in: body
type: string
description: "Customer phone for proactive notification."
steps:
- name: get-shipment
type: call
call: "dhl-tracking.get-shipment"
with:
tracking_number: "{{tracking_number}}"
- name: notify-customer
type: call
call: "twilio.send-sms"
with:
to: "{{customer_phone}}"
body: "DHL notice: Your shipment {{tracking_number}} may experience a slight delay. Current status: {{get-shipment.status}} at {{get-shipment.current_location}}. Updated ETA: {{get-shipment.estimated_delivery}}."
consumes:
- type: http
namespace: dhl-tracking
baseUri: "https://api-eu.dhl.com/track"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: shipments
path: "/shipments"
operations:
- name: get-shipment
method: GET
- type: http
namespace: twilio
baseUri: "https://api.twilio.com/2010-04-01/Accounts/$secrets.twilio_account_sid"
authentication:
type: basic
username: "$secrets.twilio_account_sid"
password: "$secrets.twilio_auth_token"
resources:
- name: messages
path: "/Messages.json"
operations:
- name: send-sms
method: POST
Files a shipment insurance claim by retrieving shipment details from DHL, creating the claim in the insurance system, and notifying the claims team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Shipment Insurance Claim"
description: "Files a shipment insurance claim by retrieving shipment details from DHL, creating the claim in the insurance system, and notifying the claims team via Microsoft Teams."
tags:
- shipping
- insurance
- dhl-express
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: insurance-claims
port: 8080
tools:
- name: file-insurance-claim
description: "File an insurance claim for a damaged or lost shipment."
inputParameters:
- name: tracking_number
in: body
type: string
description: "The DHL shipment tracking number."
- name: claim_type
in: body
type: string
description: "Claim type (damage, loss, shortage)."
- name: claim_amount
in: body
type: number
description: "Claimed amount in USD."
- name: description
in: body
type: string
description: "Description of the claim."
steps:
- name: get-shipment
type: call
call: "dhl-tracking.get-shipment"
with:
tracking_number: "{{tracking_number}}"
- name: file-claim
type: call
call: "dhl-claims.create-claim"
with:
tracking_number: "{{tracking_number}}"
type: "{{claim_type}}"
amount: "{{claim_amount}}"
description: "{{description}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "claims-processing"
text: "New insurance claim filed: {{file-claim.claim_number}}. Tracking: {{tracking_number}}. Type: {{claim_type}}. Amount: ${{claim_amount}}."
consumes:
- type: http
namespace: dhl-tracking
baseUri: "https://api-eu.dhl.com/track"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: shipments
path: "/shipments"
operations:
- name: get-shipment
method: GET
- type: http
namespace: dhl-claims
baseUri: "https://api.dhl.com/claims/v1"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: claims
path: "/claims"
operations:
- name: create-claim
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Queries the DHL Shipment Tracking API for a given tracking number, returning current status, location, estimated delivery date, and event history.
naftiko: "0.5"
info:
label: "Shipment Tracking Lookup"
description: "Queries the DHL Shipment Tracking API for a given tracking number, returning current status, location, estimated delivery date, and event history."
tags:
- shipping
- tracking
- dhl-express
capability:
exposes:
- type: mcp
namespace: shipment-tracking
port: 8080
tools:
- name: track-shipment
description: "Track a DHL shipment by tracking number."
inputParameters:
- name: tracking_number
in: body
type: string
description: "The DHL shipment tracking number."
call: "dhl-tracking.get-shipment"
with:
tracking_number: "{{tracking_number}}"
consumes:
- type: http
namespace: dhl-tracking
baseUri: "https://api-eu.dhl.com/track"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: shipments
path: "/shipments"
inputParameters:
- name: tracking_number
in: query
operations:
- name: get-shipment
method: GET
Generates a shipment volume report for a date range, pulling data from DHL billing and pushing the summary to Power BI for dashboard visualization.
naftiko: "0.5"
info:
label: "Shipment Volume Report"
description: "Generates a shipment volume report for a date range, pulling data from DHL billing and pushing the summary to Power BI for dashboard visualization."
tags:
- reporting
- analytics
- dhl-express
- power-bi
capability:
exposes:
- type: mcp
namespace: volume-reporting
port: 8080
tools:
- name: generate-volume-report
description: "Generate a shipment volume report and push to Power BI."
inputParameters:
- name: start_date
in: body
type: string
description: "Report start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "Report end date in YYYY-MM-DD format."
- name: account_number
in: body
type: string
description: "The DHL account number."
steps:
- name: get-volume-data
type: call
call: "dhl-billing.get-volume-summary"
with:
start: "{{start_date}}"
end: "{{end_date}}"
account: "{{account_number}}"
- name: push-to-powerbi
type: call
call: "powerbi.push-rows"
with:
dataset_id: "$secrets.powerbi_dataset_id"
table_name: "ShipmentVolume"
rows: "{{get-volume-data.daily_summary}}"
consumes:
- type: http
namespace: dhl-billing
baseUri: "https://api.dhl.com/billing/v1"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: volume
path: "/volume-summary"
operations:
- name: get-volume-summary
method: GET
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/tables/{{table_name}}/rows"
inputParameters:
- name: dataset_id
in: path
- name: table_name
in: path
operations:
- name: push-rows
method: POST
Generates a DHL Express shipping label for a package, returning the label PDF URL, tracking number, and barcode data.
naftiko: "0.5"
info:
label: "Shipping Label Generator"
description: "Generates a DHL Express shipping label for a package, returning the label PDF URL, tracking number, and barcode data."
tags:
- shipping
- labels
- dhl-express
capability:
exposes:
- type: mcp
namespace: label-generation
port: 8080
tools:
- name: create-shipping-label
description: "Generate a DHL Express shipping label for a package."
inputParameters:
- name: shipper_address
in: body
type: string
description: "JSON object with shipper address details."
- name: recipient_address
in: body
type: string
description: "JSON object with recipient address details."
- name: weight_kg
in: body
type: number
description: "Package weight in kilograms."
- name: service_type
in: body
type: string
description: "DHL service type code (e.g., P for Express Worldwide)."
call: "dhl-express.create-shipment"
with:
shipper: "{{shipper_address}}"
recipient: "{{recipient_address}}"
weight: "{{weight_kg}}"
product_code: "{{service_type}}"
consumes:
- type: http
namespace: dhl-express
baseUri: "https://api-eu.dhl.com/express"
authentication:
type: basic
username: "$secrets.dhl_express_user"
password: "$secrets.dhl_express_password"
resources:
- name: shipments
path: "/shipments"
operations:
- name: create-shipment
method: POST
Calculates shipping rates for a package using the DHL Rate Quote API based on origin, destination, weight, and dimensions.
naftiko: "0.5"
info:
label: "Shipping Rate Calculator"
description: "Calculates shipping rates for a package using the DHL Rate Quote API based on origin, destination, weight, and dimensions."
tags:
- shipping
- pricing
- dhl-express
capability:
exposes:
- type: mcp
namespace: rate-calculator
port: 8080
tools:
- name: get-shipping-rate
description: "Calculate shipping rates for a package."
inputParameters:
- name: origin_country
in: body
type: string
description: "Origin country ISO code."
- name: destination_country
in: body
type: string
description: "Destination country ISO code."
- name: weight_kg
in: body
type: number
description: "Package weight in kilograms."
- name: length_cm
in: body
type: number
description: "Package length in centimeters."
- name: width_cm
in: body
type: number
description: "Package width in centimeters."
- name: height_cm
in: body
type: number
description: "Package height in centimeters."
call: "dhl-express.get-rates"
with:
origin: "{{origin_country}}"
destination: "{{destination_country}}"
weight: "{{weight_kg}}"
dimensions: "{{length_cm}}x{{width_cm}}x{{height_cm}}"
consumes:
- type: http
namespace: dhl-express
baseUri: "https://api-eu.dhl.com/express"
authentication:
type: basic
username: "$secrets.dhl_express_user"
password: "$secrets.dhl_express_password"
resources:
- name: rates
path: "/rates"
operations:
- name: get-rates
method: POST
Monitors SLAs at DHL via Datadog and Slack.
naftiko: "0.5"
info:
label: "SLA Monitoring Pipeline"
description: "Monitors SLAs at DHL via Datadog and Slack."
tags:
- operations
- sla
- datadog
- slack
capability:
exposes:
- type: mcp
namespace: sla-monitor
port: 8080
tools:
- name: check-sla
description: "Monitor SLAs at DHL."
inputParameters:
- name: service
in: body
type: string
description: "Service."
- name: target
in: body
type: number
description: "SLA target %."
steps:
- name: metrics
type: call
call: "datadog.get-sla"
with:
service: "{{service}}"
- name: check
type: call
call: "analytics.check-sla"
with:
uptime: "{{metrics.uptime}}"
target: "{{target}}"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#ops"
text: "SLA: {{service}} at {{metrics.uptime}}% (target: {{target}}%)"
- name: log
type: call
call: "servicenow.create-incident"
with:
desc: "SLA breach: {{service}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/metrics"
operations:
- name: get-sla
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: servicenow
baseUri: "https://dhl.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
Monitors shipment delivery SLA performance by comparing actual delivery times against committed timelines and generating compliance reports.
naftiko: "0.5"
info:
label: "SLA Performance Monitor"
description: "Monitors shipment delivery SLA performance by comparing actual delivery times against committed timelines and generating compliance reports."
tags:
- logistics
- performance
- sla
capability:
exposes:
- type: mcp
namespace: sla-monitoring
port: 8080
tools:
- name: check-sla-performance
description: "Monitor delivery SLA performance for an account."
inputParameters:
- name: account_number
in: body
type: string
description: "The DHL account number."
- name: month
in: body
type: string
description: "Report month in YYYY-MM format."
call: "dhl-billing.get-sla-report"
with:
account: "{{account_number}}"
month: "{{month}}"
consumes:
- type: http
namespace: dhl-billing
baseUri: "https://api.dhl.com/billing/v1"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: sla-reports
path: "/sla-performance"
operations:
- name: get-sla-report
method: GET
Checks Snowflake warehouse usage at DHL.
naftiko: "0.5"
info:
label: "Snowflake Warehouse Usage"
description: "Checks Snowflake warehouse usage at DHL."
tags:
- data
- snowflake
- analytics
capability:
exposes:
- type: mcp
namespace: sf-usage
port: 8080
tools:
- name: check-warehouse
description: "Check warehouse at DHL."
inputParameters:
- name: warehouse
in: body
type: string
description: "Warehouse."
call: "snowflake.get-usage"
with:
warehouse: "{{warehouse}}"
outputParameters:
- name: credits
type: number
mapping: "$.data.credits_used"
consumes:
- type: http
namespace: snowflake
baseUri: "https://dhl.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: warehouses
path: "/statements"
operations:
- name: get-usage
method: GET
Checks code quality at DHL.
naftiko: "0.5"
info:
label: "SonarQube Quality Check"
description: "Checks code quality at DHL."
tags:
- code-quality
- sonarqube
- devops
capability:
exposes:
- type: mcp
namespace: sq
port: 8080
tools:
- name: check-quality
description: "Check quality at DHL."
inputParameters:
- name: project
in: body
type: string
description: "Project key."
call: "sonarqube.get-measures"
with:
project: "{{project}}"
outputParameters:
- name: bugs
type: number
mapping: "$.component.measures[0].value"
consumes:
- type: http
namespace: sonarqube
baseUri: "https://sonarqube.dhl.com/api"
authentication:
type: bearer
token: "$secrets.sonarqube_token"
resources:
- name: measures
path: "/measures/component"
operations:
- name: get-measures
method: GET
Searches Splunk at DHL.
naftiko: "0.5"
info:
label: "Splunk Log Search"
description: "Searches Splunk at DHL."
tags:
- security
- splunk
- logging
capability:
exposes:
- type: mcp
namespace: splunk-search
port: 8080
tools:
- name: search-logs
description: "Search logs at DHL."
inputParameters:
- name: query
in: body
type: string
description: "SPL query."
call: "splunk.search"
with:
query: "{{query}}"
outputParameters:
- name: count
type: number
mapping: "$.results.count"
consumes:
- type: http
namespace: splunk
baseUri: "https://splunk.dhl.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search
path: "/search/jobs"
operations:
- name: search
method: POST
Calculates the carbon footprint for shipments over a period using DHL's GoGreen API and generates a sustainability report for stakeholders.
naftiko: "0.5"
info:
label: "Sustainability Carbon Footprint Report"
description: "Calculates the carbon footprint for shipments over a period using DHL's GoGreen API and generates a sustainability report for stakeholders."
tags:
- sustainability
- reporting
- logistics
capability:
exposes:
- type: mcp
namespace: carbon-footprint
port: 8080
tools:
- name: get-carbon-report
description: "Calculate carbon footprint for shipments over a date range."
inputParameters:
- name: account_number
in: body
type: string
description: "The DHL account number."
- name: start_date
in: body
type: string
description: "Report start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "Report end date in YYYY-MM-DD format."
call: "dhl-gogreen.get-emissions"
with:
account: "{{account_number}}"
start: "{{start_date}}"
end: "{{end_date}}"
consumes:
- type: http
namespace: dhl-gogreen
baseUri: "https://api.dhl.com/gogreen/v1"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: emissions
path: "/emissions"
operations:
- name: get-emissions
method: GET
Retrieves Teams activity at DHL.
naftiko: "0.5"
info:
label: "Teams Channel Activity"
description: "Retrieves Teams activity at DHL."
tags:
- communications
- microsoft-teams
- analytics
capability:
exposes:
- type: mcp
namespace: teams-activity
port: 8080
tools:
- name: get-activity
description: "Check Teams activity at DHL."
inputParameters:
- name: team_id
in: body
type: string
description: "Team ID."
- name: channel_id
in: body
type: string
description: "Channel ID."
call: "teams.get-messages"
with:
team_id: "{{team_id}}"
channel_id: "{{channel_id}}"
outputParameters:
- name: count
type: number
mapping: "$.value.length"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: get-messages
method: GET
Checks Terraform workspace at DHL.
naftiko: "0.5"
info:
label: "Terraform Workspace Check"
description: "Checks Terraform workspace at DHL."
tags:
- infrastructure
- terraform
- iac
capability:
exposes:
- type: mcp
namespace: tf-ws
port: 8080
tools:
- name: check-ws
description: "Check workspace at DHL."
inputParameters:
- name: workspace_id
in: body
type: string
description: "Workspace ID."
call: "terraform.get-ws"
with:
workspace_id: "{{workspace_id}}"
outputParameters:
- name: name
type: string
mapping: "$.data.attributes.name"
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_token"
resources:
- name: workspaces
path: "/workspaces/{{workspace_id}}"
inputParameters:
- name: workspace_id
in: path
operations:
- name: get-ws
method: GET
Estimates transit times between origin and destination for different DHL service levels, returning expected delivery dates for each option.
naftiko: "0.5"
info:
label: "Transit Time Estimator"
description: "Estimates transit times between origin and destination for different DHL service levels, returning expected delivery dates for each option."
tags:
- shipping
- logistics
- dhl-express
capability:
exposes:
- type: mcp
namespace: transit-times
port: 8080
tools:
- name: estimate-transit-time
description: "Estimate transit times between origin and destination."
inputParameters:
- name: origin_country
in: body
type: string
description: "Origin country ISO code."
- name: origin_city
in: body
type: string
description: "Origin city name."
- name: destination_country
in: body
type: string
description: "Destination country ISO code."
- name: destination_city
in: body
type: string
description: "Destination city name."
- name: ship_date
in: body
type: string
description: "Ship date in YYYY-MM-DD format."
call: "dhl-express.get-transit-time"
with:
origin_country: "{{origin_country}}"
origin_city: "{{origin_city}}"
dest_country: "{{destination_country}}"
dest_city: "{{destination_city}}"
date: "{{ship_date}}"
consumes:
- type: http
namespace: dhl-express
baseUri: "https://api-eu.dhl.com/express"
authentication:
type: basic
username: "$secrets.dhl_express_user"
password: "$secrets.dhl_express_password"
resources:
- name: transit-times
path: "/products"
operations:
- name: get-transit-time
method: GET
Checks Vault secret at DHL.
naftiko: "0.5"
info:
label: "Vault Secret Metadata"
description: "Checks Vault secret at DHL."
tags:
- security
- vault
- secrets-management
capability:
exposes:
- type: mcp
namespace: vault
port: 8080
tools:
- name: check-secret
description: "Check secret at DHL."
inputParameters:
- name: path
in: body
type: string
description: "Secret path."
call: "vault.get-metadata"
with:
path: "{{path}}"
outputParameters:
- name: version
type: number
mapping: "$.data.current_version"
consumes:
- type: http
namespace: vault
baseUri: "https://vault.dhl.com/v1"
authentication:
type: bearer
token: "$secrets.vault_token"
resources:
- name: secrets
path: "/secret/metadata/{{path}}"
inputParameters:
- name: path
in: path
operations:
- name: get-metadata
method: GET
Processes invoices at DHL via OCR, SAP matching, approval, and Oracle recording.
naftiko: "0.5"
info:
label: "Vendor Invoice Processing Pipeline"
description: "Processes invoices at DHL via OCR, SAP matching, approval, and Oracle recording."
tags:
- finance
- accounts-payable
- sap
- oracle
capability:
exposes:
- type: mcp
namespace: invoice-proc
port: 8080
tools:
- name: process-invoice
description: "Process invoices at DHL."
inputParameters:
- name: invoice_id
in: body
type: string
description: "Invoice ID."
- name: vendor_id
in: body
type: string
description: "Vendor ID."
steps:
- name: extract
type: call
call: "ocr.extract"
with:
doc: "{{invoice_id}}"
- name: match
type: call
call: "sap.match-po"
with:
vendor: "{{vendor_id}}"
amount: "{{extract.total}}"
- name: approve
type: call
call: "workflow.submit"
with:
invoice: "{{invoice_id}}"
- name: record
type: call
call: "oracle.create-payment"
with:
invoice: "{{invoice_id}}"
consumes:
- type: http
namespace: ocr
baseUri: "https://ocr.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.ocr_token"
resources:
- name: invoices
path: "/extract"
operations:
- name: extract
method: POST
- type: http
namespace: sap
baseUri: "https://sap.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: pos
path: "/match"
operations:
- name: match-po
method: POST
- type: http
namespace: workflow
baseUri: "https://workflow.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.workflow_token"
resources:
- name: approvals
path: "/submit"
operations:
- name: submit
method: POST
- type: http
namespace: oracle
baseUri: "https://oracle.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: payments
path: "/payments"
operations:
- name: create-payment
method: POST
Reviews vendors at DHL.
naftiko: "0.5"
info:
label: "Quarterly Vendor Review Pipeline"
description: "Reviews vendors at DHL."
tags:
- procurement
- vendor-management
- review
capability:
exposes:
- type: mcp
namespace: vendor-review
port: 8080
tools:
- name: review-vendor
description: "Review vendors at DHL."
inputParameters:
- name: vendor_id
in: body
type: string
description: "Vendor ID."
- name: quarter
in: body
type: string
description: "Quarter."
steps:
- name: perf
type: call
call: "procurement.get-metrics"
with:
vendor: "{{vendor_id}}"
q: "{{quarter}}"
- name: scorecard
type: call
call: "analytics.scorecard"
with:
data: "{{perf.data}}"
- name: invite
type: call
call: "email.send"
with:
to: "{{perf.contact}}"
subject: "QBR - {{quarter}}"
- name: schedule
type: call
call: "calendar.create-event"
with:
title: "QBR - {{perf.name}}"
consumes:
- type: http
namespace: procurement
baseUri: "https://procurement.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.procurement_token"
resources:
- name: vendors
path: "/vendors/{{vendor}}/metrics"
inputParameters:
- name: vendor
in: path
operations:
- name: get-metrics
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: scorecards
path: "/compute"
operations:
- name: scorecard
method: POST
- type: http
namespace: email
baseUri: "https://email.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
- type: http
namespace: calendar
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: events
path: "/users/proc/events"
operations:
- name: create-event
method: POST
Initiates a warehouse cycle count in DHL WMS for a specified zone, generating count tasks and reporting results to SAP for inventory adjustment.
naftiko: "0.5"
info:
label: "Warehouse Cycle Count"
description: "Initiates a warehouse cycle count in DHL WMS for a specified zone, generating count tasks and reporting results to SAP for inventory adjustment."
tags:
- warehouse
- inventory
- dhl-supply-chain
- sap
capability:
exposes:
- type: mcp
namespace: cycle-count
port: 8080
tools:
- name: initiate-cycle-count
description: "Initiate a warehouse cycle count and sync results to SAP."
inputParameters:
- name: warehouse_id
in: body
type: string
description: "The DHL warehouse identifier."
- name: zone
in: body
type: string
description: "The warehouse zone to count."
steps:
- name: start-count
type: call
call: "dhl-wms.create-cycle-count"
with:
warehouse_id: "{{warehouse_id}}"
zone: "{{zone}}"
- name: sync-to-sap
type: call
call: "sap.post-inventory-count"
with:
plant: "{{warehouse_id}}"
count_document: "{{start-count.count_id}}"
items: "{{start-count.counted_items}}"
consumes:
- type: http
namespace: dhl-wms
baseUri: "https://api.dhl.com/supplychain/wms/v1"
authentication:
type: bearer
token: "$secrets.dhl_wms_token"
resources:
- name: cycle-counts
path: "/cycle-counts"
operations:
- name: create-cycle-count
method: POST
- type: http
namespace: sap
baseUri: "https://dhl-s4.sap.com/sap/opu/odata/sap/API_PHYSICAL_INVENTORY_DOC_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: inventory-counts
path: "/A_PhysInventoryDocHeader"
operations:
- name: post-inventory-count
method: POST
Records an inbound goods receipt at a DHL Supply Chain warehouse, updating inventory counts and notifying the warehouse team.
naftiko: "0.5"
info:
label: "Warehouse Inbound Receipt"
description: "Records an inbound goods receipt at a DHL Supply Chain warehouse, updating inventory counts and notifying the warehouse team."
tags:
- warehouse
- receiving
- dhl-supply-chain
capability:
exposes:
- type: mcp
namespace: warehouse-receiving
port: 8080
tools:
- name: record-inbound-receipt
description: "Record an inbound goods receipt at a warehouse."
inputParameters:
- name: warehouse_id
in: body
type: string
description: "The DHL warehouse identifier."
- name: po_number
in: body
type: string
description: "The purchase order number."
- name: sku
in: body
type: string
description: "The product SKU."
- name: quantity
in: body
type: number
description: "Quantity received."
call: "dhl-wms.create-receipt"
with:
warehouse_id: "{{warehouse_id}}"
po_number: "{{po_number}}"
sku: "{{sku}}"
quantity: "{{quantity}}"
consumes:
- type: http
namespace: dhl-wms
baseUri: "https://api.dhl.com/supplychain/wms/v1"
authentication:
type: bearer
token: "$secrets.dhl_wms_token"
resources:
- name: receipts
path: "/receipts"
operations:
- name: create-receipt
method: POST
Queries the DHL Supply Chain warehouse management system for current stock levels of a specific SKU across warehouse locations.
naftiko: "0.5"
info:
label: "Warehouse Inventory Check"
description: "Queries the DHL Supply Chain warehouse management system for current stock levels of a specific SKU across warehouse locations."
tags:
- warehouse
- inventory
- dhl-supply-chain
capability:
exposes:
- type: mcp
namespace: warehouse-inventory
port: 8080
tools:
- name: check-warehouse-stock
description: "Check warehouse stock levels for a SKU across DHL facilities."
inputParameters:
- name: sku
in: body
type: string
description: "The product SKU."
- name: warehouse_id
in: body
type: string
description: "Optional warehouse identifier. Leave empty for all locations."
call: "dhl-wms.get-inventory"
with:
sku: "{{sku}}"
warehouse: "{{warehouse_id}}"
consumes:
- type: http
namespace: dhl-wms
baseUri: "https://api.dhl.com/supplychain/wms/v1"
authentication:
type: bearer
token: "$secrets.dhl_wms_token"
resources:
- name: inventory
path: "/inventory"
operations:
- name: get-inventory
method: GET
Creates a warehouse outbound order in DHL WMS from an SAP delivery note, triggering pick-pack-ship operations.
naftiko: "0.5"
info:
label: "Warehouse Outbound Order Creator"
description: "Creates a warehouse outbound order in DHL WMS from an SAP delivery note, triggering pick-pack-ship operations."
tags:
- warehouse
- fulfillment
- dhl-supply-chain
- sap
capability:
exposes:
- type: mcp
namespace: warehouse-outbound
port: 8080
tools:
- name: create-outbound-order
description: "Create a warehouse outbound order from an SAP delivery note."
inputParameters:
- name: delivery_note_id
in: body
type: string
description: "The SAP delivery note identifier."
- name: warehouse_id
in: body
type: string
description: "The DHL warehouse identifier."
steps:
- name: get-delivery
type: call
call: "sap.get-delivery"
with:
delivery_id: "{{delivery_note_id}}"
- name: create-order
type: call
call: "dhl-wms.create-outbound"
with:
warehouse_id: "{{warehouse_id}}"
items: "{{get-delivery.line_items}}"
ship_to: "{{get-delivery.ship_to}}"
priority: "{{get-delivery.priority}}"
consumes:
- type: http
namespace: sap
baseUri: "https://dhl-s4.sap.com/sap/opu/odata/sap/API_OUTBOUND_DELIVERY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: deliveries
path: "/A_OutbDeliveryHeader('{{delivery_id}}')"
inputParameters:
- name: delivery_id
in: path
operations:
- name: get-delivery
method: GET
- type: http
namespace: dhl-wms
baseUri: "https://api.dhl.com/supplychain/wms/v1"
authentication:
type: bearer
token: "$secrets.dhl_wms_token"
resources:
- name: outbound-orders
path: "/outbound-orders"
operations:
- name: create-outbound
method: POST
Queries warehouse slot utilization data from DHL WMS, returning occupancy percentages by zone, available slots, and capacity forecasts.
naftiko: "0.5"
info:
label: "Warehouse Slot Utilization"
description: "Queries warehouse slot utilization data from DHL WMS, returning occupancy percentages by zone, available slots, and capacity forecasts."
tags:
- warehouse
- capacity
- dhl-supply-chain
capability:
exposes:
- type: mcp
namespace: warehouse-capacity
port: 8080
tools:
- name: get-slot-utilization
description: "Check warehouse slot utilization and capacity."
inputParameters:
- name: warehouse_id
in: body
type: string
description: "The DHL warehouse identifier."
call: "dhl-wms.get-utilization"
with:
warehouse_id: "{{warehouse_id}}"
consumes:
- type: http
namespace: dhl-wms
baseUri: "https://api.dhl.com/supplychain/wms/v1"
authentication:
type: bearer
token: "$secrets.dhl_wms_token"
resources:
- name: utilization
path: "/warehouses/{{warehouse_id}}/utilization"
inputParameters:
- name: warehouse_id
in: path
operations:
- name: get-utilization
method: GET
Retrieves employee profile from Workday for DHL.
naftiko: "0.5"
info:
label: "Workday Employee Profile Lookup"
description: "Retrieves employee profile from Workday for DHL."
tags:
- hr
- workday
- employee-directory
capability:
exposes:
- type: mcp
namespace: workday-profile
port: 8080
tools:
- name: get-employee-profile
description: "Look up DHL employee in Workday."
inputParameters:
- name: employee_id
in: body
type: string
description: "Employee ID."
call: "workday.get-worker"
with:
employee_id: "{{employee_id}}"
outputParameters:
- name: name
type: string
mapping: "$.worker.name"
- name: title
type: string
mapping: "$.worker.title"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5.dhl.com/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{employee_id}}"
inputParameters:
- name: employee_id
in: path
operations:
- name: get-worker
method: GET
Checks Zendesk ticket at DHL.
naftiko: "0.5"
info:
label: "Zendesk Ticket Check"
description: "Checks Zendesk ticket at DHL."
tags:
- support
- zendesk
- ticketing
capability:
exposes:
- type: mcp
namespace: zd-ticket
port: 8080
tools:
- name: check-ticket
description: "Check ticket at DHL."
inputParameters:
- name: ticket_id
in: body
type: string
description: "Ticket ID."
call: "zendesk.get-ticket"
with:
id: "{{ticket_id}}"
outputParameters:
- name: status
type: string
mapping: "$.ticket.status"
consumes:
- type: http
namespace: zendesk
baseUri: "https://dhl.com.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: tickets
path: "/tickets/{{id}}.json"
inputParameters:
- name: id
in: path
operations:
- name: get-ticket
method: GET
When a customer files a shipment complaint, retrieves the tracking details from DHL and creates a Zendesk support ticket with full shipment context.
naftiko: "0.5"
info:
label: "Zendesk Ticket from Shipment Complaint"
description: "When a customer files a shipment complaint, retrieves the tracking details from DHL and creates a Zendesk support ticket with full shipment context."
tags:
- customer-service
- shipping
- dhl-express
- zendesk
capability:
exposes:
- type: mcp
namespace: complaint-handling
port: 8080
tools:
- name: create-complaint-ticket
description: "Create a support ticket from a shipment complaint with tracking context."
inputParameters:
- name: tracking_number
in: body
type: string
description: "The DHL tracking number."
- name: customer_email
in: body
type: string
description: "Customer email address."
- name: complaint
in: body
type: string
description: "Customer complaint description."
steps:
- name: get-shipment
type: call
call: "dhl-tracking.get-shipment"
with:
tracking_number: "{{tracking_number}}"
- name: create-ticket
type: call
call: "zendesk.create-ticket"
with:
requester_email: "{{customer_email}}"
subject: "Shipment complaint: {{tracking_number}}"
description: "Customer complaint: {{complaint}}. Shipment status: {{get-shipment.status}}. Last location: {{get-shipment.current_location}}. Service: {{get-shipment.service_type}}."
priority: "high"
consumes:
- type: http
namespace: dhl-tracking
baseUri: "https://api-eu.dhl.com/track"
authentication:
type: bearer
token: "$secrets.dhl_api_key"
resources:
- name: shipments
path: "/shipments"
operations:
- name: get-shipment
method: GET
- type: http
namespace: zendesk
baseUri: "https://dhl.zendesk.com/api/v2"
authentication:
type: basic
username: "$secrets.zendesk_user"
password: "$secrets.zendesk_token"
resources:
- name: tickets
path: "/tickets"
operations:
- name: create-ticket
method: POST