summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
authorOlcan <[email protected]>2025-05-16 16:29:03 -0700
committerGitHub <[email protected]>2025-05-16 16:29:03 -0700
commitd9bd2b0e144560c8a82806bfb021a028c7cd43c9 (patch)
tree3573b27b520d6a83b56a16da41ecab700ddf2a26 /packages/cli/src
parente158a0d59f46df4a8b76a7118c7cc10226fdb1c5 (diff)
improved mcp support, including standard "mcpServers" setting with multiple named servers with command/args/env/cwd (#392)
Diffstat (limited to 'packages/cli/src')
-rw-r--r--packages/cli/src/config/config.ts1
-rw-r--r--packages/cli/src/config/settings.ts5
2 files changed, 5 insertions, 1 deletions
diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts
index 12a65440..c0ec38af 100644
--- a/packages/cli/src/config/config.ts
+++ b/packages/cli/src/config/config.ts
@@ -402,6 +402,7 @@ export async function loadCliConfig(settings: Settings): Promise<Config> {
settings.toolDiscoveryCommand,
settings.toolCallCommand,
settings.mcpServerCommand,
+ settings.mcpServers,
userAgent,
memoryContent,
fileCount,
diff --git a/packages/cli/src/config/settings.ts b/packages/cli/src/config/settings.ts
index ab65160c..fa8a545d 100644
--- a/packages/cli/src/config/settings.ts
+++ b/packages/cli/src/config/settings.ts
@@ -7,6 +7,7 @@
import * as fs from 'fs';
import * as path from 'path';
import { homedir } from 'os';
+import { StdioServerParameters } from '@modelcontextprotocol/sdk/client/stdio.js';
export const SETTINGS_DIRECTORY_NAME = '.gemini';
export const USER_SETTINGS_DIR = path.join(homedir(), SETTINGS_DIRECTORY_NAME);
@@ -23,6 +24,7 @@ export interface Settings {
toolDiscoveryCommand?: string;
toolCallCommand?: string;
mcpServerCommand?: string;
+ mcpServers?: Record<string, StdioServerParameters>;
// Add other settings here.
}
@@ -67,9 +69,10 @@ export class LoadedSettings {
setValue(
scope: SettingScope,
key: keyof Settings,
- value: string | undefined,
+ value: string | Record<string, StdioServerParameters> | undefined,
): void {
const settingsFile = this.forScope(scope);
+ // @ts-expect-error - value can be string | Record<string, StdioServerParameters>
settingsFile.settings[key] = value;
this._merged = this.computeMergedSettings();
saveSettings(settingsFile);