ui: Remove recommended MCP Servers + improve MCP Servers Settings UI/UX#25535
ui: Remove recommended MCP Servers + improve MCP Servers Settings UI/UX#25535allozaur wants to merge 16 commits into
Conversation
|
Let's also change "Not now" to "Dismiss" in the recommendations opt-in box |
|
One thing that could be improved is that the current solution
before it shows the recommendations. This should be more granular. Potential approach:
That way, users can check out each provider independently (read reviews, visit website, ask in forums, etc.) before deciding whether they actually want to contact the server. |
a45f573 to
4e00c85
Compare
…ion for downgrade compatibility
There was a problem hiding this comment.
Pull request overview
This PR updates the web UI MCP onboarding and settings flow to avoid preloading “recommended” third-party MCP servers (and the associated opt-in dialog), so the UI no longer triggers third-party requests before a user explicitly adds a server. It also refactors MCP settings/ordering behavior and adds a migration to consolidate legacy “default enabled” state.
Changes:
- Remove the recommended MCP servers list + first-run recommendations dialog/hook, and change the MCP_SERVERS default to an empty list.
- Adjust MCP server health-check behavior to avoid re-checking already-resolved servers and reduce UI “skeleton flashing”.
- Add a migration + tests to merge legacy
mcpDefaultServerOverridesintomcpServers[i].enabled, and introduce a reusable “Empty state” UI component used by the MCP Servers settings screen.
Reviewed changes
Copilot reviewed 34 out of 35 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/ui/tests/unit/recommended-mcp-servers.test.ts | Removed tests tied to the deleted “recommended MCP servers” feature. |
| tools/ui/tests/unit/parse-mcp-server-settings.test.ts | Updated parser test comment to remove references to recommended-server seeding. |
| tools/ui/tests/unit/mcp-servers-default.test.ts | Added test asserting MCP_SERVERS default is now '[]'. |
| tools/ui/tests/unit/mcp-default-overrides-merge.test.ts | Added unit tests for the new legacy-overrides merge migration. |
| tools/ui/src/routes/+layout.svelte | Removed recommendations dialog/hook; adjusted background MCP health-check behavior. |
| tools/ui/src/lib/types/mcp.d.ts | Removed RecommendedMCPServer type (feature deleted). |
| tools/ui/src/lib/types/index.ts | Removed export of RecommendedMCPServer. |
| tools/ui/src/lib/stores/mcp.svelte.ts | Simplified favicon fallback; removed sorting/loading helpers; preserved insertion order for visible servers. |
| tools/ui/src/lib/stores/conversations.svelte.ts | Removed pending MCP default overrides flow; derive “no conversation” defaults from mcpServers[i].enabled. |
| tools/ui/src/lib/services/migration.service.ts | Added mcp-default-overrides-merge-v1 migration and updated legacy default-enabled migration storage key usage. |
| tools/ui/src/lib/hooks/use-tools-panel.svelte.ts | Switched to getServers() after removing sorting helper. |
| tools/ui/src/lib/hooks/use-mcp-recommendations.svelte.ts | Deleted recommendations hook. |
| tools/ui/src/lib/constants/storage.ts | Removed localStorage key used by the recommendations dialog. |
| tools/ui/src/lib/constants/settings-registry.ts | Changed MCP_SERVERS default to '[]'; removed MCP default overrides setting entry. |
| tools/ui/src/lib/constants/settings-keys.ts | Removed MCP_DEFAULT_SERVER_OVERRIDES key. |
| tools/ui/src/lib/constants/recommended-mcp-servers.ts | Deleted recommended servers constants. |
| tools/ui/src/lib/constants/mcp-form.ts | Removed MCP_CARD_VISIBLE_TOOL_LIMIT constant (used only by deleted compact card). |
| tools/ui/src/lib/constants/index.ts | Stopped exporting recommended-server constants (deleted). |
| tools/ui/src/lib/components/ui/empty/index.ts | Added barrel exports for new Empty state UI components. |
| tools/ui/src/lib/components/ui/empty/empty.svelte | Added Empty state root component. |
| tools/ui/src/lib/components/ui/empty/empty-title.svelte | Added Empty state title subcomponent. |
| tools/ui/src/lib/components/ui/empty/empty-media.svelte | Added Empty state media/icon subcomponent. |
| tools/ui/src/lib/components/ui/empty/empty-header.svelte | Added Empty state header subcomponent. |
| tools/ui/src/lib/components/ui/empty/empty-description.svelte | Added Empty state description subcomponent. |
| tools/ui/src/lib/components/ui/empty/empty-content.svelte | Added Empty state content subcomponent. |
| tools/ui/src/lib/components/app/settings/SettingsMcpServers.svelte | Updated MCP Servers settings UI to use Empty state and per-card skeleton behavior. |
| tools/ui/src/lib/components/app/mcp/McpServerCard/McpServerCardCompact.svelte | Deleted compact MCP server card (only used by recommendations dialog). |
| tools/ui/src/lib/components/app/mcp/McpActiveServersAvatars.svelte | Switched to getServers() after removing sorting helper. |
| tools/ui/src/lib/components/app/mcp/index.ts | Removed export + docs for deleted compact MCP server card. |
| tools/ui/src/lib/components/app/dialogs/index.ts | Removed export + docs for deleted recommendations dialog. |
| tools/ui/src/lib/components/app/dialogs/DialogMcpServerRecommendations.svelte | Deleted recommendations dialog implementation. |
| tools/ui/src/lib/components/app/chat/ChatForm/ChatFormPickers/ChatFormPickerMcpResources.svelte | Switched to getServers() after removing sorting helper. |
| tools/ui/src/lib/components/app/chat/ChatForm/ChatFormPickers/ChatFormPickerMcpPrompts/ChatFormPickerMcpPrompts.svelte | Switched to getServers() after removing sorting helper. |
| tools/ui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActionAdd/ChatFormActionAddToolsSubmenu.svelte | Switched to getServers() after removing sorting helper. |
| tools/ui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActionAdd/ChatFormActionAddMcpServersSubmenu.svelte | Switched to getServers() after removing sorting helper. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ServeurpersoCom
left a comment
There was a problem hiding this comment.
LGTM, Quicktest OK / No regressions on MCP and pre-configured servers via the backend JSON
Overview
Close #25509
Close #25274
Additional information
Requirements