---
description: Customize B2C MCP tools, documentation topics, startup defaults, and saved workflows.
---

# MCP Configuration

The MCP uses the same B2C Commerce configuration as the CLI and IDE extension.
See [Configuration](../guide/configuration) for project files, environment variables,
and named instances, and [Authentication](../guide/authentication) for credentials
and API access. Documentation and skills need no B2C Commerce credentials.

This page covers settings specific to running the MCP server.

## Startup configuration {#advanced-manual-configuration}

Plugin installation needs no additional launch settings. For a
[manual installation](./#setup), add options to the server command in your client's
MCP configuration. For example, to select two toolsets:

```bash
npx -y @salesforce/b2c-dx-mcp@latest --toolsets CARTRIDGES,MRT
```

Set startup environment variables in your MCP client's server configuration or
the environment that launches it. Use that environment for toolset and documentation
selection; project `.env` files supply per-project B2C configuration.
Restart the MCP connection after changing startup settings.

### Project defaults {#project-directory}

Your assistant can select a project or named instance for each task. To fix a
startup default, use the shared `--project-directory`, `--config`, or `--instance`
options. See [Configuration](../guide/configuration) for their values and file formats.
When `--project-directory` is set, or your client shares its workspace folders
(MCP roots), the assistant can select a project outside them only after you
approve it. See [Project folders](./security#project-folders).

## Tools and toolsets {#toolset-selection}

All toolsets are enabled by default. Use names from [MCP Tools](./toolsets) to
choose a subset:

| Option       | Environment variable | Selection                                                                |
| ------------ | -------------------- | ------------------------------------------------------------------------ |
| `--toolsets` | `SFCC_TOOLSETS`      | Comma-separated toolsets, such as `CARTRIDGES,MRT`.                      |
| `--tools`    | `SFCC_TOOLS`         | Comma-separated tool names, such as `skills_read,docs_search,docs_read`. |

Explicit selection replaces the default of all toolsets. Combining `--toolsets`
and `--tools` includes both selections. Valid toolsets are `CARTRIDGES`,
`DIAGNOSTICS`, `MRT`, `PWAV3`, `SCAPI`, `STOREFRONTNEXT`, `CIP`, and `all`.

Toolsets include shared skills and documentation. When selecting individual tools,
include `skills_read` for the skill collections and the documentation tools you
want. Invalid names are ignored; if no valid selection remains, the server
falls back to all toolsets.

## Documentation topics {#documentation-tools-restriction}

Use `--docs-topics` or `SFCC_DOCS_TOPICS` to select documentation topics,
separated by commas:

`script-api`, `job-step`, `commerce-api`, `pwa-kit-managed-runtime`, `sfnext`,
`sfra`, `b2c-commerce`, `commerce-solutions`, `ocapi`, `tooling`, `help-admin`,
`help-merchant`, `help-kb`.

Omit this option to include all available topics. It does not restrict the
included skills.

## Saved workflows {#saved-workflows}

Saved SCAPI workflows remain available across sessions and clients. To back them
up, copy the `scapi/snippets/` folder from your B2C data directory:

- macOS/Linux: `~/.local/share/b2c/scapi/snippets/`
- Windows: `%LOCALAPPDATA%\b2c\scapi\snippets\`

These are the default locations; a custom B2C data directory changes the path.
Built-in workflows update with the package and are separate from your saved files.

## Local SCAPI contracts {#local-scapi-schemas}

This is a developer option for beta and pre-release APIs that are not yet in the
bundled or live contracts. Give [SCAPI code mode](./toolsets#scapi-code-mode) your own
OpenAPI 3 JSON files, folders containing them, or http(s) URLs of them, in your project
configuration. This works with plugin installs, where you don't control the server's arguments or
working directory:

```json
{
  "scapi-schemas": ["./schemas/cdn-zones-v1.json"]
}
```

Put this in the project's `dw.json`, or set `SFCC_SCAPI_SCHEMAS` (comma-separated) in the
project's `.env`. Relative paths resolve from the project directory, and the server reads
the setting on each tool call, so changes apply without a restart. A URL lets you share a
contract with a config-only change; the server fetches it once and keeps it until it restarts.

You can also pass `--scapi-schemas` when starting the server. It replaces any project setting:

```bash
npx -y @salesforce/b2c-dx-mcp@latest --scapi-schemas ./schemas/cdn-zones-v1.json
```

The API is identified by the `/<family>/<name>/<version>` path of the contract's
`servers[0].url`. A local contract replaces the bundled or live contract for the same API, or
adds a new one. Search results show it with `origin: "local"`. Flag paths resolve
from `--project-directory` when it is set, or from the server's working directory
otherwise. An invalid contract stops the server when passed by flag, or fails the
SCAPI tool call when set in project configuration.
Safety Mode and request targeting work as they do for other contracts.

## Logging

Use `--log-level debug` temporarily when investigating a connection or
configuration problem. Review logs before sharing them.

See [Security and Access](./security#protect-credentials-and-data) before sharing logs.
