Gmail MCP in Grok Bot / Cursor: tools are one global list for the connector. They are not nested under each authenticated account. After a Google-side wipe and re-auth with only “View your email messages and settings,” Send / Reply / Forward / Create draft still show ON. A write call is attempted, then the client tries to upscope the OAuth grant.
Repro
Connect Gmail with three Google accounts on one Gmail connector.
On two accounts: remove Cursor at Google (third-party access), delete the account from Grok Bot, re-auth. On the consent screen grant only “View your email messages and settings.” Leave the third account as full mail.
Open the Gmail connector. Tools = 29 of 29 enabled. Send message, Reply, Forward, Create draft are ON. There is no per-account tool list.
Call create_draft on a View-only account.
Result
UI: write tools ON for every account.
MCP catalog: same 29 tools on each account id.
create_draft: HTTP 403 after trying upscoping. Google refused. The client asked for more scope than the user granted.
Expected
Tool toggles nested under each account.
View-only tokens do not show Send/Reply/Forward as ON.
A write tool on a readonly grant fails closed. No silent upscope attempt.
Why it matters
The real lock is the Google token. The product UI and tool catalog say the opposite. If anyone clicks through the upscope prompt, a “read-only” mailbox can send as that user. Connectors are account-wide, not per-agent.
For AI issues: which model did you use?
Model name (e.g., Sonnet 4, Tab…)
For AI issues: add Request ID with privacy disabled
Request ID: f9a7046a-279b-47e5-ab48-6e8dc12daba1
For Background Agent issues, also post the ID: bc-…
Additional Information
Add any other context about the problem here.
Does this stop you from using Cursor?
Yes - Cursor is unusable
Sometimes - I can sometimes use Cursor
No - Cursor works, but with this issue
The more details you provide, the easier it is for us to reproduce and fix the issue. Thanks!
Calendar MCP tools are one global list (9 of 9 enabled: Create event, Update, Delete, Respond). Not nested under each account.
Repro today:
Account A: Google View-only. create_event returned HTTP 403 after the client tried to upscope. Google held.
Account B: full. create_event on its own calendar succeeded (no guests; then deleted). create_event on Account A’s calendar was denied (no permission).
Expected (same as Gmail and Drive):
Per-account tool toggles.
View-only tokens do not show Create / Update / Delete / Respond as ON.
A write tool on a readonly grant fails closed. No silent upscope.
The Slack connector is one global scope list for the whole app (chat:write included). There is no View-only / read-only grant. There is no per-account tool list.
What that means:
A human can want Account A = analyze only and Account B = send as that bot identity. The product cannot express that. Installing Slack for Account A includes write.
Consent is all-or-nothing unless the app owner marks scopes optional. Cursor owns the Slack app. There is no Read-only option in the Grok Bot UI.
Same family as Gmail / Drive / Calendar on this topic: the UI and catalog do not match the lock the human actually wanted.
Expected:
A Read-only Slack option (no chat:write).
Per-account Slack permissions on a multi-account connector, same as the Gmail ask.
A write tool on a read-only intent fails closed. No silent upscope / extra-scope consent.