Skip to main content
Glama

Code MCP Server

by block
settingsManager.ts1.77 kB
import * as vscode from 'vscode' export interface MCPSettings { diffing: { enabled: boolean } fileOpening: { enabled: boolean } shellCommands: { enabled: boolean } } export class SettingsManager { private static instance: SettingsManager private _context: vscode.ExtensionContext private constructor(context: vscode.ExtensionContext) { this._context = context } public static getInstance(context?: vscode.ExtensionContext): SettingsManager { if (!SettingsManager.instance && context) { SettingsManager.instance = new SettingsManager(context) } if (!SettingsManager.instance) { throw new Error('SettingsManager not initialized') } return SettingsManager.instance } public getSettings(): MCPSettings { const defaultSettings = this.getDefaultSettings() const savedSettings = this._context.globalState.get<Partial<MCPSettings>>('mcpSettings') || {} // Merge default settings with saved settings, ensuring all properties exist return { diffing: { enabled: savedSettings.diffing?.enabled ?? defaultSettings.diffing.enabled, }, fileOpening: { enabled: savedSettings.fileOpening?.enabled ?? defaultSettings.fileOpening.enabled, }, shellCommands: { enabled: savedSettings.shellCommands?.enabled ?? defaultSettings.shellCommands.enabled, }, } } public async updateSettings(settings: MCPSettings): Promise<void> { await this._context.globalState.update('mcpSettings', settings) } public getDefaultSettings(): MCPSettings { return { diffing: { enabled: true, }, fileOpening: { enabled: true, }, shellCommands: { enabled: true, }, } } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/block/vscode-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server