You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Desktop v1.15.13: MCP servers not loaded (race condition in PR #28937 + plugin-injected MCPs ignored) #30130
On Windows Desktop v1.15.13, MCP servers do not appear in the UI panel — neither native MCPs (configured in opencode.json) nor plugin-injected MCPs (registered via the plugin config hook). The same config works correctly in the CLI, where all MCPs connect and function normally.
This appears to be a regression introduced by PR #28937 (ix(app): start MCP servers only for open directories), which added an mcp: boolean flag to bootstrapDirectory() and child().
Two distinct problems:
1. Race condition in PR #28937 — native MCPs not loaded
The Desktop bootstraps directories in two passes:
First: home directory (C:\Users<user>) via bootstrap: false without mcp: true (from home.tsx, sidebar-project.tsx, sidebar-workspace.tsx,
otification.tsx)
Second: project directory via directory-sync.ts which passes { mcp: true }
The problem: bootstrapDirectory() reads children.mcp(key) synchronously at call time, but �nableMcp() is called asynchronously when directory-sync.ts mounts. If bootstrap runs before the directory-sync context mounts, mcp is alse and MCP queries (mcp.status(), command.list()) are permanently skipped for that bootstrap cycle.
In child-store.ts, the MCP query starts disabled (createSignal(false)) and only enables when �nableMcp() fires. But bootstrapDirectory() has already completed with mcp: false, so the MCP queries are never included.
2. Plugin-injected MCPs not processed by Desktop
Plugins (e.g., oh-my-openagent) register MCPs via the config hook by setting config.mcp. The config handler confirms agents and commands load correctly (13 agents, 20 commands), but MCPs injected via the same hook do not appear in the Desktop UI. This suggests the Desktop may not properly process config.mcp entries returned by plugin config hooks, even though the CLI does.
Plugins
oh-my-openagent v4.5.12
OpenCode version
v1.15.13
Steps to reproduce
Configure MCP servers in global ~/.config/opencode/opencode.json (e.g., context7, chrome-devtools)
Install a plugin that injects MCPs via config hook (e.g., oh-my-openagent)
Open the Desktop app — MCP panel shows no servers
Open the same project in CLI — opencode mcp list --pure shows all servers connected
Reloading the Desktop (Ctrl+Shift+R) or reopening the project tab may temporarily fix native MCPs (forces re-bootstrap with mcp: true), but plugin-injected MCPs remain absent
All of the above describe the same core symptom (Desktop v1.15.13 MCP panel empty while CLI works). Your issue adds useful analysis around the race condition in PR #28937 and plugin-injected MCPs, which is valuable context — but the root bug appears to be tracked in those existing issues already.
Activity
github-actions commentedon May 31, 2026
This issue might be a duplicate of existing issues reporting the same Desktop v1.15.13 MCP panel symptom. Please check:
All of the above describe the same core symptom (Desktop v1.15.13 MCP panel empty while CLI works). Your issue adds useful analysis around the race condition in PR #28937 and plugin-injected MCPs, which is valuable context — but the root bug appears to be tracked in those existing issues already.
anonfaded commentedon May 31, 2026
Same issue happening on macOS...
johnsonsleo commentedon Jun 1, 2026
same issue+1
Hona commentedon Jun 2, 2026
Fixed by #30220