[Bug] Gmail MCP connector missing write scopes in Claude Code
Bug Description
Title: Gmail MCP connector has write permissions in Cowork but not in Claude Code
Description:
The native Gmail connector (gmail.mcp.claude.com) connected through claude.ai settings works differently in
Cowork vs Claude Code:
- Cowork (desktop/web): Can label threads, unlabel threads, archive (remove INBOX label), create labels —
all write operations work fine
- Claude Code: Same connector, same account, but all write operations fail with "Request had insufficient
authentication scopes"
Tools that fail in Claude Code: label_thread, unlabel_thread, label_message, create_label
Tools that work in both: search_threads, get_thread, list_labels, list_drafts, create_draft
This appears to be a scope mismatch — Cowork requests gmail.modify but Claude Code does not, even though
they use the same MCP server URL.
Related issue: #46206
Expected: Write operations should work in Claude Code the same way they work in Cowork.
Environment Info
- Platform: win32
- Terminal: vscode
- Version: 2.1.83
- Feedback ID: c6665397-3983-416d-b1ae-63b08adb66f6
Errors
[{"error":"Error: Streamable HTTP error: Error POSTing to endpoint: event: message\r\ndata: {\"id\":7,\"jsonrpc\":\"2.0\",\"result\":{\"content\":[{\"text\":\"Request had insufficient authentication scopes.\",\"type\":\"text\"}],\"isError\":true}}\r\n\r\n\n at dT8.send (file:///C:/Users/clari/AppData/Roaming/npm/node_modules/@anthropic-ai/claude-code/cli.js:2681:33912)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)","timestamp":"2026-04-18T18:21:57.892Z"},{"error":"Error: Streamable HTTP error: Error POSTing to endpoint: event: message\r\ndata: {\"id\":8,\"jsonrpc\":\"2.0\",\"result\":{\"content\":[{\"text\":\"Request had insufficient authentication scopes.\",\"type\":\"text\"}],\"isError\":true}}\r\n\r\n\n at dT8.send (file:///C:/Users/clari/AppData/Roaming/npm/node_modules/@anthropic-ai/claude-code/cli.js:2681:33912)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)","timestamp":"2026-04-18T18:21:58.463Z"},{"error":"Error: Streamable HTTP error: Error POSTing to endpoint: event: message\r\ndata: {\"id\":9,\"jsonrpc\":\"2.0\",\"result\":{\"content\":[{\"text\":\"Request had insufficient authentication scopes.\",\"type\":\"text\"}],\"isError\":true}}\r\n\r\n\n at dT8.send (file:///C:/Users/clari/AppData/Roaming/npm/node_modules/@anthropic-ai/claude-code/cli.js:2681:33912)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)","timestamp":"2026-04-18T18:21:58.963Z"},{"error":"Error: Streamable HTTP error: Error POSTing to endpoint: event: message\r\ndata: {\"id\":10,\"jsonrpc\":\"2.0\",\"result\":{\"content\":[{\"text\":\"Request had insufficient authentication scopes.\",\"type\":\"text\"}],\"isError\":true}}\r\n\r\n\n at dT8.send (file:///C:/Users/clari/AppData/Roaming/npm/node_modules/@anthropic-ai/claude-code/cli.js:2681:33912)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)","timestamp":"2026-04-18T18:21:59.985Z"},{"error":"Error: Streamable HTTP error: Error POSTing to endpoint: event: message\r\ndata: {\"id\":11,\"jsonrpc\":\"2.0\",\"result\":{\"content\":[{\"text\":\"Request had insufficient authentication scopes.\",\"type\":\"text\"}],\"isError\":true}}\r\n\r\n\n at dT8.send (file:///C:/Users/clari/AppData/Roaming/npm/node_modules/@anthropic-ai/claude-code/cli.js:2681:33912)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)","timestamp":"2026-04-18T18:22:00.860Z"},{"error":"Error: Streamable HTTP error: Error POSTing to endpoint: event: message\r\ndata: {\"id\":12,\"jsonrpc\":\"2.0\",\"result\":{\"content\":[{\"text\":\"Request had insufficient authentication scopes.\",\"type\":\"text\"}],\"isError\":true}}\r\n\r\n\n at dT8.send (file:///C:/Users/clari/AppData/Roaming/npm/node_modules/@anthropic-ai/claude-code/cli.js:2681:33912)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)","timestamp":"2026-04-18T18:22:01.825Z"},{"error":"Error: Streamable HTTP error: Error POSTing to endpoint: event: message\r\ndata: {\"id\":13,\"jsonrpc\":\"2.0\",\"result\":{\"content\":[{\"text\":\"Request had insufficient authentication scopes.\",\"type\":\"text\"}],\"isError\":true}}\r\n\r\n\n at dT8.send (file:///C:/Users/clari/AppData/Roaming/npm/node_modules/@anthropic-ai/claude-code/cli.js:2681:33912)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)","timestamp":"2026-04-…
Note: Content was truncated.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗