MCP config: misleading error when server is missing `type` field; `transport` not inferred as substitute

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 12, 2026

Summary

When a project-scoped .mcp.json entry has url + transport: streamable-http but is missing type, Claude Code prints:

[Warning] [wan-ip-check] mcpServers.wan-ip-check: Skipped — MCP server "wan-ip-check" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry

Two problems with this:

  1. The error reads as a rename, but the two fields are independent. transport: streamable-http (the MCP 2026-07-28 spec name for the HTTP-streaming transport) and type: http (Claude Code's local field) look like the same thing. A user reasonably tries "rename transport to type" first, but Claude Code doesn't infer type from transport — they're both required, with different value spaces.
  1. Several official SDK example templates ship without type. I hit this exact error copying a template from the go-sdk README. The Go server template there doesn't include type either. It works in some clients but Claude Code rejects it.

Repro

\\\jsonc
// .mcp.json
{
"mcpServers": {
"wan-ip-check": {
"url": "http://localhost:7374/mcp",
"transport": "streamable-http",
"headers": { "Authorization": "Bearer ${TOKEN}" }
}
}
}
\
\\

Expected: server connects.
Actual: \/mcp\ shows it as \Skipped — MCP server ... has a "url" but no "type"\.

Fix: add \"type": "http"\. Then it works.

Suggested improvements

  1. If \transport: streamable-http\ is set, infer \type: http\ (or fail with a clearer message that says "add \type\ explicitly, OR change \transport\ to one of: http, sse, ws").
  2. Improve the error to link to docs and list allowed \type\ values inline.
  3. Document the field matrix in the MCP docs page Claude Code points users to.
  4. Audit SDK templates — happy to PR a sweep across \python-sdk\, \typescript-sdk\, \go-sdk\ examples to flag which ship broken-by-omission configs.

Environment

  • Claude Code: latest stable (2026-08-12)
  • MCP spec: 2026-07-28
  • Config file: project-scoped \.mcp.json\

View original on GitHub ↗