From fdf398b86ec634225bbde96fabf260be9db3d180 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Tue, 13 Jan 2026 23:22:54 +0800 Subject: [PATCH] fix(LocalRunnerClient): close old MCP client while a new client's name is duplicated with the old one --- .../slhaf/partner/core/action/runner/LocalRunnerClient.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java b/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java index f8f20041..46396555 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java @@ -1077,6 +1077,12 @@ public class LocalRunnerClient extends RunnerClient { * @param mcpClientTransportParams MCP Server 的参数 */ private void registerMcpClient(String id, McpClientTransportParams mcpClientTransportParams) { + // 如果已存在同名 client,则需要先获取并关闭 + val old = mcpClients.get(id); + if (old != null) { + old.close(); + } + val clientTransport = createTransport(mcpClientTransportParams); val timeout = mcpClientTransportParams.timeout; val client = McpClient.sync(clientTransport)