B2C CLI, MCP and Tooling SDK

[!NOTE]
This project is Generally Available (GA). Please provide feedback via GitHub issues.
Salesforce B2C Commerce Command Line Tools.
[!TIP]
Just looking for the B2C CLI or MCP install instructions? Visit the documentation site at https://salesforcecommercecloud.github.io/b2c-developer-tooling/ for the latest install guide and CLI reference.
Packages
This is a pnpm monorepo with the following packages:
| Package | Description |
|---|
b2c-cli | Command line interface built with oclif |
b2c-tooling-sdk | SDK/library for B2C Commerce operations; supports the CLI and can be used standalone |
b2c-dx-mcp | MCP server for B2C Commerce developer experience tools |
Development
Prerequisites
- Node.js >= 22.16.0
- pnpm 10.17.1+
Setup
pnpm install
Running the CLI in Development Mode
pnpm start
# or directly:
pnpm --filter @salesforce/b2c-cli run dev
# or using convenience script:
./cli
The dev mode uses Node.js --conditions=development to resolve TypeScript source files directly from @salesforce/b2c-tooling-sdk without needing to build first.
Building
# Build all packages
pnpm -r run build
# Build individual packages
pnpm --filter @salesforce/b2c-cli run build
pnpm --filter @salesforce/b2c-tooling-sdk run build
Testing
Tests use Mocha + Chai with c8 for coverage. HTTP mocking uses MSW.
# Run all tests with coverage (also runs linter after tests)
pnpm test
# Run tests for a specific package
pnpm --filter @salesforce/b2c-tooling-sdk run test
# Run tests without coverage (faster)
pnpm --filter @salesforce/b2c-tooling-sdk run test:unit
# Watch mode for TDD
pnpm --filter @salesforce/b2c-tooling-sdk run test:watch
# Run a specific test file
cd packages/b2c-tooling-sdk
pnpm mocha "test/clients/webdav.test.ts"
# Run tests matching a pattern
pnpm mocha --grep "uploads a file" "test/**/*.test.ts"
Coverage
Coverage reports are generated in each package's coverage/ directory:
coverage/index.html - HTML report
coverage/lcov.info - LCOV format for CI integration
The SDK package has a 5% coverage threshold that will fail the build if not met.
Linting
# Run linter only
pnpm --filter @salesforce/b2c-cli run lint
pnpm --filter @salesforce/b2c-tooling-sdk run lint
Code Formatting
This project uses Prettier for code formatting.
# Format all packages
pnpm -r run format
# Check formatting without modifying files
pnpm -r run format:check
Documentation
Documentation is built using TypeDoc for API reference generation and VitePress for the documentation site.
Structure
docs/ - VitePress documentation source
guide/ - User guide and getting started
cli/ - CLI command reference
api/ - Generated API documentation (do not edit manually)
typedoc.json - TypeDoc configuration with entry points for SDK modules
Development Server
pnpm run docs:dev
This runs typedoc to generate API docs, then starts VitePress in development mode with hot reload.
Building Documentation
pnpm run docs:build
Previewing Built Documentation
pnpm run docs:preview
Deployed Documentation
The documentation site serves two versions:
- Stable (root URL) — built from the most recent release tag, updated on every stable release
- Dev (
/dev/) — built from the main branch, updated on every push to main
Doc-only releases (without bumping CLI/SDK/MCP versions) are possible by creating a changeset targeting @salesforce/b2c-dx-docs. See PUBLISHING.md for details.
API Documentation
API documentation is auto-generated from JSDoc comments in the @salesforce/b2c-tooling-sdk package. The entry points are defined in typedoc.json:
See the documentation site for the generated API reference.