Describe the Bug
Summary
On Linux, authenticating the built-in Linear integration (MCP OAuth) opens an additional Cursor window after the browser step. The OAuth callback does not complete; Linear stays disconnected. Closing all Cursor windows first does not prevent the extra window.
Environment
- OS: Debian Linux x86_64 (kernel 6.12.74+deb13+1-amd64)
- Cursor: 3.3.30 (commit 3dc559280adc5f931ade8e25c7b85393842acf30, x64), installed from .deb
- Integration: Cursor Linear plugin / MCP auth flow (browser OAuth, then
cursor://…callback)
cursor:// handler (sanity check)
$ xdg-mime query default x-scheme-handler/cursor
cursor-url-handler.desktop
/usr/share/applications/cursor-url-handler.desktop contains: Exec=/usr/share/cursor/cursor --open-url %U MimeType=x-scheme-handler/cursor;
So the URL scheme is registered and passes %U; the failure appears to be in tying the callback to the in-flight MCP auth session, not a missing handler.
### Steps to Reproduce
On Linux, open Cursor (single workspace is enough).
Start Linear MCP authentication (e.g. auth prompt for the Linear MCP server / plugin).
Complete login in the browser when redirected to Linear.
Observe: browser (or OS) invokes the cursor://… OAuth callback; Cursor opens another window (or process).
Original session never shows Linear as connected; auth does not finish.
### Expected Behavior
After browser login, the same Cursor instance that started OAuth should receive the callback and complete Linear MCP authentication without spawning a disconnected second window.
### Operating System
Linux
### Version Information
Version: 3.3.30
VSCode Version: 1.105.1
Commit: 3dc559280adc5f931ade8e25c7b85393842acf30
Date: 2026-05-09T18:28:42.332Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Linux x64 6.12.74+deb13+1-amd64
### Does this stop you from using Cursor
No - Cursor works, but with this issue