UPS Capabilities
Naftiko 0.5 capability definitions for UPS - 100 capabilities showing integration workflows and service orchestrations.
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