From 2e1f63fe962c86a23e9037673837d3a83dfe9db9 Mon Sep 17 00:00:00 2001 From: one Date: Sat, 19 Jul 2025 14:19:59 +0800 Subject: [PATCH] fix(AddMcp): mismatched mcp tag type (#8286) * fix(AddMcp): mismatched mcp tag type * refactor: simplify tag filter --- .../src/pages/settings/MCPSettings/AddMcpServerModal.tsx | 9 +++++++++ .../src/pages/settings/MCPSettings/McpServersList.tsx | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/pages/settings/MCPSettings/AddMcpServerModal.tsx b/src/renderer/src/pages/settings/MCPSettings/AddMcpServerModal.tsx index d6f0638a94..aaf7fd3590 100644 --- a/src/renderer/src/pages/settings/MCPSettings/AddMcpServerModal.tsx +++ b/src/renderer/src/pages/settings/MCPSettings/AddMcpServerModal.tsx @@ -408,6 +408,15 @@ const parseAndExtractServer = ( return { serverToAdd: null, error: t('settings.mcp.addServer.importFrom.invalid') } } + // Ensure tags is string[] + if ( + serverToAdd.tags && + (!Array.isArray(serverToAdd.tags) || !serverToAdd.tags.every((tag) => typeof tag === 'string')) + ) { + logger.error('Tags must be an array of strings:', serverToAdd.tags) + return { serverToAdd: null, error: t('settings.mcp.addServer.importFrom.invalid') } + } + return { serverToAdd, error: null } } diff --git a/src/renderer/src/pages/settings/MCPSettings/McpServersList.tsx b/src/renderer/src/pages/settings/MCPSettings/McpServersList.tsx index d0ef9120b9..9f8b709575 100644 --- a/src/renderer/src/pages/settings/MCPSettings/McpServersList.tsx +++ b/src/renderer/src/pages/settings/MCPSettings/McpServersList.tsx @@ -202,8 +202,9 @@ const McpServersList: FC = () => { {server.provider} )} - {server.tags && - server.tags.map((tag) => ( + {server.tags + ?.filter((tag): tag is string => typeof tag === 'string') + .map((tag) => ( {tag}