update_config
Modify and apply configuration settings to optimize code context extraction, import analysis, and token usage for AI-assisted programming in TypeScript, JavaScript, Python, Go, and Rust.
Instructions
Update configuration settings
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| config | Yes | Configuration updates to apply |
Implementation Reference
- src/index.ts:198-211 (registration)Registration of the 'update_config' tool in the MCP server's listTools handler, including name, description, and input schema.{ name: 'update_config', description: 'Update configuration settings with new values. Allows fine-tuning of the optimizer behavior including cache policies, token limits, analysis depth, performance thresholds, and feature toggles. Changes are applied immediately and persist for the current session.', inputSchema: { type: 'object', properties: { config: { type: 'object', description: 'Partial configuration object with updates to apply. Can include any combination of configuration sections. Changes are merged with existing settings, not replaced entirely.', }, }, required: ['config'], }, },
- src/index.ts:397-422 (handler)Main handler function for the 'update_config' tool. Extracts config from arguments, calls ConfigManager.updateConfig, optionally updates logger, and returns success response.private async handleUpdateConfig(args: any) { const { config } = args; if (!config) { throw new McpError(ErrorCode.InvalidParams, 'config is required'); } try { this.configManager.updateConfig(config); // Refresh logger configuration when logging section changes if (config.logging) { const logCfg = this.configManager.getConfig().logging; this.logger.updateConfig({ level: logCfg.level, toFile: logCfg.enableFileLogging, filePath: logCfg.logPath }); } return { content: [{ type: 'text', text: 'Configuration updated successfully', }], }; } catch (error) { this.logger.error(`update_config failed: ${error instanceof Error ? error.message : String(error)}`); throw new McpError(ErrorCode.InternalError, `Failed to update configuration: ${error instanceof Error ? error.message : String(error)}`); } }
- src/config/ConfigManager.ts:6-79 (schema)TypeScript interface defining the full structure of CodeReferenceOptimizerConfig, used for config validation and updates in the tool.export interface CodeReferenceOptimizerConfig { // Cache settings cache: { maxSize: number; ttlMs: number; evictionPolicy: CacheEvictionPolicy; enablePersistence: boolean; persistencePath?: string; }; // Context extraction settings extraction: { strategy: ContextExtractionStrategy; maxTokens: number; includeComments: boolean; includeImports: boolean; includeExports: boolean; contextLines: number; minRelevanceScore: number; }; // Import optimization settings imports: { enableOptimization: boolean; preserveSideEffects: boolean; analyzeTransitiveDeps: boolean; maxDepthLevel: number; excludePatterns: string[]; includePatterns: string[]; }; // Diff settings diff: { enableContextualDiff: boolean; contextLines: number; ignoreWhitespace: boolean; ignoreComments: boolean; enableSymbolTracking: boolean; }; // Performance settings performance: { maxFileSize: number; maxConcurrentOperations: number; enableMetrics: boolean; timeoutMs: number; }; // Language-specific settings languages: { [language: string]: { enabled: boolean; extensions: string[]; parserOptions?: any; customRules?: OptimizationConfig; }; }; // Logging settings logging: { level: LogLevel; enableFileLogging: boolean; logPath?: string; enableMetricsLogging: boolean; }; // Security settings security: { allowedPaths: string[]; blockedPaths: string[]; maxFileAccess: number; enableSandbox: boolean; }; }
- src/config/ConfigManager.ts:151-155 (helper)ConfigManager.updateConfig method: merges partial updates with current config, validates the new config, and notifies change listeners.updateConfig(updates: Partial<CodeReferenceOptimizerConfig>): void { this.config = this.mergeConfigs(this.config, updates); this.validateConfig(); this.notifyConfigChange(); }
- src/utils/Logger.ts:31-35 (helper)Logger.updateConfig method: updates logger settings like level, file output, and path, called when logging config changes.updateConfig(config: LoggerConfig) { if (config.level) this.level = config.level; if (typeof config.toFile === 'boolean') this.toFile = config.toFile; if (config.filePath !== undefined) this.filePath = config.filePath; }