1- import { useState , useEffect } from 'react'
1+ import { useState } from 'react'
22import { useQuery , useMutation , useQueryClient } from '@tanstack/react-query'
33import {
44 Dialog ,
@@ -48,6 +48,9 @@ export function McpToolsModal({
4848} : McpToolsModalProps ) {
4949 const [ searchQuery , setSearchQuery ] = useState ( '' )
5050 const [ localEnabledTools , setLocalEnabledTools ] = useState < string [ ] > ( [ ] )
51+ const [ lastInitializedServer , setLastInitializedServer ] = useState <
52+ string | null
53+ > ( null )
5154 const queryClient = useQueryClient ( )
5255
5356 // Fetch tools for the specific server
@@ -66,16 +69,14 @@ export function McpToolsModal({
6669 refetchOnMount : true , // Always refetch when component mounts
6770 } )
6871
69- // Initialize local state when data loads
70- useEffect ( ( ) => {
71- if ( serverTools ?. tools ) {
72- const enabledTools = serverTools . tools
73- . filter ( ( tool ) => tool . enabled )
74- . map ( ( tool ) => tool . name )
75-
76- setLocalEnabledTools ( enabledTools )
77- }
78- } , [ serverTools , serverName ] )
72+ // Initialize local state when server or tools change
73+ if ( serverTools ?. tools && lastInitializedServer !== serverName ) {
74+ const enabledTools = serverTools . tools
75+ . filter ( ( tool ) => tool . enabled )
76+ . map ( ( tool ) => tool . name )
77+ setLocalEnabledTools ( enabledTools )
78+ setLastInitializedServer ( serverName )
79+ }
7980
8081 // Save tools mutation
8182 const saveToolsMutation = useMutation ( {
0 commit comments