Repository navigation
v1.0.2 — MCP OAuth token refresh fixes + discovered tools panel
Highlights
- MCP OAuth token refresh: Fixed an end-to-end bug where
listTools,listResources,listPrompts, and manifest fetch silently lost OAuth refresh capability, causing tools to "disappear" after token expiry. All routes now construct and passoauthContextto the service layer for proactive refresh and 401 retry. - Stale client caching: Non-refreshable OAuth clients cached by earlier calls are evicted when a later call provides
oauthContext, preventing permanent cache poisoning. - Discover MCP tools in Settings: The MCP Management detail pane now performs live tool discovery when you click an installed MCP plugin. Shows expandable tool cards with name, description, and input schema parameters. Supports both HTTP and stdio (desktop) MCP servers.
Bug Fixes
- OAuth token status now distinguishes
expired_refreshablefromexpiredso the UI can tell which tokens can be silently refreshed. listResources()andlistPrompts()client methods now retry on 401 with token refresh (was onlylistTools).- Failed OAuth refresh no longer silently returns
[]— surfaces the auth error instead. NoValidSessionIdretry preservesoauthContextso the retried client retains refresh capability.- Stdio MCP discovery in settings forwards saved environment variables (
env) to the desktop client. - Rapid MCP selection in settings guards against stale async responses.
Style
- MCP OAuth status tag uses localized labels instead of raw enum values (e.g., "Expired, can refresh" instead of "expired_refreshable").
- Settings detail header: icon, title, Edit Now and Uninstall rendered in one horizontal row.
Full diff: v1.0.1...v1.0.2