Summary
On Windows, Claude Desktop via mcp-remote 0.1.37 (transport strategy http-first) sends initialize to a StreamableHTTP server, gets no response, and times out after 60 seconds with MCP error -32001: Request timed out. The same server config answers an initialize from mcp-remote 0.1.37 in a few milliseconds on macOS, and a POST-only client answers fine against the same server on the same Windows machine. The hang also reproduces against a second, unrelated MCP server on that machine. This points at mcp-remote on Windows rather than any single server.
Reported downstream at istefox/obsidian-mcp-connector#300, which has the full user logs.
Environment (reporter, Windows)
- mcp-remote 0.1.37
- Claude Desktop 1.12603.1
- Node.js under
Program Files\nodejs, launched via cmd /c npx -y mcp-remote URL --header "Authorization: Bearer ..."
- Server: stateless MCP server (StreamableHTTPServerTransport,
sessionIdGenerator: undefined, enableJsonResponse: true), returns 405 on GET so the SSE stream is skipped.
Client initialize payload (from Claude Desktop)
{"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{"extensions":{"io.modelcontextprotocol/ui":{"mimeTypes":["text/html;profile=mcp-app"]}}},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0}
Windows mcp-remote output (hang)
Using transport strategy: http-first
Connected to remote server using StreamableHTTPClientTransport
Local STDIO server running
Proxy established successfully between local STDIO and remote StreamableHTTPClientTransport
[Local→Remote] initialize
[Local→Remote] notifications/cancelled
Shutting down...
No [Remote→Local] 0 ever appears. 60 seconds elapse between initialize and notifications/cancelled.
What I could and could not reproduce
On macOS (Node 22.23.0), with the same mcp-remote 0.1.37 and a minimal server matching the config above, the handshake completes:
[Local→Remote] initialize
[Remote→Local] 0
{"jsonrpc":"2.0","id":0,"result":{...}}
in about 3 ms. I do not have a Windows machine to reproduce on, so the Windows logs are from the downstream reporter.
Ruled out
- Not the server: a POST-only client works against it on the same Windows box, and macOS works through mcp-remote.
- Not one server's code: the same hang appears on a second, unrelated server on the same machine.
- Not the protocol version:
2025-11-25 negotiates fine on macOS.
Ask
Is this a known issue with http-first on Windows? Is there anything in how the StreamableHTTP POST response is read on Windows (keep-alive, chunked read, undici) that would explain a 60-second no-response on initialize specifically? I am happy to run a debug build or capture more on the reporter's machine. A minimal macOS repro (server plus driver) is available on request.
Summary
On Windows, Claude Desktop via mcp-remote 0.1.37 (transport strategy
http-first) sendsinitializeto a StreamableHTTP server, gets no response, and times out after 60 seconds withMCP error -32001: Request timed out. The same server config answers aninitializefrom mcp-remote 0.1.37 in a few milliseconds on macOS, and a POST-only client answers fine against the same server on the same Windows machine. The hang also reproduces against a second, unrelated MCP server on that machine. This points at mcp-remote on Windows rather than any single server.Reported downstream at istefox/obsidian-mcp-connector#300, which has the full user logs.
Environment (reporter, Windows)
Program Files\nodejs, launched viacmd /c npx -y mcp-remote URL --header "Authorization: Bearer ..."sessionIdGenerator: undefined,enableJsonResponse: true), returns 405 on GET so the SSE stream is skipped.Client initialize payload (from Claude Desktop)
{"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{"extensions":{"io.modelcontextprotocol/ui":{"mimeTypes":["text/html;profile=mcp-app"]}}},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0}Windows mcp-remote output (hang)
No
[Remote→Local] 0ever appears. 60 seconds elapse betweeninitializeandnotifications/cancelled.What I could and could not reproduce
On macOS (Node 22.23.0), with the same mcp-remote 0.1.37 and a minimal server matching the config above, the handshake completes:
in about 3 ms. I do not have a Windows machine to reproduce on, so the Windows logs are from the downstream reporter.
Ruled out
2025-11-25negotiates fine on macOS.Ask
Is this a known issue with
http-firston Windows? Is there anything in how the StreamableHTTP POST response is read on Windows (keep-alive, chunked read, undici) that would explain a 60-second no-response oninitializespecifically? I am happy to run a debug build or capture more on the reporter's machine. A minimal macOS repro (server plus driver) is available on request.