diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts index 16b70ec9e2..c101da7543 100644 --- a/packages/cli/src/config/config.test.ts +++ b/packages/cli/src/config/config.test.ts @@ -307,6 +307,23 @@ describe('parseArguments', () => { const argv = await parseArguments({} as Settings); expect(argv.allowedTools).toEqual(['read_file', 'ShellTool(git status)']); }); + + it('should support comma-separated values for --allowed-mcp-server-names', async () => { + process.argv = [ + 'node', + 'script.js', + '--allowed-mcp-server-names', + 'server1,server2', + ]; + const argv = await parseArguments({} as Settings); + expect(argv.allowedMcpServerNames).toEqual(['server1', 'server2']); + }); + + it('should support comma-separated values for --extensions', async () => { + process.argv = ['node', 'script.js', '--extensions', 'ext1,ext2']; + const argv = await parseArguments({} as Settings); + expect(argv.extensions).toEqual(['ext1', 'ext2']); + }); }); describe('loadCliConfig', () => { diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index aaa47e04c1..e5dd0c7510 100755 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -229,6 +229,11 @@ export async function parseArguments(settings: Settings): Promise { type: 'array', string: true, description: 'Allowed MCP server names', + coerce: (mcpServerNames: string[]) => + // Handle comma-separated values + mcpServerNames.flatMap((mcpServerName) => + mcpServerName.split(',').map((m) => m.trim()), + ), }) .option('allowed-tools', { type: 'array', @@ -244,6 +249,11 @@ export async function parseArguments(settings: Settings): Promise { string: true, description: 'A list of extensions to use. If not provided, all extensions are used.', + coerce: (extensions: string[]) => + // Handle comma-separated values + extensions.flatMap((extension) => + extension.split(',').map((e) => e.trim()), + ), }) .option('list-extensions', { alias: 'l',