diff --git a/packages/opencode/src/mcp/oauth-provider.ts b/packages/opencode/src/mcp/oauth-provider.ts index 35ead25e8..164b1d1f1 100644 --- a/packages/opencode/src/mcp/oauth-provider.ts +++ b/packages/opencode/src/mcp/oauth-provider.ts @@ -149,6 +149,28 @@ export class McpOAuthProvider implements OAuthClientProvider { } return entry.oauthState } + + async invalidateCredentials(type: "all" | "client" | "tokens"): Promise { + log.info("invalidating credentials", { mcpName: this.mcpName, type }) + const entry = await McpAuth.get(this.mcpName) + if (!entry) { + return + } + + switch (type) { + case "all": + await McpAuth.remove(this.mcpName) + break + case "client": + delete entry.clientInfo + await McpAuth.set(this.mcpName, entry) + break + case "tokens": + delete entry.tokens + await McpAuth.set(this.mcpName, entry) + break + } + } } export { OAUTH_CALLBACK_PORT, OAUTH_CALLBACK_PATH }