Repository navigation
Closed as not planned
Closed as not planned
Copy link
Labels
Description
Feature hasn't been suggested before.
- I have verified this feature I'm about to request hasn't been suggested before. (Checked before filing: searched the repo for MCP panel / server-list usability requests — closest are [FEATURE]: Add MCP server setup and connection testing to Desktop #40335 (add/edit/Test Connection config UI), [FEATURE]:group TUI /mcps by optional folder tree #44344 (TUI /mcps grouping), Web UI status popover: MCP/plugin list cannot be scrolled (no max-height) #43668 (Web UI popover scroll), MCP server connection failures are logged without a reason #49726 (failure reasons in logs), Server list on desktop hides Add server button and remaining servers #23588 (closed scroll bug report) — none covers the Desktop MCP panel list-usability: collapse / grouping / internal scroll / bulk enable.)
Summary
The Desktop MCP panel renders every configured server as one row in a single flat column. With many servers configured (real case: 21 — a mix of local stdio executables and remote url servers), the panel grows taller than one screen, forces the whole window to scroll, and there is no way to batch-manage servers.
Reproduction
- Configure 20+ MCP servers in the Desktop app (mix of local stdio exes, e.g.
cadquery-mcpinstalled underC:\Users\<user>\.local\uv-tools\...\Scripts\*.exe, and remote url-typed servers, e.g.https://data.openecon.ai/mcp). - Open the Desktop MCP/Servers settings panel.
- Observe: all 21 servers are laid out one-per-row in a single flat list — no collapse, no grouping, no internal scrolling, no "enable all". Every server must be toggled one-by-one.
Expected behavior (any/all of)
- Collapse / expand — each server (or group of servers) collapsible into a one-line summary row.
- Grouping — auto-group by type (local stdio vs remote URL, or user-defined), each group foldable.
- Internal scroll — panel body at a fixed height that scrolls internally, instead of growing the host window to full length.
- Bulk actions — "enable all / enable selected / enable by group".
- (Nice-to-have) Status clarity — distinguish "connected" vs "failed to start (remote unreachable / HTTP 405 / timeout)", and visually distinguish remote-URL typed servers from local stdio binaries.
Acceptance criteria
- With 20+ servers, the panel fits within one screen by default and does not force the host window taller.
- Collapse/group/scroll controls are visible, clickable, and their state is persisted.
- A bulk enable (all / per-group) action exists.
- Remote-URL vs local servers are visually distinguishable; failed-to-start entries show a reason.
Environment
- OpenCode Desktop 1.18.30 (Electron sidecar), Windows 11 x64
- 21 MCP servers configured (local stdio + remote URL mix)
- Side note: local MCPs start fine and stay alive once given a sane startup timeout (raised 12s → 120s in config) — late-starting local servers are healthy; this request is purely about panel usability, not startup reliability.
Related (and why this is not a duplicate of the flagged issues)
- Server list on desktop hides Add server button and remaining servers #23588 (flagged by the bot) — a closed bug report of the desktop server list being unscrollable; my request is the feature/UX ask (collapse / grouping / bulk actions / status clarity), not a bug regression. Complementary, not overlapping.
- Web UI status popover: MCP/plugin list cannot be scrolled (no max-height) #43668 (flagged by the bot) — same "no internal scroll" symptom but in the Web UI status popover — a different UI surface. Fixing either should inform the other.
- Re-filed from [Feature Request]: MCP panel long list is unmanageable — support collapse / group / scroll / bulk-enable for desktop UI code-yeongyu/oh-my-openagent#8188 (misfiled there — the MCP panel is OpenCode Desktop's own UI; the omo plugin merely injects servers like codegraph/lsp into it). The omo copy is closed in favor of this one.
- [FEATURE]: Add MCP server setup and connection testing to Desktop #40335 — Desktop MCP setup + Test Connection UI (configuration side; complementary — this request is list usability)
- [FEATURE]:group TUI /mcps by optional folder tree #44344 — group TUI /mcps by optional folder tree (the TUI-side grouping analogue)
- MCP server connection failures are logged without a reason #49726 — MCP server connection failures are logged without a reason (the panel "status clarity" point would surface such reasons in the UI)
Activity
github-actions commentedon Sep 25, 2026
This issue doesn't fully meet our contributing guidelines.
What needs to be fixed:
Please edit this issue to address the above within 2 hours, or it will be automatically closed.
This issue might be a duplicate of existing issues. Please check:
If you believe this was flagged incorrectly, please let a maintainer know.
github-actions commentedon Sep 25, 2026
Thanks for updating the issue. The Feature Request template also requires the title to start with the exact prefix
[FEATURE]:. Please change[Feature]:to[FEATURE]:; the verification checkbox and description are present.[-][Feature]: Desktop MCP panel is unmanageable with 20+ servers — add collapse / grouping / internal scroll / bulk enable[/-][+][FEATURE]: Desktop MCP panel is unmanageable with 20+ servers — add collapse / grouping / internal scroll / bulk enable[/+]github-actions commentedon Sep 25, 2026
Thanks for updating the issue — it now meets the Feature Request requirements.
liudongyan13701205717-source commentedon Oct 1, 2026
Adding something from the failure side, because the grouping and bulk controls are UX — but the panel currently cannot tell you which server needs the action, and that turns out to be the part that blocks the UX fix.
A
failedbadge in that panel is usually permanent, not a snapshot. Per @aron-intframe's analysis in #48743, a failed connect is returned as an ordinary{status:"failed"}value rather than an error, and it is held in aScopedCachewith no TTL. A cache only re-runs a lookup that threw, so nothing re-dials a server that failed — it keeps reportingfailedafter the cause is gone (hiscold1server is instant from the second start and still showsfailed30s later). So a "Retry all" that only re-reads status would do nothing. The reconnect has to go through the same path asPOST /mcp/<name>/connect, which does work per-server with the session still running.The panel shows status but not cause, and there are at least two causes that render identically. A connect that exceeds its timeout, and an install race where
bunx/npxre-install on every spawn and concurrent installs collide in the shared cache so the server dies beforeinitialize, both show up as the same failed server — because the child's stderr is discarded and onlyserver unavailable ... status=failedis logged (@AndyDorff in #48743 has the numbers). That distinction is the difference between "raise my timeout" and "my package manager is corrupting its own cache". Right now the panel cannot express it, so a per-server error string would make the list far more actionable than it first appears.Grouping that matches how the remedies differ.
localvsremoteis not a cosmetic split here: local servers are the ones that need spawn ordering and serialized installs, remote ones are the ones that need retry-with-backoff. If the groups are ever collapsed, error text plus a reconnect action is what keeps the list actionable rather than decorative.Happy to test on Desktop with ~14 local servers and a few remote ones — enough for collapse, scroll and grouping to matter, and enough real failure cases for the bulk-enable path to be worth testing.
opencodejr commentedon Oct 28, 2026
Thanks for the detailed write-up and for re-filing it here!
You're on OpenCode Desktop 1.18.30, which is v1. v1 only gets fixes for critical bugs (data loss, security problems, crashes or breakage with no workaround). UX improvements like collapse, grouping, internal scrolling and bulk enable in the MCP panel are unlikely to be made there.
v2 (the
@opencode/clipackage and the new app) is a completely separate implementation with its own MCP/extensions settings, and that's where active work happens. We'd encourage you to try it with your 21-server setup.If the same problems show up on v2, please reply here with your v2 version (
opencode --version) and what you see, and we'll look at it again. Please also reply if you think this is critical on v1.Related issues you already found, for reference:
/mcpslistopencodejr commentedon Oct 29, 2026
Closing this as not planned. This request is about the MCP panel in OpenCode Desktop 1.18.30, which is v1, and v1 only gets fixes for critical bugs. UX improvements like collapse, grouping, internal scrolling and bulk enable won't be added there.
If you try v2 (
@opencode/cliand the new app) and its MCP/extensions settings still don't handle 20+ servers well, please open a new issue with your v2 version (opencode --version) and what you see. Thanks again for the detailed write-up!