summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
authorTyler <[email protected]>2025-07-09 11:38:38 -0700
committerGitHub <[email protected]>2025-07-09 18:38:38 +0000
commit6c12f9e0d902c60fa5e01422018ce773c405da8d (patch)
treeb35dbfef6f33a934a74f50bc0b174f73fd00533c /packages/cli/src
parent017a0a6c863e1dfc0f62ec0817cf84aebc6304fe (diff)
Use yargs array type for the allowedMcpServerNames flag instead of processing the list directly ourselves. (#3600)
Diffstat (limited to 'packages/cli/src')
-rw-r--r--packages/cli/src/config/config.test.ts12
-rw-r--r--packages/cli/src/config/config.ts9
2 files changed, 12 insertions, 9 deletions
diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts
index 35b420e9..f002fd84 100644
--- a/packages/cli/src/config/config.test.ts
+++ b/packages/cli/src/config/config.test.ts
@@ -527,7 +527,9 @@ describe('loadCliConfig with allowed-mcp-server-names', () => {
'node',
'script.js',
'--allowed-mcp-server-names',
- 'server1,server3',
+ 'server1',
+ '--allowed-mcp-server-names',
+ 'server3',
];
const config = await loadCliConfig(baseSettings, [], 'test-session');
expect(config.getMcpServers()).toEqual({
@@ -541,7 +543,9 @@ describe('loadCliConfig with allowed-mcp-server-names', () => {
'node',
'script.js',
'--allowed-mcp-server-names',
- 'server1,server4',
+ 'server1',
+ '--allowed-mcp-server-names',
+ 'server4',
];
const config = await loadCliConfig(baseSettings, [], 'test-session');
expect(config.getMcpServers()).toEqual({
@@ -549,10 +553,10 @@ describe('loadCliConfig with allowed-mcp-server-names', () => {
});
});
- it('should allow all MCP servers if the flag is an empty string', async () => {
+ it('should allow no MCP servers if the flag is provided but empty', async () => {
process.argv = ['node', 'script.js', '--allowed-mcp-server-names', ''];
const config = await loadCliConfig(baseSettings, [], 'test-session');
- expect(config.getMcpServers()).toEqual(baseSettings.mcpServers);
+ expect(config.getMcpServers()).toEqual({});
});
});
diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts
index b30685c3..ca38814a 100644
--- a/packages/cli/src/config/config.ts
+++ b/packages/cli/src/config/config.ts
@@ -50,7 +50,7 @@ interface CliArgs {
telemetryTarget: string | undefined;
telemetryOtlpEndpoint: string | undefined;
telemetryLogPrompts: boolean | undefined;
- allowedMcpServerNames: string | undefined;
+ allowedMcpServerNames: string[] | undefined;
extensions: string[] | undefined;
listExtensions: boolean | undefined;
}
@@ -152,7 +152,8 @@ async function parseArguments(): Promise<CliArgs> {
default: false,
})
.option('allowed-mcp-server-names', {
- type: 'string',
+ type: 'array',
+ string: true,
description: 'Allowed MCP server names',
})
.option('extensions', {
@@ -247,9 +248,7 @@ export async function loadCliConfig(
const excludeTools = mergeExcludeTools(settings, activeExtensions);
if (argv.allowedMcpServerNames) {
- const allowedNames = new Set(
- argv.allowedMcpServerNames.split(',').filter(Boolean),
- );
+ const allowedNames = new Set(argv.allowedMcpServerNames.filter(Boolean));
if (allowedNames.size > 0) {
mcpServers = Object.fromEntries(
Object.entries(mcpServers).filter(([key]) => allowedNames.has(key)),