From 0b6b45928d0efe95cd7e8d56b5e75aa9a88debcc Mon Sep 17 00:00:00 2001 From: CaptainB Date: Tue, 2 Sep 2025 15:42:42 +0800 Subject: [PATCH] fix: ensure only active tools are processed in base_chat_node.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1061252 --user=刘瑞斌 【工具】MCP被禁用后,依然可以在应用中调用 https://www.tapd.cn/62980211/s/1765960 --- .../flow/step_node/ai_chat_step_node/impl/base_chat_node.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py b/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py index 9f64a65ad..4897f41b1 100644 --- a/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py +++ b/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py @@ -279,7 +279,7 @@ class BaseChatNode(IChatNode): mcp_servers_config = json.loads(mcp_servers) elif mcp_tool_id: mcp_tool = QuerySet(Tool).filter(id=mcp_tool_id).first() - if mcp_tool: + if mcp_tool and mcp_tool.is_active: mcp_servers_config = json.loads(mcp_tool.code) if tool_enable: @@ -288,6 +288,8 @@ class BaseChatNode(IChatNode): self.context['execute_ids'] = [] for tool_id in tool_ids: tool = QuerySet(Tool).filter(id=tool_id).first() + if not tool.is_active: + continue executor = ToolExecutor(CONFIG.get('SANDBOX')) if tool.init_params is not None: params = json.loads(rsa_long_decrypt(tool.init_params))