HTTP MCP: `claude mcp add --transport http` writes invalid field, then one bad entry silently kills all user-level MCPs
Resolved 💬 4 comments Opened Mar 25, 2026 by chrisgscott Closed May 25, 2026
Summary
Two related bugs around HTTP MCP server configuration:
claude mcp add --transport httpwritesserverUrlinstead ofurl, producing an entry that fails its own schema validation.- One invalid entry in
mcpServerscauses the entire user-level config block to fail to parse, silently dropping all servers with no visible error (unless you run/mcpand notice the diagnostic line).
Steps to Reproduce
claude mcp add --scope user granola --transport http https://mcp.granola.ai/mcp
This writes to ~/.claude.json:
{
"mcpServers": {
"granola": {
"serverUrl": "https://mcp.granola.ai/mcp",
"type": "http"
}
}
}
The schema expects "url", not "serverUrl". On next launch, the parser hits this entry, fails validation, and skips the entire mcpServers block — all 20+ other valid servers silently disappear.
Expected Behavior
claude mcp add --transport httpshould write"url", not"serverUrl"- Config parsing should validate per-entry and skip only the invalid one, not fail the entire block
- If an entry is skipped, there should be a visible warning at startup (not just buried in
/mcpdiagnostics)
Actual Behavior
- All user-level MCP servers silently stop loading
- No error is shown at startup or in the sidebar
- The only way to discover the issue is to run
/mcpand read the diagnostic header:
````
[Failed to parse] User config (available in all your projects)
Location: /Users/user/.claude.json
└ [Error] mcpServers.granola: Does not adhere to MCP server configuration schema
Impact
This took significant debugging time to identify. The silent failure mode is particularly bad because:
- The user has no indication anything is wrong
- Working servers suddenly disappear with no change to their config
- The root cause (a single bad entry) is non-obvious
Environment
- Claude Code 2.1.83
- macOS 26
- VS Code extension v2.1.83
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗