Skip to content

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

Description

@clarisse-ops

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions