Skip to content

Desktop v1.15.13: MCP servers not loaded (race condition in PR #28937 + plugin-injected MCPs ignored) #30130

@gabriel-ferraresi

Description

@gabriel-ferraresi

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

  1. Configure MCP servers in global ~/.config/opencode/opencode.json (e.g., context7, chrome-devtools)
  2. Install a plugin that injects MCPs via config hook (e.g., oh-my-openagent)
  3. Open the Desktop app — MCP panel shows no servers
  4. Open the same project in CLI — opencode mcp list --pure shows all servers connected
  5. 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)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions