Skip to content

fix(ui): restore MCP catalog provider logos - #40781

Merged
yuneng-berri merged 1 commit into
litellm_internal_stagingfrom
litellm_mcp-catalog-logos
Sep 12, 2026
Merged

yuneng-berri merged 1 commit into
litellm_internal_stagingfrom
litellm_mcp-catalog-logos

Conversation

@yuneng-berri

@yuneng-berri yuneng-berri commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

TLDR

Problem this solves:

  • Seven MCP catalog logos fall back to provider initials

How it solves it:

  • Replace broken CDN URLs with shipped or official logos
  • Test actual catalog entries with and without a subpath

User Flow

Before: seven providers show initials instead of logos

  1. Open https://litellm-domain/litellm/ui/mcp-servers/
  2. Click + Add New MCP Server
  3. Exa, Tavily, Slack, Twilio, Playwright, Browserbase, and AWS show initials

After: all seven providers display their logos

  1. Open https://litellm-domain/litellm/ui/mcp-servers/
  2. Click + Add New MCP Server
  3. Exa, Tavily, Slack, Twilio, Playwright, Browserbase, and AWS display logos

Linear ticket

Resolves LIT-7390

Pre-Submission checklist

  • Meaningful regression tests added
  • Focused local tests pass: 171 tests across eight files
  • All 33 required GitHub checks pass; additional CircleCI checks noted below
  • Scope is isolated to this issue
  • Greptile independently reports 5/5 for the current head

Screenshots / Proof of Fix

Real browser, local proxy and seeded database, SERVER_ROOT_PATH=/litellm; no mocked catalog or images. The local development launcher needed a routing-only adaptation outside the repository to serve the subpath. Screenshots are attached to LIT-7390 and require Linear access. Independent browser QA also passed with screenshots for the same base and head

Before (ae6a4a2)

  1. Open http://127.0.0.1:65123/litellm/ui/mcp-servers/ and click + Add New MCP Server
  2. All seven affected images have naturalWidth === 0; GitHub and Notion have nonzero widths
  3. See attachment MCP catalog logos before ae6a4a2 under /litellm on the linked issue

After (f5bf2da)

  1. Open http://127.0.0.1:64345/litellm/ui/mcp-servers/ and click + Add New MCP Server
  2. All seven affected images have nonzero widths; GitHub and Notion still load. The five shipped images resolve under /litellm/ui/assets/logos/
  3. See attachment MCP catalog logos after f5bf2da under /litellm on the linked issue
Supporting checks
  • Default-root browser check at http://127.0.0.1:65324/ui/mcp-servers/: all seven logos load; Search filtering and Exa selection retain the expected name and URL
  • Eight focused Vitest files: 171 tests passed, covering catalog filtering/selection, logo resolution, cards, logo selection, create payloads, and chat MCP consumers
  • New catalog cases failed before the fix and pass with both empty and /litellm roots
  • Restoring the broken Exa URL makes both cases fail; removing the local Exa image also makes both fail
  • All five local assets exist in the committed packaged dashboard and return HTTP 200 under /litellm
  • Full dashboard ESLint: zero errors; all nine lint budgets pass. Changed-file formatting passes
  • Full TypeScript check: 1,841 diagnostics, byte-identical to untouched staging; none added by this change
  • CircleCI subpath browser suite: 35 tests passed; UI build and all 33 required GitHub checks passed
  • CircleCI OpenAI endpoint test: test_anthropic_with_responses_api sends previous_response_id="hi" and receives 403. Replaying the identical request on merge base ae6a4a2f gives the identical 403; this comes from fix(proxy): authorize every Responses API id, not only the ones the proxy issued #39548, already in staging
  • CircleCI default-root browser suite passed: 152 passed, one flaky test passed on retry (keyBudgetWindow.spec.ts). Windows checks passed. Final check summary: 127 passed, one skipped, one inherited endpoint-test failure

Type

Bug Fix

Caveats

Low

  • Playwright and Browserbase logos require their official hosts
  • Standalone development servers lack the existing /ui asset routes
  • One additional endpoint CI failure reproduces on unchanged staging

Final Attestation

  • Regression cases and adjacent behavior were exercised as described above

@codspeed

codspeed Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 31 untouched benchmarks


Comparing litellm_mcp-catalog-logos (f5bf2da) with litellm_internal_staging (09b6948)

Open in CodSpeed

@greptile-apps

greptile-apps Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR restores seven MCP catalog provider logos by replacing unavailable CDN URLs and adds registry-driven regression coverage for root and subpath deployments

  • Five providers now use assets shipped with the dashboard
  • Playwright and Browserbase use official external image sources
  • Integration coverage verifies catalog entries, URL resolution, and local asset presence under empty and /litellm roots

Confidence Score: 5/5

The PR appears safe to merge, with the changed logo paths present and correctly resolved across supported server roots

No actionable failures remain; the packaged assets, runtime path handling, test discovery, and production rendering path align with the intended fix

Important Files Changed

Filename Overview
litellm/proxy/mcp_registry.json Replaces seven broken provider icon URLs with available packaged or official logo sources
ui/litellm-dashboard/src/app/(dashboard)/mcp-servers/_components/mcp_discovery.integration.test.tsx Adds registry-driven logo regression coverage and moves the component test into the configured integration suite

Reviews (1): Last reviewed commit: "fix(ui): restore MCP catalog provider lo..." | Re-trigger Greptile

@codecov

codecov Bot commented Sep 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@devin-ai-integration

Copy link
Copy Markdown
Contributor

QA passed: real browser, proxy-served UI, before ae6a4a2 vs after f5bf2da. All seven logos load at root and under /litellm. Session

Proof
Before (ae6a4a2) After (f5bf2da)
Before top After top
Before bottom After bottom
After subpath
Exa prefill

Steps: http://localhost:4000/ui/mcp-servers/, click "+ Add New MCP Server", scroll to Search, Web & Browser, Cloud

naturalWidth before -> after: Exa 0 -> 1024, Tavily 0 -> 1024, Slack 0 -> 150, Twilio 0 -> 150, Playwright 0 -> 400, Browserbase 0 -> 200, AWS 0 -> 200. GitHub and Notion 150 on both. Selecting Exa prefills name exa, Streamable HTTP, https://mcp.exa.ai/mcp

Note: on the standalone npm run dev server (port 3000) the five /ui/assets/logos/ images do not resolve because that server has no /ui route. Pre-existing for every /ui/assets reference in the dashboard, not introduced here

@yuneng-berri
yuneng-berri merged commit a73454b into litellm_internal_staging Sep 12, 2026
133 of 134 checks passed
@yuneng-berri
yuneng-berri deleted the litellm_mcp-catalog-logos branch September 12, 2026 18:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants