Skip to content

issue: OK with SSE / KO with Streamable http #209

Description

@chdid

Check Existing Issues

  • I have searched the existing issues and discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

0.6.18

Ollama Version (if applicable)

No response

Operating System

docker

Browser (if applicable)

firefox chrome

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

Proxy with streamable http

Actual Behavior

Proxy OK with SSE version of https://github.com/antvis/mcp-server-chart
But KO with streamable_http

Steps to Reproduce

=> MCPO OK / swagger OK

In streamable http
{
"mcpServers": {
"chart": {
"type": "streamable_http",
"url": "http://xxxxxxxx:8006/mcp"
}
}
}

=> MCPO KO

Logs & Screenshots

Starting MCP OpenAPI Proxy with config file: /config/config.json

2025-07-21 07:53:29,595 - INFO - Starting MCPO Server...

2025-07-21 07:53:29,595 - INFO - Name: MCP OpenAPI Proxy

2025-07-21 07:53:29,595 - INFO - Version: 1.0

2025-07-21 07:53:29,595 - INFO - Description: Automatically generated API from MCP Tool Schemas

2025-07-21 07:53:29,595 - INFO - Hostname: d3f0777bc4f8

2025-07-21 07:53:29,595 - INFO - Port: 8000

2025-07-21 07:53:29,595 - INFO - API Key: Not Provided

2025-07-21 07:53:29,595 - INFO - CORS Allowed Origins: ['*']

2025-07-21 07:53:29,596 - INFO - Path Prefix: /

2025-07-21 07:53:29,596 - INFO - Loading MCP server configurations from: /config/config.json

2025-07-21 07:53:29,596 - INFO - Configured MCP Servers:

2025-07-21 07:53:29,596 - INFO - Configuring StreamableHTTP MCP Server 'chart' with URL: http://XXX:8006/mcp

2025-07-21 07:53:29,597 - INFO - Uvicorn server starting...

INFO: Started server process [1]

INFO: Waiting for application startup.

2025-07-21 07:53:29,661 - INFO - HTTP Request: POST http://XXX:8006/mcp/ "HTTP/1.1 404 Not Found"

ERROR: + Exception Group Traceback (most recent call last):

| File "/app/.venv/lib/python3.11/site-packages/starlette/routing.py", line 692, in lifespan

| async with self.lifespan_context(app) as maybe_state:

| File "/usr/lib/python3.11/contextlib.py", line 204, in aenter

| return await anext(self.gen)

| ^^^^^^^^^^^^^^^^^^^^^

| File "/app/.venv/lib/python3.11/site-packages/mcpo/main.py", line 102, in lifespan

| await stack.enter_async_context(

| File "/usr/lib/python3.11/contextlib.py", line 638, in enter_async_context

| result = await _enter(cm)

| ^^^^^^^^^^^^^^^^

| File "/usr/lib/python3.11/contextlib.py", line 204, in aenter

| return await anext(self.gen)

| ^^^^^^^^^^^^^^^^^^^^^

| File "/app/.venv/lib/python3.11/site-packages/mcpo/main.py", line 140, in lifespan

| async with streamablehttp_client(url=url, headers=headers) as (

| File "/usr/lib/python3.11/contextlib.py", line 222, in aexit

| await self.gen.athrow(typ, value, traceback)

| File "/app/.venv/lib/python3.11/site-packages/mcp/client/streamable_http.py", line 474, in streamablehttp_client

| async with anyio.create_task_group() as tg:

| File "/app/.venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 772, in aexit

| raise BaseExceptionGroup(

| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)

+-+---------------- 1 ----------------

| Exception Group Traceback (most recent call last):

|   File "/app/.venv/lib/python3.11/site-packages/mcp/client/streamable_http.py", line 498, in streamablehttp_client

|     yield (

|   File "/app/.venv/lib/python3.11/site-packages/mcpo/main.py", line 145, in lifespan

|     async with ClientSession(reader, writer) as session:

|   File "/app/.venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 772, in __aexit__

|     raise BaseExceptionGroup(

| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)

+-+---------------- 1 ----------------

  | Traceback (most recent call last):

  |   File "/app/.venv/lib/python3.11/site-packages/mcpo/main.py", line 147, in lifespan

  |     await create_dynamic_endpoints(app, api_dependency=api_dependency)

  |   File "/app/.venv/lib/python3.11/site-packages/mcpo/main.py", line 30, in create_dynamic_endpoints

  |     result = await session.initialize()

  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^

  |   File "/app/.venv/lib/python3.11/site-packages/mcp/client/session.py", line 151, in initialize

  |     result = await self.send_request(

  |              ^^^^^^^^^^^^^^^^^^^^^^^^

  |   File "/app/.venv/lib/python3.11/site-packages/mcp/shared/session.py", line 286, in send_request

  |     raise McpError(response_or_error.error)

  | mcp.shared.exceptions.McpError: Session terminated

  +------------------------------------

ERROR: Application startup failed. Exiting.

Additional Information

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions