Add --allowed_mcp_server_names flag (#3464)

This commit is contained in:
Tyler
2025-07-07 09:45:58 -07:00
committed by GitHub
parent 355fb4ac67
commit 229ae03631
2 changed files with 96 additions and 1 deletions

View File

@@ -48,6 +48,7 @@ interface CliArgs {
telemetryTarget: string | undefined;
telemetryOtlpEndpoint: string | undefined;
telemetryLogPrompts: boolean | undefined;
allowed_mcp_server_names: string | undefined;
}
async function parseArguments(): Promise<CliArgs> {
@@ -123,6 +124,10 @@ async function parseArguments(): Promise<CliArgs> {
description: 'Enables checkpointing of file edits',
default: false,
})
.option('allowed_mcp_server_names', {
type: 'string',
description: 'Allowed MCP server names',
})
.version(await getCliVersion()) // This will enable the --version flag based on package.json
.alias('v', 'version')
.help()
@@ -186,9 +191,22 @@ export async function loadCliConfig(
extensionContextFilePaths,
);
const mcpServers = mergeMcpServers(settings, extensions);
let mcpServers = mergeMcpServers(settings, extensions);
const excludeTools = mergeExcludeTools(settings, extensions);
if (argv.allowed_mcp_server_names) {
const allowedNames = new Set(
argv.allowed_mcp_server_names.split(',').filter(Boolean),
);
if (allowedNames.size > 0) {
mcpServers = Object.fromEntries(
Object.entries(mcpServers).filter(([key]) => allowedNames.has(key)),
);
} else {
mcpServers = {};
}
}
const sandboxConfig = await loadSandboxConfig(settings, argv);
return new Config({