From 051b3f376650e3e61f9e72b449feec9002cc6f8a Mon Sep 17 00:00:00 2001 From: "Artem.Bukhonov" Date: Tue, 22 Jul 2025 19:58:53 +0200 Subject: [PATCH] [AIA] Migrate Claude code to use SSE by default and make it configurable in Registry (cherry picked from commit 693760577b49848554c20fdac98c88a79875ba2e) GitOrigin-RevId: 65c969bf59c56fa19a82398d8f8e5e172df82e6a --- .../mcpserver/settings/McpServerSettingsConfigurable.kt | 2 +- .../mcp-server/src/com/intellij/mcpserver/stdioRunnerUtil.kt | 5 ++++- .../test/com/intellij/mcpserver/McpJsonGenerationTest.kt | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/mcp-server/src/com/intellij/mcpserver/settings/McpServerSettingsConfigurable.kt b/plugins/mcp-server/src/com/intellij/mcpserver/settings/McpServerSettingsConfigurable.kt index f59900f33ffd..60a0b75ba7ba 100644 --- a/plugins/mcp-server/src/com/intellij/mcpserver/settings/McpServerSettingsConfigurable.kt +++ b/plugins/mcp-server/src/com/intellij/mcpserver/settings/McpServerSettingsConfigurable.kt @@ -155,7 +155,7 @@ class McpServerSettingsConfigurable : SearchableConfigurable { indent { row { button(McpServerBundle.message("copy.mcp.server.sse.configuration"), { - val json = createSseServerJsonEntry(McpServerService.getInstance().port) + val json = createSseServerJsonEntry(McpServerService.getInstance().port, null) CopyPasteManager.getInstance().setContents(TextTransferable(McpClient.json.encodeToString(json) as CharSequence)) showCopiedBallon(it) }) diff --git a/plugins/mcp-server/src/com/intellij/mcpserver/stdioRunnerUtil.kt b/plugins/mcp-server/src/com/intellij/mcpserver/stdioRunnerUtil.kt index 536489ec1253..68b359a289c3 100644 --- a/plugins/mcp-server/src/com/intellij/mcpserver/stdioRunnerUtil.kt +++ b/plugins/mcp-server/src/com/intellij/mcpserver/stdioRunnerUtil.kt @@ -87,10 +87,13 @@ fun createStdioServerJsonEntry(cmd: GeneralCommandLine): JsonObject { * } * ``` */ -fun createSseServerJsonEntry(port: Int): JsonObject { +fun createSseServerJsonEntry(port: Int, projectBasePath: String?): JsonObject { return buildJsonObject { put("type", "sse") put("url", "http://localhost:$port/sse") + put("headers", buildJsonObject { + put(IJ_MCP_SERVER_PROJECT_PATH, projectBasePath) + }) } } diff --git a/plugins/mcp-server/test/com/intellij/mcpserver/McpJsonGenerationTest.kt b/plugins/mcp-server/test/com/intellij/mcpserver/McpJsonGenerationTest.kt index c22cebba5611..9a4bf8ca94e6 100644 --- a/plugins/mcp-server/test/com/intellij/mcpserver/McpJsonGenerationTest.kt +++ b/plugins/mcp-server/test/com/intellij/mcpserver/McpJsonGenerationTest.kt @@ -56,8 +56,9 @@ class McpJsonGenerationTest { @Test fun test_createSseServerJsonEntry() { val port = 8080 + val projectPath = "/test/project/path" - val jsonConfig = createSseServerJsonEntry(port) + val jsonConfig = createSseServerJsonEntry(port, projectBasePath = projectPath) // Verify the JSON structure Assertions.assertEquals("sse", jsonConfig["type"]?.jsonPrimitive?.content)