[GH-ISSUE #14655] issue: [Tools] API calls ignore prefix when using Claude-compatible config, leading to 404 #55992

Closed
opened 2026-05-05 18:27:10 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @djimonta on GitHub (Jun 4, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/14655

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

v0.6.13

Ollama Version (if applicable)

No response

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

Hi team👋

I'm integrating mcpo into OpenWebUI using the claude-compatible configuration method. My tool exposes an endpoint at /test/do_something as defined in my server, and I reference it correctly in the Claude config file.

{
    "mcpServers": {
        "test": {
            "command": "uv",
            "args": [
                "--directory",
                "/app/test_mcp_server",
                "run",
                "test_mcp_server"
            ],
            "env": {}
        },

Since my mcpo server is inside a docker container, I'm calling the tool inside OpenWebUI using http://mcpo:8000/test/openapi.json, where mcpo is the name of the docker service.

However, when the LLM tries to call the tool, it makes a POST request to /do_something instead of /test/do_something, resulting in a 404 Not Found.

When using Claude-compatible tool configuration, OpenWebUI should honor the full path defined in the tool config and not assume the tool is mounted at /.

Thanks a lot for the amazing project 🙏 Let me know if I can help with more debugging info!

Actual Behavior

OpenWebUI sends the request to /do_something, omitting the /test prefix. This causes:

"POST /do_something HTTP/1.1" 404 Not Found

Steps to Reproduce

  1. Define a Claude-style config pointing to /test/do_aomething
  2. Expose the tool using @app.list_tools() in MCP or any Claude-compatible server
  3. Trigger the tool via OpenWebUI
  4. Observe 404 due to incorrect endpoint being called

Logs & Screenshots

Starting MCP OpenAPI Proxy with config file: /app/config.json INFO: 172.0.0.1:59432 - "GET /docs HTTP/1.1" 200 OK INFO: 172.0.0.1:59432 - "GET /openapi.json HTTP/1.1" 200 OK INFO: 172.0.0.1:59432 - "GET /test/docs HTTP/1.1" 200 OK INFO: 172.0.0.1:59432 - "GET /test/openapi.json HTTP/1.1" 200 OK INFO: 172.0.0.3:59432 - "POST /do_something HTTP/1.1" 404 Not Found

Additional Information

No response

Originally created by @djimonta on GitHub (Jun 4, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/14655 ### Check Existing Issues - [x] I have searched the existing issues and discussions. - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.6.13 ### Ollama Version (if applicable) _No response_ ### 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 Hi team👋 I'm integrating [mcpo](https://github.com/open-webui/mcpo) into OpenWebUI using the claude-compatible configuration method. My tool exposes an endpoint at `/test/do_something` as defined in my server, and I reference it correctly in the Claude config file. ```json { "mcpServers": { "test": { "command": "uv", "args": [ "--directory", "/app/test_mcp_server", "run", "test_mcp_server" ], "env": {} }, ``` Since my `mcpo` server is inside a docker container, I'm calling the tool inside OpenWebUI using **http://mcpo:8000/test/openapi.json**, where mcpo is the name of the docker service. However, when the LLM tries to call the tool, it makes a `POST` request to `/do_something` instead of `/test/do_something`, resulting in a `404 Not Found`. When using Claude-compatible tool configuration, OpenWebUI should honor the full path defined in the tool config and not assume the tool is mounted at `/`. Thanks a lot for the amazing project 🙏 Let me know if I can help with more debugging info! ### Actual Behavior OpenWebUI sends the request to `/do_something`, omitting the `/test` prefix. This causes: ```bash "POST /do_something HTTP/1.1" 404 Not Found ``` ### Steps to Reproduce 1. Define a Claude-style config pointing to `/test/do_aomething` 2. Expose the tool using `@app.list_tools()` in MCP or any Claude-compatible server 3. Trigger the tool via OpenWebUI 4. Observe 404 due to incorrect endpoint being called ### Logs & Screenshots <Logs from mcpo> Starting MCP OpenAPI Proxy with config file: /app/config.json INFO: 172.0.0.1:59432 - "GET /docs HTTP/1.1" 200 OK INFO: 172.0.0.1:59432 - "GET /openapi.json HTTP/1.1" 200 OK INFO: 172.0.0.1:59432 - "GET /test/docs HTTP/1.1" 200 OK INFO: 172.0.0.1:59432 - "GET /test/openapi.json HTTP/1.1" 200 OK <Request coming from OpenWbUI> INFO: 172.0.0.3:59432 - "POST /do_something HTTP/1.1" 404 Not Found ### Additional Information _No response_
GiteaMirror added the bug label 2026-05-05 18:27:10 -05:00
Author
Owner

@tjbck commented on GitHub (Jun 4, 2025):

/test should be included as a base url, please refer to docs. https://docs.openwebui.com/openapi-servers/open-webui#-optional-using-a-config-file-with-mcpo

<!-- gh-comment-id:2939634419 --> @tjbck commented on GitHub (Jun 4, 2025): `/test` should be included as a base url, please refer to docs. https://docs.openwebui.com/openapi-servers/open-webui#-optional-using-a-config-file-with-mcpo
Author
Owner

@djimonta commented on GitHub (Jun 4, 2025):

Actually, I had already set /test as the base URL.
The mistake was assuming that /test should be added in the second input field (underneath), but in reality, it should be part of the first URL field at the top — even though the resulting baseURL ends up being the same and the connectivity test works.

I'm including some screenshots for reference, in case someone else runs into the same issue.

Wrong

Image

Correct

Image

<!-- gh-comment-id:2939693508 --> @djimonta commented on GitHub (Jun 4, 2025): Actually, I had already set `/test` as the base URL. The mistake was assuming that `/test` should be added in the second input field (underneath), but in reality, it should be part of the first URL field at the top — even though the resulting `baseURL` ends up being the same and the connectivity test works. I'm including some screenshots for reference, in case someone else runs into the same issue. ❌ Wrong ![Image](https://github.com/user-attachments/assets/d99eed02-7c51-45b1-9efc-764d399f27c4) ✅ Correct ![Image](https://github.com/user-attachments/assets/b425ca8a-324d-4456-a049-5f1707335986)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#55992