From 14bcb71358f4e3f7ce9839fe93282987eae50feb Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Sun, 16 Mar 2025 21:34:29 +0800 Subject: [PATCH] feat: add active MCP servers filtering to useMCPServers hook and update MCPToolsButton - Introduced activedMcpServers to filter and expose only active MCP servers in the useMCPServers hook. - Updated MCPToolsButton to utilize activedMcpServers, rendering null if no active servers are present. --- src/renderer/src/hooks/useMCPServers.ts | 2 ++ src/renderer/src/pages/home/Inputbar/MCPToolsButton.tsx | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/renderer/src/hooks/useMCPServers.ts b/src/renderer/src/hooks/useMCPServers.ts index 548394bf46..cd513977ec 100644 --- a/src/renderer/src/hooks/useMCPServers.ts +++ b/src/renderer/src/hooks/useMCPServers.ts @@ -12,6 +12,7 @@ ipcRenderer.on('mcp:servers-changed', (_event, servers) => { export const useMCPServers = () => { const mcpServers = useAppSelector((state) => state.mcp.servers) + const activedMcpServers = useAppSelector((state) => state.mcp.servers?.filter((server) => server.isActive)) const addMCPServer = async (server: MCPServer) => { try { @@ -59,6 +60,7 @@ export const useMCPServers = () => { return { mcpServers, + activedMcpServers, addMCPServer, updateMCPServer, deleteMCPServer, diff --git a/src/renderer/src/pages/home/Inputbar/MCPToolsButton.tsx b/src/renderer/src/pages/home/Inputbar/MCPToolsButton.tsx index 8c60a5c546..ca452ef794 100644 --- a/src/renderer/src/pages/home/Inputbar/MCPToolsButton.tsx +++ b/src/renderer/src/pages/home/Inputbar/MCPToolsButton.tsx @@ -14,7 +14,7 @@ interface Props { } const MCPToolsButton: FC = ({ enabledMCPs, toggelEnableMCP, ToolbarButton }) => { - const { mcpServers } = useMCPServers() + const { mcpServers, activedMcpServers } = useMCPServers() const [isOpen, setIsOpen] = useState(false) const dropdownRef = useRef(null) const menuRef = useRef(null) @@ -74,6 +74,10 @@ const MCPToolsButton: FC = ({ enabledMCPs, toggelEnableMCP, ToolbarButton ) + if (activedMcpServers.length === 0) { + return null + } + return ( menu}