Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
I’m developing a Streamable HTTP MCP server with OAuth support and noticed a change in Cursor’s behavior.
Previously, Cursor sent the following redirect URI in the authorization request:
cursor://anysphere.cursor-mcp/oauth/callback
Recently (currently on Cursor 3.10.17), Cursor now sends:
http ://localhost:/…
“mcp-server”: {
“type”: “streamable-http”,
“url”: “”,
“auth”: {
“CLIENT_ID”: “”,
“CLIENT_SECRET”: “”,
“scopes”: “openid profile email”
}
}
I’m using Streamable HTTP (not stdio or mcp-remote) and testing with multiple OAuth providers (Okta, Auth0, and Keycloak). The behavior is the same across all of them.
Steps to Reproduce
- Set up a Streamable HTTP MCP server that requires OAuth authentication.
- Configure the server with a static OAuth client (tested with Okta, Auth0, and Keycloak).
- Connect to the MCP server using Cursor IDE 3.10.17.
- Initiate the OAuth authentication flow.
- Inspect the authorization request received by the OAuth provider.
Expected Behavior
The authorization request uses:
redirect_uri= cursor://anysphere.cursor-mcp/oauth/callback
(This was the behavior observed previously.)
Actual Behavior
The authorization request now uses:
redirect_uri=http ://localhost:8787
No changes were made to:
the MCP server,
the OAuth provider,
the OAuth client configuration,
or the OAuth metadata.
The only observed change is that Cursor now sends a localhost redirect URI instead of the previously used cursor:// callback.
Operating System
Windows 10/11
Version Information
Version: 3.10.17 (user setup)
VS Code Extension API: 1.125.0
Commit: c89f45b831621cdc5e951694db44fecd8fab1150
Date: 2026-07-05T06:39:45.228Z
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.256
OS: Windows_NT x64 10.0.26200
Additional Information
A few questions:
Is this an intentional change in Cursor’s OAuth implementation?
Is auth.redirect_uri in mcp.json no longer honored?
Should Streamable HTTP MCP servers now expect http ://localhost loopback callbacks instead of cursor://?
Any clarification would be appreciated.
Does this stop you from using Cursor
No - Cursor works, but with this issue