diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index fa6f8850d7..a72f368123 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -791,6 +791,10 @@ export class ClineProvider implements vscode.WebviewViewProvider { } break } + case "fetchLatestMcpServersFromHub": { + this.mcpHub?.sendLatestMcpServers() + break + } case "searchCommits": { const cwd = vscode.workspace.workspaceFolders?.map((folder) => folder.uri.fsPath).at(0) if (cwd) { diff --git a/src/services/mcp/McpHub.ts b/src/services/mcp/McpHub.ts index 9c6fee3a56..9e4a6b9cfb 100644 --- a/src/services/mcp/McpHub.ts +++ b/src/services/mcp/McpHub.ts @@ -472,6 +472,10 @@ export class McpHub { }) } + async sendLatestMcpServers() { + await this.notifyWebviewOfServerChanges() + } + // Using server // Public methods for server management diff --git a/src/shared/WebviewMessage.ts b/src/shared/WebviewMessage.ts index bb2a155783..87f6785019 100644 --- a/src/shared/WebviewMessage.ts +++ b/src/shared/WebviewMessage.ts @@ -48,6 +48,7 @@ export interface WebviewMessage { | "silentlyRefreshMcpMarketplace" | "searchCommits" | "showMcpView" + | "fetchLatestMcpServersFromHub" // | "relaunchChromeDebugMode" text?: string disabled?: boolean diff --git a/webview-ui/src/components/mcp/McpView.tsx b/webview-ui/src/components/mcp/McpView.tsx index 7dcae6a980..e154e87c59 100644 --- a/webview-ui/src/components/mcp/McpView.tsx +++ b/webview-ui/src/components/mcp/McpView.tsx @@ -23,6 +23,7 @@ const McpView = ({ onDone }: McpViewProps) => { useEffect(() => { vscode.postMessage({ type: "silentlyRefreshMcpMarketplace" }) + vscode.postMessage({ type: "fetchLatestMcpServersFromHub" }) }, []) // const [servers, setServers] = useState([