Replies: 3 comments 1 reply
|
🔍 Similar Issues Found I found some existing issues that might be related. Please check if any of these are duplicates or contain helpful solutions:
💡 If this is a duplicate, consider closing it and adding details to the existing issue. This comment was generated automatically. React with 👍 if helpful, 👎 if not. |
|
Global tool servers make requests from the backend, and the direct user tool servers from the browser. We'd suggest you check your network config. |
|
The backend-vs-browser distinction is likely the key here. A user tool server can work from the browser while a global tool server fails because the global request is made from inside the Open WebUI backend container/network namespace. I would verify it from the backend container rather than from the host browser:
If the direct user server works but the global one does not, I would start by assuming network reachability from the backend is different, not that the tool protocol itself is failing. |
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.9.2
Ollama Version (if applicable)
0.22.1 (unrelated)
Operating System
Arch linux
Browser (if applicable)
Tested in Chrome and Firefox
Confirmation
README.md.Expected Behavior
Maybe I am missing something but based on the MCP tools documentation page and the tools documentation page I would expect global tools to behave similarly to the user-defined tools. I expect tool server information to be visible when enabling a globally defined MCPO tool server.
Actual Behavior
When adding a MCPO tool server from
Admin Panel > Settings > Integrations > Manage Tool Serversand activating it in the chat the tool appear as "available tool" but doesn't list any available function. When analyzing the request received by the model (using llama-swap as upstream, looking at it through the activity section) the request doesn't mention the tools from the tool server.Adding the same exact tool server from
Settings > Integrations > Manage Tool Serversleads the the expected result. Interacting with this configuration forwards the available tools to the model.When enabling either configuration the MCPO endpoint
/kubernetes/openapi.jsonis correctly called. The only difference is that the user-specific configuration also attempts to fetch/kubernetes/api/configfrom the server (resulting in a 404).To perform this test the MCPO instance has been exposed both internally and externally with a valid SSL certificate. The global tool has been tested with both the internal HTTP address and the external HTTPS reverse-proxy address.
Steps to Reproduce
This has been tested on a clean openwebui install (still docker-compose based). I attempted to configure the global tool with both internal docker-compose networking and with external endpoints.
[{"type":"openapi","url":"https://mcpo-host-example/tool-name","spec_type":"url","spec":"","path":"openapi.json","auth_type":"bearer","key":"my-secret-bearer","info":{"id":"kubernetes","name":"Kubernetes","description":""}}])Logs & Screenshots
Adding a global tool (docker-compose logs for both
webuiandwebui-toolsservicesAdding user tool
The browser requests are the one listed by the logs without any noteworthy behavior.
Additional Information
The user being used as test has the admin role. I tried checking the implementation of the tool loading in this repository to see if there was some additional permission check I was messing up but I confirmed the admin user bypasses such checks.
The
/api/v1/tools/endpoint correctly returns the tool as active withpresent in the array. Looking at
backend/open_webui/routers/tools.pythat seems the correct behavior.Thank you for the support.
All reactions