Connectors · Logistics & field service
UPS MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to UPS and the rest of your systems. It gives your agent 82 UPS actions (42 reads, 29 writes and 11 that wait for a confirmation) and holds the UPS credential itself, so the agent never does. It paces UPS's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "ups.customs_detail.fields.get", intent: "check which UPS account is connected"}# Get Customs Requirements · read · 1 upstream call- 82actionsin one signed file
- 42readlook, never change
- 29writecreate and update
- 11wait for a yesdestructive, confirmed first
Set up
Connect UPS in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect UPS.
OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.
client_idUPS app Client ID (developer.ups.com > Apps > your app > Credentials)client_secretUPS app Client Secret
account { op: "connections.requirements", service: "ups" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "ups.customs_detail.fields.get" }# get customs requirements · read · 1 upstream callcheck { action: "ups.shipping.ship", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
UPS at a glance
- Sign-in
- OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.
- You provide
client_idclient_secret- Limits we pace to
- 10 calls a second, per connection
- API covered
- UPS REST APIs (onlinetools.ups.com/api), OpenAPI from github.com/UPS-API/api-documentation
onlinetools.ups.com - Built from
- UPS's documentation, read 23 October 2026GitHub
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 40 of 42 reads, for up to an hour; a write clears what it affects
- Shared entities
- 1, so ask can line UPS up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in UPS.
82 actions in 26 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 42readlook, never change
- 29writecreate and update
- 11destructivewait for a confirmation
Forwarding
2214 read · 6 write · 2 destructive
Get Order Details · Get Accessorials · Get Airports · Get Cities
Delivery intercept
72 read · 4 write · 1 destructive
Get charges by inquiry type · Submit a non access point redirect request · Request for a new delivery date · Submit a return to sender request
Pickup
64 read · 1 write · 1 destructive
Pickup Creation · Pickup Rate · Pickup Get Service Center Facilities · Pickup Get Political Division1 List
Trade direct
51 read · 1 write · 3 destructive
Genereate Documents and Labels for LTL Shipments and Closeout · Closeout a Master Shipment · Delete small package shipment · Delete Less Than Truckload (LTL) child shipment
Dangerous goods
32 read · 1 write · 0 destructive
Acceptance Audit Pre-check · Chemical Reference Data · Pre-Notification
Delivery pins
32 read · 1 write · 0 destructive
Get Pins for the list of Tracking Numbers · Generate Token · Get Pin by Token
Description guidance
30 read · 3 write · 0 destructive
Allows the user to provide feedback on a specific question of the overall session. · Initiates an interactive description session for a product. · Continues refinement of product description and HTS code via questions and answers.
Paperless
30 read · 2 write · 1 destructive
Paperless Document Push Image · Upload Paperless Document · Delete Paperless Document
18 more areas · 30 actions
- SCS 3
- Shipping 3
- Smart pickup 3
- Tracking 3
- World ease 3
- Customs detail 2
- Pickup preferences 2
- Address validation 1
- Commerce guard 1
- Delivery defense 1
- Export assure 1
- Global checkout 1
- Landed cost 1
- Locator 1
- Quantum view 1
- Rating 1
- Time in transit 1
- Track alert 1
Top actions
The UPS API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 2 of UPS's 2 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
ups.shipping.shipShipment | Shipping: Shipment | write | commerce.shipment.create28 connectors |
ups.rating.rateRating | Rating: Rating | read | commerce.shipping_rate.calculate6 connectors |
ups.forwarding.orders.searchGet Order Details | Forwarding: Get Order Details | read | this connector |
ups.pickup.ratePickup Rate | Pickup: Pickup Rate | read | this connector |
ups.pickup.createPickup Creation | Pickup: Pickup Creation | write | this connector |
ups.locator.searchLocator | Locator: Locator | read | this connector |
ups.paperless.uploadUpload Paperless Document | Upload Paperless Document | write | this connector |
ups.landed_cost.quoteLanded Cost Quote API | Landed Cost Quote API | read | this connector |
ups.smart_pickup.viewView Pickup Related Details | View Pickup Related Details | read | this connector |
ups.customs_detail.saveValidate and/or Submit Customs Information | Validate and/or Submit Customs Information | write | this connector |
ups.quantum_view.eventsQuantum View | QuantumView: Quantum View | read | this connector |
ups.paperless.deleteDelete Paperless Document | Delete Paperless Document | destructive | this connector |
Try it
Prompts to paste into Claude.
Each one names the UPS actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which UPS orders from the last seven days are still unfulfilled?
calls
ups.forwarding.orders.search - Writewrite
Shipment in UPS. Show me exactly what you will send before you save it.
calls
ups.shipping.ship
Governance for UPS
Destructive actions wait for a yes.
11 UPS actions are destructive. These are all of them:
- Delete Paperless Document
ups.paperless.delete - Pickup Cancel
ups.pickup.cancel - Void Shipment
ups.shipping.void - Request cancellation of a prior intercept request
ups.delivery_intercept.cancel - Delete the child shipment
ups.world_ease.child_shipments.delete - Deletes the master shipment
ups.world_ease.master_shipments.delete - Delete small package shipment
ups.trade_direct.child_shipments.delete - Delete master shipment
ups.trade_direct.master_shipments.delete - Delete Less Than Truckload (LTL) child shipment
ups.trade_direct.ltl_child_shipments.delete - Cancel Order
ups.forwarding.orders.cancel - Cancel Shipment
ups.forwarding.shipments.cancel
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete Paperless Document?
intent: the user asked me to delete Paperless Document
account { op: "keys.create", name: "ups-agent", allowed_actions: ["ups.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "ups.paperless.delete", approver: "[email protected]" }, { match: "ups.pickup.cancel", approver: "[email protected]" }, { match: "ups.shipping.void", approver: "[email protected]" } ]}Cost
What UPS costs on actionlake.
Every UPS action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call UPS refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 82 UPS actions
- 82actions pageeach page of a long list is one call
- 40reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every UPS action.
82 actions by area: the id your agent calls, what it does, and its effect.
Forwarding22
ups.forwarding.accessorials.listGet Accessorialsreadups.forwarding.airports.listGet Airportsreadups.forwarding.cities.listGet Citiesreadups.forwarding.countries.listGet Countriesreadups.forwarding.currencies.listGet Currenciesreadups.forwarding.labels.printCreate Labelreadups.forwarding.manifests.printCreate Manifestreadups.forwarding.orders.cancelCancel Orderdestructiveups.forwarding.orders.createCreate Orderwriteups.forwarding.orders.searchGet Order Detailsreadups.forwarding.orders.set_dateSet Order Datewriteups.forwarding.payment_types.listGet Payment Typesreadups.forwarding.quotes.bookBook Quotewriteups.forwarding.quotes.createCreate Quotewriteups.forwarding.quotes.getSearch Quotesreadups.forwarding.service_types.listGet Service Typesreadups.forwarding.shipments.cancelCancel Shipmentdestructiveups.forwarding.shipments.createShipwriteups.forwarding.shipments.getGet Shipment Detailsreadups.forwarding.shipments.milestonesTrack Shipmentsreadups.forwarding.shipments.rateRate Shipmentreadups.forwarding.shipments.submitSubmit Order Shipmentswrite
Delivery intercept7
ups.delivery_intercept.cancelRequest cancellation of a prior intercept requestdestructiveups.delivery_intercept.chargesGet charges by inquiry typereadups.delivery_intercept.eligibilityGet eligibility optionsreadups.delivery_intercept.redirect_addressSubmit a non access point redirect requestwriteups.delivery_intercept.rescheduleRequest for a new delivery datewriteups.delivery_intercept.return_to_senderSubmit a return to sender requestwriteups.delivery_intercept.will_callRequest to hold the package at a UPS facility for pickupwrite
Pickup6
ups.pickup.cancelPickup Canceldestructiveups.pickup.createPickup Creationwriteups.pickup.pending_statusPickup Pending Statusreadups.pickup.political_divisions.listPickup Get Political Division1 Listreadups.pickup.ratePickup Ratereadups.pickup.service_center_facilitiesPickup Get Service Center Facilitiesread
Trade direct5
ups.trade_direct.child_shipments.deleteDelete small package shipmentdestructiveups.trade_direct.documentsGenereate Documents and Labels for LTL Shipments and Closeoutreadups.trade_direct.ltl_child_shipments.deleteDelete Less Than Truckload (LTL) child shipmentdestructiveups.trade_direct.master_shipments.closeoutCloseout a Master Shipmentwriteups.trade_direct.master_shipments.deleteDelete master shipmentdestructive
Dangerous goods3
ups.dangerous_goods.acceptance_audit_precheckAcceptance Audit Pre-checkreadups.dangerous_goods.chemical_reference_dataChemical Reference Datareadups.dangerous_goods.pre_notificationPre-Notificationwrite
Delivery pins3
ups.delivery_pins.retrieveGet Pins for the list of Tracking Numbersreadups.delivery_pins.token.createGenerate Tokenwriteups.delivery_pins.token.getGet Pin by Tokenread
Description guidance3
ups.description_guidance.answerContinues refinement of product description and HTS code via questions and answers.writeups.description_guidance.feedbackAllows the user to provide feedback on a specific question of the overall session.writeups.description_guidance.startInitiates an interactive description session for a product.write
Paperless3
ups.paperless.deleteDelete Paperless Documentdestructiveups.paperless.push_to_image_repositoryPaperless Document Push Imagewriteups.paperless.uploadUpload Paperless Documentwrite
SCS3
ups.scs.inventory.ingestIngest inventory datawriteups.scs.logistics.ingestIngest logistics datawriteups.scs.transportation.ingestIngest partner shipments data in bulkwrite
Shipping3
ups.shipping.label_recoveryLabel Recoveryreadups.shipping.shipShipmentwriteups.shipping.voidVoid Shipmentdestructive
Smart pickup3
ups.smart_pickup.triggerManage account SmartPickupTrigger and NotificationIndicatorwriteups.smart_pickup.updateUpdate Account Pickup Detailswriteups.smart_pickup.viewView Pickup Related Detailsread
Tracking3
ups.tracking.detailsTrackingreadups.tracking.reference_detailsTrack by Reference Numberreadups.tracking.shipment_detailsTrack Each Package in Shipmentread
World ease3
ups.world_ease.child_shipments.deleteDelete the child shipmentdestructiveups.world_ease.master_shipments.closeoutClose Out Shipmentwriteups.world_ease.master_shipments.deleteDeletes the master shipmentdestructive
Customs detail2
ups.customs_detail.fields.getGet Customs Requirementsreadups.customs_detail.saveValidate and/or Submit Customs Informationwrite
Pickup preferences2
ups.pickup_preferences.getGet shipper account pickup preferences for user UUID.readups.pickup_preferences.updateAdd or update account level pickup preferences for user UUID.write
Address validation1
ups.address_validation.validateAddress Validationread
Commerce guard1
ups.commerce_guard.verifyVerify chargeback riskread
Delivery defense1
ups.delivery_defense.address_scoreGet Verified Address Scoreread
Export assure1
ups.export_assure.evaluateSubmit shipment details for compliance guidanceread
Global checkout1
ups.global_checkout.quotereturns a guaranteed landed cost quoteread
Landed cost1
ups.landed_cost.quoteLanded Cost Quote APIread
Locator1
ups.locator.searchLocatorread
Quantum view1
ups.quantum_view.eventsQuantum Viewread
Rating1
ups.rating.rateRatingread
Time in transit1
ups.time_in_transit.getTimeInTransitread
Track alert1
ups.track_alert.subscriptions.createAPI to create subscriptions by tracking numbers.write
Questions
The UPS MCP server, answered.
Is there a UPS MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 82 UPS actions across forwarding, delivery intercept, pickup and trade direct, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by UPS.
What do I need to connect UPS?
UPS app Client ID (developer.ups.com > Apps > your app > Credentials) and UPS app Client Secret. The free call account { op: "connections.requirements", service: "ups" } lists exactly what to paste.
Can an AI agent delete or change things in UPS?
Only if its key allows it, and only with an explicit confirmation. 11 UPS actions are destructive, including delete Paperless Document, pickup Cancel and void Shipment. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my UPS API limit?
actionlake paces every call to the limits in the UPS service file: 10 calls a second per connection. Repeated reads are answered from cache (40 UPS actions can be), which never reaches UPS.
What does a UPS action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (82 UPS actions page). Cache hits, searches, dry runs and calls UPS refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which UPS API does it cover?
The UPS REST APIs (onlinetools.ups.com/api), OpenAPI from github.com/UPS-API/api-documentation at onlinetools.ups.com. It is built from UPS's documentation as read on 23 October 2026. 82 actions in 26 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my UPS data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your UPS credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent UPS today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.