fix: unnecessary initialization

This commit is contained in:
Kadxy 2025-01-09 20:07:24 +08:00
parent b410ec399c
commit 125a71fead
3 changed files with 24 additions and 6 deletions

View File

@ -17,8 +17,8 @@ import {
updateMcpConfig, updateMcpConfig,
getClientPrimitives, getClientPrimitives,
restartAllClients, restartAllClients,
reinitializeMcpClients,
getClientErrors, getClientErrors,
refreshClientStatus,
} from "../mcp/actions"; } from "../mcp/actions";
import { McpConfig, PresetServer, ServerConfig } from "../mcp/types"; import { McpConfig, PresetServer, ServerConfig } from "../mcp/types";
import clsx from "clsx"; import clsx from "clsx";
@ -45,7 +45,7 @@ export function McpMarketPage() {
// 更新服务器状态 // 更新服务器状态
const updateServerStatus = async () => { const updateServerStatus = async () => {
await reinitializeMcpClients(); await refreshClientStatus();
const errors = await getClientErrors(); const errors = await getClientErrors();
setClientErrors(errors); setClientErrors(errors);
}; };
@ -74,6 +74,8 @@ export function McpMarketPage() {
setIsLoading(true); setIsLoading(true);
await updateMcpConfig(newConfig); await updateMcpConfig(newConfig);
setConfig(newConfig); setConfig(newConfig);
// 配置改变时需要重新初始化
await restartAllClients();
await updateServerStatus(); await updateServerStatus();
showToast("Configuration saved successfully"); showToast("Configuration saved successfully");
} catch (error) { } catch (error) {

View File

@ -214,3 +214,23 @@ export async function getClientErrors(): Promise<
} }
return errors; return errors;
} }
// 获取客户端状态,不重新初始化
export async function refreshClientStatus() {
logger.info("Refreshing client status...");
// 如果还没初始化过,则初始化
if (!initialized) {
return initializeMcpClients();
}
// 否则只更新错误状态
errorClients = [];
for (const [clientId, clientData] of clientsMap.entries()) {
if (clientData.errorMsg !== null) {
errorClients.push(clientId);
}
}
return { errorClients };
}

View File

@ -27,10 +27,6 @@
"playwright": { "playwright": {
"command": "npx", "command": "npx",
"args": ["-y", "@executeautomation/playwright-mcp-server"] "args": ["-y", "@executeautomation/playwright-mcp-server"]
},
"gdrive": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-gdrive"]
} }
} }
} }