[BUG] v2.1.208: `/mcp` settings menu blocked in actively-attended `claude agents` sessions — "background session" guard gates on launch path, not attachment

Status Fixed / completed
Maintainer reply ✓ Yes — localden
Activity 6 comments · opened Jul 14, 2026 · closed Jul 20, 2026
💡 Likely answer: A maintainer (localden, collaborator) responded on this thread — see the highlighted reply below.

Environment

  • Claude Code v2.1.208 (native install, auto-updated from v2.1.207)
  • macOS (Darwin 25.5.0), zsh
  • Session launched from the claude agents view (agent list → new session), user actively attached and typing into it

What happened

v2.1.208 shipped this change (from the changelog):

/install-github-app and the /mcp settings menu no longer open in background sessions

The guard classifies every daemon-backed session as "background," including sessions the user is actively attached to in the agents view. Typing /mcp in a session I am sitting in and interacting with returns:

Can't open MCP settings in a background session — use /mcp enable|disable|reconnect <server> to steer, or run /mcp from an interactive terminal to authenticate.

On v2.1.207 (as recently as the same evening, pre-auto-update) the same workflow opened the /mcp panel fine.

Steps to reproduce

  1. On v2.1.208, run claude agents in a terminal
  2. Create/open a session from the agents view and attach to it
  3. Type /mcp

Expected: the MCP settings panel opens — a user is attached and interacting, so this is functionally an interactive session (interactive OAuth flows have a browser available, etc.)

Actual: blocked with the "background session" error above.

Why this is a problem

  • The /mcp subcommand forms (/mcp enable|disable|reconnect <server>) do still work, but the panel is the only way to authenticate OAuth-based servers (claude.ai connectors like Gmail/Calendar/Airtable) and the only way to browse server/tool status. Users who work primarily out of the agents view lose MCP auth entirely and must open a separate plain claude session just to re-auth.
  • The restriction gates on launch path (daemon-backed) rather than attachment state (is a human attached to this session right now). The stated rationale — don't open interactive settings UIs in unattended sessions — doesn't apply to an attended agents-view session.
  • Because this landed via silent auto-update, it presents as sudden breakage mid-workflow with no indication that it was an intentional change.

Suggested fix

Gate the /mcp and /install-github-app panels on whether a user is currently attached to the session, not on whether the session is daemon-backed. Unattended/headless background jobs stay blocked; attended agents-view sessions regain the panel.

Related: #61053 (claude.ai MCP integrations not available in sessions launched from the agents view).

🤖 Filed with Claude Code on behalf of the user

View original on GitHub ↗

6 Comments

yolo-jared · 1 month ago

Confirming this is still happening on v2.1.210 (macOS, Darwin 25.5.0), so it survived at least two releases past the v2.1.208 regression.

My repro

  1. Session was sent to the background from an active session (Agent view / FleetView), not launched fresh from claude agents.
  2. In that backgrounded session, typed /mcp.
  3. Got:

``
/mcp
⎿ Can't open MCP settings in a background session — use /mcp enable|disable|reconnect <server> to steer, or run /mcp from an interactive terminal to authenticate.
``

  1. Opening the same session in its own terminal (not via the agents/background view) — /mcp works fine, panel opens normally.

So this isn't limited to sessions created from the agents view (as in the original report) — it also triggers on a session that was interactive-first and then sent to background, confirming the guard is keying off launch/daemon path rather than actual attachment state, exactly as the original report suspected. The fact that re-opening the identical session in a plain terminal fixes it is a pretty clean signal that the session itself is fine — it's purely the daemon-backed/background code path tripping the guard.

goat1990 · 1 month ago

Still present in v2.1.211, and it also hits plain claude launches — no claude agents involved — via pre-warmed spare sessions.

Environment: Claude Code v2.1.211 (native, auto-updated 2026-07-16), macOS (Darwin 27.0.0), zsh.

Repro:

  1. Have the transient daemon running with pre-warmed spares (in my setup it's always alive — desktop app open + remote control; it respawns spares on its own):

``
claude daemon run --origin transient ...
claude bg-spare --bg-spare /tmp/cc-daemon-501/.../spare/<id>.claim.sock
claude bg-pty-host --bg-pty-host ... 200 50 ...
``

  1. Open a regular terminal, run plain claude (no flags, no agents view). The session claims a spare.
  2. Type /mcpCan't open MCP settings in a background session — ...

The guard gates on the launch path (born as a background spare) rather than current attachment (real TTY, user typing), exactly as this issue describes — but through a path where the user never opted into anything background-related.

Additional data points:

  • The /plugin → Installed → MCP ServerAuthenticate action is gated by the same guard: Can't authenticate MCP servers in a background session — run this from an interactive terminal. So both auth surfaces are closed.
  • claude daemon stop --any kills the spares but they respawn shortly after, so that's not a workaround for regular terminal users.
  • Toggling remoteControlAtStartup: false doesn't help (sessions still claim spares).
  • claude mcp login <name> from a plain shell prompt does work and completes OAuth — but it requires a real TTY (stdin isn't a terminal otherwise), so there's no programmatic path, and end users have to discover and type fully-qualified server names like plugin:cloudflare:cloudflare-api by hand. That's a rough downgrade from the one-click panel flow in ≤v2.1.207.

Suggested fix direction (echoing the OP): classify by current attachment (PTY present + user input) rather than by how the process was spawned — or at minimum allow the auth flow when a browser is reachable.

alexwarner50 · 1 month ago

@bogini any update on this? this is becoming amazingly frustrating i cannot change models now either

yolo-jared · 1 month ago

Just sharing for others the obvious short term fix to return to the days of multi terminal tab switching before multi-agent view.

.claude/settings.json -> "disableAgentView": true

In normal single session agent view for me this returns the /mcp functionality

Hope to see a multi agent view fix soon!

sfg-ew · 1 month ago

Yes we have the same issue. Very annoying. Awaiting app-level fix.

localden collaborator · 1 month ago

Fixed in v2.1.214. /mcp (and /install-github-app) is now only refused in background sessions with no terminal attached, rather than in every daemon-backed session, so it gates on attachment state instead of launch path. If the /plugin > Installed > Authenticate flow is still blocked on 2.1.214, or /mcp still refuses with a terminal attached, reopen with your version and how the session was launched.