Description
When a remote MCP server requiring OAuth 2.1 + PKCE is configured (Datadog), OpenCode registers a client ID successfully and writes it to mcp-auth.json, but never initiates the browser-based authorization flow.
The MCP toggles to "loading" then "failed" with:
- No auth URL surfaced to the user.
- No browser window opened.
- No error logged.
The mcp-auth.json entry is left with a clientId but no tokens. For comparison, the Atlassian remote MCP (same type: remote config) completes OAuth successfully and logs transport=StreamableHTTP connected with a full token set.
Plugins
opencode-anthropic-auth@0.0.13
@slkiser/opencode-quota@2.1.0
OpenCode version
1.2.15
Steps to reproduce
- Add a remote MCP server that requires OAuth to
opencode.json:
{
"mcp": {
"datadog": {
"enabled": true,
"type": "remote",
"url": "[https://mcp.datadoghq.eu/api/unstable/mcp-server/mcp?toolsets=core,apm,software-delivery](https://mcp.datadoghq.eu/api/unstable/mcp-server/mcp?toolsets=core,apm,software-delivery)"
}
}
}
Description
When a remote MCP server requiring OAuth 2.1 + PKCE is configured (Datadog), OpenCode registers a client ID successfully and writes it to
mcp-auth.json, but never initiates the browser-based authorization flow.The MCP toggles to "loading" then "failed" with:
The
mcp-auth.jsonentry is left with aclientIdbut no tokens. For comparison, the Atlassian remote MCP (same type: remote config) completes OAuth successfully and logstransport=StreamableHTTP connectedwith a full token set.Plugins
opencode-anthropic-auth@0.0.13@slkiser/opencode-quota@2.1.0OpenCode version
1.2.15Steps to reproduce
opencode.json:{ "mcp": { "datadog": { "enabled": true, "type": "remote", "url": "[https://mcp.datadoghq.eu/api/unstable/mcp-server/mcp?toolsets=core,apm,software-delivery](https://mcp.datadoghq.eu/api/unstable/mcp-server/mcp?toolsets=core,apm,software-delivery)" } } }