feat: add validation to prevent usage of 'stdio' in MCP servers
This commit is contained in:
parent
f648457ba5
commit
e7f61994ec
@ -222,7 +222,7 @@ class BaseChatNode(IChatNode):
|
|||||||
message_list = self.generate_message_list(system, prompt, history_message)
|
message_list = self.generate_message_list(system, prompt, history_message)
|
||||||
self.context['message_list'] = message_list
|
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)
|
r = mcp_response_generator(chat_model, message_list, mcp_servers)
|
||||||
return NodeResult(
|
return NodeResult(
|
||||||
{'result': r, 'chat_model': chat_model, 'message_list': message_list,
|
{'result': r, 'chat_model': chat_model, 'message_list': message_list,
|
||||||
|
|||||||
@ -630,6 +630,8 @@ class ApplicationOperateSerializer(serializers.Serializer):
|
|||||||
if with_valid:
|
if with_valid:
|
||||||
self.is_valid(raise_exception=True)
|
self.is_valid(raise_exception=True)
|
||||||
McpServersSerializer(data=instance).is_valid(raise_exception=True)
|
McpServersSerializer(data=instance).is_valid(raise_exception=True)
|
||||||
|
if '"stdio"' in instance.get('mcp_servers'):
|
||||||
|
raise AppApiException(500, _('stdio is not supported'))
|
||||||
servers = json.loads(instance.get('mcp_servers'))
|
servers = json.loads(instance.get('mcp_servers'))
|
||||||
tools = []
|
tools = []
|
||||||
for server in servers:
|
for server in servers:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user