From b8024497f2e556b0ee48409f28e5ce88ebaa7708 Mon Sep 17 00:00:00 2001 From: pashpashpash Date: Thu, 13 Feb 2025 19:11:08 -0800 Subject: [PATCH] mcp marketplace working --- src/core/webview/ClineProvider.ts | 13 ++----------- .../mcp/marketplace/McpMarketplaceCard.tsx | 12 +----------- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 0b6a2c2424..d4603e0322 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -440,16 +440,7 @@ export class ClineProvider implements vscode.WebviewViewProvider { try { // First check if we already have this MCP server installed const servers = this.mcpHub?.getServers() || [] - const isInstalled = servers.some((server: McpServer) => { - try { - const config = JSON.parse(server.config) - const serverConfig = config.mcpServers[server.name] - const githubUrl = serverConfig.args?.find((arg: string) => arg.includes("github.com")) - return githubUrl?.includes(mcpId) - } catch { - return false - } - }) + const isInstalled = servers.some((server: McpServer) => server.name === mcpId) if (isInstalled) { throw new Error("This MCP server is already installed") @@ -488,7 +479,7 @@ export class ClineProvider implements vscode.WebviewViewProvider { }) // Create task with context from README - const task = `Set up the MCP server from ${mcpDetails.githubUrl}. Here's some additional context from the README:\n\n${mcpDetails.readmeContent}` + const task = `Set up the MCP server from ${mcpDetails.githubUrl}. Use "${mcpDetails.mcpId}" as the server name in cline_mcp_settings.json. Here's some additional context from the README:\n\n${mcpDetails.readmeContent}` // Initialize task and show chat view await this.initClineWithTask(task) diff --git a/webview-ui/src/components/mcp/marketplace/McpMarketplaceCard.tsx b/webview-ui/src/components/mcp/marketplace/McpMarketplaceCard.tsx index b5471bc1e7..bbe3ace015 100644 --- a/webview-ui/src/components/mcp/marketplace/McpMarketplaceCard.tsx +++ b/webview-ui/src/components/mcp/marketplace/McpMarketplaceCard.tsx @@ -9,17 +9,7 @@ interface McpMarketplaceCardProps { } const McpMarketplaceCard = ({ item, installedServers }: McpMarketplaceCardProps) => { - const isInstalled = installedServers.some((server) => { - try { - const config = JSON.parse(server.config) - const serverConfig = config.mcpServers[server.name] - // Extract GitHub URL from args if it's an npm package - const githubUrl = serverConfig.args?.find((arg: string) => arg.includes("github.com")) - return githubUrl?.includes(item.mcpId) || githubUrl?.includes(item.githubUrl) - } catch { - return false - } - }) + const isInstalled = installedServers.some((server) => server.name === item.mcpId) const [isDownloading, setIsDownloading] = useState(false) useEffect(() => {