diff --git a/packages/vscode/src/opencodeConfig.ts b/packages/vscode/src/opencodeConfig.ts index 0eeb5266..d174e513 100644 --- a/packages/vscode/src/opencodeConfig.ts +++ b/packages/vscode/src/opencodeConfig.ts @@ -503,6 +503,7 @@ export type McpRemoteConfig = { type: 'remote'; url?: string; environment?: Record; + headers?: Record; enabled?: boolean; }; @@ -515,6 +516,7 @@ export type McpConfigEntry = { command?: string[]; url?: string; environment?: Record; + headers?: Record; enabled: boolean; }; @@ -550,8 +552,22 @@ const buildMcpEntry = (data: Record): Omit 0) { entry.command = data.command.map((value) => String(value)); } - } else if (typeof data.url === 'string' && data.url.trim()) { - entry.url = data.url.trim(); + } else { + if (typeof data.url === 'string' && data.url.trim()) { + entry.url = data.url.trim(); + } + + if (isPlainObject(data.headers)) { + const cleanedHeaders: Record = {}; + for (const [key, value] of Object.entries(data.headers)) { + if (key && value != null) { + cleanedHeaders[key] = String(value); + } + } + if (Object.keys(cleanedHeaders).length > 0) { + entry.headers = cleanedHeaders; + } + } } if (isPlainObject(data.environment)) {