microsoft / microsoft/copilot-for-eclipse
[Feat] Add a way to reset/forget a stuck MCP server OAuth login (clear cached client_id) — like VS Code
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 126
- Forks
- 60
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 5
Description
Is your feature request related to a problem? Please describe.
When an MCP server uses OAuth with Dynamic Client Registration (RFC 7591), Copilot for Eclipse registers once and caches the issued client_id (in copilot-eclipse.db). If that server later rotates its OAuth signing key/secret — which happens routinely on a server redeploy — the cached client_id becomes invalid and every connection fails with:
{"error":"invalid_client","error_description":"Invalid client_id"}
Copilot keeps reusing the cached registration and never re-registers, so the server stays unusable. Restarting Eclipse doesn't help: it reuses the cached client_id, and a still-valid access token can even mask the problem until the next forced sign-in. The only known recovery is to quit Eclipse and manually delete the cache file:
- macOS/Linux:
~/.config/github-copilot/copilot-eclipse.db - Windows:
%LOCALAPPDATA%\github-copilot\copilot-eclipse.db
That's undocumented, signs you out of all MCP servers at once, and is especially painful on locked-down/Citrix/VDI machines where the AppData path is redirected and hard to locate.
Describe the solution you'd like
A UI action to clear the cached OAuth registration for an MCP server so the next call performs a fresh /register + sign-in — e.g. a per-server "Sign out" / "Forget authentication" / "Reset credentials" entry in the MCP server's actions menu that drops the cached client_id (and token). Per-server would be ideal, so resetting one stuck server doesn't sign you out of the others.
Describe alternatives you've considered
- "Restart MCP Servers" (#237) — restarting does not clear the cached registration, so the stale
client_idis reused and the error persists. - Manually deleting
copilot-eclipse.db— works, but requires quitting Eclipse, is undocumented, clears every MCP login, and is hard on managed/Citrix machines. (Removing just one server's rows needs thesqlite3CLI and knowledge of the internalstatetable.) - Fixing it server-side (pinning a stable DCR signing key so redeploys don't rotate it) — prevents recurrence but is the server operator's responsibility and does not recover a client that's already stuck.
Additional context
VS Code already provides exactly this: the Command Palette command "Authentication: Remove Dynamic Authentication Providers" lists the dynamically-registered MCP clients and lets you remove specific ones, after which the server re-registers cleanly on next use. The need was tracked in microsoft/vscode#269379 ("Clean way to remove stale MCP Oauth credentials") and microsoft/vscode#251802 ("MCP: Forget Authentication"). A comparable action in Copilot for Eclipse would close the gap. Background on the registration mechanism: RFC 7591 (OAuth 2.0 Dynamic Client Registration).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing MCP OAuth dynamic client registration and credential persistence in copilot-eclipse.db, then inspect where MCP server actions are exposed in the Eclipse UI. The change is done when a per-server action removes that server's cached client_id and token, causing fresh registration and sign-in without affecting other MCP servers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- authentication, desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100