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

Validate Command ​

Check catalogs, price books, inventory lists, site archives, and other import/export XML against the B2C Commerce XSD schemas before you import them. Validation runs locally, needs no credentials or instance, and does not require xmllint or any other tool to be installed.

b2c validate ​

Validate XML files against the bundled XSDs (the same schemas as b2c docs schema). Each file's schema is chosen from the namespace of its root element, so a site archive with catalogs, price books, and preferences validates in one run.

Usage ​

bash
b2c validate [paths...]

Arguments ​

ArgumentDescriptionRequired
pathsXML files, directories (searched recursively for *.xml), or glob patterns. Accepts many.No (defaults to the current directory)

Flags ​

FlagDescriptionDefault
--schemaValidate every file against this schema: a bundled schema ID (see b2c docs schema --list) or an .xsd pathdetect
--excludeGlob pattern of files to skip when expanding directories and globs. Repeatable.
--fail-fastStop after the first file that failsfalse

Examples ​

bash
# Validate a site archive before importing it
b2c validate site_template

# Validate specific files
b2c validate catalog.xml pricebook.xml

# Validate with a glob, skipping a directory
b2c validate 'site_template/**/*.xml' --exclude '**/sites/**'

# Force a schema when the root element namespace is missing or different
b2c validate custom-export.xml --schema catalog

# Validate against your own XSD (sibling .xsd files are available to xs:include and xs:import)
b2c validate data.xml --schema ./schemas/custom.xsd

# Machine-readable output for CI
b2c validate site_template --json

Output ​

Each file is reported as PASS, FAIL, or SKIP, followed by a summary:

text
PASS: site_template/catalogs/storefront-catalog/catalog.xml (catalog)
FAIL: site_template/inventory-lists/inventory.xml (inventory)
  ERROR line 9: Element '{http://www.demandware.com/xml/impex/inventory/2007-05-31}allocation': 'ten' is not a valid value of the atomic type 'xs:decimal'.
SKIP: site_template/meta/notes.xml - No bundled schema for namespace urn:example

1/3 file(s) valid, 1 error(s), 1 skipped
  • PASS: the file is well-formed and conforms to its schema.
  • FAIL: the file is not well-formed XML, does not conform to its schema, or (when named directly) has no matching schema.
  • SKIP: a well-formed file found in a directory or glob whose root namespace matches no bundled schema.

The command exits with status 1 when any file fails. With --json, it returns the totals and a results array with each file's status, schema, and errors (each with line, optional column, message, and severity).

Notes ​

  • Validation uses libxml2 compiled to WebAssembly. It runs in memory, does not load external entities or DTDs, and makes no network requests, so it is safe to run on untrusted files.
  • Large files are streamed through the validator; a 10 MB catalog validates in well under a second.
  • The schemas match the platform version noted in b2c docs schema --list --json. Newer platform features may not be in the bundled schemas yet.