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 / safety / SafetyGuard

Class: SafetyGuard

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

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:120

Parameters

config

SafetyConfig

Returns

SafetyGuard

Properties

config

readonly config: SafetyConfig

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

Methods

assert()

assert(operation): void

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

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:134

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:207

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:193

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