Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Follow-up to this thread from October 2025, acknowledged by a Cursor team member:
The issue persists in Cursor 3.14.27.
When connecting to an MCP server using OAuth Dynamic Client Registration (DCR), Cursor sends a registration payload that:
-
Omits
application_type. MCP Authorization 2026-07-28 requires MCP clients to specify it during DCR. Under OIDC, omission defaults to"web", which can conflict with native redirect URIs. -
Uses a non-RFC-8252-compliant private redirect URI.
cursor://anysphere.cursor-mcp/oauth/callbackuses a generic scheme with an authority component (://host/), instead of an authority-free, reverse-domain private scheme such ascom.example.app:/path.
Authorization servers enforcing these policies reject DCR before login. This is reproduced with Better Auth and was reproduced with node-oidc-provider in the linked earlier report.
The RFC 8252 issue remains even after adding application_type: "native".
Observed error:
Connection failed: web clients require https redirect URIs on non-loopback hosts:
cursor://anysphere.cursor-mcp/oauth/callback
Payload observed (no secrets):
{
"client_name": "Cursor",
"redirect_uris": [
"cursor://anysphere.cursor-mcp/oauth/callback",
"https://www.cursor.com/agents/mcp/oauth/callback",
"http://localhost:8787/callback"
],
"grant_types": ["authorization_code", "refresh_token"],
"response_types": ["code"],
"token_endpoint_auth_method": "none"
}
Note: application_type is absent.
Steps to Reproduce
- Run an MCP authorization server with OAuth DCR, for example Better Auth
@better-auth/oauth-provider1.7.0-rc.4. - Add the MCP server in Cursor via Settings → MCP → remote OAuth server.
- Cursor attempts DCR.
- Registration is rejected; login and consent are never reached.
Expected Behavior
Desktop DCR should send:
application_type: "native"- An RFC 8252-conformant, authority-free private redirect URI based on a domain Cursor controls, or a supported loopback redirect.
For example, the required private-URI syntax is:
com.example.app:/oauth/callback
This is only a syntax example; Cursor should select a reverse-domain scheme based on a domain it controls.
Registration should succeed without server-specific workarounds.
Impact
Immediate: MCP OAuth connections fail with authorization servers enforcing these redirect policies.
Security: No authentication bypass is demonstrated. However, the generic cursor:// scheme provides weaker collision resistance than the reverse-domain scheme required by RFC 8252.
Operating System
MacOS
Version Information
Version: 3.14.27
VS Code Extension API: 1.128.0
Commit: 047548b00c1a079373d74d00183f32510a4a41e0
Date: 2026-08-04T03:29:11.183Z
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 25.3.0
Does this stop you from using Cursor
No - Cursor works, but with this issue