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 / cli / JobCommand

Abstract Class: JobCommand<T>

Defined in: packages/b2c-tooling-sdk/src/cli/job-command.ts:38

Base command for job operations.

Provides:

  • createJobsDispatcher for routing operations to SCAPI or OCAPI
  • buildScapiJobsClient for SCAPI-only commands (e.g. delete) that don't need the dispatcher's auto-fallback
  • showJobLog for retrieving and printing canonical job logs on failure

Example

ts
import {scapiExecuteJob, mapOcapiExecution, executeJob as ocapiExecuteJob} from
  '@salesforce/b2c-tooling-sdk/operations/jobs';

export default class MyJobCommand extends JobCommand<typeof MyJobCommand> {
  async run() {
    const dispatcher = this.createJobsDispatcher();
    const exec = await dispatcher.run({
      scapi: (client) => scapiExecuteJob(client, 'my-job', {tenantId: this.resolvedConfig.values.tenantId!}),
      ocapi: async () => mapOcapiExecution(await ocapiExecuteJob(this.instance, 'my-job')),
    });
  }
}

Extends

Type Parameters

T

T extends typeof Command

Constructors

Constructor

new JobCommand<T>(argv, config): JobCommand<T>

Defined in: packages/b2c-tooling-sdk/src/cli/oauth-command.ts:51

Parameters

argv

string[]

config

Config

Returns

JobCommand<T>

Inherited from

InstanceCommand.constructor

Properties

argv

argv: string[]

Defined in: node_modules/@oclif/core/lib/command.d.ts:12

Inherited from

InstanceCommand.argv


config

config: Config

Defined in: node_modules/@oclif/core/lib/command.d.ts:13

Inherited from

InstanceCommand.config


id

id: string | undefined

Defined in: node_modules/@oclif/core/lib/command.d.ts:75

Inherited from

InstanceCommand.id


parsed

parsed: boolean

Defined in: node_modules/@oclif/core/lib/command.d.ts:76

Inherited from

InstanceCommand.parsed


aliases

static aliases: string[]

Defined in: node_modules/@oclif/core/lib/command.d.ts:16

An array of aliases for this command.

Inherited from

InstanceCommand.aliases


args

static args: ArgInput

Defined in: node_modules/@oclif/core/lib/command.d.ts:18

An order-dependent object of arguments for the command

Inherited from

InstanceCommand.args


baseFlags

static baseFlags: object

Defined in: packages/b2c-tooling-sdk/src/cli/instance-command.ts:53

account-manager-host

account-manager-host: OptionFlag<string, CustomOptions>

api-backend

api-backend: OptionFlag<"ocapi" | "scapi" | "auto" | undefined, CustomOptions>

auth-methods

auth-methods: OptionFlag<string[] | undefined, CustomOptions>

auth-scope

auth-scope: OptionFlag<string[] | undefined, CustomOptions>

certificate

certificate: OptionFlag<string | undefined, CustomOptions>

client-id

client-id: OptionFlag<string, CustomOptions>

client-secret

client-secret: OptionFlag<string, CustomOptions>

code-version

code-version: OptionFlag<string | undefined, CustomOptions>

config

config: OptionFlag<string | undefined, CustomOptions>

debug

debug: BooleanFlag<boolean>

extra-body

extra-body: OptionFlag<string | undefined, CustomOptions>

extra-headers

extra-headers: OptionFlag<string | undefined, CustomOptions>

extra-query

extra-query: OptionFlag<string | undefined, CustomOptions>

instance

instance: OptionFlag<string | undefined, CustomOptions>

json

json: BooleanFlag<boolean>

jsonl

jsonl: BooleanFlag<boolean>

jwt-cert

jwt-cert: OptionFlag<string | undefined, CustomOptions>

jwt-key

jwt-key: OptionFlag<string | undefined, CustomOptions>

jwt-passphrase

jwt-passphrase: OptionFlag<string | undefined, CustomOptions>

lang

lang: OptionFlag<string | undefined, CustomOptions>

log-level

log-level: OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, CustomOptions>

passphrase

passphrase: OptionFlag<string | undefined, CustomOptions>

password

password: OptionFlag<string | undefined, CustomOptions>

project-directory

project-directory: OptionFlag<string, CustomOptions>

selfsigned

selfsigned: BooleanFlag<boolean>

server

server: OptionFlag<string | undefined, CustomOptions>

short-code

short-code: OptionFlag<string, CustomOptions>

tenant-id

tenant-id: OptionFlag<string | undefined, CustomOptions>

user-auth

user-auth: BooleanFlag<boolean>

username

username: OptionFlag<string | undefined, CustomOptions>

verify

verify: BooleanFlag<boolean>

webdav-server

webdav-server: OptionFlag<string | undefined, CustomOptions>

Inherited from

InstanceCommand.baseFlags


deprecateAliases?

static optional deprecateAliases: boolean

Defined in: node_modules/@oclif/core/lib/command.d.ts:23

Emit deprecation warning when a command alias is used

Inherited from

InstanceCommand.deprecateAliases


deprecationOptions?

static optional deprecationOptions: Deprecation

Defined in: node_modules/@oclif/core/lib/command.d.ts:24

Inherited from

InstanceCommand.deprecationOptions


description

static description: string | undefined

Defined in: node_modules/@oclif/core/lib/command.d.ts:30

A full description of how to use the command.

If no summary, the first line of the description will be used as the summary.

Inherited from

InstanceCommand.description


enableJsonFlag

static enableJsonFlag: boolean

Defined in: node_modules/@oclif/core/lib/command.d.ts:31

Inherited from

InstanceCommand.enableJsonFlag


examples

static examples: Example[]

Defined in: node_modules/@oclif/core/lib/command.d.ts:46

An array of examples to show at the end of the command's help.

IF only a string is provided, it will try to look for a line that starts with the cmd.bin as the example command and the rest as the description. If found, the command will be formatted appropriately.

EXAMPLES:
  A description of a particular use case.

    $ <%= config.bin => command flags

Inherited from

InstanceCommand.examples


flags

static flags: FlagInput

Defined in: node_modules/@oclif/core/lib/command.d.ts:48

A hash of flags for the command

Inherited from

InstanceCommand.flags


hasDynamicHelp

static hasDynamicHelp: boolean

Defined in: node_modules/@oclif/core/lib/command.d.ts:49

Inherited from

InstanceCommand.hasDynamicHelp


help

static help: string | undefined

Defined in: node_modules/@oclif/core/lib/command.d.ts:50

Inherited from

InstanceCommand.help


hidden

static hidden: boolean

Defined in: node_modules/@oclif/core/lib/command.d.ts:52

Hide the command from help

Inherited from

InstanceCommand.hidden


hiddenAliases

static hiddenAliases: string[]

Defined in: node_modules/@oclif/core/lib/command.d.ts:54

An array of aliases for this command that are hidden from help.

Inherited from

InstanceCommand.hiddenAliases


id

static id: string

Defined in: node_modules/@oclif/core/lib/command.d.ts:56

A command ID, used mostly in error or verbose reporting.

Inherited from

InstanceCommand.id


plugin

static plugin: Plugin | undefined

Defined in: node_modules/@oclif/core/lib/command.d.ts:57

Inherited from

InstanceCommand.plugin


pluginAlias?

readonly static optional pluginAlias: string

Defined in: node_modules/@oclif/core/lib/command.d.ts:58

Inherited from

InstanceCommand.pluginAlias


pluginName?

readonly static optional pluginName: string

Defined in: node_modules/@oclif/core/lib/command.d.ts:59

Inherited from

InstanceCommand.pluginName


pluginType?

readonly static optional pluginType: string

Defined in: node_modules/@oclif/core/lib/command.d.ts:60

Inherited from

InstanceCommand.pluginType


state?

static optional state: string

Defined in: node_modules/@oclif/core/lib/command.d.ts:62

Mark the command as a given state (e.g. beta or deprecated) in help

Inherited from

InstanceCommand.state


strict

static strict: boolean

Defined in: node_modules/@oclif/core/lib/command.d.ts:64

When set to false, allows a variable amount of arguments

Inherited from

InstanceCommand.strict


summary?

static optional summary: string

Defined in: node_modules/@oclif/core/lib/command.d.ts:69

The tweet-sized description for your class, used in a parent-commands sub-command listing and as the header for the command help.

Inherited from

InstanceCommand.summary


usage

static usage: string | string[] | undefined

Defined in: node_modules/@oclif/core/lib/command.d.ts:73

An override string (or strings) for the default usage documentation.

Inherited from

InstanceCommand.usage

Methods

baseCommandTest()

baseCommandTest(): void

Defined in: packages/b2c-tooling-sdk/src/cli/base-command.ts:736

Returns

void

Inherited from

InstanceCommand.baseCommandTest


error()

Call Signature

error(input, options): void

Defined in: node_modules/@oclif/core/lib/command.d.ts:90

Parameters
input

string | Error

options

object & PrettyPrintableError

Returns

void

Inherited from

InstanceCommand.error

Call Signature

error(input, options?): never

Defined in: node_modules/@oclif/core/lib/command.d.ts:94

Parameters
input

string | Error

options?

object & PrettyPrintableError

Returns

never

Inherited from

InstanceCommand.error


exit()

exit(code?): never

Defined in: node_modules/@oclif/core/lib/command.d.ts:98

Parameters

code?

number

Returns

never

Inherited from

InstanceCommand.exit


init()

init(): Promise<void>

Defined in: packages/b2c-tooling-sdk/src/cli/instance-command.ts:122

Override init to collect lifecycle providers from plugins.

Returns

Promise<void>

Inherited from

InstanceCommand.init


jsonEnabled()

jsonEnabled(): boolean

Defined in: node_modules/@oclif/core/lib/command.d.ts:106

Determine if the command is being run with the --json flag in a command that supports it.

Returns

boolean

true if the command supports json and the --json flag is present

Inherited from

InstanceCommand.jsonEnabled


log()

log(message?, ...args?): void

Defined in: packages/b2c-tooling-sdk/src/cli/base-command.ts:401

Override oclif's log() to use pino.

Parameters

message?

string

args?

...unknown[]

Returns

void

Inherited from

InstanceCommand.log


logToStderr()

logToStderr(message?, ...args?): void

Defined in: node_modules/@oclif/core/lib/command.d.ts:109

Parameters

message?

string

args?

...any[]

Returns

void

Inherited from

InstanceCommand.logToStderr


run()

abstract run(): Promise<any>

Defined in: node_modules/@oclif/core/lib/command.d.ts:114

actual command run code goes here

Returns

Promise<any>

Inherited from

InstanceCommand.run


warn()

warn(input): string | Error

Defined in: packages/b2c-tooling-sdk/src/cli/base-command.ts:410

Override oclif's warn() to use pino.

Parameters

input

string | Error

Returns

string | Error

Inherited from

InstanceCommand.warn


run()

static run<T>(this, argv?, opts?): Promise<ReturnType<T["run"]>>

Defined in: node_modules/@oclif/core/lib/command.d.ts:86

instantiate and run the command

Type Parameters

T

T extends Command

Parameters

this

(argv, config) => T

the command class

argv?

string[]

argv

opts?

LoadOptions

options

Returns

Promise<ReturnType<T["run"]>>

result

Inherited from

InstanceCommand.run