Skip to content

Commit 12f0996

Browse files
committed
fix: replace weak string-based stdio check with structured validation in ai-chat-node and chat pipeline
1 parent 3cae57b commit 12f0996

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

apps/application/chat_pipeline/step/chat_step/impl/base_chat_step.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,11 @@ def _handle_mcp_request(self, mcp_source, mcp_servers, mcp_tool_ids, tool_ids,
242242
# 兼容老数据
243243
if not mcp_tool_ids:
244244
mcp_tool_ids = []
245-
if mcp_source == 'custom' and mcp_servers and '"stdio"' not in mcp_servers:
245+
if mcp_source == 'custom' and mcp_servers:
246246
mcp_servers_config = json.loads(mcp_servers)
247+
for _srv_name, _srv_cfg in mcp_servers_config.items():
248+
if isinstance(_srv_cfg, dict) and str(_srv_cfg.get('transport', '')).lower() == 'stdio':
249+
raise ValueError(f'stdio transport is not allowed for MCP server: {_srv_name}')
247250
elif mcp_tool_ids:
248251
mcp_tools = QuerySet(Tool).filter(id__in=mcp_tool_ids).values()
249252
for mcp_tool in mcp_tools:

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,11 @@ def _handle_mcp_request(self, mcp_source, mcp_servers, mcp_tool_id, mcp_tool_ids
234234
mcp_tool_ids = []
235235
if mcp_tool_id:
236236
mcp_tool_ids = list(set(mcp_tool_ids + [mcp_tool_id]))
237-
if mcp_source == 'custom' and mcp_servers and '"stdio"' not in mcp_servers:
237+
if mcp_source == 'custom' and mcp_servers:
238238
mcp_servers_config = json.loads(mcp_servers)
239+
for _srv_name, _srv_cfg in mcp_servers_config.items():
240+
if isinstance(_srv_cfg, dict) and str(_srv_cfg.get('transport', '')).lower() == 'stdio':
241+
raise ValueError(f'stdio transport is not allowed for MCP server: {_srv_name}')
239242
mcp_servers_config = self.handle_variables(mcp_servers_config)
240243
elif mcp_tool_ids:
241244
mcp_tools = QuerySet(Tool).filter(id__in=mcp_tool_ids).values()

0 commit comments

Comments
 (0)