DHL Capabilities

Naftiko 0.5 capability definitions for DHL - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

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