Install AI Tools

B2C Commerce tools, documentation, and skills for your assistant.

Claude

Install the plugin Recommended

bash
claude plugin marketplace add SalesforceCommerceCloud/b2c-developer-tooling
claude plugin install b2c-dx-mcp@b2c-developer-tooling --scope project

Start a new Claude Code session in your project. Use --scope user instead for all projects.

Manual MCP setup

From your project directory:

bash
claude mcp add --transport stdio --scope project b2c-dx-mcp -- npx -y @salesforce/b2c-dx-mcp@latest

Start a new session. Use --scope user instead for all projects. See Claude Code MCP setup.

Claude Desktop setup

Codex

Install the plugin Recommended

bash
codex plugin marketplace add SalesforceCommerceCloud/b2c-developer-tooling
codex plugin add b2c-dx-mcp@b2c-developer-tooling

Start a new Codex session in your project. This setup also works with the Codex IDE extension and the ChatGPT Work desktop app.

Manual MCP setup
bash
codex mcp add b2c-dx-mcp -- npx -y @salesforce/b2c-dx-mcp@latest

Or add this to ~/.codex/config.toml (or $CODEX_HOME/config.toml if customized):

toml
[mcp_servers.b2c-dx-mcp]
command = "npx"
args = ["-y", "@salesforce/b2c-dx-mcp@latest"]

Start a new session. See Codex MCP configuration.

ChatGPT online setup

VS Code

Install the plugin Recommended

  1. Open the Command Palette (Cmd/Ctrl+Shift+P) and run Chat: Install Plugin from Source.
  2. Enter SalesforceCommerceCloud/b2c-developer-tooling.
  3. Select b2c-dx-mcp and follow the installation prompts.
  4. Start a new chat in GitHub Copilot.
Manual MCP setup

Add this to .vscode/mcp.json in your workspace:

json
{
  "servers": {
    "b2c-dx-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@salesforce/b2c-dx-mcp@latest"]
    }
  }
}

See VS Code MCP setup.

Copilot CLI setup

Cursor

Reload the MCP server in Cursor after installation.

Manual MCP setup

Add this to .cursor/mcp.json in your project:

json
{
  "mcpServers": {
    "b2c-dx-mcp": {
      "command": "npx",
      "args": ["-y", "@salesforce/b2c-dx-mcp@latest"]
    }
  }
}

For all projects, use ~/.cursor/mcp.json instead.

See Cursor's MCP documentation.

OpenCode

Add this to opencode.json in your project:

json
{
  "mcp": {
    "b2c-dx-mcp": {
      "type": "local",
      "command": ["npx", "-y", "@salesforce/b2c-dx-mcp@latest"],
      "enabled": true
    }
  }
}

Restart OpenCode. For all projects, use ~/.config/opencode/opencode.json. See OpenCode MCP setup.

Gemini

From your project directory, run:

bash
gemini mcp add --scope project b2c-dx-mcp -- npx -y @salesforce/b2c-dx-mcp@latest

Start a new Gemini CLI session. Use --scope user instead for all projects. See Gemini CLI MCP setup.

No separate skills plugins needed.

Other clients and manual setup →
Skip to content
View as Markdown
View as Markdown

@salesforce/b2c-tooling-sdk / config / DwJsonConfig

Interface: DwJsonConfig

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:32

Configuration structure for dw.json after key normalization.

All keys are normalized to camelCase by normalizeConfigKeys() when loading. Both camelCase and kebab-case are accepted in the raw file; the interface documents the canonical (post-normalization) field names.

Legacy aliases (e.g., server, secureHostname, passphrase, selfsigned, cloudOrigin, scapi-shortcode) are also accepted and mapped to their canonical names during normalization.

Extended by

Properties

accountManagerHost?

optional accountManagerHost: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:72

Account Manager hostname for OAuth


active?

optional active: boolean

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:36

Whether this config is active (for multi-config files)


apiBackend?

optional apiBackend: "ocapi" | "scapi" | "auto"

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:118

API backend preference for operations that support both OCAPI and SCAPI


assetQuery?

optional assetQuery: string[]

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:106

JSON dot-paths for asset extraction during content library parsing (defaults to ['image.path'])


authMethods?

optional authMethods: AuthMethod[]

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:62

Allowed authentication methods in priority order


autoUpload?

optional autoUpload: boolean

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:88

Whether to auto-start code upload/sync in IDE extensions


cartridges?

optional cartridges: string | string[]

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:90

Cartridge names to include in deploy/watch (string with colon/comma separators, or array)


catalogs?

optional catalogs: string[]

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:96

Catalog IDs for WebDAV browsing


certificate?

optional certificate: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:112

Path to PKCS12 certificate file for mTLS (two-factor auth)


certificatePassphrase?

optional certificatePassphrase: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:114

Passphrase for the certificate


cipHost?

optional cipHost: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:108

Optional CIP analytics host override


clientId?

optional clientId: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:46

OAuth client ID


clientSecret?

optional clientSecret: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:48

OAuth client secret


codeVersion?

optional codeVersion: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:40

Code version for deployments


contentLibrary?

optional contentLibrary: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:94

Default content library ID for content export/list commands


docsCategories?

optional docsCategories: string[]

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:110

Documentation categories to expose (allowlist); dw.json key docs-categories


hostname?

optional hostname: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:38

B2C instance hostname


importSetExclude?

optional importSetExclude: string[]

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:92

Directory paths to exclude recursively from import-set source discovery


jwtCertPath?

optional jwtCertPath: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:122

Path to JWT certificate file (cert.pem) for JWT authentication


jwtKeyPath?

optional jwtKeyPath: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:124

Path to JWT private key file (key.pem) for JWT authentication


jwtPassphrase?

optional jwtPassphrase: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:126

Optional passphrase for encrypted JWT private key


libraries?

optional libraries: (string | LibraryEntry)[]

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:104

Library IDs for WebDAV browsing and the Content Libraries tree.

Accepts either a string array or a mixed array of strings and {id, siteLibrary?} objects. Object entries can mark individual libraries as site-private.


mrtApiKey?

optional mrtApiKey: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:78

MRT API key


mrtBackend?

optional mrtBackend: "scapi" | "auto" | "legacy"

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:120

MRT backend preference: legacy MRT Cloud API vs SCAPI MRT deployments API


mrtEnvironment?

optional mrtEnvironment: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:76

MRT environment name (e.g., staging, production)


mrtOrigin?

optional mrtOrigin: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:80

MRT cloud origin URL


mrtProject?

optional mrtProject: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:74

MRT project slug


name?

optional name: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:34

Instance name (for multi-config files)


oauthScopes?

optional oauthScopes: string[]

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:50

OAuth scopes


password?

optional password: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:44

Password/access-key for Basic auth (WebDAV)


realm?

optional realm: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:86

Default ODS realm for sandbox operations


safety?

optional safety: object

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:144

Safety configuration for this instance.

confirm?

optional confirm: boolean

level?

optional level: string

rules?

optional rules: object[]

Example

json
{
  "safety": {
    "level": "NO_UPDATE",
    "confirm": true,
    "rules": [
      { "job": "sfcc-site-archive-export", "action": "allow" },
      { "command": "sandbox:*", "action": "confirm" }
    ]
  }
}

sandboxApiHost?

optional sandboxApiHost: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:84

ODS API hostname


selfSigned?

optional selfSigned: boolean

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:116

Whether to skip SSL/TLS certificate verification (self-signed certs)


shortCode?

optional shortCode: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:58

SCAPI short code


siteId?

optional siteId: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:56

B2C Commerce site/channel ID


slasClientId?

optional slasClientId: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:52

SLAS client ID for shopper authentication


slasClientSecret?

optional slasClientSecret: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:54

SLAS client secret for private shopper clients


tenantId?

optional tenantId: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:82

Tenant/Organization ID for SCAPI


userAuth?

optional userAuth: boolean

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:70

Shorthand for "auth-methods": ["user"]. When true, browser-based Authorization Code + PKCE is the only OAuth method tried.

Mutually exclusive with authMethods — setting both in the same dw.json is rejected during config mapping.


username?

optional username: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:42

Username for Basic auth (WebDAV)


webdavHostname?

optional webdavHostname: string

Defined in: packages/b2c-tooling-sdk/src/config/dw-json.ts:60

Alternate hostname for WebDAV (if different from main hostname)