Custom MCP servers in ~/.claude.json never loaded (v2.1.45)

Resolved 💬 3 comments Opened Feb 17, 2026 by ericatmumo Closed Feb 17, 2026

Summary

Custom MCP servers configured via claude mcp add are written to ~/.claude.json correctly but never loaded at runtime. The /mcp UI only shows first-party connectors (e.g. Supabase). Debug logs show zero spawn/connection attempts for locally-configured servers.

Environment

  • Claude Code version: 2.1.45 (latest as of 2026-02-17)
  • Platform: macOS Darwin 25.3.0
  • Node: v25.4.0
  • Install method: native

Reproduction

  1. Register an HTTP MCP server:

``bash
claude mcp add --transport http mumo https://example.com/mcp
``

  1. Verify it was written:

``bash
claude mcp list
# Shows: mumo: http - https://example.com/mcp
``

  1. Verify ~/.claude.json has the entry under projects.<path>.mcpServers
  2. Start Claude Code in that project directory
  3. Run /mcp — server does not appear
  4. No mcp__mumo__* tools available
  5. Debug logs (~/.claude/debug/*.txt) contain zero references to the server — no spawn attempts, no connection attempts, no errors

What was tried

| Approach | Result |
|----------|--------|
| .mcp.json with type: "stdio" | Not loaded |
| .mcp.json with type: "http" | Not loaded |
| claude mcp add at project scope (stdio) | Not loaded |
| claude mcp add at user scope (stdio) | Not loaded |
| claude mcp add --transport http | Not loaded |
| enabledMcpjsonServers: ["mumo"] | Not loaded |
| enableAllProjectMcpServers: true | Not loaded |
| Minimal hello-world MCP server (1 tool) | Not loaded |
| Absolute path to binary (no npx) | Not loaded |

Server verification

The MCP server works correctly when tested independently:

# Streamable HTTP transport (deployed)
curl -X POST https://example.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

# Returns valid MCP handshake response with tools

Key observation

The only working MCP server is Supabase, configured via the Claude.ai connectors system (first-party integration). No locally-configured servers — stdio or HTTP — are ever loaded, regardless of configuration method.

Expected behavior

Servers registered via claude mcp add or .mcp.json should be discovered and connected at startup.

View original on GitHub ↗

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