From 116a50f7b4008d2695f4fe105ad4b3461653e410 Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Fri, 30 May 2025 15:34:19 -0400 Subject: [PATCH] Pass headers to SSE (fixes #2705) (#4148) * Pass headers to SSE * Add changeset --- .changeset/nine-windows-read.md | 5 +++++ src/services/mcp/McpHub.ts | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 .changeset/nine-windows-read.md diff --git a/.changeset/nine-windows-read.md b/.changeset/nine-windows-read.md new file mode 100644 index 0000000000..905310becc --- /dev/null +++ b/.changeset/nine-windows-read.md @@ -0,0 +1,5 @@ +--- +"roo-cline": patch +--- + +Correctly pass headers to SSE MCP diff --git a/src/services/mcp/McpHub.ts b/src/services/mcp/McpHub.ts index e1009d9741..15b76fd001 100644 --- a/src/services/mcp/McpHub.ts +++ b/src/services/mcp/McpHub.ts @@ -518,6 +518,13 @@ export class McpHub { const reconnectingEventSourceOptions = { max_retry_time: 5000, // Maximum retry time in milliseconds withCredentials: configInjected.headers?.["Authorization"] ? true : false, // Enable credentials if Authorization header exists + fetch: (url: string | URL, init: RequestInit) => { + const headers = new Headers({ ...(init?.headers || {}), ...(configInjected.headers || {}) }) + return fetch(url, { + ...init, + headers, + }) + }, } global.EventSource = ReconnectingEventSource transport = new SSEClientTransport(new URL(configInjected.url), {