Skip to content

C:/Users/vasan/AppData/Local/hermes/git/mcp panel shows configuration state, not connection reality #825

Description

@Vasanthdev2004

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions