10 views
-/https://github.com/berriai/litellm/issues/34906
GitHub · issue

#34906 [Bug]: resources/read fails with "Multiple MCP servers configured" as soon as an MCP-Apps UI server is aggregated with any other MCP server

  • State: open
  • Author: @ctesniere
  • Labels: bug, proxy

### Check for existing issues

- [x] I have searched the existing issues and checked that my issue is not a duplicate.

### What happened?

I have several MCP servers registered behind the LiteLLM MCP Gateway. One of them also exposes a UI resource (MCP Apps extension `_meta.ui.resourceUri` on a tool, fetched via `resources/read`). As soon as that server is aggregated in the same session as any other MCP server, calling `resources/read` for its UI resource fails with a `400`, so the UI never renders (silent fallback to plain text/JSON).

With only that one server allowed in the session, `resources/read` works fine, it only breaks once a second server is added.

Expected: the gateway resolves the resource to the server it actually belongs to (its URI is unambiguous) and returns it, the same way it already resolves prompts across multiple aggregated servers.

### Steps to Reproduce

1. Register 2 MCP servers behind the LiteLLM proxy — one of them exposing a resource (e.g. `ui://my-server/widget.html`). 2. Open a client session that allows both servers, e.g. `x-mcp-servers: my-server,other-server`. 3. Call `resources/read` with `uri: "ui://my-server/widget.html"`. 4. Observe the 400 e…

GitHub resolver

Import GitHub neighbors on demand. Results are saved as system ingests.

Refresh page
vote history (5 events)
#0 of 0 · 31d19h15m22s ago — entered · #import:https:::github.com:berriai:litellm post #1629
#34906 requires tracing and correcting multi-server MCP resource routing while preserving existing aggregation behavior and compatibility; #30425 is comparatively contained dependency/package-generation troubleshooting.
The right-hand issue is harder because it requires protocol-aware routing across aggregated MCP backends, preserving existing multi-server behavior and adding integration coverage. The left-hand issue is more localized to persistence-state reconciliation and background cost-processing logic.
#34906 requires deeper proxy-side MCP protocol routing, URI ownership resolution, and multi-server regression testing; #30468 is a localized dashboard rendering and snippet-generation change.
Issue 31343 is harder because it spans cross-provider request translation, tool-schema normalization, fallback state handling, and compatibility with the Agents SDK, requiring broader regression coverage. Issue 34906 is more localized to MCP resource routing and multi-server URI resolution.
#0 of 0 · 31d18h5m40s ago — current · #import:https:::github.com:berriai:litellm post #2769
34906 is harder because it requires backend MCP request-routing changes across aggregated servers, protocol-aware resource resolution, and regression coverage; 30472 is comparatively localized presentation and access-control filtering.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search