diff --git a/ui/litellm-dashboard/src/components/mcp_tools/UserFieldsModal.tsx b/ui/litellm-dashboard/src/components/mcp_tools/UserFieldsModal.tsx index 31f65c040ef..a6f6c32c212 100644 --- a/ui/litellm-dashboard/src/components/mcp_tools/UserFieldsModal.tsx +++ b/ui/litellm-dashboard/src/components/mcp_tools/UserFieldsModal.tsx @@ -42,16 +42,21 @@ const UserFieldsModal: React.FC = ({ if (!server) return null; - const missing = defs.filter( - (f) => !values[f.name] || values[f.name].trim() === "", - ); + const isFieldMissing = (name: string): boolean => + !values[name] || + typeof values[name] !== "string" || + values[name].trim() === ""; + + const missing = defs.filter((f) => isFieldMissing(f.name)); const allFilled = defs.length > 0 && missing.length === 0; + const serverDisplayName = server.server_name || server.alias || server.server_id; + const handleSave = () => { setUserFieldValues(server.server_id, userId, values); NotificationsManager.success( allFilled - ? `Saved. ${server.server_name || "MCP server"} is ready to use.` + ? `Saved. ${serverDisplayName} is ready to use.` : `Saved ${defs.length - missing.length} of ${defs.length} fields.`, ); onSaved(); @@ -60,8 +65,6 @@ const UserFieldsModal: React.FC = ({ } }; - const serverDisplayName = server.server_name || server.alias || server.server_id; - const buildDeepLinkUrl = (): string => { if (typeof window === "undefined") { return `?openUserFields=${server.server_id}`; @@ -73,8 +76,8 @@ const UserFieldsModal: React.FC = ({ const errorPreview = `Error: MCP server "${serverDisplayName}" requires user configuration before use. -${missing.length > 0 ? `Missing field${missing.length === 1 ? "" : "s"}:` : "All fields configured."} -${missing.map((f) => ` • ${f.label || f.name}${f.description ? ` — ${f.description}` : ""}`).join("\n")} +${defs.length > 0 ? `Missing field${defs.length === 1 ? "" : "s"}:` : "No fields defined."} +${defs.map((f) => ` • ${f.label || f.name}${f.description ? ` — ${f.description}` : ""}`).join("\n")} Please configure your fields at: ${buildDeepLinkUrl()} @@ -122,7 +125,7 @@ Once configured, retry your request.`; ) : (
{defs.map((f) => { - const isMissing = !values[f.name] || values[f.name].trim() === ""; + const isMissing = isFieldMissing(f.name); return (