UPS Capabilities

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

Sort
Expand

Retrieves UPS Access Point network status and capacity.

naftiko: "0.5"
info:
  label: "Access Point Network Status"
  description: "Retrieves UPS Access Point network status and capacity."
  tags:
    - logistics
    - customer-service
    - delivery
capability:
  exposes:
    - type: mcp
      namespace: access-points
      port: 8080
      tools:
        - name: get-status
          description: "Get Access Point network status."
          inputParameters:
            - name: region
              in: body
              type: string
          call: "location-api.get-ap-status"
          with:
            region: "{{region}}"
          outputParameters:
            - name: total_points
              type: number
              mapping: "$.totalPoints"
            - name: active
              type: number
              mapping: "$.activePoints"
            - name: at_capacity
              type: number
              mapping: "$.atCapacity"
  consumes:
    - type: http
      namespace: location-api
      baseUri: "https://onlinetools.ups.com/api/locations/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: ap-status
          path: "/access-points/status"
          operations:
            - name: get-ap-status
              method: POST

Retrieves billing invoices for a UPS customer account.

naftiko: "0.5"
info:
  label: "Account Invoice Lookup"
  description: "Retrieves billing invoices for a UPS customer account."
  tags:
    - billing
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: billing
      port: 8080
      tools:
        - name: get-invoices
          description: "Get account invoices."
          inputParameters:
            - name: account
              in: body
              type: string
            - name: period
              in: body
              type: string
          call: "billing-api.get-invoices"
          with:
            account: "{{account}}"
            period: "{{period}}"
          outputParameters:
            - name: invoices
              type: array
              mapping: "$.invoices"
            - name: total_due
              type: number
              mapping: "$.totalDue"
  consumes:
    - type: http
      namespace: billing-api
      baseUri: "https://billing.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_billing_token"
      resources:
        - name: invoices
          path: "/accounts/{{account}}/invoices"
          inputParameters:
            - name: account
              in: path
          operations:
            - name: get-invoices
              method: GET

Validates delivery address for serviceability and accuracy.

naftiko: "0.5"
info:
  label: "Address Validation"
  description: "Validates delivery address for serviceability and accuracy."
  tags:
    - logistics
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: address
      port: 8080
      tools:
        - name: validate
          description: "Validate address."
          inputParameters:
            - name: street
              in: body
              type: string
            - name: city
              in: body
              type: string
            - name: state
              in: body
              type: string
            - name: zip
              in: body
              type: string
          call: "address-api.validate"
          with:
            street: "{{street}}"
            city: "{{city}}"
            state: "{{state}}"
            zip: "{{zip}}"
          outputParameters:
            - name: valid
              type: boolean
              mapping: "$.isValid"
            - name: residential
              type: boolean
              mapping: "$.isResidential"
  consumes:
    - type: http
      namespace: address-api
      baseUri: "https://onlinetools.ups.com/api/addressvalidation/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: validate
          path: "/validation"
          operations:
            - name: validate
              method: POST

Retrieves UPS Airlines inbound/outbound schedule at Worldport and regional hubs.

naftiko: "0.5"
info:
  label: "Air Cargo Schedule Lookup"
  description: "Retrieves UPS Airlines inbound/outbound schedule at Worldport and regional hubs."
  tags:
    - flight-operations
    - cargo
    - scheduling
capability:
  exposes:
    - type: mcp
      namespace: air-schedule
      port: 8080
      tools:
        - name: get-schedule
          description: "Get air cargo schedule."
          inputParameters:
            - name: hub
              in: body
              type: string
            - name: date
              in: body
              type: string
          call: "flight-api.get-schedule"
          with:
            hub: "{{hub}}"
            date: "{{date}}"
          outputParameters:
            - name: inbound
              type: array
              mapping: "$.inbound"
            - name: outbound
              type: array
              mapping: "$.outbound"
  consumes:
    - type: http
      namespace: flight-api
      baseUri: "https://flight-ops.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_flight_token"
      resources:
        - name: schedule
          path: "/hubs/{{hub}}/schedule"
          inputParameters:
            - name: hub
              in: path
          operations:
            - name: get-schedule
              method: GET

Retrieves UPS Airlines cargo flight status.

naftiko: "0.5"
info:
  label: "UPS Airlines Flight Status"
  description: "Retrieves UPS Airlines cargo flight status."
  tags:
    - flight-operations
    - cargo
    - tracking
capability:
  exposes:
    - type: mcp
      namespace: flights
      port: 8080
      tools:
        - name: get-flight
          description: "Get flight status."
          inputParameters:
            - name: flight_number
              in: body
              type: string
          call: "flight-api.get-status"
          with:
            flight: "{{flight_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: position
              type: string
              mapping: "$.position"
            - name: eta
              type: string
              mapping: "$.eta"
  consumes:
    - type: http
      namespace: flight-api
      baseUri: "https://flight-ops.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_flight_token"
      resources:
        - name: flights
          path: "/flights/{{flight}}/status"
          inputParameters:
            - name: flight
              in: path
          operations:
            - name: get-status
              method: GET

Initiates annual performance review cycles in Workday and notifies managers via Teams.

naftiko: "0.5"
info:
  title: Annual Performance Review Kickoff
  version: "1.0"
  description: Initiates annual performance review cycles in Workday and notifies managers via Teams.
  tags: [hr, performance-management, communication]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: kickoff_performance_review
        description: Starts performance review cycles in Workday and messages department managers.
        inputParameters:
          - name: department
            in: body
            required: true
            type: string
          - name: review_cycle
            in: body
            required: true
            type: string
        steps:
          - name: start-review-cycle
            call:
              operationId: initiatePerformanceReview
              input:
                department: "{{department}}"
                cycle: "{{review_cycle}}"
          - name: notify-managers
            call:
              operationId: sendTeamsMessage
              input:
                channelId: "{{department}}-managers"
                message: "Performance review cycle {{review_cycle}} is now open for {{department}}. Please complete evaluations by the deadline."
  consumes:
    - type: http
      baseUri: https://wd3-impl-services1.workday.com/ccx/service/ups
      authentication:
        type: bearer
        token: $secrets.workday_token
      resources:
        - path: /performanceReviews
          operations:
            - id: initiatePerformanceReview
              method: POST
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Reads open enrollment elections from Workday and syncs benefit selections to the benefits administration platform.

naftiko: "0.5"
info:
  title: Benefits Enrollment Sync
  version: "1.0"
  description: Reads open enrollment elections from Workday and syncs benefit selections to the benefits administration platform.
  tags: [hr, benefits, finance]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: sync_benefits_enrollment
        description: Fetches enrollment elections from Workday and pushes them to the benefits platform.
        inputParameters:
          - name: enrollment_period
            in: query
            required: true
            type: string
        steps:
          - name: get-elections
            call:
              operationId: getBenefitElections
              input:
                period: "{{enrollment_period}}"
          - name: sync-to-platform
            call:
              operationId: upsertBenefitEnrollments
              input:
                elections: "{{get-elections.elections}}"
                period: "{{enrollment_period}}"
  consumes:
    - type: http
      baseUri: https://wd3-impl-services1.workday.com/ccx/service/ups
      authentication:
        type: bearer
        token: $secrets.workday_token
      resources:
        - path: /benefits/elections
          operations:
            - id: getBenefitElections
              method: GET
    - type: http
      baseUri: https://api.benefitsplatform.com/v2
      authentication:
        type: bearer
        token: $secrets.benefits_platform_token
      resources:
        - path: /enrollments
          operations:
            - id: upsertBenefitEnrollments
              method: PUT

Checks customs brokerage clearance status for international shipments.

naftiko: "0.5"
info:
  label: "Customs Brokerage Status"
  description: "Checks customs brokerage clearance status for international shipments."
  tags:
    - customs
    - international
    - tracking
capability:
  exposes:
    - type: mcp
      namespace: brokerage
      port: 8080
      tools:
        - name: get-status
          description: "Get brokerage status."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
          call: "trade-api.get-brokerage"
          with:
            tracking: "{{tracking_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.clearanceStatus"
            - name: hold_reason
              type: string
              mapping: "$.holdReason"
  consumes:
    - type: http
      namespace: trade-api
      baseUri: "https://trade.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_trade_token"
      resources:
        - name: brokerage
          path: "/brokerage/{{tracking}}/status"
          inputParameters:
            - name: tracking
              in: path
          operations:
            - name: get-brokerage
              method: GET

Processes bulk shipment file uploads for enterprise customers.

naftiko: "0.5"
info:
  label: "Bulk Shipment Upload"
  description: "Processes bulk shipment file uploads for enterprise customers."
  tags:
    - logistics
    - customer-service
    - shipping
capability:
  exposes:
    - type: mcp
      namespace: bulk
      port: 8080
      tools:
        - name: upload
          description: "Process bulk upload."
          inputParameters:
            - name: account
              in: body
              type: string
            - name: file_ref
              in: body
              type: string
            - name: count
              in: body
              type: number
          call: "ship-api.bulk"
          with:
            account: "{{account}}"
            file: "{{file_ref}}"
            count: "{{count}}"
          outputParameters:
            - name: batch_id
              type: string
              mapping: "$.batchId"
            - name: processed
              type: number
              mapping: "$.processed"
            - name: errors
              type: number
              mapping: "$.errors"
  consumes:
    - type: http
      namespace: ship-api
      baseUri: "https://onlinetools.ups.com/api/shipments/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: bulk
          path: "/bulk/upload"
          operations:
            - name: bulk
              method: POST

Generates carbon emissions report for UPS carbon neutral shipping.

naftiko: "0.5"
info:
  label: "Carbon Neutral Report"
  description: "Generates carbon emissions report for UPS carbon neutral shipping."
  tags:
    - sustainability
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: carbon
      port: 8080
      tools:
        - name: get-carbon
          description: "Get carbon report."
          inputParameters:
            - name: account
              in: body
              type: string
            - name: period
              in: body
              type: string
          call: "analytics-api.get-carbon"
          with:
            account: "{{account}}"
            period: "{{period}}"
          outputParameters:
            - name: total_co2
              type: number
              mapping: "$.totalCO2Kg"
            - name: offsets
              type: number
              mapping: "$.offsetsPurchased"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://analytics.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_analytics_token"
      resources:
        - name: carbon
          path: "/sustainability/carbon"
          operations:
            - name: get-carbon
              method: POST

Generates cargo load plan for UPS Airlines aircraft.

naftiko: "0.5"
info:
  label: "Aircraft Cargo Load Plan"
  description: "Generates cargo load plan for UPS Airlines aircraft."
  tags:
    - cargo
    - flight-operations
    - logistics
capability:
  exposes:
    - type: mcp
      namespace: cargo-load
      port: 8080
      tools:
        - name: generate-plan
          description: "Generate load plan."
          inputParameters:
            - name: flight_number
              in: body
              type: string
            - name: aircraft_type
              in: body
              type: string
          call: "cargo-api.generate"
          with:
            flight: "{{flight_number}}"
            aircraft: "{{aircraft_type}}"
          outputParameters:
            - name: plan_id
              type: string
              mapping: "$.planId"
            - name: weight
              type: number
              mapping: "$.totalWeight"
  consumes:
    - type: http
      namespace: cargo-api
      baseUri: "https://cargo-ops.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_cargo_token"
      resources:
        - name: plans
          path: "/load-plans/generate"
          operations:
            - name: generate
              method: POST

Retrieves capacity and utilization metrics for a UPS distribution center.

naftiko: "0.5"
info:
  label: "Center Capacity Report"
  description: "Retrieves capacity and utilization metrics for a UPS distribution center."
  tags:
    - operations
    - analytics
    - capacity
capability:
  exposes:
    - type: mcp
      namespace: center-ops
      port: 8080
      tools:
        - name: get-capacity
          description: "Get center capacity."
          inputParameters:
            - name: center
              in: body
              type: string
            - name: date
              in: body
              type: string
          call: "ops-api.get-capacity"
          with:
            center: "{{center}}"
            date: "{{date}}"
          outputParameters:
            - name: capacity
              type: number
              mapping: "$.maxCapacity"
            - name: utilization
              type: number
              mapping: "$.utilization"
  consumes:
    - type: http
      namespace: ops-api
      baseUri: "https://operations.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_ops_token"
      resources:
        - name: capacity
          path: "/centers/{{center}}/capacity"
          inputParameters:
            - name: center
              in: path
          operations:
            - name: get-capacity
              method: GET

Detects a failed GitHub Actions workflow, creates a Jira bug, and posts a failure notification in Teams.

naftiko: "0.5"
info:
  title: CI/CD Pipeline Failure Alert
  version: "1.0"
  description: Detects a failed GitHub Actions workflow, creates a Jira bug, and posts a failure notification in Teams.
  tags: [devops, cicd, communication]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: handle_pipeline_failure
        description: Creates a Jira bug for a failed pipeline run and notifies the engineering team.
        inputParameters:
          - name: repo
            in: body
            required: true
            type: string
          - name: workflow_run_id
            in: body
            required: true
            type: string
        steps:
          - name: get-run-details
            call:
              operationId: getWorkflowRun
              input:
                repo: "{{repo}}"
                runId: "{{workflow_run_id}}"
          - name: create-jira-bug
            call:
              operationId: createJiraIssue
              input:
                project: ENG
                summary: "CI/CD failure in {{repo}}: {{get-run-details.workflow_name}}"
                issuetype: Bug
                priority: High
          - name: notify-team
            call:
              operationId: sendTeamsMessage
              input:
                channelId: engineering-alerts
                message: "Pipeline failure in {{repo}} — {{get-run-details.workflow_name}}. Jira: {{create-jira-bug.key}}."
  consumes:
    - type: http
      baseUri: https://api.github.com
      authentication:
        type: bearer
        token: $secrets.github_token
      resources:
        - path: /repos/UPS/{repo}/actions/runs/{runId}
          operations:
            - id: getWorkflowRun
              method: GET
    - type: http
      baseUri: https://ups.atlassian.net/rest/api/3
      authentication:
        type: basic
        username: $secrets.jira_user
        password: $secrets.jira_token
      resources:
        - path: /issue
          operations:
            - id: createJiraIssue
              method: POST
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Generates commercial invoices for international shipments.

naftiko: "0.5"
info:
  label: "Commercial Invoice Generation"
  description: "Generates commercial invoices for international shipments."
  tags:
    - customs
    - international
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: invoices
      port: 8080
      tools:
        - name: generate
          description: "Generate commercial invoice."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: value
              in: body
              type: number
            - name: commodity
              in: body
              type: string
          call: "trade-api.generate-invoice"
          with:
            tracking: "{{tracking_number}}"
            value: "{{value}}"
            commodity: "{{commodity}}"
          outputParameters:
            - name: invoice_id
              type: string
              mapping: "$.invoiceId"
            - name: doc_url
              type: string
              mapping: "$.docUrl"
  consumes:
    - type: http
      namespace: trade-api
      baseUri: "https://trade.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_trade_token"
      resources:
        - name: invoices
          path: "/documents/invoice"
          operations:
            - name: generate-invoice
              method: POST

Reports ULD/container utilization for air cargo ops.

naftiko: "0.5"
info:
  label: "Container Utilization Report"
  description: "Reports ULD/container utilization for air cargo ops."
  tags:
    - cargo
    - analytics
    - operations
capability:
  exposes:
    - type: mcp
      namespace: containers
      port: 8080
      tools:
        - name: get-util
          description: "Get container utilization."
          inputParameters:
            - name: hub
              in: body
              type: string
            - name: date
              in: body
              type: string
          call: "cargo-api.get-util"
          with:
            hub: "{{hub}}"
            date: "{{date}}"
          outputParameters:
            - name: total
              type: number
              mapping: "$.total"
            - name: utilization
              type: number
              mapping: "$.utilizationPct"
  consumes:
    - type: http
      namespace: cargo-api
      baseUri: "https://cargo-ops.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_cargo_token"
      resources:
        - name: containers
          path: "/containers/utilization"
          operations:
            - name: get-util
              method: POST

Retrieves UPS customer account details and preferences.

naftiko: "0.5"
info:
  label: "Customer Account Lookup"
  description: "Retrieves UPS customer account details and preferences."
  tags:
    - customer-service
    - account-management
capability:
  exposes:
    - type: mcp
      namespace: accounts
      port: 8080
      tools:
        - name: get-account
          description: "Look up account."
          inputParameters:
            - name: account
              in: body
              type: string
          call: "account-api.get"
          with:
            account: "{{account}}"
          outputParameters:
            - name: company
              type: string
              mapping: "$.company"
            - name: tier
              type: string
              mapping: "$.tier"
  consumes:
    - type: http
      namespace: account-api
      baseUri: "https://account.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_account_token"
      resources:
        - name: accounts
          path: "/accounts/{{account}}"
          inputParameters:
            - name: account
              in: path
          operations:
            - name: get
              method: GET

Processes damage/loss claims by investigating history, creating a Salesforce case, and initiating resolution.

naftiko: "0.5"
info:
  label: "Customer Claim Orchestrator"
  description: "Processes damage/loss claims by investigating history, creating a Salesforce case, and initiating resolution."
  tags:
    - customer-service
    - logistics
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: claims
      port: 8080
      tools:
        - name: process-claim
          description: "Process customer claim."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: claim_type
              in: body
              type: string
            - name: account
              in: body
              type: string
          steps:
            - name: get-history
              type: call
              call: "tracking-api.get-history"
              with:
                tracking: "{{tracking_number}}"
            - name: create-case
              type: call
              call: "salesforce.create-case"
              with:
                subject: "Claim: {{claim_type}} — {{tracking_number}}"
                account: "{{account}}"
                priority: "High"
            - name: investigate
              type: call
              call: "claims-api.investigate"
              with:
                tracking: "{{tracking_number}}"
                type: "{{claim_type}}"
  consumes:
    - type: http
      namespace: tracking-api
      baseUri: "https://onlinetools.ups.com/track/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: history
          path: "/details/{{tracking}}/history"
          inputParameters:
            - name: tracking
              in: path
          operations:
            - name: get-history
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://ups.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: cases
          path: "/sobjects/Case"
          operations:
            - name: create-case
              method: POST
    - type: http
      namespace: claims-api
      baseUri: "https://claims.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_claims_token"
      resources:
        - name: investigate
          path: "/investigate"
          operations:
            - name: investigate
              method: POST

Orchestrates international customs clearance with documentation generation, broker submission, and shipper notification.

naftiko: "0.5"
info:
  label: "Customs Clearance Orchestrator"
  description: "Orchestrates international customs clearance with documentation generation, broker submission, and shipper notification."
  tags:
    - logistics
    - customs
    - compliance
    - international
capability:
  exposes:
    - type: mcp
      namespace: customs
      port: 8080
      tools:
        - name: process-customs
          description: "Process customs clearance."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: destination_country
              in: body
              type: string
            - name: declared_value
              in: body
              type: number
          steps:
            - name: generate-docs
              type: call
              call: "trade-api.generate-docs"
              with:
                tracking: "{{tracking_number}}"
                country: "{{destination_country}}"
                value: "{{declared_value}}"
            - name: submit
              type: call
              call: "trade-api.submit-clearance"
              with:
                tracking: "{{tracking_number}}"
                docs: "{{generate-docs.doc_ids}}"
            - name: notify
              type: call
              call: "notification-api.send-email"
              with:
                tracking: "{{tracking_number}}"
                template: "customs_submitted"
  consumes:
    - type: http
      namespace: trade-api
      baseUri: "https://trade.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_trade_token"
      resources:
        - name: docs
          path: "/customs/documents"
          operations:
            - name: generate-docs
              method: POST
        - name: clearance
          path: "/customs/clearance"
          operations:
            - name: submit-clearance
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://notifications.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_notification_token"
      resources:
        - name: email
          path: "/email/send"
          operations:
            - name: send-email
              method: POST

Processes damaged package reports with incident creation, customer notification, and claim initiation.

naftiko: "0.5"
info:
  label: "Damaged Package Orchestrator"
  description: "Processes damaged package reports with incident creation, customer notification, and claim initiation."
  tags:
    - customer-service
    - logistics
    - servicenow
    - notifications
capability:
  exposes:
    - type: mcp
      namespace: damage
      port: 8080
      tools:
        - name: process-damage
          description: "Process damaged package."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: description
              in: body
              type: string
            - name: center
              in: body
              type: string
          steps:
            - name: incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Damaged: {{tracking_number}} at {{center}}"
                priority: "2"
            - name: notify
              type: call
              call: "notification-api.send-email"
              with:
                tracking: "{{tracking_number}}"
                template: "package_damaged"
            - name: claim
              type: call
              call: "claims-api.create"
              with:
                tracking: "{{tracking_number}}"
                type: "damage"
                description: "{{description}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://ups.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: notification-api
      baseUri: "https://notifications.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_notification_token"
      resources:
        - name: email
          path: "/email/send"
          operations:
            - name: send-email
              method: POST
    - type: http
      namespace: claims-api
      baseUri: "https://claims.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_claims_token"
      resources:
        - name: claims
          path: "/claims"
          operations:
            - name: create
              method: POST

Generates a dangerous goods shipper's declaration.

naftiko: "0.5"
info:
  label: "Dangerous Goods Declaration"
  description: "Generates a dangerous goods shipper's declaration."
  tags:
    - compliance
    - safety
    - cargo
capability:
  exposes:
    - type: mcp
      namespace: dg
      port: 8080
      tools:
        - name: generate
          description: "Generate DG declaration."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: un_number
              in: body
              type: string
          call: "compliance-api.generate-dg"
          with:
            tracking: "{{tracking_number}}"
            un: "{{un_number}}"
          outputParameters:
            - name: declaration_id
              type: string
              mapping: "$.declarationId"
            - name: doc_url
              type: string
              mapping: "$.docUrl"
  consumes:
    - type: http
      namespace: compliance-api
      baseUri: "https://compliance.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_compliance_token"
      resources:
        - name: dg
          path: "/dangerous-goods/declaration"
          operations:
            - name: generate-dg
              method: POST

Checks SLO error budget burn rates in Datadog and triggers a PagerDuty alert when thresholds are breached.

naftiko: "0.5"
info:
  title: Datadog SLO Compliance Monitor
  version: "1.0"
  description: Checks SLO error budget burn rates in Datadog and triggers a PagerDuty alert when thresholds are breached.
  tags: [observability, reliability, devops]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: check_slo_compliance
        description: Reads SLO burn rate and pages on-call if the error budget is critically consumed.
        inputParameters:
          - name: slo_id
            in: query
            required: true
            type: string
        steps:
          - name: get-slo-status
            call:
              operationId: getSloStatus
              input:
                sloId: "{{slo_id}}"
          - name: page-oncall
            call:
              operationId: createPagerDutyIncident
              input:
                title: "SLO breach: {{get-slo-status.name}} error budget at {{get-slo-status.remaining_budget_pct}}%"
                severity: critical
                serviceId: $secrets.pd_slo_service_id
  consumes:
    - type: http
      baseUri: https://api.datadoghq.com/api/v1
      authentication:
        type: apikey
        name: DD-API-KEY
        in: header
        key: $secrets.datadog_api_key
      resources:
        - path: /slo/{sloId}
          operations:
            - id: getSloStatus
              method: GET
    - type: http
      baseUri: https://api.pagerduty.com
      authentication:
        type: bearer
        token: $secrets.pagerduty_token
      resources:
        - path: /incidents
          operations:
            - id: createPagerDutyIncident
              method: POST

Schedules a delivery appointment for commercial shipments.

naftiko: "0.5"
info:
  label: "Delivery Appointment Scheduling"
  description: "Schedules a delivery appointment for commercial shipments."
  tags:
    - logistics
    - delivery
    - scheduling
capability:
  exposes:
    - type: mcp
      namespace: appointments
      port: 8080
      tools:
        - name: schedule
          description: "Schedule delivery appointment."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: date
              in: body
              type: string
            - name: window
              in: body
              type: string
          call: "delivery-api.schedule"
          with:
            tracking: "{{tracking_number}}"
            date: "{{date}}"
            window: "{{window}}"
          outputParameters:
            - name: appointment_id
              type: string
              mapping: "$.appointmentId"
            - name: confirmed
              type: string
              mapping: "$.confirmedWindow"
  consumes:
    - type: http
      namespace: delivery-api
      baseUri: "https://delivery.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_delivery_token"
      resources:
        - name: appointments
          path: "/appointments/schedule"
          operations:
            - name: schedule
              method: POST

Analyzes delivery density for route planning.

naftiko: "0.5"
info:
  label: "Delivery Density Analysis"
  description: "Analyzes delivery density for route planning."
  tags:
    - analytics
    - delivery
    - route-optimization
capability:
  exposes:
    - type: mcp
      namespace: density
      port: 8080
      tools:
        - name: analyze
          description: "Analyze delivery density."
          inputParameters:
            - name: center
              in: body
              type: string
            - name: zip
              in: body
              type: string
          call: "analytics-api.get-density"
          with:
            center: "{{center}}"
            zip: "{{zip}}"
          outputParameters:
            - name: stops_per_mile
              type: number
              mapping: "$.stopsPerMile"
            - name: pkgs_per_stop
              type: number
              mapping: "$.avgPkgsPerStop"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://analytics.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_analytics_token"
      resources:
        - name: density
          path: "/delivery/density"
          operations:
            - name: get-density
              method: POST

Processes delivery exceptions by creating ServiceNow incidents, notifying customers, and escalating to stations.

naftiko: "0.5"
info:
  label: "Delivery Exception Orchestrator"
  description: "Processes delivery exceptions by creating ServiceNow incidents, notifying customers, and escalating to stations."
  tags:
    - logistics
    - customer-service
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: exceptions
      port: 8080
      tools:
        - name: handle-exception
          description: "Process delivery exception."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: exception_type
              in: body
              type: string
            - name: center
              in: body
              type: string
          steps:
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Exception: {{exception_type}} — {{tracking_number}}"
                priority: "2"
            - name: notify-customer
              type: call
              call: "notification-api.send-sms"
              with:
                tracking: "{{tracking_number}}"
                template: "delivery_exception"
            - name: escalate
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "{{center_channel}}"
                text: "Exception: {{exception_type}} for {{tracking_number}} at {{center}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://ups.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: notification-api
      baseUri: "https://notifications.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_notification_token"
      resources:
        - name: sms
          path: "/sms/send"
          operations:
            - name: send-sms
              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/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Updates delivery instructions for an in-transit package.

naftiko: "0.5"
info:
  label: "Delivery Instructions Update"
  description: "Updates delivery instructions for an in-transit package."
  tags:
    - delivery
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: instructions
      port: 8080
      tools:
        - name: update
          description: "Update delivery instructions."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: instructions
              in: body
              type: string
          call: "delivery-api.update-instructions"
          with:
            tracking: "{{tracking_number}}"
            instructions: "{{instructions}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: delivery-api
      baseUri: "https://delivery.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_delivery_token"
      resources:
        - name: instructions
          path: "/packages/instructions"
          operations:
            - name: update-instructions
              method: PUT

Queries operational data for late deliveries and posts a delay summary to the Operations Teams channel.

naftiko: "0.5"
info:
  title: Delivery Network Delay Reporting
  version: "1.0"
  description: Queries operational data for late deliveries and posts a delay summary to the Operations Teams channel.
  tags: [logistics, operations, supply-chain, communication]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: report_delivery_delays
        description: Fetches delayed delivery count by region and posts a summary alert.
        inputParameters:
          - name: region
            in: query
            required: true
            type: string
          - name: date
            in: query
            required: true
            type: string
        steps:
          - name: get-delay-data
            call:
              operationId: getDelayedDeliveries
              input:
                region: "{{region}}"
                date: "{{date}}"
          - name: post-alert
            call:
              operationId: sendTeamsMessage
              input:
                channelId: operations-alerts
                message: "Delivery delay report for {{region}} on {{date}}: {{get-delay-data.delayed_count}} delayed packages ({{get-delay-data.delay_pct}}% of volume)."
  consumes:
    - type: http
      baseUri: https://onlinetools.ups.com/shipping/v1
      authentication:
        type: bearer
        token: $secrets.ups_api_token
      resources:
        - path: /analytics/delays
          operations:
            - id: getDelayedDeliveries
              method: GET
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Sends proactive delivery window notifications to recipients.

naftiko: "0.5"
info:
  label: "Delivery Window Notification Orchestrator"
  description: "Sends proactive delivery window notifications to recipients."
  tags:
    - delivery
    - customer-service
    - notifications
capability:
  exposes:
    - type: mcp
      namespace: delivery-notify
      port: 8080
      tools:
        - name: send-notification
          description: "Send delivery notification."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
          steps:
            - name: get-eta
              type: call
              call: "delivery-api.get-eta"
              with:
                tracking: "{{tracking_number}}"
            - name: get-recipient
              type: call
              call: "tracking-api.get-recipient"
              with:
                tracking: "{{tracking_number}}"
            - name: send-sms
              type: call
              call: "notification-api.send-sms"
              with:
                phone: "{{get-recipient.phone}}"
                message: "Your UPS package {{tracking_number}} arrives today {{get-eta.window}}"
  consumes:
    - type: http
      namespace: delivery-api
      baseUri: "https://delivery.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_delivery_token"
      resources:
        - name: eta
          path: "/packages/{{tracking}}/eta"
          inputParameters:
            - name: tracking
              in: path
          operations:
            - name: get-eta
              method: GET
    - type: http
      namespace: tracking-api
      baseUri: "https://onlinetools.ups.com/track/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: recipient
          path: "/details/{{tracking}}/recipient"
          inputParameters:
            - name: tracking
              in: path
          operations:
            - name: get-recipient
              method: GET
    - type: http
      namespace: notification-api
      baseUri: "https://notifications.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_notification_token"
      resources:
        - name: sms
          path: "/sms/send"
          operations:
            - name: send-sms
              method: POST

Assigns dock doors for inbound/outbound trailers at UPS hubs.

naftiko: "0.5"
info:
  label: "Dock Door Assignment"
  description: "Assigns dock doors for inbound/outbound trailers at UPS hubs."
  tags:
    - operations
    - sorting
    - logistics
capability:
  exposes:
    - type: mcp
      namespace: dock
      port: 8080
      tools:
        - name: assign-door
          description: "Assign dock door."
          inputParameters:
            - name: facility
              in: body
              type: string
            - name: trailer_id
              in: body
              type: string
          call: "ops-api.assign-door"
          with:
            facility: "{{facility}}"
            trailer: "{{trailer_id}}"
          outputParameters:
            - name: door
              type: string
              mapping: "$.assignedDoor"
  consumes:
    - type: http
      namespace: ops-api
      baseUri: "https://operations.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_ops_token"
      resources:
        - name: dock
          path: "/facilities/{{facility}}/dock/assign"
          inputParameters:
            - name: facility
              in: path
          operations:
            - name: assign-door
              method: POST

Retrieves the status of a driver's DIAD handheld device.

naftiko: "0.5"
info:
  label: "Driver DIAD Status"
  description: "Retrieves the status of a driver's DIAD handheld device."
  tags:
    - technology
    - delivery
    - operations
capability:
  exposes:
    - type: mcp
      namespace: diad
      port: 8080
      tools:
        - name: get-diad-status
          description: "Get DIAD status."
          inputParameters:
            - name: driver_id
              in: body
              type: string
          call: "device-api.get-diad"
          with:
            driver: "{{driver_id}}"
          outputParameters:
            - name: device_id
              type: string
              mapping: "$.deviceId"
            - name: battery
              type: number
              mapping: "$.batteryPercent"
            - name: connected
              type: boolean
              mapping: "$.isConnected"
  consumes:
    - type: http
      namespace: device-api
      baseUri: "https://devices.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_device_token"
      resources:
        - name: diad
          path: "/drivers/{{driver}}/diad"
          inputParameters:
            - name: driver
              in: path
          operations:
            - name: get-diad
              method: GET

Retrieves a driver's route completion status.

naftiko: "0.5"
info:
  label: "Driver Route Completion Status"
  description: "Retrieves a driver's route completion status."
  tags:
    - delivery
    - tracking
    - operations
capability:
  exposes:
    - type: mcp
      namespace: route-status
      port: 8080
      tools:
        - name: get-route
          description: "Get route completion."
          inputParameters:
            - name: driver_id
              in: body
              type: string
            - name: date
              in: body
              type: string
          call: "dispatch-api.get-route"
          with:
            driver: "{{driver_id}}"
            date: "{{date}}"
          outputParameters:
            - name: completed
              type: number
              mapping: "$.completed"
            - name: remaining
              type: number
              mapping: "$.remaining"
            - name: est_done
              type: string
              mapping: "$.estCompletion"
  consumes:
    - type: http
      namespace: dispatch-api
      baseUri: "https://dispatch.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_dispatch_token"
      resources:
        - name: route
          path: "/drivers/{{driver}}/route"
          inputParameters:
            - name: driver
              in: path
          operations:
            - name: get-route
              method: GET

Logs a driver safety incident in ServiceNow and notifies the Safety and Compliance team via Teams.

naftiko: "0.5"
info:
  title: Driver Safety Incident Escalation
  version: "1.0"
  description: Logs a driver safety incident in ServiceNow and notifies the Safety and Compliance team via Teams.
  tags: [operations, safety, compliance, communication]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: escalate_safety_incident
        description: Creates a safety incident record in ServiceNow and alerts the Safety team.
        inputParameters:
          - name: driver_id
            in: body
            required: true
            type: string
          - name: incident_type
            in: body
            required: true
            type: string
          - name: location
            in: body
            required: true
            type: string
        steps:
          - name: create-safety-incident
            call:
              operationId: createIncident
              input:
                short_description: "Driver safety incident: {{incident_type}} — Driver {{driver_id}} at {{location}}"
                category: safety
                urgency: "1"
          - name: notify-safety-team
            call:
              operationId: sendTeamsMessage
              input:
                channelId: safety-compliance
                message: "Safety incident {{create-safety-incident.number}} reported for driver {{driver_id}}: {{incident_type}} at {{location}}."
  consumes:
    - type: http
      baseUri: https://ups.service-now.com/api/now/v1
      authentication:
        type: basic
        username: $secrets.snow_user
        password: $secrets.snow_password
      resources:
        - path: /table/incident
          operations:
            - id: createIncident
              method: POST
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Terminates employee access in Okta, updates Workday status to terminated, and creates a ServiceNow offboarding ticket.

naftiko: "0.5"
info:
  title: Employee Offboarding Workflow
  version: "1.0"
  description: Terminates employee access in Okta, updates Workday status to terminated, and creates a ServiceNow offboarding ticket.
  tags: [hr, offboarding, identity, itsm]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: offboard_employee
        description: Deactivates Okta account, sets Workday status to terminated, and creates an IT offboarding ticket.
        inputParameters:
          - name: employee_id
            in: body
            required: true
            type: string
          - name: termination_date
            in: body
            required: true
            type: string
        steps:
          - name: deactivate-okta
            call:
              operationId: deactivateOktaUser
              input:
                employeeId: "{{employee_id}}"
          - name: terminate-workday
            call:
              operationId: terminateWorker
              input:
                employeeId: "{{employee_id}}"
                terminationDate: "{{termination_date}}"
          - name: create-snow-ticket
            call:
              operationId: createIncident
              input:
                short_description: "Offboarding: revoke all system access for employee {{employee_id}}"
                category: hr
  consumes:
    - type: http
      baseUri: https://ups.okta.com/api/v1
      authentication:
        type: bearer
        token: $secrets.okta_token
      resources:
        - path: /users/{employeeId}/lifecycle/deactivate
          operations:
            - id: deactivateOktaUser
              method: POST
    - type: http
      baseUri: https://wd3-impl-services1.workday.com/ccx/service/ups
      authentication:
        type: bearer
        token: $secrets.workday_token
      resources:
        - path: /workers/{employeeId}/termination
          operations:
            - id: terminateWorker
              method: POST
    - type: http
      baseUri: https://ups.service-now.com/api/now/v1
      authentication:
        type: basic
        username: $secrets.snow_user
        password: $secrets.snow_password
      resources:
        - path: /table/incident
          operations:
            - id: createIncident
              method: POST

Provisions new UPS employees across HR, identity, and collaboration systems.

naftiko: "0.5"
info:
  title: Employee Onboarding Orchestrator
  version: "1.0"
  description: Provisions new UPS employees across HR, identity, and collaboration systems.
  tags: [hr, onboarding, identity]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: onboard_employee
        description: Creates employee record in Workday, provisions Okta identity, and posts a welcome message in Teams.
        inputParameters:
          - name: employee_id
            in: body
            required: true
            type: string
          - name: department
            in: body
            required: true
            type: string
        steps:
          - name: create-workday-record
            call:
              operationId: createWorker
              input:
                employeeId: "{{employee_id}}"
                department: "{{department}}"
          - name: provision-okta
            call:
              operationId: createOktaUser
              input:
                login: "{{create-workday-record.email}}"
                firstName: "{{create-workday-record.firstName}}"
                lastName: "{{create-workday-record.lastName}}"
          - name: send-teams-welcome
            call:
              operationId: sendTeamsMessage
              input:
                channelId: "{{department}}-general"
                message: "Welcome {{create-workday-record.firstName}} {{create-workday-record.lastName}} to UPS!"
  consumes:
    - type: http
      baseUri: https://wd3-impl-services1.workday.com/ccx/service/ups
      authentication:
        type: bearer
        token: $secrets.workday_token
      resources:
        - path: /workers
          operations:
            - id: createWorker
              method: POST
    - type: http
      baseUri: https://ups.okta.com/api/v1
      authentication:
        type: bearer
        token: $secrets.okta_token
      resources:
        - path: /users
          operations:
            - id: createOktaUser
              method: POST
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Looks up an enterprise shipping account in Salesforce CRM and enriches it with recent shipment volume data.

naftiko: "0.5"
info:
  title: Enterprise Customer Account Enrichment
  version: "1.0"
  description: Looks up an enterprise shipping account in Salesforce CRM and enriches it with recent shipment volume data.
  tags: [crm, sales, logistics]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: enrich_customer_account
        description: Retrieves and enriches a Salesforce account with recent shipment volume metrics.
        inputParameters:
          - name: account_id
            in: query
            required: true
            type: string
        steps:
          - name: lookup-sf-account
            call:
              operationId: getSalesforceAccount
              input:
                accountId: "{{account_id}}"
          - name: get-shipment-volume
            call:
              operationId: getAccountShipmentVolume
              input:
                accountNumber: "{{lookup-sf-account.account_number}}"
          - name: update-sf-account
            call:
              operationId: updateSalesforceAccount
              input:
                accountId: "{{account_id}}"
                monthlyVolume: "{{get-shipment-volume.monthly_packages}}"
                lastShipDate: "{{get-shipment-volume.last_ship_date}}"
  consumes:
    - type: http
      baseUri: https://ups.my.salesforce.com/services/data/v58.0
      authentication:
        type: bearer
        token: $secrets.salesforce_token
      resources:
        - path: /sobjects/Account/{accountId}
          operations:
            - id: getSalesforceAccount
              method: GET
            - id: updateSalesforceAccount
              method: PATCH
    - type: http
      baseUri: https://onlinetools.ups.com/shipping/v1
      authentication:
        type: bearer
        token: $secrets.ups_api_token
      resources:
        - path: /accounts/{accountNumber}/volume
          operations:
            - id: getAccountShipmentVolume
              method: GET

Monitors electric vehicle fleet charging and battery levels.

naftiko: "0.5"
info:
  label: "EV Fleet Charging Status"
  description: "Monitors electric vehicle fleet charging and battery levels."
  tags:
    - fleet-management
    - sustainability
    - monitoring
capability:
  exposes:
    - type: mcp
      namespace: ev
      port: 8080
      tools:
        - name: get-ev-status
          description: "Get EV fleet status."
          inputParameters:
            - name: center
              in: body
              type: string
          call: "fleet-api.get-ev"
          with:
            center: "{{center}}"
          outputParameters:
            - name: total_evs
              type: number
              mapping: "$.totalEVs"
            - name: charging
              type: number
              mapping: "$.charging"
            - name: avg_battery
              type: number
              mapping: "$.avgBattery"
  consumes:
    - type: http
      namespace: fleet-api
      baseUri: "https://fleet.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_fleet_token"
      resources:
        - name: ev
          path: "/centers/{{center}}/ev-status"
          inputParameters:
            - name: center
              in: path
          operations:
            - name: get-ev
              method: GET

Retrieves feeder truck schedule between centers and hubs.

naftiko: "0.5"
info:
  label: "Feeder Schedule Lookup"
  description: "Retrieves feeder truck schedule between centers and hubs."
  tags:
    - logistics
    - ground
    - scheduling
capability:
  exposes:
    - type: mcp
      namespace: feeder
      port: 8080
      tools:
        - name: get-schedule
          description: "Get feeder schedule."
          inputParameters:
            - name: origin_center
              in: body
              type: string
            - name: dest_hub
              in: body
              type: string
          call: "ops-api.get-feeder"
          with:
            origin: "{{origin_center}}"
            dest: "{{dest_hub}}"
          outputParameters:
            - name: schedules
              type: array
              mapping: "$.schedules"
            - name: next
              type: string
              mapping: "$.nextDeparture"
  consumes:
    - type: http
      namespace: ops-api
      baseUri: "https://operations.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_ops_token"
      resources:
        - name: feeder
          path: "/feeder/schedules"
          operations:
            - name: get-feeder
              method: POST

Detects AWS cloud cost spikes via Datadog, logs a ServiceNow task, and notifies the FinOps team in Teams.

naftiko: "0.5"
info:
  title: FinOps Cloud Cost Anomaly Responder
  version: "1.0"
  description: Detects AWS cloud cost spikes via Datadog, logs a ServiceNow task, and notifies the FinOps team in Teams.
  tags: [finops, cloud, observability, itsm]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: respond_cost_anomaly
        description: Handles a cloud cost anomaly alert by creating a task and notifying FinOps.
        inputParameters:
          - name: account_id
            in: body
            required: true
            type: string
          - name: threshold_pct
            in: body
            required: true
            type: number
        steps:
          - name: query-cost-metric
            call:
              operationId: queryCostMetric
              input:
                accountId: "{{account_id}}"
                thresholdPct: "{{threshold_pct}}"
          - name: create-snow-task
            call:
              operationId: createServiceNowTask
              input:
                short_description: "Cloud cost anomaly in account {{account_id}}: {{query-cost-metric.delta_pct}}% over threshold"
                category: cloud-cost
          - name: notify-finops
            call:
              operationId: sendTeamsMessage
              input:
                channelId: finops-alerts
                message: "Cost anomaly in AWS account {{account_id}}. Task {{create-snow-task.number}} created. Delta: {{query-cost-metric.delta_pct}}%."
  consumes:
    - type: http
      baseUri: https://api.datadoghq.com/api/v1
      authentication:
        type: apikey
        name: DD-API-KEY
        in: header
        key: $secrets.datadog_api_key
      resources:
        - path: /metrics/query
          operations:
            - id: queryCostMetric
              method: GET
    - type: http
      baseUri: https://ups.service-now.com/api/now/v1
      authentication:
        type: basic
        username: $secrets.snow_user
        password: $secrets.snow_password
      resources:
        - path: /table/sc_task
          operations:
            - id: createServiceNowTask
              method: POST
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Creates a vehicle maintenance work order in ServiceNow and notifies the fleet manager via Teams.

naftiko: "0.5"
info:
  title: Fleet Maintenance Work Order
  version: "1.0"
  description: Creates a vehicle maintenance work order in ServiceNow and notifies the fleet manager via Teams.
  tags: [operations, fleet, itsm, communication]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: create_maintenance_work_order
        description: Logs a fleet vehicle maintenance work order and alerts the fleet manager.
        inputParameters:
          - name: vehicle_id
            in: body
            required: true
            type: string
          - name: issue_description
            in: body
            required: true
            type: string
          - name: priority
            in: body
            required: true
            type: string
        steps:
          - name: create-work-order
            call:
              operationId: createWorkOrder
              input:
                short_description: "Vehicle {{vehicle_id}}: {{issue_description}}"
                category: fleet-maintenance
                priority: "{{priority}}"
          - name: notify-fleet-manager
            call:
              operationId: sendTeamsMessage
              input:
                channelId: fleet-operations
                message: "Work order {{create-work-order.number}} created for vehicle {{vehicle_id}}: {{issue_description}} ({{priority}} priority)."
  consumes:
    - type: http
      baseUri: https://ups.service-now.com/api/now/v1
      authentication:
        type: basic
        username: $secrets.snow_user
        password: $secrets.snow_password
      resources:
        - path: /table/wm_order
          operations:
            - id: createWorkOrder
              method: POST
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Processes damage/loss claims for UPS Freight shipments.

naftiko: "0.5"
info:
  label: "Freight Claims Processing"
  description: "Processes damage/loss claims for UPS Freight shipments."
  tags:
    - freight
    - customer-service
    - claims
capability:
  exposes:
    - type: mcp
      namespace: freight-claims
      port: 8080
      tools:
        - name: file-claim
          description: "File freight claim."
          inputParameters:
            - name: pro_number
              in: body
              type: string
            - name: type
              in: body
              type: string
            - name: amount
              in: body
              type: number
          call: "claims-api.create-freight"
          with:
            pro: "{{pro_number}}"
            type: "{{type}}"
            amount: "{{amount}}"
          outputParameters:
            - name: claim_id
              type: string
              mapping: "$.claimId"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: claims-api
      baseUri: "https://claims.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_claims_token"
      resources:
        - name: freight
          path: "/freight/claims"
          operations:
            - name: create-freight
              method: POST

Creates a UPS Freight LTL shipment booking.

naftiko: "0.5"
info:
  label: "Freight LTL Booking"
  description: "Creates a UPS Freight LTL shipment booking."
  tags:
    - freight
    - logistics
    - booking
capability:
  exposes:
    - type: mcp
      namespace: freight
      port: 8080
      tools:
        - name: book-freight
          description: "Book LTL freight."
          inputParameters:
            - name: shipper
              in: body
              type: string
            - name: origin_zip
              in: body
              type: string
            - name: dest_zip
              in: body
              type: string
            - name: weight_lbs
              in: body
              type: number
            - name: freight_class
              in: body
              type: string
          call: "freight-api.create"
          with:
            shipper: "{{shipper}}"
            origin: "{{origin_zip}}"
            dest: "{{dest_zip}}"
            weight: "{{weight_lbs}}"
            class: "{{freight_class}}"
          outputParameters:
            - name: pro_number
              type: string
              mapping: "$.proNumber"
            - name: pickup_date
              type: string
              mapping: "$.pickupDate"
  consumes:
    - type: http
      namespace: freight-api
      baseUri: "https://onlinetools.ups.com/api/freight/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: shipments
          path: "/shipments"
          operations:
            - name: create
              method: POST

Tracks UPS Freight LTL shipments by PRO number.

naftiko: "0.5"
info:
  label: "Freight Tracking Lookup"
  description: "Tracks UPS Freight LTL shipments by PRO number."
  tags:
    - freight
    - logistics
    - tracking
capability:
  exposes:
    - type: mcp
      namespace: freight-track
      port: 8080
      tools:
        - name: track-freight
          description: "Track freight shipment."
          inputParameters:
            - name: pro_number
              in: body
              type: string
          call: "freight-api.track"
          with:
            pro: "{{pro_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: location
              type: string
              mapping: "$.location"
            - name: eta
              type: string
              mapping: "$.eta"
  consumes:
    - type: http
      namespace: freight-api
      baseUri: "https://onlinetools.ups.com/api/freight/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: track
          path: "/tracking/{{pro}}"
          inputParameters:
            - name: pro
              in: path
          operations:
            - name: track
              method: GET

Generates fuel cost analysis for UPS fleet.

naftiko: "0.5"
info:
  label: "Fleet Fuel Cost Report"
  description: "Generates fuel cost analysis for UPS fleet."
  tags:
    - fleet-management
    - analytics
    - fuel
capability:
  exposes:
    - type: mcp
      namespace: fuel
      port: 8080
      tools:
        - name: get-fuel
          description: "Get fuel cost report."
          inputParameters:
            - name: fleet_type
              in: body
              type: string
            - name: period
              in: body
              type: string
          call: "analytics-api.get-fuel"
          with:
            fleet: "{{fleet_type}}"
            period: "{{period}}"
          outputParameters:
            - name: total_cost
              type: number
              mapping: "$.totalCost"
            - name: cost_per_mile
              type: number
              mapping: "$.costPerMile"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://analytics.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_analytics_token"
      resources:
        - name: fuel
          path: "/fuel/cost-analysis"
          operations:
            - name: get-fuel
              method: POST

Scans GitHub Dependabot alerts and creates Jira tickets for critical vulnerabilities in logistics platform repositories.

naftiko: "0.5"
info:
  title: GitHub Security Vulnerability Triage
  version: "1.0"
  description: Scans GitHub Dependabot alerts and creates Jira tickets for critical vulnerabilities in logistics platform repositories.
  tags: [security, devops, devex]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: triage_security_vulnerabilities
        description: Fetches Dependabot alerts and creates Jira tickets for critical findings.
        inputParameters:
          - name: org
            in: query
            required: true
            type: string
          - name: repo
            in: query
            required: true
            type: string
        steps:
          - name: get-alerts
            call:
              operationId: getDependabotAlerts
              input:
                org: "{{org}}"
                repo: "{{repo}}"
                severity: critical
          - name: create-jira-ticket
            call:
              operationId: createJiraIssue
              input:
                project: SEC
                summary: "Critical vulnerability in {{repo}}: {{get-alerts.package_name}} {{get-alerts.vulnerable_version}}"
                issuetype: Bug
                priority: Critical
  consumes:
    - type: http
      baseUri: https://api.github.com
      authentication:
        type: bearer
        token: $secrets.github_token
      resources:
        - path: /repos/{org}/{repo}/dependabot/alerts
          operations:
            - id: getDependabotAlerts
              method: GET
    - type: http
      baseUri: https://ups.atlassian.net/rest/api/3
      authentication:
        type: basic
        username: $secrets.jira_user
        password: $secrets.jira_token
      resources:
        - path: /issue
          operations:
            - id: createJiraIssue
              method: POST

Triggers the general ledger period close in SAP S/4HANA and notifies the Finance team in Teams.

naftiko: "0.5"
info:
  title: GL Period Close Orchestrator
  version: "1.0"
  description: Triggers the general ledger period close in SAP S/4HANA and notifies the Finance team in Teams.
  tags: [finance, erp, period-close]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: run_period_close
        description: Closes the GL period in SAP and sends a completion notification to Finance.
        inputParameters:
          - name: fiscal_period
            in: body
            required: true
            type: string
          - name: company_code
            in: body
            required: true
            type: string
        steps:
          - name: close-period
            call:
              operationId: closeFiscalPeriod
              input:
                period: "{{fiscal_period}}"
                companyCode: "{{company_code}}"
          - name: notify-finance
            call:
              operationId: sendTeamsMessage
              input:
                channelId: finance-close
                message: "GL period {{fiscal_period}} closed for company code {{company_code}}. Status: {{close-period.status}}."
  consumes:
    - type: http
      baseUri: https://ups-sap.example.com/sap/opu/odata/sap
      authentication:
        type: basic
        username: $secrets.sap_user
        password: $secrets.sap_password
      resources:
        - path: /API_FISCALYEAR_PERIOD_SRV/PeriodClose
          operations:
            - id: closeFiscalPeriod
              method: POST
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Calculates UPS Ground transit time between two ZIP codes.

naftiko: "0.5"
info:
  label: "Ground Transit Time Calculator"
  description: "Calculates UPS Ground transit time between two ZIP codes."
  tags:
    - logistics
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: transit
      port: 8080
      tools:
        - name: get-transit
          description: "Get transit time."
          inputParameters:
            - name: origin
              in: body
              type: string
            - name: dest
              in: body
              type: string
          call: "rate-api.get-transit"
          with:
            origin: "{{origin}}"
            dest: "{{dest}}"
          outputParameters:
            - name: days
              type: number
              mapping: "$.transitDays"
            - name: delivery
              type: string
              mapping: "$.estimatedDelivery"
  consumes:
    - type: http
      namespace: rate-api
      baseUri: "https://onlinetools.ups.com/api/rating/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: transit
          path: "/transit-times"
          operations:
            - name: get-transit
              method: POST

Validates hazardous materials shipments against DOT regulations.

naftiko: "0.5"
info:
  label: "Hazmat Shipment Validation"
  description: "Validates hazardous materials shipments against DOT regulations."
  tags:
    - compliance
    - safety
    - logistics
capability:
  exposes:
    - type: mcp
      namespace: hazmat
      port: 8080
      tools:
        - name: validate
          description: "Validate hazmat shipment."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: un_number
              in: body
              type: string
          call: "compliance-api.validate"
          with:
            tracking: "{{tracking_number}}"
            un: "{{un_number}}"
          outputParameters:
            - name: compliant
              type: boolean
              mapping: "$.isCompliant"
            - name: violations
              type: array
              mapping: "$.violations"
  consumes:
    - type: http
      namespace: compliance-api
      baseUri: "https://compliance.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_compliance_token"
      resources:
        - name: hazmat
          path: "/hazmat/validate"
          operations:
            - name: validate
              method: POST

Processes high-value shipments requiring additional security and tracking.

naftiko: "0.5"
info:
  label: "High Value Shipment Processing"
  description: "Processes high-value shipments requiring additional security and tracking."
  tags:
    - logistics
    - security
    - shipping
capability:
  exposes:
    - type: mcp
      namespace: high-value
      port: 8080
      tools:
        - name: process-hv
          description: "Process high-value shipment."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: declared_value
              in: body
              type: number
          call: "ship-api.process-high-value"
          with:
            tracking: "{{tracking_number}}"
            value: "{{declared_value}}"
          outputParameters:
            - name: security_level
              type: string
              mapping: "$.securityLevel"
            - name: chain_of_custody
              type: boolean
              mapping: "$.chainOfCustody"
  consumes:
    - type: http
      namespace: ship-api
      baseUri: "https://onlinetools.ups.com/api/shipments/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: high-value
          path: "/high-value/process"
          operations:
            - name: process-high-value
              method: POST

Retrieves real-time sort progress at UPS Worldport and regional hubs.

naftiko: "0.5"
info:
  label: "Hub Sort Status"
  description: "Retrieves real-time sort progress at UPS Worldport and regional hubs."
  tags:
    - operations
    - sorting
    - tracking
capability:
  exposes:
    - type: mcp
      namespace: hub-sort
      port: 8080
      tools:
        - name: get-sort
          description: "Get hub sort status."
          inputParameters:
            - name: hub
              in: body
              type: string
              description: "Hub (SDF/Worldport, PHL, DFW, ONT)."
            - name: wave
              in: body
              type: string
          call: "ops-api.get-sort"
          with:
            hub: "{{hub}}"
            wave: "{{wave}}"
          outputParameters:
            - name: progress
              type: number
              mapping: "$.progressPercent"
            - name: sorted
              type: number
              mapping: "$.packagesSorted"
  consumes:
    - type: http
      namespace: ops-api
      baseUri: "https://operations.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_ops_token"
      resources:
        - name: sort
          path: "/hubs/{{hub}}/sort-status"
          inputParameters:
            - name: hub
              in: path
          operations:
            - name: get-sort
              method: GET

Queries Datadog for host and service health metrics and posts a daily infrastructure digest to the Ops Teams channel.

naftiko: "0.5"
info:
  title: Infrastructure Health Digest
  version: "1.0"
  description: Queries Datadog for host and service health metrics and posts a daily infrastructure digest to the Ops Teams channel.
  tags: [observability, reliability, communication]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: post_infra_digest
        description: Retrieves infrastructure health summary from Datadog and posts daily digest.
        inputParameters:
          - name: environment
            in: query
            required: true
            type: string
        steps:
          - name: get-host-metrics
            call:
              operationId: getHostMetrics
              input:
                env: "{{environment}}"
          - name: post-digest
            call:
              operationId: sendTeamsMessage
              input:
                channelId: ops-digest
                message: "Infrastructure digest ({{environment}}): {{get-host-metrics.healthy_hosts}} healthy, {{get-host-metrics.unhealthy_hosts}} unhealthy hosts."
  consumes:
    - type: http
      baseUri: https://api.datadoghq.com/api/v1
      authentication:
        type: apikey
        name: DD-API-KEY
        in: header
        key: $secrets.datadog_api_key
      resources:
        - path: /hosts
          operations:
            - id: getHostMetrics
              method: GET
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Creates an international document shipment.

naftiko: "0.5"
info:
  label: "International Document Shipment"
  description: "Creates an international document shipment."
  tags:
    - logistics
    - international
    - shipping
capability:
  exposes:
    - type: mcp
      namespace: intl-docs
      port: 8080
      tools:
        - name: ship-docs
          description: "Ship international documents."
          inputParameters:
            - name: shipper
              in: body
              type: string
            - name: country
              in: body
              type: string
            - name: service
              in: body
              type: string
          call: "ship-api.create-intl-doc"
          with:
            shipper: "{{shipper}}"
            country: "{{country}}"
            service: "{{service}}"
          outputParameters:
            - name: tracking
              type: string
              mapping: "$.trackingNumber"
            - name: label
              type: string
              mapping: "$.labelUrl"
  consumes:
    - type: http
      namespace: ship-api
      baseUri: "https://onlinetools.ups.com/api/shipments/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: intl
          path: "/international/documents"
          operations:
            - name: create-intl-doc
              method: POST

Looks up import duties and tariffs for international shipments.

naftiko: "0.5"
info:
  label: "International Tariff Lookup"
  description: "Looks up import duties and tariffs for international shipments."
  tags:
    - customs
    - compliance
    - international
capability:
  exposes:
    - type: mcp
      namespace: tariffs
      port: 8080
      tools:
        - name: get-tariff
          description: "Look up tariff."
          inputParameters:
            - name: hs_code
              in: body
              type: string
            - name: country
              in: body
              type: string
            - name: value
              in: body
              type: number
          call: "trade-api.get-tariff"
          with:
            hs_code: "{{hs_code}}"
            country: "{{country}}"
            value: "{{value}}"
          outputParameters:
            - name: duty_rate
              type: number
              mapping: "$.dutyRate"
            - name: estimated_duty
              type: number
              mapping: "$.estimatedDuty"
  consumes:
    - type: http
      namespace: trade-api
      baseUri: "https://trade.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_trade_token"
      resources:
        - name: tariffs
          path: "/tariffs/lookup"
          operations:
            - name: get-tariff
              method: POST

Submits an IT change request in ServiceNow and notifies the Change Advisory Board via Teams.

naftiko: "0.5"
info:
  title: IT Change Management Approval
  version: "1.0"
  description: Submits an IT change request in ServiceNow and notifies the Change Advisory Board via Teams.
  tags: [itsm, change-management, communication]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: submit_change_request
        description: Creates a change request in ServiceNow and alerts the CAB in Teams.
        inputParameters:
          - name: change_title
            in: body
            required: true
            type: string
          - name: risk_level
            in: body
            required: true
            type: string
          - name: planned_start
            in: body
            required: true
            type: string
        steps:
          - name: create-change
            call:
              operationId: createChangeRequest
              input:
                short_description: "{{change_title}}"
                risk: "{{risk_level}}"
                start_date: "{{planned_start}}"
          - name: notify-cab
            call:
              operationId: sendTeamsMessage
              input:
                channelId: change-advisory-board
                message: "New change request {{create-change.number}}: {{change_title}} (Risk: {{risk_level}}) scheduled for {{planned_start}}."
  consumes:
    - type: http
      baseUri: https://ups.service-now.com/api/now/v1
      authentication:
        type: basic
        username: $secrets.snow_user
        password: $secrets.snow_password
      resources:
        - path: /table/change_request
          operations:
            - id: createChangeRequest
              method: POST
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Queries Jira for completed sprint stories and posts velocity metrics to the Engineering Teams channel.

naftiko: "0.5"
info:
  title: Jira Engineering Sprint Velocity Report
  version: "1.0"
  description: Queries Jira for completed sprint stories and posts velocity metrics to the Engineering Teams channel.
  tags: [devops, agile, communication]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: get_sprint_velocity
        description: Fetches sprint completion data and posts velocity metrics.
        inputParameters:
          - name: board_id
            in: query
            required: true
            type: string
          - name: sprint_id
            in: query
            required: true
            type: string
        steps:
          - name: get-sprint-data
            call:
              operationId: getSprintReport
              input:
                boardId: "{{board_id}}"
                sprintId: "{{sprint_id}}"
          - name: post-velocity
            call:
              operationId: sendTeamsMessage
              input:
                channelId: engineering-metrics
                message: "Sprint {{sprint_id}} velocity: {{get-sprint-data.completed_points}} points completed of {{get-sprint-data.committed_points}} committed."
  consumes:
    - type: http
      baseUri: https://ups.atlassian.net/rest/agile/1.0
      authentication:
        type: basic
        username: $secrets.jira_user
        password: $secrets.jira_token
      resources:
        - path: /board/{boardId}/sprint/{sprintId}/report
          operations:
            - id: getSprintReport
              method: GET
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Retrieves last-mile delivery status including driver ETA.

naftiko: "0.5"
info:
  label: "Last Mile Delivery Status"
  description: "Retrieves last-mile delivery status including driver ETA."
  tags:
    - logistics
    - delivery
    - tracking
capability:
  exposes:
    - type: mcp
      namespace: last-mile
      port: 8080
      tools:
        - name: get-status
          description: "Get last-mile status."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
          call: "delivery-api.get-last-mile"
          with:
            tracking: "{{tracking_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: eta
              type: string
              mapping: "$.driverETA"
            - name: stop
              type: number
              mapping: "$.currentStop"
  consumes:
    - type: http
      namespace: delivery-api
      baseUri: "https://delivery.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_delivery_token"
      resources:
        - name: last-mile
          path: "/packages/{{tracking}}/delivery"
          inputParameters:
            - name: tracking
              in: path
          operations:
            - name: get-last-mile
              method: GET

Finds nearest UPS drop-off and access point locations.

naftiko: "0.5"
info:
  label: "UPS Location Finder"
  description: "Finds nearest UPS drop-off and access point locations."
  tags:
    - customer-service
    - logistics
capability:
  exposes:
    - type: mcp
      namespace: locations
      port: 8080
      tools:
        - name: find-locations
          description: "Find UPS locations."
          inputParameters:
            - name: zip_code
              in: body
              type: string
            - name: type
              in: body
              type: string
              description: "Type (store, access_point, drop_box)."
          call: "location-api.search"
          with:
            zip: "{{zip_code}}"
            type: "{{type}}"
          outputParameters:
            - name: locations
              type: array
              mapping: "$.locations"
            - name: nearest
              type: string
              mapping: "$.nearestAddress"
  consumes:
    - type: http
      namespace: location-api
      baseUri: "https://onlinetools.ups.com/api/locations/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: search
          path: "/search"
          operations:
            - name: search
              method: POST

Detects logistics system alerts via Datadog, creates a ServiceNow incident, and pages the on-call ops team via PagerDuty.

naftiko: "0.5"
info:
  title: Logistics Incident Response Chain
  version: "1.0"
  description: Detects logistics system alerts via Datadog, creates a ServiceNow incident, and pages the on-call ops team via PagerDuty.
  tags: [itsm, observability, incident-response, operations]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: respond_logistics_incident
        description: Handles a logistics system alert by creating a ServiceNow incident and paging on-call.
        inputParameters:
          - name: monitor_id
            in: body
            required: true
            type: string
          - name: severity
            in: body
            required: true
            type: string
        steps:
          - name: get-monitor-alert
            call:
              operationId: getMonitor
              input:
                monitorId: "{{monitor_id}}"
          - name: create-snow-incident
            call:
              operationId: createIncident
              input:
                short_description: "Logistics alert: {{get-monitor-alert.name}}"
                urgency: "{{severity}}"
                category: operations
          - name: trigger-pagerduty
            call:
              operationId: createPagerDutyIncident
              input:
                title: "{{get-monitor-alert.name}}"
                severity: "{{severity}}"
                serviceId: $secrets.pd_ops_service_id
  consumes:
    - type: http
      baseUri: https://api.datadoghq.com/api/v1
      authentication:
        type: apikey
        name: DD-API-KEY
        in: header
        key: $secrets.datadog_api_key
      resources:
        - path: /monitor/{monitorId}
          operations:
            - id: getMonitor
              method: GET
    - type: http
      baseUri: https://ups.service-now.com/api/now/v1
      authentication:
        type: basic
        username: $secrets.snow_user
        password: $secrets.snow_password
      resources:
        - path: /table/incident
          operations:
            - id: createIncident
              method: POST
    - type: http
      baseUri: https://api.pagerduty.com
      authentication:
        type: bearer
        token: $secrets.pagerduty_token
      resources:
        - path: /incidents
          operations:
            - id: createPagerDutyIncident
              method: POST

Calculates average cost per package across the UPS network.

naftiko: "0.5"
info:
  label: "Network Cost Per Package"
  description: "Calculates average cost per package across the UPS network."
  tags:
    - analytics
    - cost-optimization
capability:
  exposes:
    - type: mcp
      namespace: cpp
      port: 8080
      tools:
        - name: get-cpp
          description: "Get cost per package."
          inputParameters:
            - name: service
              in: body
              type: string
            - name: period
              in: body
              type: string
          call: "analytics-api.get-cpp"
          with:
            service: "{{service}}"
            period: "{{period}}"
          outputParameters:
            - name: cpp
              type: number
              mapping: "$.costPerPackage"
            - name: trend
              type: string
              mapping: "$.trend"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://analytics.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_analytics_token"
      resources:
        - name: cpp
          path: "/cost/per-package"
          operations:
            - name: get-cpp
              method: POST

Generates on-time delivery performance metrics for a center or region.

naftiko: "0.5"
info:
  label: "On-Time Delivery Report"
  description: "Generates on-time delivery performance metrics for a center or region."
  tags:
    - analytics
    - delivery
    - operations
capability:
  exposes:
    - type: mcp
      namespace: otd
      port: 8080
      tools:
        - name: get-otd
          description: "Get OTD report."
          inputParameters:
            - name: center
              in: body
              type: string
            - name: period
              in: body
              type: string
          call: "analytics-api.get-otd"
          with:
            center: "{{center}}"
            period: "{{period}}"
          outputParameters:
            - name: otd_rate
              type: number
              mapping: "$.onTimeRate"
            - name: delivered
              type: number
              mapping: "$.totalDelivered"
            - name: late
              type: number
              mapping: "$.lateCount"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://analytics.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_analytics_token"
      resources:
        - name: otd
          path: "/delivery/on-time"
          operations:
            - name: get-otd
              method: POST

Compiles daily network briefing from volume, weather, and staffing data.

naftiko: "0.5"
info:
  label: "Operations Daily Briefing Orchestrator"
  description: "Compiles daily network briefing from volume, weather, and staffing data."
  tags:
    - operations
    - analytics
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: briefing
      port: 8080
      tools:
        - name: generate-briefing
          description: "Generate daily briefing."
          inputParameters:
            - name: date
              in: body
              type: string
          steps:
            - name: volume
              type: call
              call: "analytics-api.get-daily"
              with:
                date: "{{date}}"
            - name: weather
              type: call
              call: "weather-api.get-outlook"
              with:
                date: "{{date}}"
            - name: staffing
              type: call
              call: "workforce-api.get-summary"
              with:
                date: "{{date}}"
            - name: post
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "{{noc_channel}}"
                text: "DAILY OPS {{date}} | Vol: {{volume.total}} | Weather: {{weather.alerts}} | Staff: {{staffing.coverage}}%"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://analytics.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_analytics_token"
      resources:
        - name: daily
          path: "/volume/daily"
          operations:
            - name: get-daily
              method: POST
    - type: http
      namespace: weather-api
      baseUri: "https://weather.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_weather_token"
      resources:
        - name: outlook
          path: "/network/outlook"
          operations:
            - name: get-outlook
              method: POST
    - type: http
      namespace: workforce-api
      baseUri: "https://workforce.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_workforce_token"
      resources:
        - name: summary
          path: "/staffing/summary"
          operations:
            - name: get-summary
              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/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Retrieves dimensional weight scan results for a package.

naftiko: "0.5"
info:
  label: "Package Dimension Scan"
  description: "Retrieves dimensional weight scan results for a package."
  tags:
    - logistics
    - operations
    - billing
capability:
  exposes:
    - type: mcp
      namespace: dim
      port: 8080
      tools:
        - name: get-dimensions
          description: "Get package dimensions."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
          call: "ops-api.get-dim"
          with:
            tracking: "{{tracking_number}}"
          outputParameters:
            - name: length
              type: number
              mapping: "$.length"
            - name: width
              type: number
              mapping: "$.width"
            - name: height
              type: number
              mapping: "$.height"
            - name: dim_weight
              type: number
              mapping: "$.dimWeight"
  consumes:
    - type: http
      namespace: ops-api
      baseUri: "https://operations.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_ops_token"
      resources:
        - name: dim
          path: "/packages/{{tracking}}/dimensions"
          inputParameters:
            - name: tracking
              in: path
          operations:
            - name: get-dim
              method: GET

Holds a package at a UPS location for customer pickup.

naftiko: "0.5"
info:
  label: "Package Hold at Location"
  description: "Holds a package at a UPS location for customer pickup."
  tags:
    - logistics
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: hold
      port: 8080
      tools:
        - name: hold
          description: "Hold package."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: location_id
              in: body
              type: string
          call: "delivery-api.hold"
          with:
            tracking: "{{tracking_number}}"
            location: "{{location_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: deadline
              type: string
              mapping: "$.pickupDeadline"
  consumes:
    - type: http
      namespace: delivery-api
      baseUri: "https://delivery.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_delivery_token"
      resources:
        - name: hold
          path: "/packages/hold"
          operations:
            - name: hold
              method: POST

Intercepts and returns or redirects a package before delivery.

naftiko: "0.5"
info:
  label: "Package Intercept Request"
  description: "Intercepts and returns or redirects a package before delivery."
  tags:
    - logistics
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: intercept
      port: 8080
      tools:
        - name: intercept
          description: "Intercept package."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: action
              in: body
              type: string
          call: "delivery-api.intercept"
          with:
            tracking: "{{tracking_number}}"
            action: "{{action}}"
          outputParameters:
            - name: intercept_id
              type: string
              mapping: "$.interceptId"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: delivery-api
      baseUri: "https://delivery.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_delivery_token"
      resources:
        - name: intercept
          path: "/packages/intercept"
          operations:
            - name: intercept
              method: POST

Redirects an in-transit package via UPS My Choice.

naftiko: "0.5"
info:
  label: "UPS My Choice Package Redirect"
  description: "Redirects an in-transit package via UPS My Choice."
  tags:
    - logistics
    - customer-service
    - delivery
capability:
  exposes:
    - type: mcp
      namespace: redirect
      port: 8080
      tools:
        - name: redirect
          description: "Redirect package."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: redirect_type
              in: body
              type: string
            - name: new_address
              in: body
              type: string
          call: "delivery-api.redirect"
          with:
            tracking: "{{tracking_number}}"
            type: "{{redirect_type}}"
            address: "{{new_address}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: new_eta
              type: string
              mapping: "$.newETA"
  consumes:
    - type: http
      namespace: delivery-api
      baseUri: "https://delivery.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_delivery_token"
      resources:
        - name: redirect
          path: "/packages/redirect"
          operations:
            - name: redirect
              method: POST

Retrieves real-time shipment tracking status for a given tracking number from the UPS Tracking API.

naftiko: "0.5"
info:
  title: Package Shipment Status Lookup
  version: "1.0"
  description: Retrieves real-time shipment tracking status for a given tracking number from the UPS Tracking API.
  tags: [logistics, supply-chain, operations]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: get_shipment_status
        description: Returns the current tracking status, location, and estimated delivery for a UPS shipment.
        inputParameters:
          - name: tracking_number
            in: path
            required: true
            type: string
        call:
          operationId: getShipmentStatus
          input:
            trackingNumber: "{{tracking_number}}"
        outputParameters:
          - name: status
            type: string
          - name: current_location
            type: string
          - name: estimated_delivery
            type: string
          - name: activity_history
            type: array
  consumes:
    - type: http
      baseUri: https://onlinetools.ups.com/track/v1
      authentication:
        type: bearer
        token: $secrets.ups_api_token
      resources:
        - path: /details/{trackingNumber}
          operations:
            - id: getShipmentStatus
              method: GET

Pulls active employee headcount and payroll cost summary from Workday for finance reporting.

naftiko: "0.5"
info:
  title: Payroll Headcount Snapshot
  version: "1.0"
  description: Pulls active employee headcount and payroll cost summary from Workday for finance reporting.
  tags: [hr, finance, payroll]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: get_payroll_snapshot
        description: Returns current headcount and total payroll cost broken down by business unit.
        inputParameters:
          - name: period
            in: query
            required: true
            type: string
        call:
          operationId: getPayrollSnapshot
          input:
            period: "{{period}}"
        outputParameters:
          - name: total_headcount
            type: integer
          - name: total_payroll_cost
            type: number
          - name: business_units
            type: array
  consumes:
    - type: http
      baseUri: https://wd3-impl-services1.workday.com/ccx/service/ups
      authentication:
        type: bearer
        token: $secrets.workday_token
      resources:
        - path: /payroll/snapshot
          operations:
            - id: getPayrollSnapshot
              method: GET

Plans for peak volume surges with demand forecasting, extra staffing, and additional vehicles.

naftiko: "0.5"
info:
  label: "Peak Surge Planning Orchestrator"
  description: "Plans for peak volume surges with demand forecasting, extra staffing, and additional vehicles."
  tags:
    - operations
    - capacity
    - workforce-management
capability:
  exposes:
    - type: mcp
      namespace: surge
      port: 8080
      tools:
        - name: plan-surge
          description: "Plan peak surge."
          inputParameters:
            - name: center
              in: body
              type: string
            - name: date
              in: body
              type: string
          steps:
            - name: forecast
              type: call
              call: "analytics-api.get-forecast"
              with:
                center: "{{center}}"
                date: "{{date}}"
            - name: staff
              type: call
              call: "workforce-api.request-extra"
              with:
                center: "{{center}}"
                volume: "{{forecast.volume}}"
            - name: vehicles
              type: call
              call: "fleet-api.request-extra"
              with:
                center: "{{center}}"
            - name: notify
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "{{ops_channel}}"
                text: "Surge plan {{center}} {{date}}: Vol={{forecast.volume}} | Staff+{{staff.count}} | Vehicles+{{vehicles.count}}"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://analytics.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_analytics_token"
      resources:
        - name: forecast
          path: "/volume/forecast"
          operations:
            - name: get-forecast
              method: POST
    - type: http
      namespace: workforce-api
      baseUri: "https://workforce.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_workforce_token"
      resources:
        - name: extra
          path: "/staffing/request-extra"
          operations:
            - name: request-extra
              method: POST
    - type: http
      namespace: fleet-api
      baseUri: "https://fleet.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_fleet_token"
      resources:
        - name: extra
          path: "/vehicles/request-extra"
          operations:
            - name: request-extra
              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/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Cancels a previously scheduled UPS pickup.

naftiko: "0.5"
info:
  label: "Pickup Cancellation"
  description: "Cancels a previously scheduled UPS pickup."
  tags:
    - logistics
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: pickup-cancel
      port: 8080
      tools:
        - name: cancel-pickup
          description: "Cancel a pickup."
          inputParameters:
            - name: pickup_id
              in: body
              type: string
          call: "pickup-api.cancel"
          with:
            pickup_id: "{{pickup_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.cancellationStatus"
  consumes:
    - type: http
      namespace: pickup-api
      baseUri: "https://onlinetools.ups.com/api/pickupcreation/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: cancel
          path: "/pickup/cancel"
          operations:
            - name: cancel
              method: POST

Schedules a UPS package pickup.

naftiko: "0.5"
info:
  label: "Pickup Scheduling"
  description: "Schedules a UPS package pickup."
  tags:
    - logistics
    - customer-service
    - scheduling
capability:
  exposes:
    - type: mcp
      namespace: pickup
      port: 8080
      tools:
        - name: schedule-pickup
          description: "Schedule pickup."
          inputParameters:
            - name: account
              in: body
              type: string
            - name: address
              in: body
              type: string
            - name: ready_time
              in: body
              type: string
            - name: packages
              in: body
              type: number
          call: "pickup-api.create"
          with:
            account: "{{account}}"
            address: "{{address}}"
            ready: "{{ready_time}}"
            count: "{{packages}}"
          outputParameters:
            - name: pickup_id
              type: string
              mapping: "$.pickupId"
            - name: window
              type: string
              mapping: "$.pickupWindow"
  consumes:
    - type: http
      namespace: pickup-api
      baseUri: "https://onlinetools.ups.com/api/pickupcreation/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: pickups
          path: "/pickup"
          operations:
            - name: create
              method: POST

Generates preload audit metrics for package car loading accuracy.

naftiko: "0.5"
info:
  label: "Preload Audit Report"
  description: "Generates preload audit metrics for package car loading accuracy."
  tags:
    - operations
    - quality
    - delivery
capability:
  exposes:
    - type: mcp
      namespace: preload
      port: 8080
      tools:
        - name: get-audit
          description: "Get preload audit."
          inputParameters:
            - name: center
              in: body
              type: string
            - name: date
              in: body
              type: string
          call: "ops-api.get-preload"
          with:
            center: "{{center}}"
            date: "{{date}}"
          outputParameters:
            - name: accuracy
              type: number
              mapping: "$.preloadAccuracy"
            - name: misloads
              type: number
              mapping: "$.misloads"
  consumes:
    - type: http
      namespace: ops-api
      baseUri: "https://operations.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_ops_token"
      resources:
        - name: preload
          path: "/centers/{{center}}/preload-audit"
          inputParameters:
            - name: center
              in: path
          operations:
            - name: get-preload
              method: GET

Retrieves proof of delivery including signature, photo, and timestamp.

naftiko: "0.5"
info:
  label: "Proof of Delivery Lookup"
  description: "Retrieves proof of delivery including signature, photo, and timestamp."
  tags:
    - logistics
    - customer-service
    - delivery
capability:
  exposes:
    - type: mcp
      namespace: pod
      port: 8080
      tools:
        - name: get-pod
          description: "Get proof of delivery."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
          call: "delivery-api.get-pod"
          with:
            tracking: "{{tracking_number}}"
          outputParameters:
            - name: signed_by
              type: string
              mapping: "$.signedBy"
            - name: delivery_time
              type: string
              mapping: "$.deliveryTime"
            - name: photo_url
              type: string
              mapping: "$.photoUrl"
  consumes:
    - type: http
      namespace: delivery-api
      baseUri: "https://delivery.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_delivery_token"
      resources:
        - name: pod
          path: "/packages/{{tracking}}/pod"
          inputParameters:
            - name: tracking
              in: path
          operations:
            - name: get-pod
              method: GET

Configures Quantum View shipment notifications for enterprise customers.

naftiko: "0.5"
info:
  label: "Quantum View Notification Setup"
  description: "Configures Quantum View shipment notifications for enterprise customers."
  tags:
    - customer-service
    - tracking
    - notifications
capability:
  exposes:
    - type: mcp
      namespace: qv
      port: 8080
      tools:
        - name: configure-notify
          description: "Configure QV notifications."
          inputParameters:
            - name: account
              in: body
              type: string
            - name: event_types
              in: body
              type: string
              description: "Events (ship, deliver, exception)."
            - name: email
              in: body
              type: string
          call: "qv-api.configure"
          with:
            account: "{{account}}"
            events: "{{event_types}}"
            email: "{{email}}"
          outputParameters:
            - name: subscription_id
              type: string
              mapping: "$.subscriptionId"
  consumes:
    - type: http
      namespace: qv-api
      baseUri: "https://onlinetools.ups.com/api/quantumview/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: configure
          path: "/subscriptions"
          operations:
            - name: configure
              method: POST

Pulls open requisition and candidate pipeline data from Workday Recruiting and posts a weekly digest to the Talent Acquisition channel.

naftiko: "0.5"
info:
  title: Recruiting Pipeline Digest
  version: "1.0"
  description: Pulls open requisition and candidate pipeline data from Workday Recruiting and posts a weekly digest to the Talent Acquisition channel.
  tags: [hr, recruiting, communication]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: post_recruiting_digest
        description: Summarizes open reqs and pipeline stage counts and posts to Talent Acquisition channel.
        inputParameters:
          - name: department
            in: query
            required: true
            type: string
        steps:
          - name: get-open-reqs
            call:
              operationId: getOpenRequisitions
              input:
                department: "{{department}}"
          - name: post-digest
            call:
              operationId: sendTeamsMessage
              input:
                channelId: talent-acquisition
                message: "Recruiting digest for {{department}}: {{get-open-reqs.total_reqs}} open reqs, {{get-open-reqs.candidates_in_pipeline}} candidates in pipeline."
  consumes:
    - type: http
      baseUri: https://wd3-impl-services1.workday.com/ccx/service/ups
      authentication:
        type: bearer
        token: $secrets.workday_token
      resources:
        - path: /recruiting/requisitions
          operations:
            - id: getOpenRequisitions
              method: GET
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Pulls compliance control status from ServiceNow GRC and posts a regulatory audit summary to the Compliance Teams channel.

naftiko: "0.5"
info:
  title: Regulatory Compliance Audit Report
  version: "1.0"
  description: Pulls compliance control status from ServiceNow GRC and posts a regulatory audit summary to the Compliance Teams channel.
  tags: [compliance, security, communication]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: run_compliance_audit
        description: Retrieves GRC control statuses and posts a summary to the Compliance channel.
        inputParameters:
          - name: regulation
            in: query
            required: true
            type: string
          - name: reporting_period
            in: query
            required: true
            type: string
        steps:
          - name: get-controls
            call:
              operationId: getComplianceControls
              input:
                regulation: "{{regulation}}"
                period: "{{reporting_period}}"
          - name: post-summary
            call:
              operationId: sendTeamsMessage
              input:
                channelId: compliance-reports
                message: "Compliance audit for {{regulation}} ({{reporting_period}}): {{get-controls.passing}} passing, {{get-controls.failing}} failing controls."
  consumes:
    - type: http
      baseUri: https://ups.service-now.com/api/now/v1
      authentication:
        type: basic
        username: $secrets.snow_user
        password: $secrets.snow_password
      resources:
        - path: /table/sn_compliance_policy_statement
          operations:
            - id: getComplianceControls
              method: GET
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Creates a UPS return shipping label.

naftiko: "0.5"
info:
  label: "Return Label Creation"
  description: "Creates a UPS return shipping label."
  tags:
    - logistics
    - customer-service
    - returns
capability:
  exposes:
    - type: mcp
      namespace: returns
      port: 8080
      tools:
        - name: create-return
          description: "Create return label."
          inputParameters:
            - name: original_tracking
              in: body
              type: string
            - name: return_address
              in: body
              type: string
          call: "ship-api.create-return"
          with:
            original: "{{original_tracking}}"
            address: "{{return_address}}"
          outputParameters:
            - name: return_tracking
              type: string
              mapping: "$.returnTracking"
            - name: label_url
              type: string
              mapping: "$.labelUrl"
  consumes:
    - type: http
      namespace: ship-api
      baseUri: "https://onlinetools.ups.com/api/shipments/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: returns
          path: "/returns"
          operations:
            - name: create-return
              method: POST

Uses UPS ORION system to optimize delivery routes by pulling stops, traffic, and generating optimal sequence.

naftiko: "0.5"
info:
  label: "ORION Route Optimization Orchestrator"
  description: "Uses UPS ORION system to optimize delivery routes by pulling stops, traffic, and generating optimal sequence."
  tags:
    - logistics
    - route-optimization
    - delivery
capability:
  exposes:
    - type: mcp
      namespace: orion
      port: 8080
      tools:
        - name: optimize-route
          description: "Optimize delivery route via ORION."
          inputParameters:
            - name: driver_id
              in: body
              type: string
            - name: date
              in: body
              type: string
            - name: center
              in: body
              type: string
          steps:
            - name: get-stops
              type: call
              call: "dispatch-api.get-stops"
              with:
                driver: "{{driver_id}}"
                date: "{{date}}"
            - name: get-traffic
              type: call
              call: "maps-api.get-traffic"
              with:
                center: "{{center}}"
            - name: optimize
              type: call
              call: "orion-api.optimize"
              with:
                stops: "{{get-stops.stops}}"
                traffic: "{{get-traffic.conditions}}"
            - name: push
              type: call
              call: "dispatch-api.update-route"
              with:
                driver: "{{driver_id}}"
                route: "{{optimize.sequence}}"
  consumes:
    - type: http
      namespace: dispatch-api
      baseUri: "https://dispatch.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_dispatch_token"
      resources:
        - name: stops
          path: "/drivers/{{driver}}/stops"
          inputParameters:
            - name: driver
              in: path
          operations:
            - name: get-stops
              method: GET
        - name: routes
          path: "/drivers/{{driver}}/route"
          inputParameters:
            - name: driver
              in: path
          operations:
            - name: update-route
              method: PUT
    - type: http
      namespace: maps-api
      baseUri: "https://maps.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_maps_token"
      resources:
        - name: traffic
          path: "/traffic/{{center}}"
          inputParameters:
            - name: center
              in: path
          operations:
            - name: get-traffic
              method: GET
    - type: http
      namespace: orion-api
      baseUri: "https://orion.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_orion_token"
      resources:
        - name: optimize
          path: "/optimize"
          operations:
            - name: optimize
              method: POST

Retrieves purchase order details from SAP S/4HANA for procurement and fleet management review.

naftiko: "0.5"
info:
  title: SAP Purchase Order Lookup
  version: "1.0"
  description: Retrieves purchase order details from SAP S/4HANA for procurement and fleet management review.
  tags: [procurement, erp, finance]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: lookup_purchase_order
        description: Returns purchase order header and line item details from SAP.
        inputParameters:
          - name: po_number
            in: path
            required: true
            type: string
        call:
          operationId: getPurchaseOrder
          input:
            poNumber: "{{po_number}}"
        outputParameters:
          - name: vendor
            type: string
          - name: total_amount
            type: number
          - name: status
            type: string
          - name: line_items
            type: array
  consumes:
    - type: http
      baseUri: https://ups-sap.example.com/sap/opu/odata/sap
      authentication:
        type: basic
        username: $secrets.sap_user
        password: $secrets.sap_password
      resources:
        - path: /API_PURCHASEORDER_PROCESS_SRV/A_PurchaseOrder('{poNumber}')
          operations:
            - id: getPurchaseOrder
              method: GET

Checks Saturday delivery availability for a destination.

naftiko: "0.5"
info:
  label: "Saturday Delivery Check"
  description: "Checks Saturday delivery availability for a destination."
  tags:
    - logistics
    - customer-service
    - delivery
capability:
  exposes:
    - type: mcp
      namespace: saturday
      port: 8080
      tools:
        - name: check-saturday
          description: "Check Saturday delivery."
          inputParameters:
            - name: dest_zip
              in: body
              type: string
          call: "rate-api.check-saturday"
          with:
            zip: "{{dest_zip}}"
          outputParameters:
            - name: available
              type: boolean
              mapping: "$.saturdayAvailable"
            - name: surcharge
              type: number
              mapping: "$.saturdaySurcharge"
  consumes:
    - type: http
      namespace: rate-api
      baseUri: "https://onlinetools.ups.com/api/rating/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: saturday
          path: "/saturday-delivery"
          operations:
            - name: check-saturday
              method: POST

Monitors barcode scanner health across UPS facilities.

naftiko: "0.5"
info:
  label: "Scanner Health Monitor"
  description: "Monitors barcode scanner health across UPS facilities."
  tags:
    - operations
    - monitoring
    - sorting
capability:
  exposes:
    - type: mcp
      namespace: scanners
      port: 8080
      tools:
        - name: check-scanners
          description: "Check scanner health."
          inputParameters:
            - name: facility
              in: body
              type: string
          call: "ops-api.get-scanner-health"
          with:
            facility: "{{facility}}"
          outputParameters:
            - name: total
              type: number
              mapping: "$.total"
            - name: online
              type: number
              mapping: "$.online"
            - name: error_rate
              type: number
              mapping: "$.errorRate"
  consumes:
    - type: http
      namespace: ops-api
      baseUri: "https://operations.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_ops_token"
      resources:
        - name: scanners
          path: "/facilities/{{facility}}/scanners"
          inputParameters:
            - name: facility
              in: path
          operations:
            - name: get-scanner-health
              method: GET

Retrieves active service alerts and disruptions across the UPS network.

naftiko: "0.5"
info:
  label: "Service Alert Status"
  description: "Retrieves active service alerts and disruptions across the UPS network."
  tags:
    - operations
    - customer-service
    - alerts
capability:
  exposes:
    - type: mcp
      namespace: alerts
      port: 8080
      tools:
        - name: get-alerts
          description: "Get service alerts."
          inputParameters:
            - name: region
              in: body
              type: string
          call: "ops-api.get-alerts"
          with:
            region: "{{region}}"
          outputParameters:
            - name: alerts
              type: array
              mapping: "$.activeAlerts"
            - name: count
              type: number
              mapping: "$.alertCount"
  consumes:
    - type: http
      namespace: ops-api
      baseUri: "https://operations.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_ops_token"
      resources:
        - name: alerts
          path: "/service-alerts"
          operations:
            - name: get-alerts
              method: POST

Checks eligibility for UPS service guarantee refund on late deliveries.

naftiko: "0.5"
info:
  label: "Service Guarantee Refund Check"
  description: "Checks eligibility for UPS service guarantee refund on late deliveries."
  tags:
    - customer-service
    - billing
    - delivery
capability:
  exposes:
    - type: mcp
      namespace: guarantee
      port: 8080
      tools:
        - name: check-refund
          description: "Check guarantee refund eligibility."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
          call: "billing-api.check-guarantee"
          with:
            tracking: "{{tracking_number}}"
          outputParameters:
            - name: eligible
              type: boolean
              mapping: "$.isEligible"
            - name: refund_amount
              type: number
              mapping: "$.refundAmount"
  consumes:
    - type: http
      namespace: billing-api
      baseUri: "https://billing.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_billing_token"
      resources:
        - name: guarantee
          path: "/guarantee/check"
          operations:
            - name: check-guarantee
              method: POST

Generates a UPS shipping label.

naftiko: "0.5"
info:
  label: "Shipment Label Generation"
  description: "Generates a UPS shipping label."
  tags:
    - logistics
    - shipping
capability:
  exposes:
    - type: mcp
      namespace: labels
      port: 8080
      tools:
        - name: create-label
          description: "Generate shipping label."
          inputParameters:
            - name: shipper
              in: body
              type: string
            - name: recipient
              in: body
              type: string
            - name: weight_lbs
              in: body
              type: number
            - name: service
              in: body
              type: string
          call: "ship-api.create-label"
          with:
            shipper: "{{shipper}}"
            recipient: "{{recipient}}"
            weight: "{{weight_lbs}}"
            service: "{{service}}"
          outputParameters:
            - name: tracking_number
              type: string
              mapping: "$.trackingNumber"
            - name: label_url
              type: string
              mapping: "$.labelUrl"
  consumes:
    - type: http
      namespace: ship-api
      baseUri: "https://onlinetools.ups.com/api/shipments/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: shipments
          path: "/ship"
          operations:
            - name: create-label
              method: POST

Calculates UPS shipping rates by origin, destination, weight, and service type.

naftiko: "0.5"
info:
  label: "Shipment Rate Quote"
  description: "Calculates UPS shipping rates by origin, destination, weight, and service type."
  tags:
    - logistics
    - pricing
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: rates
      port: 8080
      tools:
        - name: get-rate
          description: "Get shipping rate."
          inputParameters:
            - name: origin_zip
              in: body
              type: string
            - name: dest_zip
              in: body
              type: string
            - name: weight_lbs
              in: body
              type: number
            - name: service
              in: body
              type: string
              description: "Service (Ground, Next Day Air, 2nd Day Air, 3 Day Select)."
          call: "rate-api.calculate"
          with:
            origin: "{{origin_zip}}"
            dest: "{{dest_zip}}"
            weight: "{{weight_lbs}}"
            service: "{{service}}"
          outputParameters:
            - name: rate
              type: number
              mapping: "$.totalCharge"
            - name: transit_days
              type: number
              mapping: "$.transitDays"
  consumes:
    - type: http
      namespace: rate-api
      baseUri: "https://onlinetools.ups.com/api/rating/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: rates
          path: "/Rate"
          operations:
            - name: calculate
              method: POST

Updates signature requirement for an in-transit package.

naftiko: "0.5"
info:
  label: "Signature Required Update"
  description: "Updates signature requirement for an in-transit package."
  tags:
    - logistics
    - delivery
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: signature
      port: 8080
      tools:
        - name: update-signature
          description: "Update signature type."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: signature_type
              in: body
              type: string
          call: "delivery-api.update-sig"
          with:
            tracking: "{{tracking_number}}"
            type: "{{signature_type}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: delivery-api
      baseUri: "https://delivery.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_delivery_token"
      resources:
        - name: signature
          path: "/packages/signature"
          operations:
            - name: update-sig
              method: PUT

Retrieves package throughput metrics for a UPS hub/sort facility.

naftiko: "0.5"
info:
  label: "Sort Facility Throughput Report"
  description: "Retrieves package throughput metrics for a UPS hub/sort facility."
  tags:
    - operations
    - analytics
    - sorting
capability:
  exposes:
    - type: mcp
      namespace: sort
      port: 8080
      tools:
        - name: get-throughput
          description: "Get sort throughput."
          inputParameters:
            - name: facility
              in: body
              type: string
            - name: shift
              in: body
              type: string
          call: "ops-api.get-throughput"
          with:
            facility: "{{facility}}"
            shift: "{{shift}}"
          outputParameters:
            - name: processed
              type: number
              mapping: "$.packagesProcessed"
            - name: scan_rate
              type: number
              mapping: "$.scanRate"
            - name: missort
              type: number
              mapping: "$.missortRate"
  consumes:
    - type: http
      namespace: ops-api
      baseUri: "https://operations.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_ops_token"
      resources:
        - name: throughput
          path: "/facilities/{{facility}}/throughput"
          inputParameters:
            - name: facility
              in: path
          operations:
            - name: get-throughput
              method: GET

Retrieves staffing levels at a UPS center.

naftiko: "0.5"
info:
  label: "Center Staffing Report"
  description: "Retrieves staffing levels at a UPS center."
  tags:
    - workforce-management
    - operations
capability:
  exposes:
    - type: mcp
      namespace: staffing
      port: 8080
      tools:
        - name: get-staffing
          description: "Get staffing levels."
          inputParameters:
            - name: center
              in: body
              type: string
            - name: shift
              in: body
              type: string
          call: "workforce-api.get-staffing"
          with:
            center: "{{center}}"
            shift: "{{shift}}"
          outputParameters:
            - name: current
              type: number
              mapping: "$.current"
            - name: required
              type: number
              mapping: "$.required"
  consumes:
    - type: http
      namespace: workforce-api
      baseUri: "https://workforce.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_workforce_token"
      resources:
        - name: staffing
          path: "/centers/{{center}}/staffing"
          inputParameters:
            - name: center
              in: path
          operations:
            - name: get-staffing
              method: GET

Registers a new logistics supplier in SAP Ariba and creates a ServiceNow onboarding task.

naftiko: "0.5"
info:
  title: Supplier Onboarding Workflow
  version: "1.0"
  description: Registers a new logistics supplier in SAP Ariba and creates a ServiceNow onboarding task.
  tags: [procurement, supply-chain, itsm]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: onboard_supplier
        description: Creates a supplier record in SAP Ariba and logs an onboarding task in ServiceNow.
        inputParameters:
          - name: supplier_name
            in: body
            required: true
            type: string
          - name: supplier_category
            in: body
            required: true
            type: string
          - name: contact_email
            in: body
            required: true
            type: string
        steps:
          - name: create-ariba-supplier
            call:
              operationId: createAribaSupplier
              input:
                name: "{{supplier_name}}"
                category: "{{supplier_category}}"
                contactEmail: "{{contact_email}}"
          - name: create-onboarding-task
            call:
              operationId: createServiceNowTask
              input:
                short_description: "Onboard new supplier: {{supplier_name}} ({{supplier_category}})"
                category: procurement
  consumes:
    - type: http
      baseUri: https://ups.supplier.ariba.com/api/v2
      authentication:
        type: bearer
        token: $secrets.ariba_token
      resources:
        - path: /suppliers
          operations:
            - id: createAribaSupplier
              method: POST
    - type: http
      baseUri: https://ups.service-now.com/api/now/v1
      authentication:
        type: basic
        username: $secrets.snow_user
        password: $secrets.snow_password
      resources:
        - path: /table/sc_task
          operations:
            - id: createServiceNowTask
              method: POST

Retrieves supplier on-time delivery metrics from SAP Ariba and posts a monthly performance summary to Procurement in Teams.

naftiko: "0.5"
info:
  title: Supplier Performance Review
  version: "1.0"
  description: Retrieves supplier on-time delivery metrics from SAP Ariba and posts a monthly performance summary to Procurement in Teams.
  tags: [procurement, supply-chain, communication]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: review_supplier_performance
        description: Fetches supplier delivery metrics and posts monthly performance report.
        inputParameters:
          - name: supplier_id
            in: query
            required: true
            type: string
          - name: period
            in: query
            required: true
            type: string
        steps:
          - name: get-supplier-metrics
            call:
              operationId: getSupplierMetrics
              input:
                supplierId: "{{supplier_id}}"
                period: "{{period}}"
          - name: post-report
            call:
              operationId: sendTeamsMessage
              input:
                channelId: procurement-reports
                message: "Supplier {{supplier_id}} performance for {{period}}: {{get-supplier-metrics.on_time_pct}}% on-time delivery, {{get-supplier-metrics.defect_rate}}% defect rate."
  consumes:
    - type: http
      baseUri: https://ups.supplier.ariba.com/api/v2
      authentication:
        type: bearer
        token: $secrets.ariba_token
      resources:
        - path: /suppliers/{supplierId}/performance
          operations:
            - id: getSupplierMetrics
              method: GET
    - type: http
      baseUri: https://graph.microsoft.com/v1.0
      authentication:
        type: bearer
        token: $secrets.ms_graph_token
      resources:
        - path: /teams/messages
          operations:
            - id: sendTeamsMessage
              method: POST

Provides end-to-end supply chain visibility for enterprise customers.

naftiko: "0.5"
info:
  label: "Supply Chain Visibility"
  description: "Provides end-to-end supply chain visibility for enterprise customers."
  tags:
    - logistics
    - analytics
    - supply-chain
capability:
  exposes:
    - type: mcp
      namespace: scv
      port: 8080
      tools:
        - name: get-visibility
          description: "Get supply chain visibility."
          inputParameters:
            - name: account
              in: body
              type: string
            - name: range
              in: body
              type: string
          call: "analytics-api.get-scv"
          with:
            account: "{{account}}"
            range: "{{range}}"
          outputParameters:
            - name: in_transit
              type: number
              mapping: "$.inTransit"
            - name: delivered
              type: number
              mapping: "$.delivered"
            - name: exceptions
              type: number
              mapping: "$.exceptions"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://analytics.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_analytics_token"
      resources:
        - name: scv
          path: "/supply-chain/visibility"
          operations:
            - name: get-scv
              method: POST

Calculates applicable surcharges for a shipment.

naftiko: "0.5"
info:
  label: "Surcharge Calculator"
  description: "Calculates applicable surcharges for a shipment."
  tags:
    - pricing
    - logistics
    - billing
capability:
  exposes:
    - type: mcp
      namespace: surcharges
      port: 8080
      tools:
        - name: calc-surcharges
          description: "Calculate surcharges."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
            - name: service
              in: body
              type: string
          call: "rate-api.calc-surcharges"
          with:
            tracking: "{{tracking_number}}"
            service: "{{service}}"
          outputParameters:
            - name: fuel
              type: number
              mapping: "$.fuelSurcharge"
            - name: residential
              type: number
              mapping: "$.residential"
            - name: total
              type: number
              mapping: "$.totalSurcharges"
  consumes:
    - type: http
      namespace: rate-api
      baseUri: "https://onlinetools.ups.com/api/rating/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: surcharges
          path: "/surcharges"
          operations:
            - name: calc-surcharges
              method: POST

Finds optimal USPS injection point for UPS SurePost shipments.

naftiko: "0.5"
info:
  label: "SurePost USPS Injection Lookup"
  description: "Finds optimal USPS injection point for UPS SurePost shipments."
  tags:
    - logistics
    - ground
    - delivery
capability:
  exposes:
    - type: mcp
      namespace: surepost
      port: 8080
      tools:
        - name: get-injection
          description: "Get SurePost injection."
          inputParameters:
            - name: dest_zip
              in: body
              type: string
          call: "ops-api.get-injection"
          with:
            zip: "{{dest_zip}}"
          outputParameters:
            - name: facility
              type: string
              mapping: "$.injectionFacility"
            - name: delivery_date
              type: string
              mapping: "$.uspsDeliveryDate"
  consumes:
    - type: http
      namespace: ops-api
      baseUri: "https://operations.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_ops_token"
      resources:
        - name: injection
          path: "/surepost/injection"
          operations:
            - name: get-injection
              method: POST

Monitors temperature for UPS Temperature True shipments.

naftiko: "0.5"
info:
  label: "Temperature-Controlled Shipment Status"
  description: "Monitors temperature for UPS Temperature True shipments."
  tags:
    - logistics
    - cold-chain
    - tracking
capability:
  exposes:
    - type: mcp
      namespace: cold-chain
      port: 8080
      tools:
        - name: get-temp
          description: "Get temperature status."
          inputParameters:
            - name: tracking_number
              in: body
              type: string
          call: "tracking-api.get-temp"
          with:
            tracking: "{{tracking_number}}"
          outputParameters:
            - name: current
              type: number
              mapping: "$.currentTemp"
            - name: within_range
              type: boolean
              mapping: "$.withinRange"
  consumes:
    - type: http
      namespace: tracking-api
      baseUri: "https://onlinetools.ups.com/track/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_api_token"
      resources:
        - name: temp
          path: "/details/{{tracking}}/temperature"
          inputParameters:
            - name: tracking
              in: path
          operations:
            - name: get-temp
              method: GET

Orchestrates cross-border shipping by consolidating shipments, generating customs docs, and arranging brokerage.

naftiko: "0.5"
info:
  label: "Trade Direct Cross-Border Orchestrator"
  description: "Orchestrates cross-border shipping by consolidating shipments, generating customs docs, and arranging brokerage."
  tags:
    - international
    - customs
    - logistics
capability:
  exposes:
    - type: mcp
      namespace: trade-direct
      port: 8080
      tools:
        - name: process-cross-border
          description: "Process cross-border shipment."
          inputParameters:
            - name: shipment_ids
              in: body
              type: string
            - name: destination_country
              in: body
              type: string
          steps:
            - name: consolidate
              type: call
              call: "trade-api.consolidate"
              with:
                shipments: "{{shipment_ids}}"
                country: "{{destination_country}}"
            - name: generate-docs
              type: call
              call: "trade-api.generate-customs"
              with:
                consolidated_id: "{{consolidate.consolidated_id}}"
            - name: submit-broker
              type: call
              call: "trade-api.submit-broker"
              with:
                consolidated_id: "{{consolidate.consolidated_id}}"
                docs: "{{generate-docs.doc_ids}}"
  consumes:
    - type: http
      namespace: trade-api
      baseUri: "https://trade.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_trade_token"
      resources:
        - name: consolidate
          path: "/trade-direct/consolidate"
          operations:
            - name: consolidate
              method: POST
        - name: customs
          path: "/customs/generate"
          operations:
            - name: generate-customs
              method: POST
        - name: broker
          path: "/brokerage/submit"
          operations:
            - name: submit-broker
              method: POST

Retrieves GPS location and status of a feeder trailer.

naftiko: "0.5"
info:
  label: "Trailer GPS Tracking"
  description: "Retrieves GPS location and status of a feeder trailer."
  tags:
    - logistics
    - tracking
    - ground
capability:
  exposes:
    - type: mcp
      namespace: trailer
      port: 8080
      tools:
        - name: track-trailer
          description: "Track trailer."
          inputParameters:
            - name: trailer_id
              in: body
              type: string
          call: "fleet-api.get-trailer"
          with:
            trailer: "{{trailer_id}}"
          outputParameters:
            - name: location
              type: string
              mapping: "$.location"
            - name: status
              type: string
              mapping: "$.status"
            - name: eta
              type: string
              mapping: "$.eta"
  consumes:
    - type: http
      namespace: fleet-api
      baseUri: "https://fleet.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_fleet_token"
      resources:
        - name: trailers
          path: "/trailers/{{trailer}}/location"
          inputParameters:
            - name: trailer
              in: path
          operations:
            - name: get-trailer
              method: GET

Retrieves delivery vehicle status at a UPS center including availability and maintenance.

naftiko: "0.5"
info:
  label: "Vehicle Fleet Status"
  description: "Retrieves delivery vehicle status at a UPS center including availability and maintenance."
  tags:
    - fleet-management
    - logistics
    - tracking
capability:
  exposes:
    - type: mcp
      namespace: fleet
      port: 8080
      tools:
        - name: get-fleet
          description: "Get vehicle fleet status."
          inputParameters:
            - name: center
              in: body
              type: string
            - name: vehicle_type
              in: body
              type: string
          call: "fleet-api.get-status"
          with:
            center: "{{center}}"
            type: "{{vehicle_type}}"
          outputParameters:
            - name: available
              type: number
              mapping: "$.available"
            - name: in_service
              type: number
              mapping: "$.inService"
            - name: maintenance
              type: number
              mapping: "$.inMaintenance"
  consumes:
    - type: http
      namespace: fleet-api
      baseUri: "https://fleet.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_fleet_token"
      resources:
        - name: vehicles
          path: "/centers/{{center}}/vehicles"
          inputParameters:
            - name: center
              in: path
          operations:
            - name: get-status
              method: GET

Processes vehicle maintenance by creating work order, scheduling replacement, and notifying center.

naftiko: "0.5"
info:
  label: "Vehicle Maintenance Orchestrator"
  description: "Processes vehicle maintenance by creating work order, scheduling replacement, and notifying center."
  tags:
    - fleet-management
    - maintenance
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: vehicle-mx
      port: 8080
      tools:
        - name: process-mx
          description: "Process vehicle maintenance."
          inputParameters:
            - name: vehicle_id
              in: body
              type: string
            - name: issue
              in: body
              type: string
            - name: center
              in: body
              type: string
          steps:
            - name: create-wo
              type: call
              call: "fleet-api.create-wo"
              with:
                vehicle: "{{vehicle_id}}"
                issue: "{{issue}}"
            - name: replacement
              type: call
              call: "fleet-api.assign-replacement"
              with:
                center: "{{center}}"
            - name: notify
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "{{center_channel}}"
                text: "Vehicle {{vehicle_id}} down: {{issue}} | Replacement: {{replacement.vehicle}}"
  consumes:
    - type: http
      namespace: fleet-api
      baseUri: "https://fleet.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_fleet_token"
      resources:
        - name: wo
          path: "/maintenance/work-orders"
          operations:
            - name: create-wo
              method: POST
        - name: replacement
          path: "/vehicles/replacement"
          operations:
            - name: assign-replacement
              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/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Posts a vendor invoice to SAP S/4HANA AP and routes it for approval via ServiceNow.

naftiko: "0.5"
info:
  title: Vendor Invoice Processing
  version: "1.0"
  description: Posts a vendor invoice to SAP S/4HANA AP and routes it for approval via ServiceNow.
  tags: [finance, procurement, erp, itsm]
capability:
  exposes:
    type: mcp
    port: 8080
    tools:
      - name: process_vendor_invoice
        description: Creates an AP invoice in SAP and submits a ServiceNow approval request.
        inputParameters:
          - name: vendor_id
            in: body
            required: true
            type: string
          - name: invoice_number
            in: body
            required: true
            type: string
          - name: amount
            in: body
            required: true
            type: number
        steps:
          - name: post-invoice
            call:
              operationId: postVendorInvoice
              input:
                vendorId: "{{vendor_id}}"
                invoiceNumber: "{{invoice_number}}"
                amount: "{{amount}}"
          - name: create-approval
            call:
              operationId: createApprovalRequest
              input:
                short_description: "Approve invoice {{invoice_number}} for vendor {{vendor_id}} — ${{amount}}"
                category: finance
  consumes:
    - type: http
      baseUri: https://ups-sap.example.com/sap/opu/odata/sap
      authentication:
        type: basic
        username: $secrets.sap_user
        password: $secrets.sap_password
      resources:
        - path: /API_SUPPLIER_INVOICE_SRV/A_SupplierInvoice
          operations:
            - id: postVendorInvoice
              method: POST
    - type: http
      baseUri: https://ups.service-now.com/api/now/v1
      authentication:
        type: basic
        username: $secrets.snow_user
        password: $secrets.snow_password
      resources:
        - path: /table/sc_req_item
          operations:
            - id: createApprovalRequest
              method: POST

Retrieves package volume forecasts for capacity planning.

naftiko: "0.5"
info:
  label: "Volume Forecast Report"
  description: "Retrieves package volume forecasts for capacity planning."
  tags:
    - analytics
    - operations
    - forecasting
capability:
  exposes:
    - type: mcp
      namespace: forecast
      port: 8080
      tools:
        - name: get-forecast
          description: "Get volume forecast."
          inputParameters:
            - name: center
              in: body
              type: string
            - name: days_ahead
              in: body
              type: number
          call: "analytics-api.get-forecast"
          with:
            center: "{{center}}"
            days: "{{days_ahead}}"
          outputParameters:
            - name: volumes
              type: array
              mapping: "$.dailyVolumes"
            - name: peak_day
              type: string
              mapping: "$.peakDay"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://analytics.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_analytics_token"
      resources:
        - name: forecast
          path: "/volume/forecast"
          operations:
            - name: get-forecast
              method: POST

Assesses weather impact on UPS network, identifies affected hubs, and creates alerts.

naftiko: "0.5"
info:
  label: "Network Weather Impact Orchestrator"
  description: "Assesses weather impact on UPS network, identifies affected hubs, and creates alerts."
  tags:
    - operations
    - weather
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: weather
      port: 8080
      tools:
        - name: assess-weather
          description: "Assess weather impact."
          inputParameters:
            - name: region
              in: body
              type: string
            - name: hours
              in: body
              type: number
          steps:
            - name: forecast
              type: call
              call: "weather-api.get-forecast"
              with:
                region: "{{region}}"
            - name: affected
              type: call
              call: "ops-api.get-affected"
              with:
                region: "{{region}}"
            - name: incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Weather: {{forecast.severity}} in {{region}}"
                priority: "2"
            - name: notify
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "{{noc_channel}}"
                text: "Weather {{region}}: {{forecast.summary}} | {{affected.count}} hubs"
  consumes:
    - type: http
      namespace: weather-api
      baseUri: "https://weather.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_weather_token"
      resources:
        - name: forecast
          path: "/forecast/{{region}}"
          inputParameters:
            - name: region
              in: path
          operations:
            - name: get-forecast
              method: GET
    - type: http
      namespace: ops-api
      baseUri: "https://operations.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_ops_token"
      resources:
        - name: affected
          path: "/weather/affected"
          operations:
            - name: get-affected
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://ups.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Identifies weight discrepancies between declared and actual weights.

naftiko: "0.5"
info:
  label: "Weight Discrepancy Report"
  description: "Identifies weight discrepancies between declared and actual weights."
  tags:
    - billing
    - operations
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: weight-audit
      port: 8080
      tools:
        - name: get-discrepancies
          description: "Get weight discrepancies."
          inputParameters:
            - name: account
              in: body
              type: string
            - name: period
              in: body
              type: string
          call: "billing-api.get-weight"
          with:
            account: "{{account}}"
            period: "{{period}}"
          outputParameters:
            - name: discrepancies
              type: array
              mapping: "$.discrepancies"
            - name: adjustment
              type: number
              mapping: "$.totalAdjustment"
  consumes:
    - type: http
      namespace: billing-api
      baseUri: "https://billing.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_billing_token"
      resources:
        - name: weight
          path: "/weight-audit"
          operations:
            - name: get-weight
              method: POST

Checks WorldShip software integration status for customer locations.

naftiko: "0.5"
info:
  label: "WorldShip Integration Status"
  description: "Checks WorldShip software integration status for customer locations."
  tags:
    - technology
    - customer-service
    - shipping
capability:
  exposes:
    - type: mcp
      namespace: worldship
      port: 8080
      tools:
        - name: check-status
          description: "Check WorldShip status."
          inputParameters:
            - name: account
              in: body
              type: string
          call: "integration-api.get-status"
          with:
            account: "{{account}}"
          outputParameters:
            - name: version
              type: string
              mapping: "$.version"
            - name: connected
              type: boolean
              mapping: "$.isConnected"
  consumes:
    - type: http
      namespace: integration-api
      baseUri: "https://integration.ups.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.ups_integration_token"
      resources:
        - name: worldship
          path: "/worldship/{{account}}/status"
          inputParameters:
            - name: account
              in: path
          operations:
            - name: get-status
              method: GET