MCP Installation Deeplink broken

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

The docs mention that deep links should work for installing MCP servers - but in the latest cursor version, it looks like it doesn’t work. Could we fix this?

This is an example link:

cursor://anysphere.cursor-deeplink/mcp/install?name=mcp-test&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZ2xlYW4uY29tL21jcC9hYmMifQ==

Steps to Reproduce

Open this link:

cursor://anysphere.cursor-deeplink/mcp/install?name=mcp-test&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZ2xlYW4uY29tL21jcC9hYmMifQ==

It would not show the content to be installed.

Expected Behavior

It should install the MCP.

Operating System

Linux

Version Information

Version: 3.15.6 (Universal)
VS Code Extension API: 1.128.0
Commit: a1f686545fd0ce8917bbd2449f733551a9bce420
Date: 2026-08-06T01:41:03.876Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.291
OS: Darwin arm64 24.6.0

For AI issues: which model did you use?

For AI issues: add Request ID with privacy disabled

Additional Information

Does this stop you from using Cursor

No - Cursor works, but with this issue

Root cause confirmed. The link is fine; Cursor’s Customize migration broke the MCP deeplink install card.

The chain, all in workbench.desktop.main.js:

function LXf(e,t){ if(e===“mcp”) return {kind:“manage”, tab:“mcps”, scope:PXf(t?.mcpTarget)} … }

function NXf(e,t,n){
const i = LXf(t,n);
return i===undefined || getExperimentParam(“customize_migration”,“stage”) !== “full”
? false
: (cIe(e,i), true); // ← redirect to Customize, report “handled”
}

// aiSettings.action.open:
if (r!==undefined && NXf(t,r,…) || getContextKeyValue(“isSettingsPaneOpen”)) return;

You’re on customize_migration = full — your end-state screenshot is {kind:“manage”, tab:“mcps”}, the Customize → MCPs pane. So:

  1. aiSettings.action.open(“mcp”) → NXf returns true → cIe() routes you to Customize, and run() returns early. The legacy AI-Settings MCP pane never opens.
  2. mcp.deeplinkInstall still runs and sets proposedServer on MCPInstallationService.
  3. But proposedServer_reactive has exactly one renderer in the entire bundle — oGi → AFb — and it’s mounted only in the legacy pane (J(oGi,{}) under h()===“status” || h()===“scope”). Customize doesn’t render it.

Nothing to fix on your side — file it against Cursor.


^ This is what my Claude says.

Hey @Aditya_Kumar - you’re on 3.15.6; this was fixed in 3.15.12+. Update to the latest (3.15.17+) and retry that install link.

Until then, add it from Customize → MCPs, or via ~/.cursor/mcp.json. Docs: MCP install links.

Hi Mohit. As of the time of this comment, the latest available version from the Cursor downloads page is 3.15.6.