The /mcp panel reports configuration, not reality. buildMCPServerViews (internal/tui/mcp_state.go:48-64) derives State entirely from config.MCPServerConfig.Disabled:
state := "enabled"
if raw.Disabled {
state = "disabled"
}
MCPStateOptions (:14-22) has no field for a connection outcome at all. A server that failed to connect therefore renders as "enabled" with 0 tools and no explanation.
The failure information exists, it just never reaches the TUI. Runtime.Skipped() returns SkippedServer{Name, Err, UnconfiguredDefault} per failed server, and its only consumer is internal/cli/app.go:728-733, which writes to stderr immediately before the alt-screen takes over. In practice the user never sees it.
The symptom is "my MCP tools just are not there", with the panel agreeing everything is enabled.
Smallest useful fix: thread the skipped set into MCPStateOptions and render a third state with the recorded error, so a failed server shows as failed with a reason rather than as enabled with nothing.
Related: #822, which is the same information being ignored by zero mcp check.
The
/mcppanel reports configuration, not reality.buildMCPServerViews(internal/tui/mcp_state.go:48-64) derivesStateentirely fromconfig.MCPServerConfig.Disabled:MCPStateOptions(:14-22) has no field for a connection outcome at all. A server that failed to connect therefore renders as "enabled" with 0 tools and no explanation.The failure information exists, it just never reaches the TUI.
Runtime.Skipped()returnsSkippedServer{Name, Err, UnconfiguredDefault}per failed server, and its only consumer isinternal/cli/app.go:728-733, which writes to stderr immediately before the alt-screen takes over. In practice the user never sees it.The symptom is "my MCP tools just are not there", with the panel agreeing everything is enabled.
Smallest useful fix: thread the skipped set into
MCPStateOptionsand render a third state with the recorded error, so a failed server shows as failed with a reason rather than as enabled with nothing.Related: #822, which is the same information being ignored by
zero mcp check.