[GH-ISSUE #19525] issue: MCP Streamable HTTP incompatible with OpenMetadata MCP server due to missing Accept: application/json, text/event-stream header #57579

Closed
opened 2026-05-05 21:09:41 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @aimendenche-nw on GitHub (Nov 26, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/19525

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!).
  • I am using the latest version of Open WebUI.

Installation Method

Git Clone

Open WebUI Version

latest

Ollama Version (if applicable)

No response

Operating System

ubuntu

Browser (if applicable)

No response

Confirmation

  • I have read and followed all instructions in README.md.
  • I am using the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have provided every relevant configuration, setting, and environment variable used in my setup.
  • I have clearly listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc).
  • I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation. My steps:
  • Start with the initial platform/version/OS and dependencies used,
  • Specify exact install/launch/configure commands,
  • List URLs visited, user input (incl. example values/emails/passwords if needed),
  • Describe all options and toggles enabled or changed,
  • Include any files or environmental changes,
  • Identify the expected and actual result at each stage,
  • Ensure any reasonably skilled user can follow and hit the same issue.

Expected Behavior

OpenWebUI should send the required dual Accept header for MCP Streamable HTTP:
Accept: application/json, text/event-stream

so that the OpenMetadata MCP server can establish a valid MCP handshake.

Actual Behavior

OpenWebUI always sends:

Accept: application/json

This violates the Java MCP Streamable HTTP protocol specification, leading to a 400 error and tool failure.

Proof: Curl Test

When sending the correct headers manually:

curl -i -X POST
-H "Content-Type: application/json"
-H "Accept: application/json, text/event-stream"
-H "Authorization: Bearer "
https://openmetadata./mcp
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"initialize",
"params":{
"clientInfo":{"name":"curl-test","version":"0.1.0"},
"capabilities":{}
}
}'

The server responds successfully:

HTTP/2 200
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"serverInfo": { ... },
"capabilities": { ... }
}
}
This proves the issue is not on the server side.

The OpenWebUI MCP Streamable HTTP client does not allow modifying or injecting the required Accept header, and currently does not implement the dual Accept negotiation required by Java MCP servers.

This makes OpenWebUI incompatible with:

Java MCP servers using Streamable HTTP

Any MCP implementation requiring multiple MIME types

Steps to Reproduce

.....

Logs & Screenshots

Image

Additional Information

Proposed Fix

Add support for dual Accept headers when initializing MCP HTTP connections.

Example:

headers["Accept"] = "application/json, text/event-stream"

or a more dynamic negotiation mechanism.

Also allow users to override required MCP headers in the UI.

Originally created by @aimendenche-nw on GitHub (Nov 26, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/19525 ### Check Existing Issues - [x] I have searched for any existing and/or related issues. - [x] I have searched for any existing and/or related discussions. - [x] I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!). - [x] I am using the latest version of Open WebUI. ### Installation Method Git Clone ### Open WebUI Version latest ### Ollama Version (if applicable) _No response_ ### Operating System ubuntu ### Browser (if applicable) _No response_ ### Confirmation - [x] I have read and followed all instructions in `README.md`. - [x] I am using the latest version of **both** Open WebUI and Ollama. - [x] I have included the browser console logs. - [x] I have included the Docker container logs. - [x] I have **provided every relevant configuration, setting, and environment variable used in my setup.** - [x] I have clearly **listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup** (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc). - [x] I have documented **step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation**. My steps: - Start with the initial platform/version/OS and dependencies used, - Specify exact install/launch/configure commands, - List URLs visited, user input (incl. example values/emails/passwords if needed), - Describe all options and toggles enabled or changed, - Include any files or environmental changes, - Identify the expected and actual result at each stage, - Ensure any reasonably skilled user can follow and hit the same issue. ### Expected Behavior OpenWebUI should send the required dual Accept header for MCP Streamable HTTP: Accept: application/json, text/event-stream so that the OpenMetadata MCP server can establish a valid MCP handshake. ### Actual Behavior OpenWebUI always sends: Accept: application/json This violates the Java MCP Streamable HTTP protocol specification, leading to a 400 error and tool failure. Proof: Curl Test When sending the correct headers manually: curl -i -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -H "Authorization: Bearer <jwt>" \ https://openmetadata.<domain>/mcp \ -d '{ "jsonrpc":"2.0", "id":1, "method":"initialize", "params":{ "clientInfo":{"name":"curl-test","version":"0.1.0"}, "capabilities":{} } }' The server responds successfully: HTTP/2 200 { "jsonrpc": "2.0", "id": 1, "result": { "serverInfo": { ... }, "capabilities": { ... } } } This proves the issue is not on the server side. The OpenWebUI MCP Streamable HTTP client does not allow modifying or injecting the required Accept header, and currently does not implement the dual Accept negotiation required by Java MCP servers. This makes OpenWebUI incompatible with: Java MCP servers using Streamable HTTP Any MCP implementation requiring multiple MIME types ### Steps to Reproduce ..... ### Logs & Screenshots <img width="1323" height="594" alt="Image" src="https://github.com/user-attachments/assets/5bce7803-c011-4087-9cfe-0ccf98795668" /> ### Additional Information Proposed Fix Add support for dual Accept headers when initializing MCP HTTP connections. Example: headers["Accept"] = "application/json, text/event-stream" or a more dynamic negotiation mechanism. Also allow users to override required MCP headers in the UI.
GiteaMirror added the bug label 2026-05-05 21:09:41 -05:00
Author
Owner

@michalz-rely commented on GitHub (Nov 26, 2025):

I hit the same issue when setting up publicly available AWS Knowledge MCP Server

My Config

[
    {
        "type": "mcp",
        "url": "https://knowledge-mcp.global.api.aws",
        "spec_type": "url",
        "spec": "",
        "path": "openapi.json",
        "auth_type": "none",
        "key": "",
        "info": {
            "id": "aws-knowledge-mcp-server",
            "name": "AWS Knowledge MCP",
            "description": "AWS Knowledge MCP Server enables MCP clients and agentic frameworks supporting MCP to anchor their responses in trusted AWS context, guidance, and best practices."
        }
    }
]

Logs

2025-11-26 19:12:26.368 | INFO     | httpx._client:_send_single_request:1740 - HTTP Request: POST https://knowledge-mcp.global.api.aws "HTTP/1.1 200 OK"
2025-11-26 19:12:26.369 | INFO     | mcp.client.streamable_http:_maybe_extract_protocol_version_from_message:146 - Negotiated protocol version: 2025-03-26
2025-11-26 19:12:26.759 | INFO     | httpx._client:_send_single_request:1740 - HTTP Request: POST https://knowledge-mcp.global.api.aws "HTTP/1.1 202 Accepted"
2025-11-26 19:13:23.240 | INFO     | uvicorn.protocols.http.httptools_impl:send:476 - 192.168.65.1:22010 - "GET /_app/version.json HTTP/1.1" 200
2025-11-26 19:13:35.196 | WARNING  | open_webui.utils.middleware:response_handler:3236 - Task was cancelled!
<!-- gh-comment-id:3582973643 --> @michalz-rely commented on GitHub (Nov 26, 2025): I hit the same issue when setting up publicly available [AWS Knowledge MCP Server](https://awslabs.github.io/mcp/servers/aws-knowledge-mcp-server/) My Config ``` [ { "type": "mcp", "url": "https://knowledge-mcp.global.api.aws", "spec_type": "url", "spec": "", "path": "openapi.json", "auth_type": "none", "key": "", "info": { "id": "aws-knowledge-mcp-server", "name": "AWS Knowledge MCP", "description": "AWS Knowledge MCP Server enables MCP clients and agentic frameworks supporting MCP to anchor their responses in trusted AWS context, guidance, and best practices." } } ] ``` Logs ``` 2025-11-26 19:12:26.368 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: POST https://knowledge-mcp.global.api.aws "HTTP/1.1 200 OK" 2025-11-26 19:12:26.369 | INFO | mcp.client.streamable_http:_maybe_extract_protocol_version_from_message:146 - Negotiated protocol version: 2025-03-26 2025-11-26 19:12:26.759 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: POST https://knowledge-mcp.global.api.aws "HTTP/1.1 202 Accepted" 2025-11-26 19:13:23.240 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 192.168.65.1:22010 - "GET /_app/version.json HTTP/1.1" 200 2025-11-26 19:13:35.196 | WARNING | open_webui.utils.middleware:response_handler:3236 - Task was cancelled! ```
Author
Owner

@tjbck commented on GitHub (Nov 26, 2025):

We're using the official mcp library to connect to mcp servers, do correct me if I'm wrong but chances are OpenMetadata MCP server is not fully compliant with the offical MCP spec.

<!-- gh-comment-id:3583450176 --> @tjbck commented on GitHub (Nov 26, 2025): We're using the official mcp library to connect to mcp servers, do correct me if I'm wrong but chances are OpenMetadata MCP server is not fully compliant with the offical MCP spec.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#57579