diff --git a/apps/code/src/renderer/features/mcp-servers/components/parts/ServerDetailView.tsx b/apps/code/src/renderer/features/mcp-servers/components/parts/ServerDetailView.tsx index 3b6ec7784..905e9da2b 100644 --- a/apps/code/src/renderer/features/mcp-servers/components/parts/ServerDetailView.tsx +++ b/apps/code/src/renderer/features/mcp-servers/components/parts/ServerDetailView.tsx @@ -252,35 +252,58 @@ export function ServerDetailView({ Set all: - + setBulkApproval("approved")} + disabled={bulkPending || filteredTools.length === 0} + onClick={() => + setBulkApproval( + "approved", + toolSearch ? filteredTools : undefined, + ) + } > - + setBulkApproval("needs_approval")} + disabled={bulkPending || filteredTools.length === 0} + onClick={() => + setBulkApproval( + "needs_approval", + toolSearch ? filteredTools : undefined, + ) + } > - + setBulkApproval("do_not_use")} + disabled={bulkPending || filteredTools.length === 0} + onClick={() => + setBulkApproval( + "do_not_use", + toolSearch ? filteredTools : undefined, + ) + } > diff --git a/apps/code/src/renderer/features/mcp-servers/hooks/useMcpInstallationTools.ts b/apps/code/src/renderer/features/mcp-servers/hooks/useMcpInstallationTools.ts index b3343a535..86fe802b0 100644 --- a/apps/code/src/renderer/features/mcp-servers/hooks/useMcpInstallationTools.ts +++ b/apps/code/src/renderer/features/mcp-servers/hooks/useMcpInstallationTools.ts @@ -77,15 +77,21 @@ export function useMcpInstallationTools( ); const setBulkApprovalMutation = useAuthenticatedMutation( - (client, approval_state: McpApprovalState) => { + ( + client, + vars: { + approval_state: McpApprovalState; + targetTools?: McpInstallationTool[]; + }, + ) => { if (!installationId) { return Promise.reject(new Error("No installation selected")); } return dispatchBulkApproval( client, installationId, - tools ?? [], - approval_state, + vars.targetTools ?? tools ?? [], + vars.approval_state, ); }, { @@ -174,7 +180,10 @@ export function useMcpInstallationTools( tools: tools ?? [], isLoading, setToolApproval: setToolApprovalMutation.mutate, - setBulkApproval: setBulkApprovalMutation.mutate, + setBulkApproval: ( + approval_state: McpApprovalState, + targetTools?: McpInstallationTool[], + ) => setBulkApprovalMutation.mutate({ approval_state, targetTools }), bulkPending: setBulkApprovalMutation.isPending, refresh: () => refreshMutation.mutate(undefined), refreshPending: refreshMutation.isPending,