๐ Open WebUI Integration
Overviewโ
Open WebUI v0.6+ supports seamless integration with external tools via the OpenAPI servers โ meaning you can easily extend your LLM workflows using custom or community-powered tool servers ๐งฐ.
In this guide, you'll learn how to launch an OpenAPI-compatible tool server and connect it to Open WebUI through the intuitive user interface. Letโs get started! ๐
Step 1: Launch an OpenAPI Tool Serverโ
To begin, you'll need to start one of the reference tool servers available in the openapi-servers repo. For quick testing, weโll use the time tool server as an example.
๐ ๏ธ Example: Starting the time
server locally
git clone https://github.com/open-webui/openapi-servers
cd openapi-servers
# Navigate to the time server
cd servers/time
# Install required dependencies
pip install -r requirements.txt
# Start the server
uvicorn main:app --host 0.0.0.0 --reload
Once running, this will host a local OpenAPI server at http://localhost:8000, which you can point Open WebUI to.
Step 2: Connect Tool Server in Open WebUIโ
Next, connect your running tool server to Open WebUI:
- Open WebUI in your browser.
- Open โ๏ธโฏSettings.
- Click on โ Tools to add a new tool server.
- Enter the URL where your OpenAPI tool server is running (e.g., http://localhost:8000).
- Click "Save".
๐งโ๐ป User Tool Servers vs. ๐ ๏ธ Global Tool Serversโ
There are two ways to register tool servers in Open WebUI:
1. User Tool Servers (added via regular Settings)โ
- Only accessible to the user who registered the tool server.
- The connection is made directly from the browser (client-side) by the user.
- Perfect for personal workflows or when testing custom/local tools.
2. Global Tool Servers (added via Admin Settings)โ
Admins can manage shared tool servers available to all or selected users across the entire deployment:
- Go to ๐ ๏ธ Admin Settings > Tools.
- Add the tool server URL just as you would in user settings.
- These tools are treated similarly to Open WebUIโs built-in tools.
๐ Optional: Using a Config File with mcpoโ
If you're running multiple tools through mcpo using a config file, take note:
๐งฉ Each tool is mounted under its own unique path!
For example, if youโre using memory and time tools simultaneously through mcpo, theyโll each be available at a distinct route:
This means:
- When connecting a tool in Open WebUI, you must enter the full route to that specific tool โ do NOT enter just the root URL (http://localhost:8000).
- Add each tool individually in Open WebUI Settings using their respective subpath URLs.
โ Good:
http://localhost:8000/time
http://localhost:8000/memory
๐ซ Not valid:
This ensures Open WebUI recognizes and communicates with each tool server correctly.
Step 3: Confirm Your Tool Server Is Connected โ โ
Once your tool server is successfully connected, Open WebUI will display a ๐ tool server indicator directly in the message input area:
๐ You'll now see this icon below the input box:
Clicking this icon opens a popup where you can:
- View connected tool server information
- See which tools are available and which server they're provided by
- Debug or disconnect any tool if needed
๐ Hereโs what the tool information modal looks like:
๐ ๏ธ Global Tool Servers Look Different โ And Are Hidden by Default!โ
If you've connected a Global Tool Server (i.e., one thatโs admin-configured), it will not appear automatically in the input area like user tool servers do.
Instead:
- Global tools are hidden by default and must be explicitly activated per user.
- To enable them, you'll need to click on the โ button in the message input area (bottom left of the chat box), and manually toggle on the specific global tool(s) you want to use.
Here โs what that looks like:
โ ๏ธ Important Notes for Global Tool Servers:
- They will not show up in the tool indicator popup until enabled from the โ menu.
- Each global tool must be individually toggled on to become active inside your current chat.
- Once toggled on, they function the same way as user tools.
- Admins can control access to global tools via role-based permissions.
This is ideal for team setups or shared environments, where commonly-used tools (e.g. document search, memory, or web lookup) should be centrally accessible by multiple users.
(Optional) Step 4: Use "Native" Function Calling (ReACT-style) Tool Use ๐ง โ
For this to work effectively, your selected model must support native tool calling. Some local models claim support but often produce poor results. We strongly recommend using GPT-4o or another OpenAI model that supports function calling natively for the best experience.
Want to enable ReACT-style (Reasoning + Acting) native function calls directly inside your conversations? You can switch Open WebUI to use native function calling.
โณ๏ธ How to enable native function calling:
- Open the chat window.
- Go to โ๏ธโฏChat Controls > Advanced Params.
- Change the Function Calling parameter from
Default
toNative
.
Need More Tools? Explore & Expand! ๐งฑโ
The openapi-servers repo includes a variety of useful reference servers:
- ๐ Filesystem access
- ๐ง Memory & knowledge graphs
- ๐๏ธ Git repo browsing
- ๐ Web search (WIP)
- ๐ข๏ธ Database querying (WIP)
You can run any of these in the same way and connect them to Open WebUI by repeating the steps above.
Troubleshooting & Tips ๐งฉโ
- โ Not connecting? Make sure the URL is correct and accessible from the browser used to run Open WebUI.
- ๐ If you're using remote servers, check firewalls and HTTPS configs!
- ๐ To make servers persist, consider deploying them in Docker or with system services.
Need help? Visit the ๐ Discussions page or open an issue.