From b13cd037064c3b4571c32b9d63d75c34f8f08294 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Tue, 24 Jun 2025 11:46:32 +0800 Subject: [PATCH] fix: prevent usage of 'stdio' in MCP server configuration --- .../flow/step_node/ai_chat_step_node/impl/base_chat_node.py | 2 +- apps/application/serializers/application_serializers.py | 2 ++ 2 files 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 8d576d416..56efa4e54 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 @@ -219,7 +219,7 @@ class BaseChatNode(IChatNode): message_list = self.generate_message_list(system, prompt, history_message) self.context['message_list'] = message_list - if mcp_enable and mcp_servers is not None: + if mcp_enable and mcp_servers is not None and '"stdio"' not in mcp_servers: r = mcp_response_generator(chat_model, message_list, mcp_servers) return NodeResult( {'result': r, 'chat_model': chat_model, 'message_list': message_list, diff --git a/apps/application/serializers/application_serializers.py b/apps/application/serializers/application_serializers.py index 77965fb63..9cd06bf2b 100644 --- a/apps/application/serializers/application_serializers.py +++ b/apps/application/serializers/application_serializers.py @@ -1325,6 +1325,8 @@ class ApplicationSerializer(serializers.Serializer): def get_mcp_servers(self, with_valid=True): if with_valid: self.is_valid(raise_exception=True) + if '"stdio"' in self.data.get('mcp_servers'): + raise AppApiException(500, _('stdio is not supported')) servers = json.loads(self.data.get('mcp_servers')) async def get_mcp_tools(servers):