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.
- 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
- 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
Last activity Jun 23, 2026. Fit: adaptable 2, operable 2.
Editions
Community (LGPL-3.0) · Free open source
- Clone
git clone https://github.com/karrioapi/karrio - ImageContainer
- Install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/karrioapi/karrio/HEAD/bin/deploy-hobby)"
Karrio Cloud · Free closed source
- HostedOpen the hosted app
Enterprise (ee/) · Free closed source
No distribution recorded.
Adaptable: what is yours to change
Make it yours
Config only23 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_KEYADMIN_EMAILADMIN_PASSWORDALLOWED_HOSTSCSRF_TRUSTED_ORIGINSDATABASE_NAMEDEBUG_MODEUSE_HTTPSALLOW_SIGNUPADMIN_DASHBOARDENABLE_ALL_PLUGINS_BY_DEFAULTDETACHED_WORKERWORKER_IMMEDIATE_MODETRACKING_PULSEEMAIL_HOSTEMAIL_HOST_USEREMAIL_PORTEMAIL_USE_TLSOIDC_RSA_PRIVATE_KEYKARRIO_API_URLKARRIO_API_KEY- Config files
docker/.envdocker/docker-compose.yml- Prompt files
- none
- Accounts you need
- carrier accounts such as UPS, FedEx, DHL, or USPSKarrio Cloud (hosted edition only)
Source
- github.com/karrioapi/karrio
- LGPL-3.0 (ee/ under Karrio Enterprise License) license
- Last commit Jun 23, 2026
- 787 stars
Operable: what an agent can drive
Interface
OfficialMCP serverpublished by the builderremote or local
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
Reach
Partial coverage. 5 of 10 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| 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
- PythonTypeScript
- Frameworks
- DjangoNext.js
- Package manager
- pip
- Database
- PostgreSQL
- Hosting target
- DockerKarrio Cloud
- Built
- Human-written (recorded, never ranked)
Skills
Repo carries contributor-facing development skills, chiefly carrier-integration authoring, plus a carrier testing skill. [contributor tooling, not adopter-facing]
- Kind
- contributor
- Paths
.claude/skills/*/SKILL.mdcarrier-testing/TESTING_SKILL.md
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: headless shipping API with dashboard | 90% |
| executionModel | no model at runtime | 95% |
| operability | README 'MCP Server' section and karrio.io docs under the Builder's domain; package @karrio/mcp | 95% |
| effort | .env.sample names 20 vars; docker compose documented in README | 80% |
| editions | README License section: LGPL-3.0 core, Karrio EE; karrio.io cloud | 70% |
| active | pushedAt 2026-06-23 | – |
| reach | 85% |
Open questions
- Karrio Cloud pricing
- README config uses npx karrio-mcp while docs name @karrio/mcp; confirm the package
Sources
- github.com/karrioapi/karrio sourcing:ecommerce:github
- www.karrio.io/docs/developing/mcp-server analysis