Skip to main content

colleag-mcp-ups

An MCP server for UPS shipping, running against your own UPS account: rate shopping with negotiated prices, live tracking (with an interactive MCP Apps card), and landed-cost estimates for international shipments.

Built by Colleag.ai, a CargoBeacon AB company. Works with any MCP host — Colleag.ai, Claude Desktop, VS Code, or your own client.

Read-only by design (v0.1). This release quotes, tracks and estimates — it never books shipments or spends money. Side-effecting tools (booking, pickup scheduling) will follow once host-side human-in-the-loop confirmation conventions are settled; a host, not a connector, should own the "are you sure?" step for actions that cost money.

Tools

Tool What it does
get_rates Compare every available UPS service on a lane (or price one service_code) with negotiated account prices and estimated delivery dates
track_shipment Current status, delivery estimate and scan history for a tracking number. Ships an MCP Apps tracking card for hosts that support the io.modelcontextprotocol/ui extension
landed_cost Duties, VAT and brokerage estimate for an international shipment (per-commodity lines, incoterm-aware)

Setup

  1. Create an app on developer.ups.com ("I want to integrate UPS technology into my business") and enable the Rating, Tracking and Landed Cost products. This gives you a Client ID and Secret tied to your UPS account.
  2. Configure environment variables:
UPS_CLIENT_ID=...          # required
UPS_CLIENT_SECRET=...      # required, secret
UPS_ACCOUNT_NUMBER=...     # required — your 6-character shipper number
UPS_ENVIRONMENT=test       # 'test' (CIE sandbox, default) or 'production'
SHIP_FROM_NAME="Acme AB"   # optional defaults for the quoting origin
SHIP_FROM_ADDRESS="Industrigatan 1"
SHIP_FROM_CITY=Stockholm
SHIP_FROM_POSTAL_CODE="112 46"
SHIP_FROM_COUNTRY=SE
SHIP_FROM_PHONE="+468..."
  1. Run:
uv run colleag-mcp-ups            # stdio (default)
MCP_TRANSPORT=streamable-http uv run colleag-mcp-ups   # HTTP

Claude Desktop

{
  "mcpServers": {
    "ups": {
      "command": "uvx",
      "args": ["colleag-mcp-ups"],
      "env": {
        "UPS_CLIENT_ID": "...",
        "UPS_CLIENT_SECRET": "...",
        "UPS_ACCOUNT_NUMBER": "...",
        "UPS_ENVIRONMENT": "test"
      }
    }
  }
}

Try it without credentials

npx @modelcontextprotocol/inspector uv run colleag-mcp-ups lists the tools and the ui://colleag-mcp-ups/tracking-card resource; calls will return a structured configuration error until UPS credentials are set.

Notes

  • Access tokens are cached per expires_in (UPS cut lifetimes to 1 h in April 2026 — never hardcode refresh intervals).
  • Rate limits are not published by UPS; the server surfaces HTTP 429 as a structured UPS_RATE_LIMITED error for the host to back off on.
  • Tracking retention: UPS purges tracking data after ~120 days; keep your own shipment history if you need longer memory.
  • The MCP Apps tracking card is rendered by the host in a sandboxed iframe; hosts without the UI extension simply use the JSON tool result.

License

MIT — see LICENSE.

Release files for colleag-mcp-ups 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for colleag-mcp-ups 0.1.0
File Size Uploaded
colleag_mcp_ups-0.1.0.tar.gz 19.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for colleag-mcp-ups 0.1.0
File Interpreter ABI Platform
colleag_mcp_ups-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 41.7 kB

Release files / colleag_mcp_ups-0.1.0.tar.gz

Download URL colleag_mcp_ups-0.1.0.tar.gz
Size 19.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8b0ecffcb35b79c8331c3ccad99b94c243bd32ea2d97f17c4592274b4a97d4f7
BLAKE2b-256 checksum
How to use checksums
61a283fd00861ac64589e90bda90aa1075394cdf69dafa6d5f2d7fa1fec48abc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / colleag_mcp_ups-0.1.0-py3-none-any.whl

Download URL colleag_mcp_ups-0.1.0-py3-none-any.whl
Size 22.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b5d71829bdf8da82880d23f548c08813ed8ab3e4f99b8bc95354b3cd0c4b7ed6
BLAKE2b-256 checksum
How to use checksums
dc37f4c8b625de773e886ae925082239bb639d2a831c7eaf4f5ab7b567b8dd0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page