Skip to content

MCP config using type "stdio" causes opaque TUI bootstrap server errors in 1.15.x #28625

Closed as not planned

Description

@dhruv-anand-aintech

Describe the bug

After upgrading to OpenCode 1.15.x, an existing opencode.json MCP config that used the previous/Claude-style stdio shape caused the TUI to fail during bootstrap with opaque request failures instead of a config validation message.

The user-facing error was:

Error: 4 of 5 requests failed: config.providers: Unexpected server error. Check server logs for details.; provider.list: Unexpected server error. Check server logs for details.; app.agents: Unexpected server error. Check server logs for details.; config.get: Unexpected server error. Check server logs for details.

Server logs had the actual root cause:

ConfigInvalidError
SchemaError: Expected { readonly "type": "local", ... } | { readonly "type": "remote", ... }, got {"type":"stdio","command":"python","args":["..."]}
  at ["mcp"]["dbpedia-lookup"]
Missing key
  at ["mcp"]["dbpedia-lookup"]["enabled"]

Config that triggers it

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "local-server": {
      "type": "stdio",
      "command": "python",
      "args": ["/path/to/server.py"]
    }
  }
}

Working config

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "local-server": {
      "type": "local",
      "command": ["python", "/path/to/server.py"],
      "enabled": true
    }
  }
}

Expected behavior

Either:

  1. accept/migrate the old type: "stdio" + command + args form for compatibility, or
  2. surface the schema validation error directly in the TUI instead of the higher-level config.providers / provider.list / app.agents / config.get unexpected server errors.

Environment

  • OpenCode version observed: 1.15.0, then upgraded to 1.15.6
  • Install method: curl updater
  • macOS

Notes

This is especially easy to hit for users syncing MCP config from Cursor/Claude-style mcpServers, where local stdio servers commonly use type: "stdio", command, and args.

Activity

  1. antan2002 commented on May 21, 2026

    @antan2002

    Hi @rekram1-node , I would like to work on this issue.
    Can you please assign it to me?

  2. rekram1-node commented on Jun 29, 2026

    @rekram1-node
    Contributor

    there is a larger effort to cleanup errors I will close this though because the config is meant to throw in this state but we will fix the error handling to be more transparent

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