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.
This commit is contained in:
kangfenmao 2025-03-16 21:29:58 +08:00
parent 555c5baafa
commit b441d76991
2 changed files with 22 additions and 23 deletions

View File

@ -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`)
}
/**

View File

@ -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])
}