Install AI Tools

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

Claude

Using Claude Desktop? See Claude Desktop (Cowork) setup.

Install the plugin Recommended

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

Start a new Claude Code session. To install for the current project only, run it from your project directory with --scope project.

Manual MCP setup
bash
claude mcp add --transport stdio --scope user b2c-dx-mcp -- npx -y @salesforce/b2c-dx-mcp@latest

Start a new session. To configure the current project only, run it from your project directory with --scope project. See Claude Code MCP setup.

Codex/ChatGPT

Using the ChatGPT desktop app (ChatGPT Work)? See ChatGPT Work setup.

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. Codex plugins also work in ChatGPT Work.

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.

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

Run:

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

Start a new Gemini CLI session. To configure the current project only, run it from your project directory with --scope project. See Gemini CLI MCP setup.

No separate skills plugins needed.

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

b2c_tooling_sdk.instance ​

B2C instance management.

Mirrors src/instance/index.ts. The B2CInstance class represents a connection to a specific B2C Commerce instance, combining instance configuration with authentication to provide lazy, typed API clients (WebDAV, OCAPI).

Typically an instance is built from resolved configuration (resolve_config(...).create_b2c_instance()) rather than constructed directly.

Classes ​

B2CInstance ​

python
class B2CInstance

Represents a connection to a B2C Commerce instance.

Provides lazy, typed API clients for WebDAV and OCAPI. Authentication is handled automatically based on the configured credentials: WebDAV prefers Basic auth when configured and allowed, otherwise falls back to OAuth; OCAPI always uses OAuth.

Fields

NameTypeDescription
webdav_hostnamestrThe hostname used for WebDAV operations (falls back to the main hostname).
api_backendApiBackendBackend preference for dual-backend operations (defaults to "auto").
scapi_client_configScapiClientConfig | NoneSCAPI coordinates + a scope-flexible auth strategy, or None if unavailable. Returns None unless short_code and tenant_id are configured and the configured OAuth flow is stateless (client-credentials or JWT Bearer). Browser user-auth and fixed-token sessions are excluded because SCAPI Admin APIs require system authentication that can request sfcc.* scopes per request.
webdavWebDavClientLazy WebDAV client for file operations.
ocapiOcapiClientLazy OCAPI Data API client (always uses OAuth).

B2CInstanceOptions ​

python
class B2CInstanceOptions

Optional runtime dependencies for a B2CInstance.

oauth_strategy lets callers reuse their own session-aware auth resolution (PKCE refresh, implicit fallback) without eagerly starting browser auth for Basic-only WebDAV work. It may be a strategy instance or a zero-arg factory.

Fields

NameTypeDefault
oauth_strategyAuthStrategy | Callable[[], AuthStrategy] | NoneNone

InstanceConfig ​

python
class InstanceConfig

Instance configuration (hostname, code version, SCAPI coordinates, TLS).

Fields

NameTypeDefault
hostnamestr
code_versionstr | NoneNone
webdav_hostnamestr | NoneNone
tls_optionsTlsOptions | NoneNone
short_codestr | NoneNone
tenant_idstr | NoneNone
api_backendApiBackend | NoneNone

ScapiClientConfig ​

python
class ScapiClientConfig

SCAPI connection coordinates plus a scope-flexible auth strategy.

Returned by B2CInstance.scapi_client_config only when the instance carries both a short_code and tenant_id and is configured with a stateless OAuth flow (client-credentials or JWT Bearer) able to request arbitrary sfcc.* scopes per request.

Fields

NameType
short_codestr
tenant_idstr
authAuthStrategy

Attributes ​

ApiBackend ​

python
ApiBackend = Literal['ocapi', 'scapi', 'auto']