diff --git a/web/src/app/_settings/tabs/mcp-tab.tsx b/web/src/app/_settings/tabs/mcp-tab.tsx index 1b177c8..a2449bf 100644 --- a/web/src/app/_settings/tabs/mcp-tab.tsx +++ b/web/src/app/_settings/tabs/mcp-tab.tsx @@ -7,6 +7,7 @@ import { useCallback, useState } from "react"; import { Tooltip } from "~/app/_components/tooltip"; import { Button } from "~/components/ui/button"; +import { Switch } from "~/components/ui/switch"; import type { MCPServerMetadata } from "~/core/mcp"; import { AddMCPServerDialog } from "../dialogs/add-mcp-server-dialog"; @@ -46,6 +47,16 @@ export const MCPTab: Tab = ({ settings, onChange }) => { }, [onChange, settings], ); + const handleToggleServer = useCallback( + (name: string, enabled: boolean) => { + const merged = settings.mcp.servers.map((server) => + server.name === name ? { ...server, enabled } : server, + ); + setServers(merged); + onChange({ ...settings, mcp: { ...settings.mcp, servers: merged } }); + }, + [onChange, settings], + ); const animationProps = { initial: { backgroundColor: "gray" }, animate: { backgroundColor: "transparent" }, @@ -86,7 +97,20 @@ export const MCPTab: Tab = ({ settings, onChange }) => { key={server.name} {...(isNew && newlyAdded && animationProps)} > -
+
+ +
+ { + handleToggleServer(server.name, checked); + }} + /> +
+
+
+