+
+ Logo
+
+
+
+
+
+ {/* Preview */}
+ {value && (
+
+

{ (e.target as HTMLImageElement).style.display = "none"; }}
+ />
+
+
+
+ )}
+
+ {/* Well-known logo grid */}
+
+ {WELL_KNOWN_LOGOS.map((logo) => {
+ const isSelected = value === logo.url;
+ const hasFailed = imgErrors.has(logo.url);
+ if (hasFailed) return null;
+ return (
+
+
+
+ );
+ })}
+
+
+ {/* Custom URL input */}
+
}
+ placeholder="Or paste a custom logo URL..."
+ value={value && !WELL_KNOWN_LOGOS.some((l) => l.url === value) ? value : ""}
+ onChange={(e) => {
+ const v = e.target.value.trim();
+ onChange?.(v || undefined);
+ }}
+ className="rounded-lg"
+ size="small"
+ />
+
+ );
+};
+
+export default MCPLogoSelector;
diff --git a/ui/litellm-dashboard/src/components/mcp_tools/OpenAPIFormSection.tsx b/ui/litellm-dashboard/src/components/mcp_tools/OpenAPIFormSection.tsx
index 23aae6cb14..b25e1dcadd 100644
--- a/ui/litellm-dashboard/src/components/mcp_tools/OpenAPIFormSection.tsx
+++ b/ui/litellm-dashboard/src/components/mcp_tools/OpenAPIFormSection.tsx
@@ -12,6 +12,8 @@ interface OpenAPIFormSectionProps {
onValuesChange: (updates: Record