Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
When Cursor initiates OAuth for a remote MCP server with static client credentials
(auth.CLIENT_ID in mcp.json), the authorize URL always includes prompt=consent.
Example (Microsoft Entra ID / Agent 365 MCP), authorize request includes parameters like:
response_type=code, client_id=…, redirect_uri=http://localhost:8787/callback,
scope=…, and prompt=consent
In tenants that disable user consent (common in enterprise/regulated orgs), this forces
an “Approval required” screen on every Connect attempt — even when:
- Tenant admin consent has already been granted for the app
- The exact same client ID + scopes work fine in other MCP clients (e.g. Claude Code,
which does not send prompt=consent)
Manually copying the authorize URL and removing prompt=consent before opening it in
a browser allows sign-in to complete silently and the MCP server connects successfully —
confirming this parameter is the root cause, not the Entra app config.
Request: make prompt=consent optional/configurable in mcp.json’s auth block (e.g.
auth.prompt or a boolean to suppress it), or drop it by default when the server
reports admin consent is already satisfied.
Environment: - Cursor Desktop, macOS
- Remote MCP server, Streamable HTTP, static auth.CLIENT_ID
- Microsoft Entra ID / Agent 365 Tools tenant with user consent disabled
Steps to Reproduce
- Register a public client app in Microsoft Entra ID with platform “Mobile and desktop
applications” and redirect URI http://localhost:8787/callback - Grant tenant admin consent for the required delegated API permissions/scopes on that app
- Add the MCP server to ~/.cursor/mcp.json using static OAuth credentials (auth.CLIENT_ID
plus scopes) - Reload Cursor, go to Settings, MCP, and click Connect on the server
- Observe the browser is redirected to Microsoft Entra ID’s OAuth2 v2.0 authorize endpoint
- Inspect the URL query parameters — it includes prompt=consent
- If the tenant has user consent disabled, this returns an “Approval required” screen
requesting the user submit an admin approval request — every single time, regardless
of prior admin consent - As a manual test, copy the same authorize URL, remove only the prompt=consent parameter,
and open the edited URL in the same browser tab/session - Sign-in completes normally with no approval screen, and the MCP server connects
successfully
Expected Behavior
Expected Behavior:
- If the tenant admin has already granted consent for the app’s requested scopes, Cursor’s
OAuth flow should not force an interactive consent screen on every Connect attempt - prompt=consent should either not be sent by default, or be configurable/optional in the
mcp.json auth block (e.g. an auth.prompt field or boolean), so users/admins in enterprise
tenants can suppress it - Other MCP clients (e.g. Claude Code) using the same Entra app, client ID, and scopes
connect successfully without this forced prompt — indicating this is Cursor-specific
behavior, not an issue with the Entra app or tenant configuration
Operating System
MacOS
Version Information
Version: 3.16.17
VS Code Extension API: 1.128.0
Commit: 6b2afae0257df2bb5e1835f15165dc2f0de056b0
Date: 2026-08-14T01:41:12.803Z
Layout: Agent Window
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.6.0
Does this stop you from using Cursor
No - Cursor works, but with this issue