MCP UI shows "Authenticate" button for env-var based auth, attempts incompatible OAuth
Resolved 💬 3 comments Opened Jan 26, 2026 by heytcass Closed Jan 30, 2026
Summary
The MCP server management UI displays an "Authenticate" button for MCP servers configured to use environment variable authentication. Clicking this button attempts OAuth 2.0 Dynamic Client Registration (RFC 7591), which fails when the server doesn't support it, resulting in a confusing error message.
Steps to Reproduce
- Install the official GitHub plugin from
claude-plugins-officialmarketplace - The plugin's
.mcp.jsonconfigures authentication via:"Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}" - Navigate to the MCP management UI (
/mcpor via menu) - Observe the GitHub plugin shows:
Auth: ✘ not authenticated - Select the plugin and click "Authenticate"
- Observe brief "Opening browser to authenticate" message
- Error appears:
"Incompatible auth server: does not support dynamic client registration"
Expected Behavior
One of the following:
- Option A: UI should not show "Authenticate" button for MCP servers configured with environment variable authentication (e.g.,
${GITHUB_PERSONAL_ACCESS_TOKEN}) - Option B: UI should show helpful message like: "This server requires environment variable: GITHUB_PERSONAL_ACCESS_TOKEN"
- Option C: Provide different authentication flow for env-var based servers (prompt user to set the variable)
Actual Behavior
- UI shows "Authenticate" button suggesting OAuth is available
- Button triggers OAuth Dynamic Client Registration
- Fails with cryptic error message
- User has no indication they need to set an environment variable
Environment
- Claude Code version: 2.1.7 (latest as of 2026-01-26)
- Plugin:
github@claude-plugins-official(version e30768372b41) - OS: macOS (Darwin 24.6.0)
Impact
This creates a confusing UX where:
- Users believe OAuth authentication is available but broken
- The actual authentication method (environment variable) is not discoverable
- Error message doesn't guide users to the solution
Suggested Fix
Detect MCP server configuration type and:
- If OAuth configured → show "Authenticate" button
- If env var configured → show env var name with setup instructions
- If neither → show appropriate message
Related
Plugin configuration in question (claude-plugins-official/external_plugins/github/.mcp.json):
{
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}"
}
}
}This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗