Wraps the ShipSaving logistics REST API for multi-carrier shipping operations through Claude. You get rate comparison across carriers with automatic cheapest/fastest flagging, label generation and voiding, shipment tracking, and order management for connected stores like Shopify. Also exposes address validation, package templates, wallet balance, and shipping analytics. Useful if you're running an e-commerce operation and want to handle label printing, order fulfillment, and carrier selection conversationally instead of clicking through a dashboard. Requires a ShipSaving app key from their API settings. Covers the full shipment lifecycle from rate quotes through tracking, plus bulk operations for processing multiple orders at once.
An MCP (Model Context Protocol) server that wraps the ShipSaving logistics REST API, enabling AI assistants like Claude to perform shipping operations through natural language.
claude mcp add shipsaving \
-e SHIPSAVING_APP_KEY=sk_your_app_key \
-- npx -y shipsaving-mcp
Edit your config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"shipsaving": {
"command": "npx",
"args": ["-y", "shipsaving-mcp"],
"env": {
"SHIPSAVING_APP_KEY": "sk_your_app_key"
}
}
}
}
Restart Claude Desktop after saving.
claude mcp list
# shipsaving should show status: Connected
| Tool | Description |
|---|---|
get_shipping_rates | Compare rates across multiple carriers, marks cheapest & fastest |
create_draft_shipment | Create a draft shipment (no payment yet) |
pay_shipment | Pay for shipment and generate label |
void_label | Void/refund an unused label |
search_shipments | Search shipments by various criteria |
get_shipment_detail | Get detailed shipment information |
track_shipment | Track package by tracking number |
get_insurance_rates | Query shipping insurance rates |
| Tool | Description |
|---|---|
search_orders | Search orders by status, store, date, keywords |
get_order_detail | Get order details |
create_order | Manually create an order |
buy_label_from_order | Purchase a label for an existing order |
mark_order_shipped | Mark order as shipped |
cancel_order | Cancel an order |
sync_store_orders | Trigger store order sync |
get_order_tags | List all order tags |
| Tool | Description |
|---|---|
list_addresses | Query address book entries |
create_address | Add a new address |
update_address | Update an existing address |
validate_address | Validate address deliverability |
| Tool | Description |
|---|---|
list_packages | List saved package templates |
list_predefined_packages | List carrier-provided package types |
create_package | Create a reusable package template |
| Tool | Description |
|---|---|
list_carriers | List connected carrier accounts |
get_service_levels | Query available service levels per carrier |
list_stores | List connected e-commerce stores |
| Tool | Description |
|---|---|
get_total_savings | View total savings with ShipSaving |
get_shipping_analysis | Analyze shipping data over time |
get_wallet_info | Query wallet balance |
get_transaction_history | Query transaction records |
Compare shipping rates:
Compare rates from ZIP 90001 to 10001 for a 10x8x6 inch, 2 lb package
Ship a package:
Ship from John Smith, 123 Main St, Los Angeles, CA 90001
to Jane Doe, 456 Park Ave, New York, NY 10001
Package: 10x8x6 inches, 2 lbs, choose cheapest option
Bulk label printing:
Sync my Shopify orders, then print labels for all pending orders
using 6x6x6 inch boxes, 1 lb each, cheapest carrier, no insurance
Track a package:
Track package 1Z999AA10123456784
| Variable | Required | Default | Description |
|---|---|---|---|
SHIPSAVING_APP_KEY | Yes | — | ShipSaving App Key (sk_ prefix) |
SHIPSAVING_API_BASE_URL | No | https://app-gateway.shipsaving.com | API base URL |
SHIPSAVING_TIMEOUT_MS | No | 60000 | Request timeout in milliseconds |
SHIPSAVING_LOG_FILE | No | — | Path to log file (logs go to stderr by default) |
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Debug with MCP Inspector
SHIPSAVING_API_BASE_URL=https://app-gateway.shipsaving.com \
SHIPSAVING_APP_KEY=sk_your_app_key \
npx @modelcontextprotocol/inspector node dist/index.js
"command not found" — Install Node.js 18+: nodejs.org
"Failed to connect" — Try running the server manually to see error output:
SHIPSAVING_APP_KEY=sk_your_app_key npx -y shipsaving-mcp
If it hangs (waiting for input), the server started successfully. If it errors immediately, you'll see the issue.
To clear the npx cache:
rm -rf ~/.npm/_npx
MIT
SHIPSAVING_APP_KEY*secretShipSaving API key (starts with sk_)
SHIPSAVING_API_BASE_URLdefault: https://app-gateway.shipsaving.comAPI base URL