claude mcp list shows 'Connected' for MCPs that are not authenticated

Resolved 💬 2 comments Opened Mar 26, 2026 by Chrisj7264a Closed Apr 25, 2026

Description

claude mcp list reports some MCPs as "✓ Connected" when they are actually connected but not authenticated. The /plugins UI within Claude Code correctly shows the distinction (connected but not authenticated), but the CLI output does not.

Steps to Reproduce

  1. Have an MCP configured that requires authentication (e.g., Granola at https://mcp.granola.ai/mcp)
  2. Let the auth token expire
  3. Run claude mcp list
  4. Observe: shows granola: https://mcp.granola.ai/mcp (HTTP) - ✓ Connected
  5. Check /plugins in Claude Code UI
  6. Observe: correctly shows "connected but not authenticated"

Expected Behavior

claude mcp list should reflect the same auth state that /plugins shows. For example:

  • ✓ Connected — fully connected and authenticated
  • ! Connected (not authenticated) or ! Needs authentication — connected but not authenticated

Impact

  • Hooks that monitor MCP health parse claude mcp list output and cannot detect this failure mode
  • Tools from unauthed MCPs don't appear in the deferred tools list, so they silently become unavailable
  • The MCP appears healthy when it's not, making it hard to automate re-auth prompts

Environment

  • Claude Code CLI
  • macOS
  • Affected MCP: Granola (https://mcp.granola.ai/mcp) — likely affects other HTTP MCPs too

View original on GitHub ↗

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