From 102a996875d25ea968b8287674a10fba6f1b094c Mon Sep 17 00:00:00 2001 From: hannesrudolph Date: Mon, 10 Mar 2025 15:18:19 -0600 Subject: [PATCH 1/3] fix: update MCP servers directory path for platform compatibility --- src/core/webview/ClineProvider.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 72cf56d35b..7f7ffa0683 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -1971,11 +1971,24 @@ export class ClineProvider implements vscode.WebviewViewProvider { // MCP async ensureMcpServersDirectoryExists(): Promise { - const mcpServersDir = path.join(os.homedir(), "Documents", "Cline", "MCP") + // Get platform-specific application data directory + let mcpServersDir: string + if (process.platform === "win32") { + // Windows: %APPDATA%\Cline\MCP + mcpServersDir = path.join(os.homedir(), "AppData", "Roaming", "Roo-Code", "MCP") + } else if (process.platform === "darwin") { + // macOS: ~/Documents/Cline/MCP + mcpServersDir = path.join(os.homedir(), "Documents", "Cline", "MCP") + } else { + // Linux: ~/.local/share/Cline/MCP + mcpServersDir = path.join(os.homedir(), ".local", "share", "Roo-Code", "MCP") + } + try { await fs.mkdir(mcpServersDir, { recursive: true }) } catch (error) { - return "~/Documents/Cline/MCP" // in case creating a directory in documents fails for whatever reason (e.g. permissions) - this is fine since this path is only ever used in the system prompt + // Fallback to a relative path if directory creation fails + return path.join("~", ".roo-code", "mcp") } return mcpServersDir } From abcb7c18b4c5e181e4042e0ee627fc1f6621d3b6 Mon Sep 17 00:00:00 2001 From: Hannes Rudolph Date: Mon, 10 Mar 2025 16:23:43 -0600 Subject: [PATCH 2/3] Update src/core/webview/ClineProvider.ts Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- src/core/webview/ClineProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 7f7ffa0683..6433b948c7 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -1974,7 +1974,7 @@ export class ClineProvider implements vscode.WebviewViewProvider { // Get platform-specific application data directory let mcpServersDir: string if (process.platform === "win32") { - // Windows: %APPDATA%\Cline\MCP + // Windows: %APPDATA%\Roo-Code\MCP mcpServersDir = path.join(os.homedir(), "AppData", "Roaming", "Roo-Code", "MCP") } else if (process.platform === "darwin") { // macOS: ~/Documents/Cline/MCP From 7462906b7a2b4417fb5fdedfc5117fc8b6ebccef Mon Sep 17 00:00:00 2001 From: Hannes Rudolph Date: Mon, 10 Mar 2025 18:49:25 -0600 Subject: [PATCH 3/3] Update ClineProvider.ts Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- src/core/webview/ClineProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 6433b948c7..80dc5e0c50 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -1988,7 +1988,7 @@ export class ClineProvider implements vscode.WebviewViewProvider { await fs.mkdir(mcpServersDir, { recursive: true }) } catch (error) { // Fallback to a relative path if directory creation fails - return path.join("~", ".roo-code", "mcp") + return path.join(os.homedir(), ".roo-code", "mcp") } return mcpServersDir }