HTTP MCP: `claude mcp add --transport http` writes invalid field, then one bad entry silently kills all user-level MCPs

Status Fixed / completed
Reported on v2.1.83
Maintainer reply ✓ Yes — localden
Activity 5 comments · opened Mar 25, 2026 · closed May 25, 2026
💡 Likely answer: A maintainer (localden, collaborator) responded on this thread — see the highlighted reply below.

Summary

Two related bugs around HTTP MCP server configuration:

  1. claude mcp add --transport http writes serverUrl instead of url, producing an entry that fails its own schema validation.
  2. One invalid entry in mcpServers causes the entire user-level config block to fail to parse, silently dropping all servers with no visible error (unless you run /mcp and 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

  1. claude mcp add --transport http should write "url", not "serverUrl"
  2. Config parsing should validate per-entry and skip only the invalid one, not fail the entire block
  3. If an entry is skipped, there should be a visible warning at startup (not just buried in /mcp diagnostics)

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 /mcp and 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

View original on GitHub ↗

5 Comments

github-actions[bot] · 6 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/35372
  2. https://github.com/anthropics/claude-code/issues/36651
  3. https://github.com/anthropics/claude-code/issues/35200

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

2233admin · 6 months ago

Still reproducible on 2.1.104 (Windows 11).

Affected servers: Any HTTP MCP added via claude mcp add --transport http — generates config with only url field, missing required "type": "http". Affected: linear, linear-server, context7.

Impact: /doctor reports [Failed to parse] User config with zero indication of which field is missing. All three servers fail silently. Error message says "Does not adhere to MCP server configuration schema" — not actionable without reading source.

Workaround: Manually add "type": "http" to each affected entry in ~/.claude.json.

Suggested fix: Either (a) infer type: http when url is present, or (b) have claude mcp add --transport http write the type field it already knows. The schema error message should also name the missing field.

github-actions[bot] · 4 months ago

Closing for now — inactive for too long. Please open a new issue if this is still relevant.

localden collaborator · 4 months ago

Thanks for the report. The per-entry validation half of this shipped: one bad mcpServers entry now gets skipped with a warning instead of dropping the whole block. If you're still seeing claude mcp add --transport http write the wrong field on a current version, please reopen with the version number.

github-actions[bot] · 2 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.