Replies: 2 comments
-
|
SSE transport is not supported. As for the Streamable HTTP implementation, we're using official mcp python library, perhaps this needs to be addressed upstream? |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for the quick responses and investigation. I want to highlight that the failing validation is limited to the User Tool Server path in the browser (client-side). The browser code sends: Accept: application/jsoninstead of including the required: Accept: text/event-streamper the MCP spec. This causes strict MCP servers to return HTTP 406 Not Acceptable and fail validation. This confirms the issue is not caused by the backend or any upstream MCP library. As demonstrated with the public Microsoft Learn MCP endpoint (
Additionally, when opening
This reinforces that:
In short: global/server-side validation works as intended, while browser/client-side validation currently fails due to non-compliant headers and browser CORS/transport limitations. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.40
Ollama Version (if applicable)
Not relevant to this bug (MCP tools are independent of Ollama)
Operating System
Ubuntu 24.04, macOS 15.1, Windows 11 + WSL2
Browser (if applicable)
Chrome 131, Firefox 132, Edge 131 — identical behavior
Confirmation
README.md.Expected Behavior
When adding a new MCP tool (local), Open WebUI should follow the MCP specification for HTTP(S)/SSE transport. The spec explicitly requires:
“The client MUST include an Accept header, listing text/event-stream as a supported content type.”
— https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#listening-for-messages-from-the-server
During validation/connectivity check, Open WebUI should send an Accept header that includes text/event-stream. The request should succeed for spec-compliant servers.
Actual Behavior
During MCP tool validation (when clicking “Save”), Open WebUI sends a GET request with Accept: application/json. The "text/event-stream" value is missing. Spec-compliant MCP servers now typically enforce the Accept header and respond with HTTP 406 Not Acceptable. As a result, valid MCP tools cannot be added — appearing unavailable in the UI.
Steps to Reproduce
All relevant settings and configuration should be included (see context above).
Logs & Screenshots
Request header (browser network tab):
Accept: application/json
Response:
HTTP/1.1 406 Not Acceptable
Open WebUI logs (Docker or backend): Will show tool server unavailable, corresponding to failed validation.
Additional Information
Suggested fix: In the code handling MCP validation/health-check, change the request Accept header to "text/event-stream, application/json" (or simply "text/event-stream"). Bringing this into spec compliance will allow tool registration with all strict MCP servers.
Context: This breaks all strict MCP tool integrations, making compliant server development and testing impossible. Thank you for maintaining Open WebUI!
Beta Was this translation helpful? Give feedback.
All reactions