improved mcp support, including standard "mcpServers" setting with multiple named servers with command/args/env/cwd (#392)

This commit is contained in:
Olcan
2025-05-16 16:29:03 -07:00
committed by GitHub
parent e158a0d59f
commit d9bd2b0e14
5 changed files with 77 additions and 42 deletions

View File

@@ -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);