[Bug] Gmail MCP connector missing write scopes in Claude Code

Resolved 💬 3 comments Opened Apr 18, 2026 by clarisse-ops Closed Apr 22, 2026

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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗