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

b2c_tooling_sdk.operations.users ​

Account Manager user management operations.

Mirrors src/operations/users/index.ts. Provides high-level functions for managing users in Account Manager, including CRUD operations, role management, and user lifecycle operations.

Core User Functions ​

Usage ​

python
from b2c_tooling_sdk.operations.users import get_user_by_login, list_users, create_user, CreateUserOptions
from b2c_tooling_sdk.clients import create_account_manager_users_client
from b2c_tooling_sdk.auth import OAuthStrategy

auth = OAuthStrategy(client_id="your-client-id", client_secret="your-client-secret")
client = create_account_manager_users_client(config, auth)

# Get a user by login
user = await get_user_by_login(client, "user@example.com")

# List users
users = await list_users(client, ListUsersOptions(size=25, page=0))

# Create a new user
new_user = await create_user(
    client,
    CreateUserOptions(
        user={
            "mail": "newuser@example.com",
            "firstName": "John",
            "lastName": "Doe",
            "organizations": ["org-id"],
            "primaryOrganization": "org-id",
        }
    ),
)

Authentication ​

User operations require OAuth authentication with appropriate Account Manager permissions.

Classes ​

CreateUserOptions ​

python
class CreateUserOptions

Options for creating a user.

Fields

NameType
userUserCreate

GrantRoleOptions ​

python
class GrantRoleOptions

Options for granting a role.

The AM API uses mixed formats: role IDs (e.g. bm-admin) in the roles array, and roleEnumNames (e.g. ECOM_ADMIN) in the roleTenantFilter string. Both must be provided. Use resolve_to_internal_role / resolve_from_internal_role to convert.

Fields

NameTypeDefault
user_idstr
rolestr
role_enum_namestr
scopestr | NoneNone

RevokeRoleOptions ​

python
class RevokeRoleOptions

Options for revoking a role.

See GrantRoleOptions for details on the mixed role ID formats.

Fields

NameTypeDefault
user_idstr
rolestr
role_enum_namestr
scopestr | NoneNone

UpdateUserOptions ​

python
class UpdateUserOptions

Options for updating a user.

Fields

NameType
user_idstr
changesUserUpdate

Functions ​

create_user ​

python
async def create_user(client: AccountManagerUsersClient, options: CreateUserOptions) -> AccountManagerUser

Create a new user.

Parameters

NameTypeDescription
clientAccountManagerUsersClientAccount Manager client.
optionsCreateUserOptionsCreate options (user details).

Returns: Created user.

get_user_by_login ​

python
async def get_user_by_login(client: AccountManagerUsersClient, login: str) -> AccountManagerUser

Retrieve details of a user by login (email).

This searches through paginated results to find the user.

Parameters

NameTypeDescription
clientAccountManagerUsersClientAccount Manager client.
loginstrUser login (email).

Returns: User details.

Raises

  • RuntimeError — If the user is not found.

grant_role ​

python
async def grant_role(client: AccountManagerUsersClient, options: GrantRoleOptions) -> AccountManagerUser

Grant a role to a user, optionally with scope.

This updates the user's roles and roleTenantFilter.

Parameters

NameTypeDescription
clientAccountManagerUsersClientAccount Manager client.
optionsGrantRoleOptionsGrant options (userId, role, optional scope).

Returns: Updated user.

revoke_role ​

python
async def revoke_role(client: AccountManagerUsersClient, options: RevokeRoleOptions) -> AccountManagerUser

Revoke a role from a user, optionally removing specific scope.

Parameters

NameTypeDescription
clientAccountManagerUsersClientAccount Manager client.
optionsRevokeRoleOptionsRevoke options (userId, role, optional scope).

Returns: Updated user.

update_user ​

python
async def update_user(client: AccountManagerUsersClient, options: UpdateUserOptions) -> AccountManagerUser

Update an existing user.

Parameters

NameTypeDescription
clientAccountManagerUsersClientAccount Manager client.
optionsUpdateUserOptionsUpdate options (userId, changes).

Returns: Updated user.

Re-exports ​

Also exported from this module; documented elsewhere: