From 8196c11010a714e06e61e3df1dde1c2a582c0bb4 Mon Sep 17 00:00:00 2001 From: zhengkunwang <31820853+zhengkunwang223@users.noreply.github.com> Date: Tue, 8 Apr 2025 11:11:52 +0800 Subject: [PATCH] feat: import mcp server support env (#8344) --- frontend/src/views/ai/mcp/server/import/index.vue | 2 +- .../src/views/ai/mcp/server/operate/index.vue | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/ai/mcp/server/import/index.vue b/frontend/src/views/ai/mcp/server/import/index.vue index 748d77b03..4b1547ea7 100644 --- a/frontend/src/views/ai/mcp/server/import/index.vue +++ b/frontend/src/views/ai/mcp/server/import/index.vue @@ -59,7 +59,7 @@ const onConfirm = async () => { mcpServerConfig.value = Object.entries(data.mcpServers).map(([name, config]: any) => ({ name, command: [config.command, ...config.args].join(' '), - environments: data.env ? Object.entries(data.env).map(([key, value]) => ({ key, value })) : [], + environments: config.env ? Object.entries(config.env).map(([key, value]) => ({ key, value })) : [], ssePath: '/' + name, containerName: name, })); diff --git a/frontend/src/views/ai/mcp/server/operate/index.vue b/frontend/src/views/ai/mcp/server/operate/index.vue index 6dc3da252..e8869cd23 100644 --- a/frontend/src/views/ai/mcp/server/operate/index.vue +++ b/frontend/src/views/ai/mcp/server/operate/index.vue @@ -165,8 +165,10 @@ const rules = ref({ key: [Rules.requiredInput], value: [Rules.requiredInput], }); +const hasWebsite = ref(false); const acceptParams = async (params: AI.McpServer) => { + hasWebsite.value = false; mode.value = params.id ? 'edit' : 'create'; if (mode.value == 'edit') { mcpServer.value = params; @@ -191,6 +193,7 @@ const acceptParams = async (params: AI.McpServer) => { mcpServer.value.protocol = parts[0]; mcpServer.value.url = parts[1]; mcpServer.value.baseUrl = res.data.connUrl; + hasWebsite.value = true; } } catch (error) { MsgError(error); @@ -244,6 +247,18 @@ const submit = async (formEl: FormInstance | undefined) => { if (!valid) { return; } + let request = true; + if (!hasWebsite.value) { + await ElMessageBox.confirm(i18n.global.t('app.installWarn'), i18n.global.t('app.checkTitle'), { + confirmButtonText: i18n.global.t('commons.button.confirm'), + cancelButtonText: i18n.global.t('commons.button.cancel'), + }).catch(() => { + request = false; + }); + } + if (!request) { + return; + } try { loading.value = true; mcpServer.value.baseUrl = mcpServer.value.protocol + mcpServer.value.url;