MCP Gmail connector stuck on 'Needs Auth' after completing OAuth flow (VS Code extension)

Resolved 💬 2 comments Opened Jun 19, 2026 by fabianflor Closed Jun 22, 2026

Environment

  • Claude Code as native VS Code extension
  • Windows 11
  • MCP connector: claude.ai Gmail (claudeai-proxy, hosted by claude.ai)

Bug description

The claude.ai Gmail MCP connector gets stuck on "Needs Auth" inside the VS Code /mcp panel even after fully completing the OAuth flow.

Steps to reproduce

  1. In claude.ai web settings (Personalizar -> Conectores), Gmail already shows as "Connected" at the account level.
  2. Inside a VS Code Claude Code session, open /mcp -> claude.ai Gmail shows "Needs Auth".
  3. Click to authenticate -> VS Code shows a dialog to open an external website (https://claude.ai/api/organizations/<org_id>/mcp/start-auth/...).
  4. Click Open -> Google OAuth consent screen appears ("Claude for Gmail requiere acceso a tu Cuenta de Google") -> click Continuar.
  5. Browser ends on https://claude.ai/settings/mcp/auth_done?authed_mcp_server_id=<id> (success page).
  6. Back in VS Code, /mcp still shows "claude.ai Gmail" as "Needs Auth". No real Gmail tools (send/draft) ever become available - only the authenticate/complete_authentication placeholder tools.

Tried

  • Repeating the full OAuth flow twice with the same result.
  • Enabling "Permitir siempre" for the Gmail draft-creation tool permission in claude.ai connector settings (this is a different setting from auth state, did not help).
  • Reload Window in VS Code (no effect on /mcp state).

Expected behavior
After successfully completing the OAuth consent flow and landing on the auth_done success page, the VS Code /mcp panel should reflect "Connected" for the Gmail connector and expose its real tools (send message, create draft, search, etc.).

Actual behavior
/mcp keeps showing "Needs Auth" indefinitely, and only the authenticate/complete_authentication placeholder tools are exposed to the agent - the real Gmail tools never load.

View original on GitHub ↗

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