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,