diff --git a/src/lib/components/mcp/AddServerForm.svelte b/src/lib/components/mcp/AddServerForm.svelte
index a5bc035d5bf..faea7dace05 100644
--- a/src/lib/components/mcp/AddServerForm.svelte
+++ b/src/lib/components/mcp/AddServerForm.svelte
@@ -1,5 +1,5 @@
+
+ {#if initialDescription}
+
{initialDescription}
+ {/if}
+
@@ -93,7 +151,7 @@
{$allMcpServers.length}
- {$allMcpServers.length === 1 ? "server" : "servers"} configured
+ {$allMcpServers.length > 1 ? "servers" : "server"} configured
{enabledCount} enabled
@@ -102,17 +160,19 @@
+ {#if $allMcpServers.length > 0}
+
+ {/if}
-
{:else if currentView === "add"}
-
+
+
+ (addTab = "search")}
+ class="border-b-2 px-4 py-2 text-sm font-medium transition-colors {addTab === 'search'
+ ? 'border-blue-600 text-blue-600 dark:border-blue-400 dark:text-blue-400'
+ : 'border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300'}"
+ >
+ Search
+
+ (addTab = "manual")}
+ class="border-b-2 px-4 py-2 text-sm font-medium transition-colors {addTab === 'manual'
+ ? 'border-blue-600 text-blue-600 dark:border-blue-400 dark:text-blue-400'
+ : 'border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300'}"
+ >
+ Add
+
+
+
+ {#if addTab === "search"}
+
+
+
+ Cancel
+
+
+ {:else}
+
+ {/if}
{/if}
diff --git a/src/lib/components/mcp/MCPServerSearch.svelte b/src/lib/components/mcp/MCPServerSearch.svelte
new file mode 100644
index 00000000000..923c560d82f
--- /dev/null
+++ b/src/lib/components/mcp/MCPServerSearch.svelte
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+ {#if loading}
+
+ Searching registry…
+
+ {:else if error}
+
+
+ Registry unavailable: {error}
+
+
+ {:else if results.length === 0 && query}
+
+ No servers found for "{query}". Try the Manual tab to add a custom URL.
+
+ {:else}
+
+ {#each results as entry (entry.name)}
+
+ {/each}
+
+ {/if}
+
diff --git a/src/lib/components/mcp/RegistryResultCard.svelte b/src/lib/components/mcp/RegistryResultCard.svelte
new file mode 100644
index 00000000000..74a96e30120
--- /dev/null
+++ b/src/lib/components/mcp/RegistryResultCard.svelte
@@ -0,0 +1,66 @@
+
+
+
+
+ {#if entry.icons?.[0]?.src}
+

+ {:else}
+
+
+
+ {/if}
+
+
+
+
+ {entry.title ?? entry.name}
+
+
+
+
+ {entry.description}
+
+
+
+
+
+ {#if alreadyAdded}
+
+
+ Added
+
+ {:else}
+ onadd(entry)}
+ class="flex items-center gap-1 rounded-lg bg-blue-600 px-2.5 py-1.5 text-xs font-medium text-white hover:bg-blue-700"
+ >
+
+ Add
+
+ {/if}
+
+
diff --git a/src/lib/components/mcp/ServerCard.svelte b/src/lib/components/mcp/ServerCard.svelte
index 694cd1ee803..19bb6643333 100644
--- a/src/lib/components/mcp/ServerCard.svelte
+++ b/src/lib/components/mcp/ServerCard.svelte
@@ -1,6 +1,7 @@