Skip to main content
Glama

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)

Related MCP server: Shipi MCP

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.

Available Tools

3 tools
get_ratesA

Get live UPS shipping quotes for a lane. Compares every available service with negotiated account prices and estimated delivery dates, or prices one specific service_code (07 Worldwide Express, 65 Saver, 08 Expedited, 11 Standard). Quote only — nothing is booked. Origin defaults to the configured ship-from address.

Inputs: to_city (required), to_name (required), weight_kg (required), to_country_code (required), +7 more. Returns: result

landed_costA

Estimate import duties, VAT and brokerage fees for an international shipment (what the receiver — or the shipper, under DDP — pays at import). One commodity line per product; an HS code improves accuracy. Not applicable to intra-EU shipments.

Inputs: commodities (required), import_country (required), currency, incoterm, +1 more. Returns: result

track_shipmentA

Track a UPS shipment by tracking number (e.g. 1Z...): current status, scheduled/actual delivery date, and recent scan events. Note: UPS retains tracking data for ~120 days.

Inputs: tracking_number (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.3/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool targets a completely distinct UPS workflow: tracking an existing shipment, getting carrier rates, and estimating import costs. There is no overlap or realistic chance of selecting the wrong tool for a task.

    Naming Consistency4/5

    track_shipment and get_rates follow a clear verb_noun pattern in snake_case. landed_cost is still readable and consistent in style, but it breaks the imperative verb pattern, making it a minor deviation.

    Tool Count5/5

    Three tools is a well-scoped count for this focused UPS visibility and cost-estimation server. Each tool covers a meaningful capability with no redundant entries.

    Completeness4/5

    The set covers the apparent purpose of tracking and cost estimation well: track an existing shipment, compare rates, and estimate landed cost. Shipping execution operations like creating or canceling a label are absent, but that seems outside the server's deliberate scope.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Manage shipping workflows by creating labels, tracking packages, and scheduling carrier pickups. Compare live rates from major carriers like FedEx and UPS to optimize costs for every shipment. Organize logistical operations with a centralized address book and detailed shipping analytics.
      18
      9 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to manage global shipping operations, including rate comparison, shipment creation, label purchasing, tracking, pickup scheduling, address validation, billing, and analytics, via natural language.
      25 npm
      MIT