Skip to content

ui: Remove recommended MCP Servers + improve MCP Servers Settings UI/UX#25535

Open
allozaur wants to merge 16 commits into
ggml-org:masterfrom
allozaur:fix/25509-25274-suggested-mcps
Open

ui: Remove recommended MCP Servers + improve MCP Servers Settings UI/UX#25535
allozaur wants to merge 16 commits into
ggml-org:masterfrom
allozaur:fix/25509-25274-suggested-mcps

Conversation

@allozaur

@allozaur allozaur commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Overview

Close #25509
Close #25274

Additional information

Requirements

Comment thread tools/ui/src/lib/components/app/dialogs/DialogMcpServerAddNew.svelte Outdated
Comment thread tools/ui/src/lib/constants/storage.ts Outdated
Comment thread tools/ui/src/lib/services/migration.service.ts
@allozaur

Copy link
Copy Markdown
Contributor Author

Let's also change "Not now" to "Dismiss" in the recommendations opt-in box

@c14n

c14n commented Jul 11, 2026

Copy link
Copy Markdown

One thing that could be improved is that the current solution

Briefly connects to foo AND bar

before it shows the recommendations. This should be more granular. Potential approach:

  1. Ship a static list of recommended providers, including static assets such as the provider logo.
  2. Add a button “Load available tools” or “Fetch Metadata from Service” in each recommendation card, that queries only the corresponding MCP server.

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.

@allozaur allozaur force-pushed the fix/25509-25274-suggested-mcps branch from a45f573 to 4e00c85 Compare July 11, 2026 15:03
@allozaur allozaur changed the title ui: Re-design recommended MCP Servers UX ui: Remove recommended MCP Servers + improve MCP Servers Settings UI/UX Jul 11, 2026
@allozaur

allozaur commented Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

We'll (maybe) come back to recommendations in the future1, for now let's directly address the #25509 and #25274

Footnotes

  1. https://github.com/ggml-org/llama.cpp/issues/25274#issuecomment-4946983747

@allozaur allozaur marked this pull request as ready for review July 11, 2026 15:10
@allozaur allozaur requested a review from a team as a code owner July 11, 2026 15:10
Copilot AI review requested due to automatic review settings July 11, 2026 15:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 mcpDefaultServerOverrides into mcpServers[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.

Comment thread tools/ui/src/lib/stores/conversations.svelte.ts
Comment thread tools/ui/src/lib/services/migration.service.ts
Comment thread tools/ui/src/lib/components/ui/empty/empty.svelte
Comment thread tools/ui/src/lib/components/ui/empty/empty-description.svelte
Comment thread tools/ui/src/lib/components/app/settings/SettingsMcpServers.svelte
@allozaur allozaur requested a review from ServeurpersoCom July 11, 2026 22:08
@allozaur allozaur requested a review from ggerganov July 11, 2026 22:08

@ServeurpersoCom ServeurpersoCom left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, Quicktest OK / No regressions on MCP and pre-configured servers via the backend JSON

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Misc. bug: llama.cpp web UI makes requests to third-party services before a user has opted into them Feature Request: Remove MCP "Pop-up"

4 participants