Google Workspace plugins OAuth fails: Error 400 invalid_request on cursor:// redirect

Where does the bug appear (feature/product)?

Somewhere else…

Describe the Bug

Google Workspace plugins install, but authentication never completes.

In Customize > MCPs, google-calendar, google-docs, google-drive, and google-sheets stay on “Needs Authentication in Cloud”.

Clicking Authenticate opens Google Sign-in for [email protected], then Google blocks with:

Access blocked: Authorization Error
Error 400: invalid_request

Error details show:
redirect_uri=cursor://anysphere.cursor-mcp/oauth/callback
flowName=GeneralOAuthFlow

This looks like Cursor/Anysphere OAuth redirect URI is rejected by Google. Cannot finish connect. Retrying Authenticate hits the same error.

Mac, Cursor 3.14.7. Screenshots attached.

Steps to Reproduce

  1. Open Cursor Desktop on Mac (3.14.7).
  2. Go to Customize > MCPs.
  3. Install Google Workspace plugins (google-sheets, google-drive, google-docs, google-calendar).
  4. See them under Needs Attention: “Needs Authentication in Cloud”.
  5. Click Authenticate on google-sheets (or any of them).
  6. Google Sign-in opens for [email protected].
  7. After choosing the account, Google shows:
    Access blocked: Authorization Error
    Error 400: invalid_request
  8. Error details show:
    redirect_uri=cursor://anysphere.cursor-mcp/oauth/callback
    flowName=GeneralOAuthFlow
  9. Click Done. Plugins remain “Needs Authentication in Cloud”. Retrying Authenticate repeats the same error.

Screenshots / Screen Recordings

Operating System

MacOS

Version Information

Version: 3.14.7
VSCode Version: 1.128.0
Commit: a758f2241ca99fecf380180b6cbdbbce0f1f42c0

For AI issues: which model did you use?

grok 4.5

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hi @Fumiaki_Yamazaki Thank you for the post.

What you’re seeing isn’t caused by anything in your setup. The in-app Authenticate button on the Cloud row sends a cursor:// redirect address, and Google doesn’t accept that style of address for this kind of sign-in, so it stops the flow before you ever get to the consent screen. That’s why the retry lands in the same place every time.

For Cloud, authenticate from https://cursor.com/agents instead of the in-app button. Open MCP Servers from the + menu, find the plugin, then Login. Sign in with the same Cursor account you use in the app. That path uses a different callback address and is the one that can complete Cloud auth. You’ll need to do this once per plugin, so four times for Calendar, Docs, Drive, and Sheets.

If you’d rather use these plugins in the editor rather than in the cloud, the Local option authenticates through a different address that Google does accept, so that route works today as well.

This is an issue we’re tracking and it isn’t something you need to reconfigure on your end. No timeline to share yet, but I’ll post here when there’s an update.

Hi @kevinn

This is also happening on my machine. I’m running Cursor locally with Google Drive plugin.

Version: 3.14.27 (system setup)
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: Windows_NT x64 10.0.26200

Error

400 Invalid request from Google Oauth
redirect_uri=cursor://anysphere.cursor-mcp/oauth/callback flowName=GeneralOAuthFlow

Adding a data point that may help narrow this down: I’m seeing the same Error 400: invalid_request / “Access blocked” page when authenticating Gmail, Google Calendar, and Google Drive plugins, on the latest desktop build (3.15.6, macOS).

Notably, this isn’t limited to the manual “Authenticate” button — it also breaks Remote Control / Cursor Cloud sessions, since Remote Control authenticates through the same Cloud OAuth path. Clicking “Login” from the agents page produces the identical Google “Access blocked” error (so the cursor.com/agents workaround mentioned above doesn’t unblock Cloud auth on my end).

Workaround confirmed on my end: switching the plugin’s environment from Cloud to Local in the “Configure [plugin]” dialog restores functionality — Local shows “Connected” and tool calls (e.g., reading Gmail) work fine. But this only helps for local/in-app usage; anything routed through Remote Control or Cloud remains broken since it can’t use Local auth.

For context, unrelated integrations (e.g., Notion) re-authenticate normally, so this does appear isolated to the Google Workspace plugins’ Cloud redirect handling specifically.

Would appreciate an update if there’s a Cloud-specific workaround, since Local mode isn’t viable for Remote Control workflows.

The cursor.com/agents workaround does not work for me. Using MCP Servers → Google Drive → Login produces the same Google 400: invalid_request authorization error.

Local authentication does not help with Cloud Agents. Is there a working Cloud-specific workaround or an update on the OAuth callback fix?