claude-code - 💡(How to fix) Fix claude -r freezes indefinitely when project .mcp.json has any MCP server [2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#53027Fetched 2026-04-25 06:14:21
View on GitHub
Comments
2
Participants
2
Timeline
9
Reactions
0
Author
Timeline (top)
labeled ×5commented ×2closed ×1cross-referenced ×1

Resuming a session (claude -r) in a project whose .mcp.json has any MCP server configured leaves the TUI frozen — the assistant never responds to new input. /mcp doesn't return either. Starting a fresh (non--r) session in the same project works fine.

Behavior appears independent of which MCP server is configured. Tested with memory, mcp-atlassian, and taylorwilsdon/google_workspace_mcp; each, on its own, is sufficient to reproduce. Starting from an empty .mcp.json and adding one at a time shows each addition surfaces the same failure mode on the next -r.

Root Cause

Resuming a session (claude -r) in a project whose .mcp.json has any MCP server configured leaves the TUI frozen — the assistant never responds to new input. /mcp doesn't return either. Starting a fresh (non--r) session in the same project works fine.

Behavior appears independent of which MCP server is configured. Tested with memory, mcp-atlassian, and taylorwilsdon/google_workspace_mcp; each, on its own, is sufficient to reproduce. Starting from an empty .mcp.json and adding one at a time shows each addition surfaces the same failure mode on the next -r.

Fix Action

Workaround

Start fresh sessions (no -r) when any MCP server is configured.

Code Example

{ "mcpServers": { "atlassian": { "command": "uvx", "args": ["mcp-atlassian"] } } }

---

... 2:05:26Z  user       tool_result
... 2:05:30Z  assistant  text          <-- last pre-exit message
          -   last-prompt
          -   permission-mode
          -   permission-mode           <-- resume happens, then nothing
RAW_BUFFERClick to expand / collapse

Environment

  • Claude Code 2.1.119
  • macOS 26.4.1 (Darwin 25.4.0, arm64)
  • Reproduced on a colleague's machine (different hardware, same symptom)

Summary

Resuming a session (claude -r) in a project whose .mcp.json has any MCP server configured leaves the TUI frozen — the assistant never responds to new input. /mcp doesn't return either. Starting a fresh (non--r) session in the same project works fine.

Behavior appears independent of which MCP server is configured. Tested with memory, mcp-atlassian, and taylorwilsdon/google_workspace_mcp; each, on its own, is sufficient to reproduce. Starting from an empty .mcp.json and adding one at a time shows each addition surfaces the same failure mode on the next -r.

Reproduction

  1. In a project, create .mcp.json with a single server, e.g.:
    { "mcpServers": { "atlassian": { "command": "uvx", "args": ["mcp-atlassian"] } } }
  2. claude in that project. Let MCP init complete. Interact normally. Exit cleanly.
  3. claude -r.
  4. TUI appears, last exchange is shown, new prompts are accepted but never processed.

Expected

Resume completes, assistant responds to new input, /mcp returns the server list.

Actual

Session is frozen — no assistant output, no /mcp response. Kill + fresh claude works; fresh sessions with the same .mcp.json are unaffected.

Evidence

Session jsonl tail from a frozen resume (post-resume markers present, no further events):

... 2:05:26Z  user       tool_result
... 2:05:30Z  assistant  text          <-- last pre-exit message
          -   last-prompt
          -   permission-mode
          -   permission-mode           <-- resume happens, then nothing

Happy to share the full jsonl privately if useful.

Workaround

Start fresh sessions (no -r) when any MCP server is configured.

extent analysis

TL;DR

The issue can be temporarily worked around by starting fresh sessions without resuming when any MCP server is configured.

Guidance

  • Verify that the issue is specific to resuming sessions with MCP servers configured by testing with different MCP servers and configurations.
  • Check the session jsonl logs for any patterns or errors that may indicate why the assistant is not responding after resuming a session.
  • Test resuming a session with an empty .mcp.json file to see if the issue is specific to MCP server configurations.
  • Consider sharing the full jsonl logs privately to help further diagnose the issue.

Example

No code snippet is provided as the issue is related to a specific tool and configuration.

Notes

The issue appears to be related to the interaction between the Claude tool and MCP servers when resuming a session. The exact cause is unclear, but it seems to be independent of the specific MCP server configured.

Recommendation

Apply the workaround of starting fresh sessions without resuming when any MCP server is configured, as this has been confirmed to work around the issue.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix claude -r freezes indefinitely when project .mcp.json has any MCP server [2 comments, 2 participants]