Project-scope .mcp.json silently skipped during startup in 2.1.141 (native, Linux)
Summary
Project-scope .mcp.json is not auto-loaded in 2.1.141. The startup debug log shows the MCP loader entry/exit but never enumerates the project file or its stdio servers. Passing --mcp-config <path> explicitly works. User-scope MCP servers in ~/.claude.json are unaffected.
Environment
- Claude Code 2.1.141 (native install)
- Linux x64 (Ubuntu, kernel 5.15)
- Launched from a JetBrains Toolbox/Fleet remote-dev terminal (project dir is the cwd)
Repro
- Project at
/path/to/repocontains a valid.mcp.jsonwith stdio servers (npx-launched MCP servers). ~/.claude.jsonfor that project hashasTrustDialogAccepted: trueand the servers listed inenabledMcpjsonServers(none indisabledMcpjsonServers).cd /path/to/repo && claude --debug --debug-file /tmp/claude.log- Open
/mcp— only user-scope HTTP servers (from~/.claude.json) appear. Project stdio servers are absent. grep -i <stdio-server-name> /tmp/claude.log→ 0 matches. Nonpxinvocation, no parse error, no skip-reason logged.
Expected
Project .mcp.json servers are loaded and appear in /mcp alongside user-scope servers.
Actual
Debug log shows:
\\\\
[STARTUP] Loading MCP configs...
[STARTUP] MCP configs resolved in 47ms (awaited at +213ms)
\\
…then immediately initializes only the HTTP servers from ~/.claude.json. The project's .mcp.json is never read or mentioned. No error, no warning.
<details>
<summary>Relevant debug log lines</summary>
\\\`
2026-05-14T03:21:37.771Z [DEBUG] [STARTUP] Loading MCP configs...
2026-05-14T03:21:37.984Z [DEBUG] [STARTUP] MCP configs resolved in 47ms (awaited at +213ms)
2026-05-14T03:21:38.225Z [DEBUG] MCP server "sentry": Initializing HTTP transport to https://mcp.sentry.dev/mcp
2026-05-14T03:21:38.249Z [DEBUG] MCP server "sentry": Starting connection with timeout of 30000ms
2026-05-14T03:21:38.250Z [DEBUG] MCP server "postman": Initializing HTTP transport to https://mcp.postman.com/minimal
2026-05-14T03:21:38.259Z [DEBUG] MCP server "postman": Starting connection with timeout of 30000ms
2026-05-14T03:21:38.260Z [DEBUG] MCP server "datadog-mcp": Initializing HTTP transport to https://mcp.datadoghq.com/api/unstable/mcp-server/mcp
2026-05-14T03:21:38.261Z [DEBUG] MCP server "datadog-mcp": Starting connection with timeout of 30000ms
2026-05-14T03:21:38.264Z [DEBUG] MCP server "atlassian": Initializing HTTP transport to https://mcp.atlassian.com/v1/mcp
2026-05-14T03:21:38.274Z [DEBUG] MCP server "atlassian": Starting connection with timeout of 30000ms
(no further MCP server init lines - 4 HTTP servers, all from user-scope ~/.claude.json)
grep -ci <stdio-server-name> /tmp/claude.log -> 0
grep -ci npx /tmp/claude.log -> 0
\\\`
</details>
Workaround
\claude --debug --mcp-config /path/to/repo/.mcp.json\ — servers load correctly and appear in \/mcp\. The same \.mcp.json\ file that's silently skipped during auto-discovery loads fine when passed explicitly.
Notes
- \
/path/to/repo/.claude/settings.local.json\IS loaded (permission rules applied), so project root resolution itself works — only \.mcp.json\discovery is broken. - \
.mcp.json\is readable, valid JSON, and parses fine with \python3 -c "import json; json.load(open('.mcp.json'))"\. - No \
--print\/\-p\, \--mcp-config\, or \--strict-mcp-config\flags were passed in the failing run.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗