import { Button } from "@ui/components/button" import { DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@ui/components/dialog" import { Input } from "@ui/components/input" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@ui/components/select" import { Label } from "@ui/components/label" import { CopyIcon } from "lucide-react" import { useState } from "react" import { toast } from "sonner" import { analytics } from "@/lib/analytics" import { $fetch } from "@repo/lib/api" import type { Project } from "@repo/lib/types" import { useQuery } from "@tanstack/react-query" const clients = { cursor: "Cursor", claude: "Claude Desktop", vscode: "VSCode", cline: "Cline", "roo-cline": "Roo Cline", witsy: "Witsy", enconvo: "Enconvo", "gemini-cli": "Gemini CLI", "claude-code": "Claude Code", } as const export function InstallationDialogContent() { const [client, setClient] = useState("cursor") const [selectedProject, setSelectedProject] = useState("none") // Fetch projects const { data: projects = [], isLoading: isLoadingProjects } = useQuery({ queryKey: ["projects"], queryFn: async () => { const response = await $fetch("@get/projects") if (response.error) { throw new Error(response.error?.message || "Failed to load projects") } return response.data?.projects || [] }, staleTime: 30 * 1000, }) // Generate installation command based on selected project function generateInstallCommand() { let command = `npx -y install-mcp@latest https://mcp.supermemory.ai/mcp --client ${client} --oauth=yes` if (selectedProject && selectedProject !== "none") { // Remove the "sm_project_" prefix from the containerTag const projectId = selectedProject.replace(/^sm_project_/, "") command += ` --project ${projectId}` } return command } return ( Install the supermemory MCP Server Select the app and project you want to install supermemory MCP to, then run the following command:
) }