Skip to content

Desktop App: MCP enable/disable toggle does not persist to opencode.json #40079

Closed as not planned

Description

@ChironWMY

Bug Description

The Desktop App's MCP settings toggle (enable/disable) only affects runtime state. It does not write the change back to opencode.json. After restarting the app, the sidecar re-reads opencode.json (which still has enabled: true) and re-starts the MCP servers that the user had disabled via the UI.

This makes the UI toggle misleading: the displayed state does not survive a restart, and users cannot trust whether an MCP is actually enabled or disabled.

Steps to Reproduce

  1. Open the Desktop App
  2. Go to MCP settings
  3. Toggle an MCP off (e.g., context7 or figma)
  4. Confirm the MCP process stops (the toggle is effective at runtime)
  5. Restart the Desktop App
  6. Result: The MCP is running again — opencode.json still contains "enabled": true

Expected Behavior

Toggling an MCP off in the Desktop App UI should write "enabled": false to opencode.json (or an equivalent persistent store), so the disabled state survives restarts.

Actual Behavior

  • The toggle only stops/starts the MCP process at runtime
  • opencode.json is never updated by the UI toggle
  • On restart, the sidecar reads the unchanged config and re-enables the MCP
  • The UI shows the MCP as enabled again, with no indication that the user's previous toggle was lost

Environment

  • opencode Desktop App: v1.18.11
  • OS: macOS (darwin arm64)
  • Config file: ~/.config/opencode/opencode.json

Additional Context

Verified that:

  • The Desktop App does not modify opencode.json on startup or on toggle (file mtime unchanged)
  • The MCP processes do stop when toggled off (runtime control works)
  • The Desktop App's internal data (default.dat, opencode.global.dat, workspace .dat files, Local Storage) do not appear to store MCP enabled/disabled state
  • Manually editing opencode.json to set "enabled": false is currently the only way to persistently disable an MCP

Activity

  1. github-actions commented on Oct 1, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

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