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}