[BUG] Claude Desktop crashes on startup when MCP config uses HTTP transport without 'command' field
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Claude Desktop crashes immediately on startup with a TypeError: Cannot read properties of undefined (reading 'value') when claude_desktop_config.json contains an MCP server using HTTP/SSE transport (with url and transport fields) instead of the stdio transport (with a command field).
The Zod schema validation requires command to be a string, but HTTP transport MCP servers don't have a command - they have a url. The validation throws, and the error propagates to node:internal/util/inspect which crashes the app before the window renders.
The app should either:
- Support HTTP transport MCP servers in the config schema (like Claude Code does), or
- Gracefully skip/warn about invalid MCP server entries instead of crashing the entire app
Config that causes the crash
{
"mcpServers": {
"graphiti": {
"url": "http://127.0.0.1:8101/mcp/v1",
"transport": "http"
}
}
}
What Should Happen?
The app should start normally and either:
- Connect to the HTTP transport MCP server, or
- Log a warning that the transport type is unsupported and skip that server entry
It should not crash the entire application due to a config validation error.
Error Messages/Logs
launch-failure.err:
TypeError: Cannot read properties of undefined (reading 'value')
{}
Cannot read properties of undefined (reading 'value')}
TypeError: Cannot read properties of undefined (reading 'value')
at formatProperty (node:internal/util/inspect:2280:12)
at formatRaw (node:internal/util/inspect:1176:9)
at formatValue (node:internal/util/inspect:932:10)
at formatProperty (node:internal/util/inspect:2283:11)
at formatRaw (node:internal/util/inspect:1176:9)
at formatValue (node:internal/util/inspect:932:10)
at inspect (node:internal/util/inspect:409:10)
at formatWithOptionsInternal (node:internal/util/inspect:2582:25)
at Object.format (node:internal/util/inspect:2502:10)
at i._splat (C:\Program Files\WindowsApps\Claude_1.1.4498.0_x64__pzs8sxrjxfjjc\app\resources\app.asar\.vite\build\index.js:65:5632)
main.log (root cause):
[error] Error reading or parsing config file: {
error: ZodError: [
{
"code": "invalid_type",
"expected": "string",
"received": "undefined",
"path": ["mcpServers", "graphiti", "command"],
"message": "Required"
}
]
}
Steps to Reproduce
- Edit
%APPDATA%/Claude/claude_desktop_config.json - Add an MCP server with HTTP transport (url + transport fields, no command field):
``json``
{
"mcpServers": {
"example": {
"url": "http://127.0.0.1:8101/mcp/v1",
"transport": "http"
}
}
}
- Launch Claude Desktop
- App crashes immediately - no window renders
Workaround
Remove the HTTP transport MCP server entry from the config, or replace it with a stdio transport entry that has a command field.
Claude Model
_N/A - app doesn't launch_
Is this a regression?
I don't know - HTTP transport for MCP servers may have never been supported in Desktop's config schema.
Claude Code Version
Claude Desktop 1.1.2156 (app resources) / 1.1.4498.0 (AppxPackage)
Platform
Anthropic API
Operating System
Windows 11 (MINGW64_NT-10.0-26200)
Terminal/Shell
N/A (Desktop app)
Additional Information
Claude Code supports HTTP transport MCP servers via ~/.claude.json, so users who configure MCP servers for Code may expect the same config to work in Desktop. The config schema mismatch between Code and Desktop is the root cause - Desktop should either support the same schema or handle unknown fields gracefully.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗