From d8df08d3d36c556a2289dc191caf11a365ec6faf Mon Sep 17 00:00:00 2001 From: Waleed Date: Mon, 26 Jan 2026 19:54:27 -0800 Subject: [PATCH] improvement(mcp): remove mcp-remote for cursor config (#3020) --- .../workflow-mcp-servers.tsx | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/workflow-mcp-servers/workflow-mcp-servers.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/workflow-mcp-servers/workflow-mcp-servers.tsx index 53fdf533d..bf52b1c0b 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/workflow-mcp-servers/workflow-mcp-servers.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/workflow-mcp-servers/workflow-mcp-servers.tsx @@ -185,6 +185,16 @@ function ServerDetailView({ workspaceId, serverId, onBack }: ServerDetailViewPro return `claude mcp add "${safeName}" --url "${mcpServerUrl}" --header "X-API-Key:$SIM_API_KEY"` } + // Cursor supports direct URL configuration (no mcp-remote needed) + if (client === 'cursor') { + const cursorConfig = isPublic + ? { url: mcpServerUrl } + : { url: mcpServerUrl, headers: { 'X-API-Key': '$SIM_API_KEY' } } + + return JSON.stringify({ mcpServers: { [safeName]: cursorConfig } }, null, 2) + } + + // Claude Desktop and VS Code still use mcp-remote (stdio transport) const mcpRemoteArgs = isPublic ? ['-y', 'mcp-remote', mcpServerUrl] : ['-y', 'mcp-remote', mcpServerUrl, '--header', 'X-API-Key:$SIM_API_KEY'] @@ -265,14 +275,8 @@ function ServerDetailView({ workspaceId, serverId, onBack }: ServerDetailViewPro .replace(/[^a-z0-9-]/g, '') const config = isPublic - ? { - command: 'npx', - args: ['-y', 'mcp-remote', mcpServerUrl], - } - : { - command: 'npx', - args: ['-y', 'mcp-remote', mcpServerUrl, '--header', 'X-API-Key:$SIM_API_KEY'], - } + ? { url: mcpServerUrl } + : { url: mcpServerUrl, headers: { 'X-API-Key': '$SIM_API_KEY' } } const base64Config = btoa(JSON.stringify(config)) return `cursor://anysphere.cursor-deeplink/mcp/install?name=${encodeURIComponent(safeName)}&config=${encodeURIComponent(base64Config)}`