Linear MCP auth fails with “Invalid redirect URI” (cursor://anysphere.cursor-mcp/oauth/callback)

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Linear MCP auth fails with Invalid redirect URI

I’m unable to connect the Linear MCP plugin because OAuth fails with a redirect URI mismatch.

What I’m seeing

  • Error: Invalid redirect URI. The redirect URI provided does not match any registered URI for this client.
  • Failing authorize URL includes:
    • redirect_uri=cursor%3A%2F%2Fanysphere.cursor-mcp%2Foauth%2Fcallback
    • client_id=ANvXXXXXX (redacted)
  • Consent screen app is Cursor (expected app)

Environment

  • Cursor on macOS (darwin 25.3.0)
  • Linear workspace: lucyworks
  • Linear plugin/MCP server: plugin-linear-linear

What I already tried

  • Re-approved Cursor app in Linear third-party app approvals
  • Restarted Cursor
  • Removed/re-added the Linear plugin
  • Re-ran auth multiple times

Observed result

  • MCP server status remains “needs authentication”
  • Auth flow repeatedly fails on redirect URI mismatch

Request

Could you verify the Linear OAuth client config for client_id=ANv... includes:

cursor://anysphere.cursor-mcp/oauth/callback

This looks like a provider-side OAuth client redirect registration mismatch rather than a workspace approval issue.

I can share the full authorize URL/logs privately if needed.

Steps to Reproduce

Steps to reproduce

  1. Open Cursor on macOS.
  2. Install/enable the Linear plugin (MCP server: plugin-linear-linear).
  3. Start auth (connect Linear) from Cursor.
  4. Browser opens Linear OAuth consent page for Cursor app.
  5. Click Authorize.
  6. OAuth fails with:
    Invalid redirect URI. The redirect URI provided does not match any registered URI for this client.
  7. The authorize URL includes:
    redirect_uri=cursor%3A%2F%2Fanysphere.cursor-mcp%2Foauth%2Fcallback
    and client_id=ANvXXXXXX (redacted).
  8. Return to Cursor: plugin remains unauthenticated / “needs authentication”.

Expected Behavior

Linear auth completes and plugin becomes authenticated.

Operating System

MacOS

Version Information

Version: 3.1.17
VSCode Version: 1.105.1
Commit: fce1e9ab7844f9ea35793da01e634aa7e50bce90
Date: 2026-04-19T19:33:58.189Z
Layout: glass
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: Darwin arm64 25.3.0

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the detailed report with the authorize URL and the steps. It really helps.

This looks like a provider-side OAuth config issue. Cursor is correctly generating cursor://anysphere.cursor-mcp/oauth/callback and sending it in the authorize request, but Linear is rejecting it as not registered for the pre-configured OAuth client ANv.... The usual steps like re-approving the app won’t fix this. The URI needs to be registered on Linear’s side for our OAuth app. We recently fixed the same kind of issue for Slack MCP when cursor-nightly:// wasn’t registered with the provider.

I’ve reported this to our Extensibility team so they can double-check the Linear OAuth client config for Cursor. I can’t share an ETA yet. I’ll post an update in this thread as soon as I have one.

If you can share the full authorize URL and the full client_id privately, let me know. I’ll DM you, it’ll help us verify this faster on Linear’s side.

You’re welcome, I’ve had cursor generate it so you see you also helped :slight_smile:

I should be able to share the full url privately, yes.

fwiw, I am also getting some really weird redirects when trying to Auth for Linear MCP. I can log into Linear fine with the redirect but then nothing happens. It also is making multiple windows in both Safari and Firefox on MacOS when trying to auth

Where does the bug appear (feature/product)?

Background Agent (GitHub, Slack, Web, Linear)

Describe the Bug

When trying to add the Linear MCP to an automation agent, after clicking on Authenticate the url that I land on (https://mcp.linear.app/authorize…) prints the error “Invalid redirect URI. The redirect URI provided does not match any registered URI for this client.”

Steps to Reproduce

Create a an automation on https://cursor.com/automations
In the Tools section add the Linear MCP Server

Expected Behavior

Should open the linear auth modal

Operating System

MacOS

Version Information

Agent on the hosted cursor. com app

Additional Information

From what i see the redirect_uri param in the Auth url is https://www.cursor.com/agents/mcp/oauth/callback

I saw that someone already reported a similar issue that seems be fixed Linear MCP auth fails with “Invalid redirect URI” (cursor://anysphere.cursor-mcp/oauth/callback) (Worked fine for me in the macOS app)

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

FYI it’s fixed on my side. I’ve been able to reconnect to Linear as expected.

@Anne-Marie_T - thanks for confirming. The desktop-side fix is shipped, callback cursor://anysphere.cursor-mcp/oauth/callback.

@Mathis_Timotei - your case is in the automations/cloud agent context. That uses a different callback, https://www.cursor.com/agents/mcp/oauth/callback, which isn’t registered yet on Linear’s OAuth client side. That’s why it works in the desktop app, but not in cursor.com/automations yet. We’re tracking the issue. I can’t share an ETA, but I’ll reply in the thread as soon as it’s shipped. Temporary workaround is to run Linear MCP locally via the self-hosted runtime. For the native automations flow, you’ll need to wait.

@wwrroo - to figure out if this is the same issue or a different one: after the Linear login completes in the browser, does the MCP server in Cursor end up authenticated, or does it stay in needs auth? If you can, please share screenshots of the multiple windows and the Cursor MCP UI after the attempt.

I have the same problem w/Cloud Agents running via Automations atm. The Linear MCP configured for the Cloud Agents has suddenly been deauthenticated and if I try to reauthenticate I get the same error, rendering our Automations useless for the time being

the URI

redirect_uri=https%3A%2F%2Fwww.cursor.com%2Fagents%2Fmcp%2Foauth%2Fcallback

the response

Invalid redirect URI. The redirect URI provided does not match any registered URI for this client.

Hey, @Evan_F, yep, this is the same issue as the one described above for automations. See Mathis_Timotei’s reply a bit higher up.

Quick status:

  • The desktop callback cursor://anysphere.cursor-mcp/oauth/callback is fixed, so auth works in the IDE.
  • Cloud Agents and Automations use a different callback https://www.cursor.com/agents/mcp/oauth/callback, and it’s not registered yet on the Linear OAuth client side. That’s why re-auth from Automations still hits the same error.

We’re tracking it, but I can’t share an ETA yet. Once it’s registered, we’ll post an update in this thread.

The fact that your previously working Automation suddenly got deauthenticated is a really helpful signal, thanks for the report.

Temporary workaround is to run Linear MCP locally via the self-hosted runtime in the desktop Cursor app. For the native flow in cursor.com/automations, we’ll need to wait for the fix.

If you can share the full authorize URL and the client_id you see on the error page, that’ll help the team verify the Linear-side config faster.

Not sure if this is a bug report or something I am doing wrong. I configured Security Review agent (the new feature that just rolled out) and my custom prompt instructions specifically ask the agent to create a Linear ticket for each finding.

When it runs, the output that arrives in Slack reads:

“(contents of report) Note: Linear MCP requires authentication — unable to create Linear tasks automatically. Please add findings to DEV board manually or authenticate Linear in Cursor Dashboard.”

Linear is configured as an MCP tool both in my Team level (Integrations & MCP teamwide) and also specifically for the Security Review agent (the configuration that appears under MCPs in the Security Review editor). I think either I am doing something wrong- or else the Security Agent isn’t self aware enough to know what tools it has access to?

Hey @Bill_Boulden, your post was merged here since it’s the same case as the one described above for Automations and Cloud Agents, see posts #12 and #14. Security Review runs as a cloud agent and uses the callback https://www.cursor.com/agents/mcp/oauth/callback, which isn’t registered yet on the Linear OAuth client side. Because of that, when Linear MCP starts it goes into needsAuth, and the agent correctly says it can’t create tickets. This isn’t related to Team-level config or Security Review, you set everything up correctly.

We’re tracking this, but I can’t share an ETA yet. Once the callback is registered and automations can authenticate, I’ll update the thread.

Workaround for now: for the native flow in cursor.com/automations, you’ll need to wait. Linear MCP already works in the IDE because the desktop callback is registered, but that doesn’t help the Security Review flow.