From f20235d662b2b17ed816c0e2154393736ab76c6f Mon Sep 17 00:00:00 2001 From: CaptainB Date: Fri, 5 Sep 2025 10:18:51 +0800 Subject: [PATCH] chore: update mcp_tool_id to mcp_tool_ids for multi-select functionality --- .../component/McpServersDialog.vue | 14 ++-- ui/src/workflow/nodes/ai-chat-node/index.vue | 69 +++++++++++-------- 2 files changed, 47 insertions(+), 36 deletions(-) diff --git a/ui/src/views/application/component/McpServersDialog.vue b/ui/src/views/application/component/McpServersDialog.vue index e2e41ffb9..f07fa35ea 100644 --- a/ui/src/views/application/component/McpServersDialog.vue +++ b/ui/src/views/application/component/McpServersDialog.vue @@ -32,13 +32,13 @@ message: $t('common.selectPlaceholder') + ` MCP ${$t('views.tool.title')}`, }, ]" - prop="mcp_tool_id" + prop="mcp_tool_ids" > - + ({ mcp_servers: '', - mcp_tool_id: '', + mcp_tool_ids: [], mcp_source: 'referencing', }) @@ -135,7 +135,7 @@ watch(dialogVisible, (bool) => { if (!bool) { form.value = { mcp_servers: '', - mcp_tool_id: '', + mcp_tool_ids: '', mcp_source: 'referencing', } paramFormRef.value?.clearValidate() @@ -146,7 +146,7 @@ function mcpSourceChange() { if (form.value.mcp_source === 'referencing') { form.value.mcp_servers = '' } else { - form.value.mcp_tool_id = '' + form.value.mcp_tool_ids = '' } } @@ -154,9 +154,9 @@ const open = (data: any, selectOptions: any) => { form.value = { ...form.value, ...data } if (data.mcp_servers) { form.value.mcp_source = 'custom' - } else if (data.mcp_tool_id) { + } else if (data.mcp_tool_ids) { form.value.mcp_source = 'referencing' - form.value.mcp_tool_id = data.mcp_tool_id + form.value.mcp_tool_ids = data.mcp_tool_ids form.value.mcp_servers = '' } else { form.value.mcp_source = data.mcp_source || 'referencing' diff --git a/ui/src/workflow/nodes/ai-chat-node/index.vue b/ui/src/workflow/nodes/ai-chat-node/index.vue index 46aee2ffd..9005ad6a3 100644 --- a/ui/src/workflow/nodes/ai-chat-node/index.vue +++ b/ui/src/workflow/nodes/ai-chat-node/index.vue @@ -134,38 +134,40 @@
-
-
- - - - +
@@ -424,7 +426,7 @@ const mcpServersDialogRef = ref() function openMcpServersDialog() { const config = { mcp_servers: chat_data.value.mcp_servers, - mcp_tool_id: chat_data.value.mcp_tool_id, + mcp_tool_ids: chat_data.value.mcp_tool_ids, mcp_source: chat_data.value.mcp_source, } mcpServersDialogRef.value.open(config, mcpToolSelectOptions.value) @@ -432,7 +434,7 @@ function openMcpServersDialog() { function submitMcpServersDialog(config: any) { set(props.nodeModel.properties.node_data, 'mcp_servers', config.mcp_servers) - set(props.nodeModel.properties.node_data, 'mcp_tool_id', config.mcp_tool_id) + set(props.nodeModel.properties.node_data, 'mcp_tool_ids', config.mcp_tool_ids) set(props.nodeModel.properties.node_data, 'mcp_source', config.mcp_source) } @@ -447,6 +449,10 @@ function removeTool(id: any) { const list = props.nodeModel.properties.node_data.tool_ids.filter((v: any) => v !== id) set(props.nodeModel.properties.node_data, 'tool_ids', list) } +function removeMcpTool(id: any) { + const list = props.nodeModel.properties.node_data.mcp_tool_ids.filter((v: any) => v !== id) + set(props.nodeModel.properties.node_data, 'mcp_tool_ids', list) +} const toolSelectOptions = ref([]) function getToolSelectOptions() { @@ -506,6 +512,11 @@ onMounted(() => { chat_data.value.dialogue_type = 'WORKFLOW' } + if (props.nodeModel.properties.node_data?.mcp_tool_id) { + set(props.nodeModel.properties.node_data, 'mcp_tool_ids', [props.nodeModel.properties.node_data?.mcp_tool_id]) + set(props.nodeModel.properties.node_data, 'mcp_tool_id', undefined) + } + getToolSelectOptions() getMcpToolSelectOptions() })