134134 <div
135135 class =" w-full mb-16"
136136 v-if ="
137- chat_data.mcp_tool_id || (chat_data.mcp_servers && chat_data.mcp_servers.length > 0)
137+ chat_data.mcp_tool_ids?.length > 0 || (chat_data.mcp_servers && chat_data.mcp_servers.length > 0)
138138 "
139139 >
140- <div class =" flex-between border border-r-6 white-bg mb-4" style =" padding : 5px 8px "
141- v-if =" relatedObject(mcpToolSelectOptions, chat_data.mcp_tool_id, 'id')"
142- >
143- <div class =" flex align-center" style =" line-height : 20px " >
144- <el-avatar
145- v-if =" relatedObject(mcpToolSelectOptions, chat_data.mcp_tool_id, 'id')?.icon"
146- shape =" square"
147- :size =" 20"
148- style =" background : none "
149- class =" mr-8"
150- >
151- <img :src =" resetUrl(relatedObject(mcpToolSelectOptions, chat_data.mcp_tool_id, 'id')?.icon)" alt =" " />
152- </el-avatar >
153- <ToolIcon v-else type =" MCP" class =" mr-8" :size =" 20" />
140+ <template v-for =" (item , index ) in chat_data .mcp_tool_ids " :key =" index " >
141+ <div class =" flex-between border border-r-6 white-bg mb-4" style =" padding : 5px 8px "
142+ v-if =" relatedObject(mcpToolSelectOptions, item, 'id')"
143+ >
144+ <div class =" flex align-center" style =" line-height : 20px " >
145+ <el-avatar
146+ v-if =" relatedObject(mcpToolSelectOptions, item, 'id')?.icon"
147+ shape =" square"
148+ :size =" 20"
149+ style =" background : none "
150+ class =" mr-8"
151+ >
152+ <img :src =" resetUrl(relatedObject(mcpToolSelectOptions, item, 'id')?.icon)" alt =" " />
153+ </el-avatar >
154+ <ToolIcon v-else type =" MCP" class =" mr-8" :size =" 20" />
154155
155- <div
156- class =" ellipsis"
157- :title =" relatedObject(mcpToolSelectOptions, chat_data.mcp_tool_id, 'id')?.name"
158- >
159- {{
160- relatedObject(mcpToolSelectOptions, chat_data.mcp_tool_id, 'id')?.name ||
161- $t('common.custom') + ' MCP'
162- }}
156+ <div
157+ class =" ellipsis"
158+ :title =" relatedObject(mcpToolSelectOptions, item, 'id')?.name"
159+ >
160+ {{
161+ relatedObject(mcpToolSelectOptions, item, 'id')?.name ||
162+ $t('common.custom') + ' MCP'
163+ }}
164+ </div >
163165 </div >
166+ <el-button text @click =" removeMcpTool(item)" >
167+ <el-icon ><Close /></el-icon >
168+ </el-button >
164169 </div >
165- <el-button text @click =" chat_data.mcp_tool_id = ''" >
166- <el-icon ><Close /></el-icon >
167- </el-button >
168- </div >
170+ </template >
169171 </div >
170172 <!-- 工具 -->
171173 <div class =" flex-between mb-16" >
@@ -424,15 +426,15 @@ const mcpServersDialogRef = ref()
424426function openMcpServersDialog() {
425427 const config = {
426428 mcp_servers: chat_data .value .mcp_servers ,
427- mcp_tool_id : chat_data .value .mcp_tool_id ,
429+ mcp_tool_ids : chat_data .value .mcp_tool_ids ,
428430 mcp_source: chat_data .value .mcp_source ,
429431 }
430432 mcpServersDialogRef .value .open (config , mcpToolSelectOptions .value )
431433}
432434
433435function submitMcpServersDialog(config : any ) {
434436 set (props .nodeModel .properties .node_data , ' mcp_servers' , config .mcp_servers )
435- set (props .nodeModel .properties .node_data , ' mcp_tool_id ' , config .mcp_tool_id )
437+ set (props .nodeModel .properties .node_data , ' mcp_tool_ids ' , config .mcp_tool_ids )
436438 set (props .nodeModel .properties .node_data , ' mcp_source' , config .mcp_source )
437439}
438440
@@ -447,6 +449,10 @@ function removeTool(id: any) {
447449 const list = props .nodeModel .properties .node_data .tool_ids .filter ((v : any ) => v !== id )
448450 set (props .nodeModel .properties .node_data , ' tool_ids' , list )
449451}
452+ function removeMcpTool(id : any ) {
453+ const list = props .nodeModel .properties .node_data .mcp_tool_ids .filter ((v : any ) => v !== id )
454+ set (props .nodeModel .properties .node_data , ' mcp_tool_ids' , list )
455+ }
450456
451457const toolSelectOptions = ref <any []>([])
452458function getToolSelectOptions() {
@@ -506,6 +512,11 @@ onMounted(() => {
506512 chat_data .value .dialogue_type = ' WORKFLOW'
507513 }
508514
515+ if (props .nodeModel .properties .node_data ?.mcp_tool_id ) {
516+ set (props .nodeModel .properties .node_data , ' mcp_tool_ids' , [props .nodeModel .properties .node_data ?.mcp_tool_id ])
517+ set (props .nodeModel .properties .node_data , ' mcp_tool_id' , undefined )
518+ }
519+
509520 getToolSelectOptions ()
510521 getMcpToolSelectOptions ()
511522})
0 commit comments