Description
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
Screenshot and/or share link
N/A — can provide if needed
Operating System
Windows 11 (10.0.26100)
Terminal
Windows Desktop App / PowerShell 7 (CLI)
Description
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:
otification.tsx)
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
Screenshot and/or share link
N/A — can provide if needed
Operating System
Windows 11 (10.0.26100)
Terminal
Windows Desktop App / PowerShell 7 (CLI)