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

@salesforce/b2c-tooling-sdk / safety / SafetyGuard

Class: SafetyGuard ​

Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:117

SafetyGuard evaluates operations against safety rules and levels.

The guard provides three levels of API:

The HTTP middleware uses the guard internally so all HTTP requests are evaluated automatically. CLI commands and other consumers can use the guard directly for richer safety interaction (command-level checks, confirmation flows).

Example ​

typescript
const guard = new SafetyGuard({
  level: 'NO_UPDATE',
  confirm: true,
  rules: [{ job: 'sfcc-site-archive-export', action: 'allow' }],
});

const evaluation = guard.evaluate({ type: 'job', jobId: 'sfcc-site-archive-export' });
// evaluation.action === 'allow'

Constructors ​

Constructor ​

new SafetyGuard(config): SafetyGuard

Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:121

Parameters ​

config ​

SafetyConfig

Returns ​

SafetyGuard

Properties ​

config ​

readonly config: SafetyConfig

Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:121

Methods ​

assert() ​

assert(operation): void

Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:176

Assert that an operation is allowed.

Parameters ​

operation ​

SafetyOperation

Returns ​

void

Throws ​

if the operation is blocked

Throws ​

if the operation needs confirmation


evaluate() ​

evaluate(operation): SafetyEvaluation

Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:135

Evaluate an operation against safety rules and level.

Evaluation order:

  1. Temporary allows (from confirmed retries) — if matched, allow
  2. Config rules in order — first matching rule's action wins
  3. Level-based default — confirm if confirm: true, otherwise block/allow

All evaluations are trace-logged for diagnostics.

Parameters ​

operation ​

SafetyOperation

Returns ​

SafetyEvaluation


temporarilyAddRule() ​

temporarilyAddRule(rule): () => void

Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:208

Add a temporary safety rule for a scoped exemption.

Unlike temporarilyAllow which derives a rule from an operation, this accepts an arbitrary rule — useful for granting broad temporary access (e.g., allowing WebDAV DELETE on Impex paths during a job export).

Returns a cleanup function that removes the rule.

Parameters ​

rule ​

SafetyRule

Returns ​

(): void

Returns ​

void


temporarilyAllow() ​

temporarilyAllow(operation): () => void

Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:194

Create a temporary exemption for a confirmed operation.

Returns a cleanup function that removes the exemption. Use this to retry an operation after the user has confirmed.

Parameters ​

operation ​

SafetyOperation

Returns ​

(): void

Returns ​

void