@salesforce/b2c-dx-mcp 0.0.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +422 -29
  2. package/bin/run.cmd +3 -0
  3. package/bin/run.js +27 -0
  4. package/content/auth.md +62 -0
  5. package/content/components.md +123 -0
  6. package/content/config.md +180 -0
  7. package/content/data-fetching.md +323 -0
  8. package/content/extensions.md +80 -0
  9. package/content/i18n.md +121 -0
  10. package/content/page-designer.md +86 -0
  11. package/content/performance.md +80 -0
  12. package/content/pitfalls.md +141 -0
  13. package/content/quick-reference.md +226 -0
  14. package/content/state-management.md +75 -0
  15. package/content/styling.md +51 -0
  16. package/content/testing.md +232 -0
  17. package/dist/commands/mcp.d.ts +110 -0
  18. package/dist/commands/mcp.js +333 -0
  19. package/dist/registry.d.ts +37 -0
  20. package/dist/registry.js +212 -0
  21. package/dist/server.d.ts +46 -0
  22. package/dist/server.js +98 -0
  23. package/dist/services.d.ts +168 -0
  24. package/dist/services.js +191 -0
  25. package/dist/tools/adapter.d.ts +201 -0
  26. package/dist/tools/adapter.js +220 -0
  27. package/dist/tools/cartridges/index.d.ts +20 -0
  28. package/dist/tools/cartridges/index.js +101 -0
  29. package/dist/tools/index.d.ts +17 -0
  30. package/dist/tools/index.js +25 -0
  31. package/dist/tools/mrt/index.d.ts +20 -0
  32. package/dist/tools/mrt/index.js +101 -0
  33. package/dist/tools/pwav3/index.d.ts +13 -0
  34. package/dist/tools/pwav3/index.js +78 -0
  35. package/dist/tools/scapi/index.d.ts +9 -0
  36. package/dist/tools/scapi/index.js +68 -0
  37. package/dist/tools/storefrontnext/developer-guidelines.d.ts +9 -0
  38. package/dist/tools/storefrontnext/developer-guidelines.js +140 -0
  39. package/dist/tools/storefrontnext/index.d.ts +13 -0
  40. package/dist/tools/storefrontnext/index.js +83 -0
  41. package/dist/utils/constants.d.ts +16 -0
  42. package/dist/utils/constants.js +18 -0
  43. package/dist/utils/index.d.ts +7 -0
  44. package/dist/utils/index.js +16 -0
  45. package/dist/utils/types.d.ts +45 -0
  46. package/dist/utils/types.js +7 -0
  47. package/oclif.manifest.json +377 -0
  48. package/package.json +123 -7
@@ -0,0 +1,83 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ /**
7
+ * Storefront Next toolset for B2C Commerce.
8
+ *
9
+ * This toolset provides MCP tools for Storefront Next development.
10
+ *
11
+ * **Implemented Tools:**
12
+ * - `storefront_next_development_guidelines` - Get development guidelines and best practices (GA)
13
+ *
14
+ * **Placeholder Tools (Use `--allow-non-ga-tools` flag to enable):**
15
+ * - `storefront_next_site_theming` - Configure site theming
16
+ * - `storefront_next_figma_to_component_workflow` - Convert Figma to components
17
+ * - `storefront_next_generate_component` - Generate new components
18
+ * - `storefront_next_map_tokens_to_theme` - Map design tokens
19
+ * - `storefront_next_design_decorator` - Apply design decorators
20
+ * - `storefront_next_generate_page_designer_metadata` - Generate Page Designer metadata
21
+ *
22
+ * @module tools/storefrontnext
23
+ */
24
+ import { z } from 'zod';
25
+ import { createToolAdapter, jsonResult } from '../adapter.js';
26
+ import { createDeveloperGuidelinesTool } from './developer-guidelines.js';
27
+ /**
28
+ * Creates a placeholder tool for Storefront Next development.
29
+ *
30
+ * Placeholder tools log invocations and return mock responses until
31
+ * the actual implementation is available.
32
+ *
33
+ * @param name - Tool name
34
+ * @param description - Tool description
35
+ * @param services - MCP services
36
+ * @returns The configured MCP tool
37
+ */
38
+ function createPlaceholderTool(name, description, services) {
39
+ return createToolAdapter({
40
+ name,
41
+ description: `[PLACEHOLDER] ${description}`,
42
+ toolsets: ['STOREFRONTNEXT'],
43
+ isGA: false,
44
+ requiresInstance: false,
45
+ inputSchema: {
46
+ message: z.string().optional().describe('Optional message to echo'),
47
+ },
48
+ async execute(args) {
49
+ // Placeholder implementation
50
+ const timestamp = new Date().toISOString();
51
+ return {
52
+ tool: name,
53
+ status: 'placeholder',
54
+ message: `This is a placeholder implementation for '${name}'. The actual implementation is coming soon.`,
55
+ input: args,
56
+ timestamp,
57
+ };
58
+ },
59
+ formatOutput: (output) => jsonResult(output),
60
+ }, services);
61
+ }
62
+ /**
63
+ * Creates all tools for the STOREFRONTNEXT toolset.
64
+ *
65
+ * Note: mrt_bundle_push is defined in the MRT toolset with
66
+ * toolsets: ["MRT", "PWAV3", "STOREFRONTNEXT"] and will
67
+ * automatically appear in STOREFRONTNEXT.
68
+ *
69
+ * @param services - MCP services
70
+ * @returns Array of MCP tools
71
+ */
72
+ export function createStorefrontNextTools(services) {
73
+ return [
74
+ createDeveloperGuidelinesTool(services),
75
+ createPlaceholderTool('storefront_next_site_theming', 'Configure and manage site theming for Storefront Next', services),
76
+ createPlaceholderTool('storefront_next_figma_to_component_workflow', 'Convert Figma designs to Storefront Next components', services),
77
+ createPlaceholderTool('storefront_next_generate_component', 'Generate a new Storefront Next component', services),
78
+ createPlaceholderTool('storefront_next_map_tokens_to_theme', 'Map design tokens to Storefront Next theme configuration', services),
79
+ createPlaceholderTool('storefront_next_design_decorator', 'Apply design decorators to Storefront Next components', services),
80
+ createPlaceholderTool('storefront_next_generate_page_designer_metadata', 'Generate Page Designer metadata for Storefront Next components', services),
81
+ ];
82
+ }
83
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Special toolset value that enables all toolsets.
3
+ */
4
+ export declare const ALL_TOOLSETS = "ALL";
5
+ /**
6
+ * Available toolsets that can be enabled.
7
+ */
8
+ export declare const TOOLSETS: readonly ["CARTRIDGES", "MRT", "PWAV3", "SCAPI", "STOREFRONTNEXT"];
9
+ /**
10
+ * Valid toolset names including the special "ALL" value.
11
+ */
12
+ export declare const VALID_TOOLSET_NAMES: readonly ["ALL", "CARTRIDGES", "MRT", "PWAV3", "SCAPI", "STOREFRONTNEXT"];
13
+ /**
14
+ * Type representing a valid toolset name.
15
+ */
16
+ export type Toolset = (typeof TOOLSETS)[number];
@@ -0,0 +1,18 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ /**
7
+ * Special toolset value that enables all toolsets.
8
+ */
9
+ export const ALL_TOOLSETS = 'ALL';
10
+ /**
11
+ * Available toolsets that can be enabled.
12
+ */
13
+ export const TOOLSETS = ['CARTRIDGES', 'MRT', 'PWAV3', 'SCAPI', 'STOREFRONTNEXT'];
14
+ /**
15
+ * Valid toolset names including the special "ALL" value.
16
+ */
17
+ export const VALID_TOOLSET_NAMES = [ALL_TOOLSETS, ...TOOLSETS];
18
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Utility modules for the B2C DX MCP server.
3
+ *
4
+ * @module utils
5
+ */
6
+ export * from './constants.js';
7
+ export * from './types.js';
@@ -0,0 +1,16 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ /**
7
+ * Utility modules for the B2C DX MCP server.
8
+ *
9
+ * @module utils
10
+ */
11
+ // Note: We use .js extensions in imports for ESM compatibility.
12
+ // TypeScript resolves .js → .ts at compile time, but the compiled
13
+ // output needs .js extensions to work at runtime with Node.js ESM.
14
+ export * from './constants.js';
15
+ export * from './types.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,45 @@
1
+ import type { z, ZodRawShape } from 'zod';
2
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
3
+ import type { Toolset } from './constants.js';
4
+ /**
5
+ * Result returned from MCP tool execution.
6
+ * Matches the MCP SDK's CallToolResult type.
7
+ */
8
+ export type ToolResult = CallToolResult;
9
+ /**
10
+ * Configuration for an MCP tool.
11
+ */
12
+ export interface McpToolConfig<T extends ZodRawShape = ZodRawShape> {
13
+ /** Tool name (used in MCP protocol) */
14
+ name: string;
15
+ /** Human-readable description */
16
+ description: string;
17
+ /** Zod schema for input validation */
18
+ inputSchema: T;
19
+ /** Toolsets this tool belongs to */
20
+ toolsets: Toolset[];
21
+ /** Whether this tool is GA (generally available) */
22
+ isGA?: boolean;
23
+ }
24
+ /**
25
+ * MCP Tool definition with handler.
26
+ */
27
+ export interface McpTool<T extends ZodRawShape = ZodRawShape> extends McpToolConfig<T> {
28
+ /** Handler function that executes the tool */
29
+ handler: (args: z.infer<z.ZodObject<T>>) => Promise<ToolResult>;
30
+ }
31
+ /**
32
+ * Startup flags passed to the MCP server.
33
+ */
34
+ export interface StartupFlags {
35
+ /** Comma-separated list of toolsets to enable */
36
+ toolsets?: string[];
37
+ /** Specific individual tools to enable */
38
+ tools?: string[];
39
+ /** Allow non-GA (experimental) tools */
40
+ allowNonGaTools?: boolean;
41
+ /** Path to config file (dw.json format) */
42
+ configPath?: string;
43
+ /** Project working directory for tools (auto-discovery, scaffolding, etc.) */
44
+ workingDirectory?: string;
45
+ }
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,377 @@
1
+ {
2
+ "commands": {
3
+ "Symbol(SINGLE_COMMAND_CLI)": {
4
+ "aliases": [],
5
+ "args": {},
6
+ "description": "Salesforce B2C Commerce Cloud Developer Experience MCP Server - Expose B2C Commerce Developer Experience tools to AI assistants",
7
+ "examples": [
8
+ {
9
+ "description": "All toolsets",
10
+ "command": "<%= config.bin %> --toolsets all --allow-non-ga-tools"
11
+ },
12
+ {
13
+ "description": "MRT tools with project and API key",
14
+ "command": "<%= config.bin %> --toolsets MRT --project my-project --api-key your-api-key --allow-non-ga-tools"
15
+ },
16
+ {
17
+ "description": "MRT tools with project, environment, and API key",
18
+ "command": "<%= config.bin %> --toolsets MRT --project my-project --environment staging --api-key your-api-key --allow-non-ga-tools"
19
+ },
20
+ {
21
+ "description": "Cartridge tools with explicit config",
22
+ "command": "<%= config.bin %> --toolsets CARTRIDGES --config /path/to/dw.json --allow-non-ga-tools"
23
+ },
24
+ {
25
+ "description": "Debug logging",
26
+ "command": "<%= config.bin %> --toolsets all --allow-non-ga-tools --debug"
27
+ }
28
+ ],
29
+ "flags": {
30
+ "log-level": {
31
+ "description": "Set logging verbosity level",
32
+ "env": "SFCC_LOG_LEVEL",
33
+ "helpGroup": "GLOBAL",
34
+ "name": "log-level",
35
+ "hasDynamicHelp": false,
36
+ "multiple": false,
37
+ "options": [
38
+ "trace",
39
+ "debug",
40
+ "info",
41
+ "warn",
42
+ "error",
43
+ "silent"
44
+ ],
45
+ "type": "option"
46
+ },
47
+ "debug": {
48
+ "char": "D",
49
+ "description": "Enable debug logging (shorthand for --log-level debug)",
50
+ "env": "SFCC_DEBUG",
51
+ "helpGroup": "GLOBAL",
52
+ "name": "debug",
53
+ "allowNo": false,
54
+ "type": "boolean"
55
+ },
56
+ "json": {
57
+ "description": "Output logs as JSON lines",
58
+ "helpGroup": "GLOBAL",
59
+ "name": "json",
60
+ "allowNo": false,
61
+ "type": "boolean"
62
+ },
63
+ "lang": {
64
+ "char": "L",
65
+ "description": "Language for messages (e.g., en, de). Also respects LANGUAGE env var.",
66
+ "helpGroup": "GLOBAL",
67
+ "name": "lang",
68
+ "hasDynamicHelp": false,
69
+ "multiple": false,
70
+ "type": "option"
71
+ },
72
+ "config": {
73
+ "description": "Path to config file (in dw.json format; defaults to ./dw.json)",
74
+ "env": "SFCC_CONFIG",
75
+ "helpGroup": "GLOBAL",
76
+ "name": "config",
77
+ "hasDynamicHelp": false,
78
+ "multiple": false,
79
+ "type": "option"
80
+ },
81
+ "instance": {
82
+ "char": "i",
83
+ "description": "Instance name from configuration file (i.e. dw.json, etc)",
84
+ "env": "SFCC_INSTANCE",
85
+ "helpGroup": "GLOBAL",
86
+ "name": "instance",
87
+ "hasDynamicHelp": false,
88
+ "multiple": false,
89
+ "type": "option"
90
+ },
91
+ "working-directory": {
92
+ "description": "Project working directory",
93
+ "env": "SFCC_WORKING_DIRECTORY",
94
+ "helpGroup": "GLOBAL",
95
+ "name": "working-directory",
96
+ "hasDynamicHelp": false,
97
+ "multiple": false,
98
+ "type": "option"
99
+ },
100
+ "extra-query": {
101
+ "description": "Extra query parameters as JSON (e.g., '{\"debug\":\"true\"}')",
102
+ "env": "SFCC_EXTRA_QUERY",
103
+ "helpGroup": "GLOBAL",
104
+ "hidden": true,
105
+ "name": "extra-query",
106
+ "hasDynamicHelp": false,
107
+ "multiple": false,
108
+ "type": "option"
109
+ },
110
+ "extra-body": {
111
+ "description": "Extra body fields to merge as JSON (e.g., '{\"_internal\":true}')",
112
+ "env": "SFCC_EXTRA_BODY",
113
+ "helpGroup": "GLOBAL",
114
+ "hidden": true,
115
+ "name": "extra-body",
116
+ "hasDynamicHelp": false,
117
+ "multiple": false,
118
+ "type": "option"
119
+ },
120
+ "extra-headers": {
121
+ "description": "Extra HTTP headers as JSON (e.g., '{\"X-Custom-Header\": \"value\"}')",
122
+ "env": "SFCC_EXTRA_HEADERS",
123
+ "helpGroup": "GLOBAL",
124
+ "hidden": true,
125
+ "name": "extra-headers",
126
+ "hasDynamicHelp": false,
127
+ "multiple": false,
128
+ "type": "option"
129
+ },
130
+ "api-key": {
131
+ "description": "MRT API key",
132
+ "env": "SFCC_MRT_API_KEY",
133
+ "helpGroup": "AUTH",
134
+ "name": "api-key",
135
+ "hasDynamicHelp": false,
136
+ "multiple": false,
137
+ "type": "option"
138
+ },
139
+ "project": {
140
+ "char": "p",
141
+ "description": "MRT project slug (or set mrtProject in dw.json)",
142
+ "env": "SFCC_MRT_PROJECT",
143
+ "name": "project",
144
+ "hasDynamicHelp": false,
145
+ "multiple": false,
146
+ "type": "option"
147
+ },
148
+ "environment": {
149
+ "char": "e",
150
+ "description": "MRT environment (e.g., staging, production; or set mrtEnvironment in dw.json)",
151
+ "env": "SFCC_MRT_ENVIRONMENT",
152
+ "name": "environment",
153
+ "hasDynamicHelp": false,
154
+ "multiple": false,
155
+ "type": "option"
156
+ },
157
+ "cloud-origin": {
158
+ "description": "MRT cloud origin URL (or set mrtOrigin in dw.json; default: https://cloud.mobify.com)",
159
+ "env": "SFCC_MRT_CLOUD_ORIGIN",
160
+ "name": "cloud-origin",
161
+ "hasDynamicHelp": false,
162
+ "multiple": false,
163
+ "type": "option"
164
+ },
165
+ "credentials-file": {
166
+ "description": "Path to MRT credentials file (overrides default ~/.mobify)",
167
+ "env": "MRT_CREDENTIALS_FILE",
168
+ "name": "credentials-file",
169
+ "hasDynamicHelp": false,
170
+ "multiple": false,
171
+ "type": "option"
172
+ },
173
+ "client-id": {
174
+ "description": "Client ID for OAuth",
175
+ "env": "SFCC_CLIENT_ID",
176
+ "helpGroup": "AUTH",
177
+ "name": "client-id",
178
+ "hasDynamicHelp": false,
179
+ "multiple": false,
180
+ "type": "option"
181
+ },
182
+ "client-secret": {
183
+ "description": "Client Secret for OAuth",
184
+ "env": "SFCC_CLIENT_SECRET",
185
+ "helpGroup": "AUTH",
186
+ "name": "client-secret",
187
+ "hasDynamicHelp": false,
188
+ "multiple": false,
189
+ "type": "option"
190
+ },
191
+ "scope": {
192
+ "description": "OAuth scopes to request (comma-separated)",
193
+ "env": "SFCC_OAUTH_SCOPES",
194
+ "helpGroup": "AUTH",
195
+ "name": "scope",
196
+ "delimiter": ",",
197
+ "hasDynamicHelp": false,
198
+ "multiple": true,
199
+ "type": "option"
200
+ },
201
+ "short-code": {
202
+ "description": "SCAPI short code",
203
+ "env": "SFCC_SHORTCODE",
204
+ "helpGroup": "AUTH",
205
+ "name": "short-code",
206
+ "hasDynamicHelp": false,
207
+ "multiple": false,
208
+ "type": "option"
209
+ },
210
+ "tenant-id": {
211
+ "aliases": [
212
+ "tenant"
213
+ ],
214
+ "description": "Organization/tenant ID",
215
+ "env": "SFCC_TENANT_ID",
216
+ "helpGroup": "AUTH",
217
+ "name": "tenant-id",
218
+ "hasDynamicHelp": false,
219
+ "multiple": false,
220
+ "type": "option"
221
+ },
222
+ "auth-methods": {
223
+ "description": "Allowed auth methods in priority order (comma-separated)",
224
+ "env": "SFCC_AUTH_METHODS",
225
+ "exclusive": [
226
+ "user-auth"
227
+ ],
228
+ "helpGroup": "AUTH",
229
+ "name": "auth-methods",
230
+ "delimiter": ",",
231
+ "hasDynamicHelp": false,
232
+ "multiple": true,
233
+ "options": [
234
+ "client-credentials",
235
+ "implicit",
236
+ "basic",
237
+ "api-key"
238
+ ],
239
+ "type": "option"
240
+ },
241
+ "user-auth": {
242
+ "description": "Use browser-based user authentication (implicit OAuth flow)",
243
+ "exclusive": [
244
+ "auth-methods"
245
+ ],
246
+ "helpGroup": "AUTH",
247
+ "name": "user-auth",
248
+ "allowNo": false,
249
+ "type": "boolean"
250
+ },
251
+ "account-manager-host": {
252
+ "description": "Account Manager hostname for OAuth (default: account.demandware.com)",
253
+ "env": "SFCC_ACCOUNT_MANAGER_HOST",
254
+ "helpGroup": "AUTH",
255
+ "name": "account-manager-host",
256
+ "hasDynamicHelp": false,
257
+ "multiple": false,
258
+ "type": "option"
259
+ },
260
+ "server": {
261
+ "char": "s",
262
+ "description": "B2C instance hostname",
263
+ "env": "SFCC_SERVER",
264
+ "helpGroup": "INSTANCE",
265
+ "name": "server",
266
+ "hasDynamicHelp": false,
267
+ "multiple": false,
268
+ "type": "option"
269
+ },
270
+ "webdav-server": {
271
+ "description": "Separate hostname for WebDAV (cert. hostname, etc)",
272
+ "env": "SFCC_WEBDAV_SERVER",
273
+ "helpGroup": "INSTANCE",
274
+ "name": "webdav-server",
275
+ "hasDynamicHelp": false,
276
+ "multiple": false,
277
+ "type": "option"
278
+ },
279
+ "code-version": {
280
+ "char": "v",
281
+ "description": "Code version",
282
+ "env": "SFCC_CODE_VERSION",
283
+ "helpGroup": "INSTANCE",
284
+ "name": "code-version",
285
+ "hasDynamicHelp": false,
286
+ "multiple": false,
287
+ "type": "option"
288
+ },
289
+ "username": {
290
+ "char": "u",
291
+ "description": "Username for Basic Auth (WebDAV)",
292
+ "env": "SFCC_USERNAME",
293
+ "helpGroup": "AUTH",
294
+ "name": "username",
295
+ "hasDynamicHelp": false,
296
+ "multiple": false,
297
+ "type": "option"
298
+ },
299
+ "password": {
300
+ "char": "p",
301
+ "description": "Password/access key for Basic Auth (WebDAV)",
302
+ "env": "SFCC_PASSWORD",
303
+ "helpGroup": "AUTH",
304
+ "name": "password",
305
+ "hasDynamicHelp": false,
306
+ "multiple": false,
307
+ "type": "option"
308
+ },
309
+ "certificate": {
310
+ "description": "Path to PKCS12 certificate for two-factor auth",
311
+ "env": "SFCC_CERTIFICATE",
312
+ "helpGroup": "AUTH",
313
+ "name": "certificate",
314
+ "hasDynamicHelp": false,
315
+ "multiple": false,
316
+ "type": "option"
317
+ },
318
+ "passphrase": {
319
+ "description": "Passphrase for the certificate",
320
+ "env": "SFCC_CERTIFICATE_PASSPHRASE",
321
+ "helpGroup": "AUTH",
322
+ "name": "passphrase",
323
+ "hasDynamicHelp": false,
324
+ "multiple": false,
325
+ "type": "option"
326
+ },
327
+ "selfsigned": {
328
+ "description": "Allow self-signed server certificates",
329
+ "env": "SFCC_SELFSIGNED",
330
+ "helpGroup": "AUTH",
331
+ "name": "selfsigned",
332
+ "allowNo": false,
333
+ "type": "boolean"
334
+ },
335
+ "verify": {
336
+ "description": "Verify SSL certificates",
337
+ "helpGroup": "AUTH",
338
+ "name": "verify",
339
+ "allowNo": true,
340
+ "type": "boolean"
341
+ },
342
+ "toolsets": {
343
+ "description": "Toolsets to enable (comma-separated). Options: all, CARTRIDGES, MRT, PWAV3, SCAPI, STOREFRONTNEXT",
344
+ "env": "SFCC_TOOLSETS",
345
+ "name": "toolsets",
346
+ "hasDynamicHelp": false,
347
+ "multiple": false,
348
+ "type": "option"
349
+ },
350
+ "tools": {
351
+ "description": "Individual tools to enable (comma-separated)",
352
+ "env": "SFCC_TOOLS",
353
+ "name": "tools",
354
+ "hasDynamicHelp": false,
355
+ "multiple": false,
356
+ "type": "option"
357
+ },
358
+ "allow-non-ga-tools": {
359
+ "description": "Enable non-GA (experimental) tools",
360
+ "env": "SFCC_ALLOW_NON_GA_TOOLS",
361
+ "name": "allow-non-ga-tools",
362
+ "allowNo": false,
363
+ "type": "boolean"
364
+ }
365
+ },
366
+ "hasDynamicHelp": false,
367
+ "hiddenAliases": [],
368
+ "id": "Symbol(SINGLE_COMMAND_CLI)",
369
+ "pluginAlias": "@salesforce/b2c-dx-mcp",
370
+ "pluginName": "@salesforce/b2c-dx-mcp",
371
+ "pluginType": "core",
372
+ "strict": true,
373
+ "enableJsonFlag": false
374
+ }
375
+ },
376
+ "version": "0.3.1"
377
+ }