Safe v1 CLI and MCP server for confirmed TikTok Shop Seller APIs.
This package intentionally exposes a conservative surface based only on official TikTok Shop Partner Center docs: auth readiness, token exchange and refresh, shop discovery, read-only orders, products, inventory search, fulfillment packages, and warehouses. Inventory update is documented as confirmed but remains deferred until idempotency, retry, and operator-confirmation safety are designed.
Configure
Use credentials obtained through official TikTok Shop Partner Center flows.
export TIKTOK_SHOP_APP_KEY="<from Partner Center>"
export TIKTOK_SHOP_APP_SECRET="<from Partner Center>"
export TIKTOK_SHOP_ACCESS_TOKEN="<from official token exchange>"
export TIKTOK_SHOP_REFRESH_TOKEN="<from official token exchange>"
export TIKTOK_SHOP_SHOP_CIPHER="<from shops info>"
Optional overrides:
export TIKTOK_SHOP_CONFIG="$HOME/.config/tiktok-shop-pp-cli/config.toml"
export TIKTOK_SHOP_BASE_URL="https://open-api.tiktokglobalshop.com"
export TIKTOK_SHOP_AUTH_BASE_URL="https://auth.tiktok-shops.com"
Examples
tiktok-shop-pp-cli doctor --json
tiktok-shop-pp-cli auth status --json
tiktok-shop-pp-cli shops info --dry-run --json
tiktok-shop-pp-cli orders list --limit 20 --json
tiktok-shop-pp-cli products get <product-id> --json
tiktok-shop-pp-cli inventory get <sku-id> --json
tiktok-shop-pp-cli fulfillment warehouses --json
tiktok-shop-pp-cli inventory update --json
--dry-run builds the request shape without sending it and redacts app key, app secret, access token, refresh token, shop cipher, auth code, and generated signature material from output.
Safety Boundaries
- Orders, fulfillment data, buyer IDs, and returns/refunds data may contain PII.
- Safe v1 does not implement inventory mutation, product mutation, returns/refunds, shipping label mutation, finance, or webhook registration.
- Do not retry mutations. The only implemented network calls are read operations and official token exchange/refresh calls.
- Do not add endpoints from SDK guesses, blog posts, copied Postman collections, or unofficial examples.
MCP
Register the MCP server with Claude Code:
claude mcp add tiktok-shop-pp-mcp -- tiktok-shop-pp-mcp
The MCP server exposes the same safe v1 read surface plus inventory_update_status, which explains why stock mutation is deferred.