From 8fa2734830cac8480c73ca867bc60d9c09183fb3 Mon Sep 17 00:00:00 2001 From: Milan Date: Fri, 13 Feb 2026 01:11:06 +0200 Subject: [PATCH] fix(ui): Block spaces and hyphens in MCP server names and aliases - Update validateMCPServerName to reject both spaces and hyphens - Apply shared validation to alias field in create form (was inline) - Update tooltips to mention space restriction - Ensures consistency across create/edit forms for server_name and alias fields --- .../src/components/mcp_tools/create_mcp_server.tsx | 11 +++-------- .../src/components/mcp_tools/utils.tsx | 14 +++++++++++--- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/ui/litellm-dashboard/src/components/mcp_tools/create_mcp_server.tsx b/ui/litellm-dashboard/src/components/mcp_tools/create_mcp_server.tsx index ff476bd999d..5099a826315 100644 --- a/ui/litellm-dashboard/src/components/mcp_tools/create_mcp_server.tsx +++ b/ui/litellm-dashboard/src/components/mcp_tools/create_mcp_server.tsx @@ -429,7 +429,7 @@ const CreateMCPServer: React.FC = ({ label={ MCP Server Name - + @@ -450,7 +450,7 @@ const CreateMCPServer: React.FC = ({ label={ Alias - + @@ -458,12 +458,7 @@ const CreateMCPServer: React.FC = ({ name="alias" rules={[ { required: false }, - { - validator: (_, value) => - value && value.includes("-") - ? Promise.reject("Alias cannot contain '-' (hyphen). Please use '_' (underscore) instead.") - : Promise.resolve(), - }, + { validator: (_, value) => validateMCPServerName(value) }, ]} > { }; export const validateMCPServerName = (value: string) => { - return value && value.includes("-") - ? Promise.reject("Server name cannot contain '-' (hyphen). Please use '_' (underscore) instead.") - : Promise.resolve(); + if (!value) return Promise.resolve(); + + if (value.includes("-")) { + return Promise.reject("Server name cannot contain '-' (hyphen). Please use '_' (underscore) instead."); + } + + if (value.includes(" ")) { + return Promise.reject("Server name cannot contain spaces. Please use '_' (underscore) instead."); + } + + return Promise.resolve(); };