# Karrio

Self-hosted multi-carrier shipping API with an official MCP for rates, labels, and tracking.

Open-source shipping platform: connect carrier accounts, get live rates, buy labels, track packages, through a REST API, SDKs, and a dashboard. The Builder ships @karrio/mcp so an agent can quote, ship, and track from chat. Core is LGPL-3.0; an ee/ directory and Karrio Cloud are commercial.

Alternative to: ShipStation, Shippo, EasyPost

- Capabilities: adaptable, operable
- Vertical: ecommerce
- Shape: business-app
- Form factor: api
- Execution model: deterministic
- Provenance: human-written (recorded, never ranked)
- Repo: https://github.com/karrioapi/karrio (LGPL-3.0 (ee/ under Karrio Enterprise License)), 787 stars, last commit 2026-06-23
- Last activity: 2026-06-23
- Page: apps/karrioapi--karrio.html
- JSON: apps/karrioapi--karrio.json

## Use it when

- I ship from my own warehouse with several carriers and want one API and one dashboard I host
- my agent should quote rates and buy labels for orders without me opening a carrier portal

## Gotchas

- LGPL-3.0 core; ee/ features (multi-tenancy, workflows, SSO, audit log) are under a separate commercial license
- Quietest repo in the batch: last push 2026-06-23
- README: 'not designed as an out-of-the-box shipping software' beyond its API scope
- Carrier plugins live in a git submodule (community); run git submodule update --init

## Editions

- Community (LGPL-3.0): Free, open source
  - source: docker compose up
  - container: https://hub.docker.com/r/karrio/server
  - installable: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/karrioapi/karrio/HEAD/bin/deploy-hobby)"
- Karrio Cloud: Free, closed source
  - hosted: https://karrio.io
- Enterprise (ee/): Free, closed source

## Adaptable: make it yours

Effort: config-only (23 things to edit)

docker/.env (from .env.sample) sets the admin login, allowed hosts, database, email, worker mode, and whether all carrier plugins load. Carrier accounts are added in the dashboard or API, not files. The MCP needs KARRIO_API_URL and KARRIO_API_KEY. Writing a new carrier is code (SDK plugin), but the shipped community carriers cover the usual ones, so a standard deployment is config-only.

- Env vars: SECRET_KEY, ADMIN_EMAIL, ADMIN_PASSWORD, ALLOWED_HOSTS, CSRF_TRUSTED_ORIGINS, DATABASE_NAME, DEBUG_MODE, USE_HTTPS, ALLOW_SIGNUP, ADMIN_DASHBOARD, ENABLE_ALL_PLUGINS_BY_DEFAULT, DETACHED_WORKER, WORKER_IMMEDIATE_MODE, TRACKING_PULSE, EMAIL_HOST, EMAIL_HOST_USER, EMAIL_PORT, EMAIL_USE_TLS, OIDC_RSA_PRIVATE_KEY, KARRIO_API_URL, KARRIO_API_KEY
- Config files: docker/.env, docker/docker-compose.yml
- Prompt files: none
- Accounts you'll need: carrier accounts such as UPS, FedEx, DHL, or USPS; Karrio Cloud (hosted edition only)

## Operable: what an agent can drive

Operability: official. Interface: mcp at https://www.karrio.io/docs/developing/mcp-server (published by the builder, both).

### Reach (partial coverage)

- Get shipping rates: reachable. MCP tool get_shipping_rates
- Buy and void labels: reachable. MCP tools create_shipment, cancel_shipment
- Track packages: reachable. MCP tool track_package
- List carriers and connections: reachable. MCP tools list_carriers, list_carrier_connections
- Inspect shipments and API logs: reachable. MCP tools get_shipment, list_shipments, list_api_logs, get_api_log, list_tracing_records
- Schedule pickups: not reachable. docs: no pickup tools; REST API only
- Generate manifests and documents: not reachable. docs: no manifest or document tools
- Manage orders: not reachable. docs: no order tools
- Add carrier connections: not reachable. only list tools for carriers; connection setup is dashboard or REST
- Configure webhooks: not reachable. docs: no webhook tools

## Code stack

- Languages: Python, TypeScript
- Frameworks: Django, Next.js
- Package manager: pip
- Database: PostgreSQL
- Hosting target: Docker, Karrio Cloud

## Skills

contributor: Repo carries contributor-facing development skills, chiefly carrier-integration authoring, plus a carrier testing skill. [contributor tooling, not adopter-facing]
- Paths: .claude/skills/*/SKILL.md, carrier-testing/TESTING_SKILL.md

## Evidence and confidence

- formFactor: README: headless shipping API with dashboard (confidence 0.9)
- executionModel: no model at runtime (confidence 0.95)
- operability: README 'MCP Server' section and karrio.io docs under the Builder's domain; package @karrio/mcp (confidence 0.95)
- effort: .env.sample names 20 vars; docker compose documented in README (confidence 0.8)
- editions: README License section: LGPL-3.0 core, Karrio EE; karrio.io cloud (confidence 0.7)
- active: pushedAt 2026-06-23
- reach:  (confidence 0.85)

## Open questions

- Karrio Cloud pricing
- README config uses npx karrio-mcp while docs name @karrio/mcp; confirm the package

## Sources

- https://github.com/karrioapi/karrio (sourcing:ecommerce:github)
- https://www.karrio.io/docs/developing/mcp-server (analysis)
