From b441d76991d37f4f899dc196f85b2ae1d43c7529 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Sun, 16 Mar 2025 21:29:58 +0800 Subject: [PATCH] refactor: improve logging messages in MCPService and clean up useMCPServers hook - Updated logging messages in MCPService for clarity and consistency. - Removed unused dispatch and initial server loading logic from useMCPServers hook to streamline the code. --- src/main/services/MCPService.ts | 13 +++++----- src/renderer/src/hooks/useMCPServers.ts | 32 ++++++++++++------------- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/main/services/MCPService.ts b/src/main/services/MCPService.ts index 2d8f5f4e..d5785060 100644 --- a/src/main/services/MCPService.ts +++ b/src/main/services/MCPService.ts @@ -75,11 +75,11 @@ export default class MCPService extends EventEmitter { this.initPromise = (async () => { try { + log.info('[MCP] Starting initialization') + // Wait for servers to be loaded from Redux await this.waitForServers() - log.info('[MCP] Starting initialization') - // Load SDK components in parallel for better performance const [Client, StdioTransport, SSETransport] = await Promise.all([ this.importClient(), @@ -96,7 +96,7 @@ export default class MCPService extends EventEmitter { // Load active servers await this.loadActiveServers() - log.info('[MCP] Initialization completed successfully') + log.info('[MCP] Initialization successfully') return } catch (err) { @@ -333,7 +333,7 @@ export default class MCPService extends EventEmitter { this.clients[name] = client this.activeServers.set(name, { client, server }) - log.info(`[MCP] Server ${name} started successfully`) + log.info(`[MCP] Activated server: ${server.name}`) this.emit('server-started', { name }) } catch (error) { log.error(`[MCP] Error activating server ${name}:`, error) @@ -476,14 +476,13 @@ export default class MCPService extends EventEmitter { return } - log.info(`[MCP] Loading ${activeServers.length} active servers`) + log.info(`[MCP] Start loading ${activeServers.length} active servers`) // Activate servers in parallel for better performance await Promise.allSettled( activeServers.map(async (server) => { try { await this.activate(server) - log.info(`[MCP] Successfully activated server: ${server.name}`) } catch (error) { this.logError(`Failed to activate server ${server.name}`) this.emit('server-error', { name: server.name, error }) @@ -491,7 +490,7 @@ export default class MCPService extends EventEmitter { }) ) - log.info(`[MCP] Loaded and activated ${Object.keys(this.clients).length} servers`) + log.info(`[MCP] End loading ${Object.keys(this.clients).length} active servers`) } /** diff --git a/src/renderer/src/hooks/useMCPServers.ts b/src/renderer/src/hooks/useMCPServers.ts index 30692484..548394bf 100644 --- a/src/renderer/src/hooks/useMCPServers.ts +++ b/src/renderer/src/hooks/useMCPServers.ts @@ -1,4 +1,4 @@ -import store, { useAppDispatch, useAppSelector } from '@renderer/store' +import store, { useAppSelector } from '@renderer/store' import { setMCPServers } from '@renderer/store/mcp' import { MCPServer } from '@renderer/types' import { useEffect } from 'react' @@ -12,21 +12,6 @@ ipcRenderer.on('mcp:servers-changed', (_event, servers) => { export const useMCPServers = () => { const mcpServers = useAppSelector((state) => state.mcp.servers) - const dispatch = useAppDispatch() - - // Initial load of MCP servers from main process - useEffect(() => { - const loadServers = async () => { - try { - const servers = await window.api.mcp.listServers() - dispatch(setMCPServers(servers)) - } catch (error) { - console.error('Failed to load MCP servers:', error) - } - } - - loadServers() - }, [dispatch]) const addMCPServer = async (server: MCPServer) => { try { @@ -84,9 +69,24 @@ export const useMCPServers = () => { export const useInitMCPServers = () => { const mcpServers = useAppSelector((state) => state.mcp.servers) + // const dispatch = useAppDispatch() // Send servers to main process when they change in Redux useEffect(() => { ipcRenderer.send('mcp:servers-from-renderer', mcpServers) }, [mcpServers]) + + // Initial load of MCP servers from main process + // useEffect(() => { + // const loadServers = async () => { + // try { + // const servers = await window.api.mcp.listServers() + // dispatch(setMCPServers(servers)) + // } catch (error) { + // console.error('Failed to load MCP servers:', error) + // } + // } + + // loadServers() + // }, [dispatch]) }