MCP servers in ~/.claude/mcp.json not reliably picked up on restart
Bug Description
MCP servers configured in ~/.claude/mcp.json are not reliably connected on Claude Code restart. Servers that start fine when tested manually are silently ignored when Claude Code launches. This is a recurring issue that happens repeatedly.
Steps to Reproduce
- Add an MCP server entry to
~/.claude/mcp.json - Verify the server starts correctly manually with the same env vars — outputs "server running and connected via stdio"
- Restart Claude Code
- The new server does not appear in available tools — no error is shown
Expected Behavior
All servers in ~/.claude/mcp.json should connect on startup, or at minimum surface an error explaining why a server failed to connect.
Actual Behavior
- Server is silently ignored. No error message.
- Other servers in the same
~/.claude/mcp.jsonfile connect fine. claude mcp listshows "No MCP servers configured" even though~/.claude/mcp.jsonhas multiple working servers.claude mcp add -s user ...writes to~/.claude.json(a different file!), and only then the server connects after restart.
Root Cause Hypothesis
There's a disconnect between two config files:
~/.claude/mcp.json— where users manually add server configs~/.claude.json— whereclaude mcp addactually writes
Some servers from ~/.claude/mcp.json DO connect while newly added ones don't, suggesting either a race condition, silent startup failure, or config file precedence issue.
Workaround
Use claude mcp add -s user <name> <command> [args] -e KEY=value CLI command instead of manually editing ~/.claude/mcp.json.
Environment
- OS: macOS (Darwin 24.6.0)
- Node.js: v25.3.0
- Shell: zsh
- Claude Code: latest (Feb 2026)
Impact
Significant DX issue. Users spend considerable time debugging server configs that are actually correct, restarting Claude Code multiple times, with zero feedback about what's wrong. The silent failure makes it very hard to diagnose.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗