Skip to content

Commit e7f6199

Browse files
committed
feat: add validation to prevent usage of 'stdio' in MCP servers
1 parent f648457 commit e7f6199

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ def execute(self, model_id, system, prompt, dialogue_number, history_chat_record
222222
message_list = self.generate_message_list(system, prompt, history_message)
223223
self.context['message_list'] = message_list
224224

225-
if mcp_enable and mcp_servers is not None:
225+
if mcp_enable and mcp_servers is not None and '"stdio"' not in mcp_servers:
226226
r = mcp_response_generator(chat_model, message_list, mcp_servers)
227227
return NodeResult(
228228
{'result': r, 'chat_model': chat_model, 'message_list': message_list,

apps/application/serializers/application.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,8 @@ def get_mcp_servers(self, instance, with_valid=True):
630630
if with_valid:
631631
self.is_valid(raise_exception=True)
632632
McpServersSerializer(data=instance).is_valid(raise_exception=True)
633+
if '"stdio"' in instance.get('mcp_servers'):
634+
raise AppApiException(500, _('stdio is not supported'))
633635
servers = json.loads(instance.get('mcp_servers'))
634636
tools = []
635637
for server in servers:

0 commit comments

Comments
 (0)