I have searched for any existing and/or related issues.
I have searched for any existing and/or related discussions.
I am using the latest version of Open WebUI.
Installation Method
Docker
Open WebUI Version
v0.6.34 (latest)
Ollama Version (if applicable)
0.12.6
Operating System
Ubuntu 22.04
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
List the tools setup in the MCP streamable http server when enabled in the UI
Actual Behavior
Tools in the mcp server are not listed
Steps to Reproduce
Installed Openweb ui via docker.
Go to the admin section and add the mcp server as shown in screenshots below
Logs & Screenshots
The mcp server is added a the global level, it connects properly
Even enabled in UI in the chat section, tools in the mcp server are not listed
Docker Logs:
2025-10-30 07:17:53.667 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: POST https://XXX.XXXX.com/mcp "HTTP/1.1 200 OK"
2025-10-30 07:17:53.668 | INFO | mcp.client.streamable_http:_maybe_extract_session_id_from_response:134 - Received session ID: be9fb4bf75de49d0832f72bc5f45fbbf
2025-10-30 07:17:53.669 | INFO | mcp.client.streamable_http:_maybe_extract_protocol_version_from_message:146 - Negotiated protocol version: 2025-06-18
2025-10-30 07:17:54.451 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: POST https://XXXXXXX/mcp "HTTP/1.1 202 ACCEPTED"
2025-10-30 07:17:55.458 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: POST https://XXXXXXXXXXXX/mcp "HTTP/1.1 200 OK"
2025-10-30 07:17:56.481 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: DELETE https://XXXX/mcp "HTTP/1.1 200 OK"
2025-10-30 07:17:56.483 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: GET https://XXXXXX/mcp "HTTP/1.1 200 OK"
2025-10-30 07:17:56.489 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 10.41.167.10:59464 - "POST /api/v1/configs/tool_servers/verify HTTP/1.1" 200
2025-10-30 07:18:01.571 | INFO | open_webui.config:save:212 - Saving 'TOOL_SERVER_CONNECTIONS' to the database
Additional Information
No response
Originally created by @touseefspeaks on GitHub (Oct 30, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/18732
### 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 am using the latest version of Open WebUI.
### Installation Method
Docker
### Open WebUI Version
v0.6.34 (latest)
### Ollama Version (if applicable)
0.12.6
### Operating System
Ubuntu 22.04
### 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
List the tools setup in the MCP streamable http server when enabled in the UI
### Actual Behavior
Tools in the mcp server are not listed
### Steps to Reproduce
Installed Openweb ui via docker.
Go to the admin section and add the mcp server as shown in screenshots below
### Logs & Screenshots
The mcp server is added a the global level, it connects properly
<img width="429" height="410" alt="Image" src="https://github.com/user-attachments/assets/cfa086b4-8c8c-49f0-b6d2-422824e523e5" />
Even enabled in UI in the chat section, tools in the mcp server are not listed
<img width="890" height="493" alt="Image" src="https://github.com/user-attachments/assets/babfa143-ad34-436a-bab7-153fdceff852" />
**Docker Logs:**
2025-10-30 07:17:53.667 | INFO **| httpx._client:_send_single_request:1740 - HTTP Request: POST https://XXX.XXXX.com/mcp "HTTP/1.1 200 OK"**
2025-10-30 07:17:53.668 | INFO | mcp.client.streamable_http:_maybe_extract_session_id_from_response:134 - Received session ID: be9fb4bf75de49d0832f72bc5f45fbbf
2025-10-30 07:17:53.669 | INFO | mcp.client.streamable_http:_maybe_extract_protocol_version_from_message:146 - Negotiated protocol version: 2025-06-18
2025-10-30 07:17:54.451 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: POST https://XXXXXXX/mcp "HTTP/1.1 202 ACCEPTED"
2025-10-30 07:17:55.458 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: POST https://XXXXXXXXXXXX/mcp "HTTP/1.1 200 OK"
2025-10-30 07:17:56.481 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: DELETE https://XXXX/mcp "HTTP/1.1 200 OK"
2025-10-30 07:17:56.483 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: GET https://XXXXXX/mcp "HTTP/1.1 200 OK"
2025-10-30 07:17:56.489 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 10.41.167.10:59464 - "POST /api/v1/configs/tool_servers/verify HTTP/1.1" 200
2025-10-30 07:18:01.571 | INFO | open_webui.config:save:212 - Saving 'TOOL_SERVER_CONNECTIONS' to the database
### Additional Information
_No response_
GiteaMirror
added the bug label 2026-04-20 00:53:56 -05:00
He want that each tool is individually exposed,
that is, add this changes to code (as it's done for OpenAPI tool server implementation):
in backend/open_webui/routers/tools.py
# Replace the existing MCP server loop with this:
for server in request.app.state.config.TOOL_SERVER_CONNECTIONS:
if server.get("type", "openapi") == "mcp" and server.get("config", {}).get("enable", False):
server_id = server.get("info", {}).get("id")
try:
# Connect to MCP server and fetch tools
client = MCPClient()
headers = None
# Handle authentication (similar to verification endpoint)
auth_type = server.get("auth_type", "none")
if auth_type == "bearer":
headers = {"Authorization": f"Bearer {server.get('key', '')}"}
elif auth_type == "session":
headers = {"Authorization": f"Bearer {request.state.token.credentials}"}
await client.connect(server.get("url", ""), headers=headers)
tool_specs = await client.list_tool_specs()
# Create individual tool entries
for spec in tool_specs:
tools.append(
ToolUserResponse(
**{
"id": f"server:mcp:{server_id}:{spec['name']}",
"user_id": f"server:mcp:{server_id}:{spec['name']}",
"name": spec.get("name", "MCP Tool"),
"meta": {
"description": spec.get("description", ""),
"server_id": server_id,
"server_name": server.get("info", {}).get("name", "MCP Server"),
},
"access_control": server.get("config", {}).get("access_control", None),
"updated_at": int(time.time()),
"created_at": int(time.time()),
}
)
)
await client.disconnect()
except Exception as e:
log.error(f"Failed to fetch tools from MCP server {server_id}: {e}")
# Fallback to showing server as single unit
tools.append(
ToolUserResponse(
**{
"id": f"server:mcp:{server_id}",
"user_id": f"server:mcp:{server_id}",
"name": server.get("info", {}).get("name", "MCP Tool Server"),
"meta": {"description": server.get("info", {}).get("description", "")},
"access_control": server.get("config", {}).get("access_control", None),
"updated_at": int(time.time()),
"created_at": int(time.time()),
}
)
)
PLEASE check for existing issues/discussions. Intended behaviour, open to discussions.
<!-- gh-comment-id:3469282539 -->
@tjbck commented on GitHub (Oct 30, 2025):
PLEASE check for existing issues/discussions. Intended behaviour, open to discussions.
@touseefspeaks commented on GitHub (Oct 31, 2025):
@tjbck.. Could you please confirm whether the changes outlined above by @rgaricano will be implemented?
This would make usage more intuitive.
<!-- gh-comment-id:3471361696 -->
@touseefspeaks commented on GitHub (Oct 31, 2025):
@tjbck.. Could you please confirm whether the changes outlined above by @rgaricano will be implemented?
This would make usage more intuitive.
(There are other circunstances to valorate, as possible "errors" if enabling/disabling individual tools of the same server, loads,...)
<!-- gh-comment-id:3472515863 -->
@rgaricano commented on GitHub (Oct 31, 2025):
He already said:
> Intended behaviour, open to discussions.
(There are other circunstances to valorate, as possible "errors" if enabling/disabling individual tools of the same server, loads,...)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @touseefspeaks on GitHub (Oct 30, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/18732
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.34 (latest)
Ollama Version (if applicable)
0.12.6
Operating System
Ubuntu 22.04
Browser (if applicable)
No response
Confirmation
README.md.Expected Behavior
List the tools setup in the MCP streamable http server when enabled in the UI
Actual Behavior
Tools in the mcp server are not listed
Steps to Reproduce
Installed Openweb ui via docker.
Go to the admin section and add the mcp server as shown in screenshots below
Logs & Screenshots
The mcp server is added a the global level, it connects properly
Even enabled in UI in the chat section, tools in the mcp server are not listed
Docker Logs:
2025-10-30 07:17:53.667 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: POST https://XXX.XXXX.com/mcp "HTTP/1.1 200 OK"
2025-10-30 07:17:53.668 | INFO | mcp.client.streamable_http:_maybe_extract_session_id_from_response:134 - Received session ID: be9fb4bf75de49d0832f72bc5f45fbbf
2025-10-30 07:17:53.669 | INFO | mcp.client.streamable_http:_maybe_extract_protocol_version_from_message:146 - Negotiated protocol version: 2025-06-18
2025-10-30 07:17:54.451 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: POST https://XXXXXXX/mcp "HTTP/1.1 202 ACCEPTED"
2025-10-30 07:17:55.458 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: POST https://XXXXXXXXXXXX/mcp "HTTP/1.1 200 OK"
2025-10-30 07:17:56.481 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: DELETE https://XXXX/mcp "HTTP/1.1 200 OK"
2025-10-30 07:17:56.483 | INFO | httpx._client:_send_single_request:1740 - HTTP Request: GET https://XXXXXX/mcp "HTTP/1.1 200 OK"
2025-10-30 07:17:56.489 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 10.41.167.10:59464 - "POST /api/v1/configs/tool_servers/verify HTTP/1.1" 200
2025-10-30 07:18:01.571 | INFO | open_webui.config:save:212 - Saving 'TOOL_SERVER_CONNECTIONS' to the database
Additional Information
No response
@silentoplayz commented on GitHub (Oct 30, 2025):
This looks like expected behavior to me, no? What's the issue?
@rgaricano commented on GitHub (Oct 30, 2025):
He want that each tool is individually exposed,
that is, add this changes to code (as it's done for OpenAPI tool server implementation):
in backend/open_webui/routers/tools.py
& in backend/open_webui/utils/tools.py:
(I had its opened to work on it ;-)
@rgaricano commented on GitHub (Oct 30, 2025):
This way all tools are individually displayed in the integration menu,
for have its in the integration menu in a MCP Server submenu are necessary this changes:
add
let selectedMcpServerId = null;inhttps://github.com/open-webui/open-webui/blob/292be82754136cc10fcd2707d78a2edfec6764d0/src/lib/components/chat/MessageInput/IntegrationsMenu.svelte#L49
change https://github.com/open-webui/open-webui/blob/292be82754136cc10fcd2707d78a2edfec6764d0/src/lib/components/chat/MessageInput/IntegrationsMenu.svelte#L61-L92
to add this:
& modify the tabs https://github.com/open-webui/open-webui/blob/292be82754136cc10fcd2707d78a2edfec6764d0/src/lib/components/chat/MessageInput/IntegrationsMenu.svelte#L116-L144
to:
@tjbck commented on GitHub (Oct 30, 2025):
PLEASE check for existing issues/discussions. Intended behaviour, open to discussions.
@touseefspeaks commented on GitHub (Oct 31, 2025):
@tjbck.. Could you please confirm whether the changes outlined above by @rgaricano will be implemented?
This would make usage more intuitive.
@rgaricano commented on GitHub (Oct 31, 2025):
He already said:
(There are other circunstances to valorate, as possible "errors" if enabling/disabling individual tools of the same server, loads,...)