Skip to content

Harmonize MCP server labels, statuses, and styling across TUI views #51328

Closed as not planned

Description

@andreduejon

Description

Problem

MCP server presentation differs across TUI views.

Naming

The same concept currently appears as:

  • MCPs in the toggle dialog
  • MCP in the sidebar
  • MCP Servers in the status dialog
  • Toggle MCPs in the command palette

Status wording

The toggle dialog displays the same runtime state twice:

mcp-label-1  connected        ✓ Enabled
mcp-label-2  disabled                ○ Disabled

The left description comes from status.status. The right status comes from
local.mcp.isEnabled(name), which also returns true only when
status === "connected".

This makes Enabled appear to represent persisted configuration, although the
dialog controls the current runtime connection. Connect and disconnect does not
persist the configured enabled value.

Other views use different labels for the same states:

  • connected / Connected
  • disabled / Disabled
  • Enabled

Styling

Status colors, bullet points, check symbols, casing, and placement also differ between
the MCP sidebar, toggle dialog, and status dialog.

Proposed change

  • Use MCP servers as the display label everywhere.
  • Use Toggle MCP servers as the palette or autocomplete action.
  • Keep /mcps unchanged for compatibility.
  • Use 'Disconnected' rather than Disabled
  • Harmonize upper and lower case representation of statuses

Suggested visual structure

▼ MCP servers
  • confluence disconnected
  • jenkins connected
  • jira disconnected

▶ MCP servers (1 connected)

For the toggle dialog, show one status rather than duplicated synonyms:
confluence ✓ Connected
jenkins ○ Disconnected
jira ✕ Failed

Implementation suggestion

Centralize MCP status presentation in a small shared helper or component so
the sidebar, toggle dialog, and status dialog cannot drift.

Likely affected files:

  • packages/tui/src/component/dialog-mcp.tsx
  • packages/tui/src/feature-plugins/sidebar/mcp.tsx
  • packages/tui/src/component/dialog-status.tsx
  • packages/tui/src/app.tsx
  • shared MCP status presentation helper/component

Acceptance criteria

  • All TUI views use MCP servers as the display label.
  • /mcps remains available and unchanged.
  • Toggle dialog no longer shows both connected and Enabled.
  • Runtime status labels are consistent across all MCP views.
  • disabled is displayed as Disconnected.
  • Status colors and symbols are consistent.
  • Existing connect/disconnect behavior remains unchanged.

Considerations

If it should be possible to enable or disable a mcp server in the config (persistence)? If yes, further UI considerations need to be made.

Plugins

RTK, Ponytail, Custom plugins

OpenCode version

1.18.32

Steps to reproduce

  1. Start OpenCode
  2. Run /status
  3. Run /mcps
  4. Look at the sidebar
  5. Toggle MCP list
  6. See differences in presentation and styling

Screenshot and/or share link

No response

Operating System

macOS 27

Terminal

cmux

Activity

  1. github-actions commented on Sep 25, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    • #36707: V2 TUI terminology and copy decisions includes a section on MCP status vocabulary and naming consistency across TUI surfaces.
  2. thdxr commented on Oct 11, 2026

    @thdxr
    Member

    Thanks for the report! OpenCode 2.0 is now out and development is focused on V2, so we're closing issues filed against OpenCode 1. Please upgrade (opencode upgrade --major, details: https://anoma.ly/notes/opencode-2-0), and if this is still relevant on 2.0, reopen this issue or open a new one with your 2.0 version.

    — from 𝕺𝖕𝖊𝖓𝕮𝖔𝖉𝖊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions