[GH-ISSUE #24906] issue: External tools (OpenAPI) are not accessible in nativ function call mode #123738

Open
opened 2026-05-21 03:13:17 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @fanningert on GitHub (May 19, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/24906

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!).
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

v0.9.5

Ollama Version (if applicable)

no ollama is used, Local OpenAI is used.

Operating System

Client: Linux (CachyOS), Docker-Server: Fedora 43

Browser (if applicable)

LibreWolf 150.0.3-1 (Firefox)

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

LLM can access and use the existent OpenAI Server.

Actual Behavior

The existent OpenAI Server are not visible for the LLMs, but selectable in the chat.
Screenshots in the block "Steps to Reproduce".

Steps to Reproduce

  1. Install a OpenAPI Server and check documentation.
    In my case I tested via mcpo and a stdio mcp server.
    MCPO docker-compose
services:
  mcpo-weather:
    container_name: mcpo-weather
    image: ghcr.io/open-webui/mcpo:main
    command: --port 8102 --config /config/weather.json
    ports:
      - "63403:8102"
    volumes:
      - mcpconfig:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped

MCPO weather.json

{
  "mcpServers": {
    "weather": {
      "command": "npx",
      "args": ["open-meteo-mcp-server"]
    }
  }
}

MCPO Docs

Image
  1. After clean installation and configuration add an OpenAPI-Server to the external tool server (Admin Panel -> Integrations -> Manage Tool Servers) and verify the connection succeeds (green tick / "Connection successful")
    In my example http://mcpo-weather:8102, connection test is positiv.
Image
  1. Activate the tools in a chat and execute a simple question "What tools can you use?".
Image Image
  1. Inspect the /api/chat/completions request in browser DevTools > Network tab

  2. Result: OpenAPI Tools are not visible for LLM.

Logs & Screenshots

Screenshot in the "Steps to Reproduce".

Request payload from DevTools:

{
  "stream": true,
  "model": "deep-dive-web-search",
  "params": {},
  "tool_ids": [
    "server:sapdocs",
    "server:time",
    "server:weather"
  ],
  "tool_servers": [],
  "features": {
    "voice": false,
    "image_generation": false,
    "code_interpreter": false,
    "web_search": false
  },
  "variables": {
    ...
  },
  "model_item": {
    "id": "deep-dive-web-search",
    "name": "Deep-Dive Web Search",
    "object": "model",
    "created": 1779051010,
    "owned_by": "openai",
    "connection_type": "external",
    "preset": true,
    "info": {
      "id": "deep-dive-web-search",
      "user_id": "e012ba2b-24c1-4ea8-bc9d-30396a28b9b6",
      "base_model_id": "gemma-4-31b-it",
      "name": "Deep-Dive Web Search",
      "meta": {
        "description": null,
        "capabilities": {
          "file_context": true,
          "vision": true,
          "file_upload": true,
          "web_search": true,
          "image_generation": false,
          "code_interpreter": false,
          "terminal": false,
          "citations": true,
          "status_updates": true,
          "builtin_tools": true,
          "usage": true
        },
        "suggestion_prompts": null,
        "tags": [],
        "builtinTools": {
          "image_generation": false,
          "code_interpreter": false
        },
        "defaultFeatureIds": [
          "web_search"
        ],
        "skillIds": [
          "humanizer"
        ]
      },
      "access_grants": [],
      "is_active": true,
      "updated_at": 1779169140,
      "created_at": 1779051010
    },
    "actions": [],
    "filters": [],
    "tags": []
  },
  ...
}

Additional Information

No response

Originally created by @fanningert on GitHub (May 19, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/24906 ### 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 have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!). - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.9.5 ### Ollama Version (if applicable) no ollama is used, Local OpenAI is used. ### Operating System Client: Linux (CachyOS), Docker-Server: Fedora 43 ### Browser (if applicable) LibreWolf 150.0.3-1 (Firefox) ### 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 LLM can access and use the existent OpenAI Server. ### Actual Behavior The existent OpenAI Server are not visible for the LLMs, but selectable in the chat. Screenshots in the block "Steps to Reproduce". ### Steps to Reproduce 1. Install a OpenAPI Server and check documentation. In my case I tested via mcpo and a stdio mcp server. MCPO docker-compose ``` services: mcpo-weather: container_name: mcpo-weather image: ghcr.io/open-webui/mcpo:main command: --port 8102 --config /config/weather.json ports: - "63403:8102" volumes: - mcpconfig:/config - /etc/localtime:/etc/localtime:ro restart: unless-stopped ``` MCPO weather.json ``` { "mcpServers": { "weather": { "command": "npx", "args": ["open-meteo-mcp-server"] } } } ``` MCPO Docs <img width="1941" height="1457" alt="Image" src="https://github.com/user-attachments/assets/3cbe3252-7974-43de-b94f-2d05c56c2035" /> 3. After clean installation and configuration add an OpenAPI-Server to the external tool server (Admin Panel -> Integrations -> Manage Tool Servers) and verify the connection succeeds (green tick / "Connection successful") In my example http://mcpo-weather:8102, connection test is positiv. <img width="597" height="540" alt="Image" src="https://github.com/user-attachments/assets/271d8f44-9fd7-436d-a48c-f3f2c373d36a" /> 4. Activate the tools in a chat and execute a simple question "What tools can you use?". <img width="988" height="420" alt="Image" src="https://github.com/user-attachments/assets/87ce2656-e1eb-4714-8a4f-fe04f23a6918" /> <img width="2100" height="1558" alt="Image" src="https://github.com/user-attachments/assets/85116211-8552-4fe6-b263-dee2605fde3c" /> 5. Inspect the /api/chat/completions request in browser DevTools > Network tab 6. Result: OpenAPI Tools are not visible for LLM. ### Logs & Screenshots Screenshot in the "Steps to Reproduce". Request payload from DevTools: ``` { "stream": true, "model": "deep-dive-web-search", "params": {}, "tool_ids": [ "server:sapdocs", "server:time", "server:weather" ], "tool_servers": [], "features": { "voice": false, "image_generation": false, "code_interpreter": false, "web_search": false }, "variables": { ... }, "model_item": { "id": "deep-dive-web-search", "name": "Deep-Dive Web Search", "object": "model", "created": 1779051010, "owned_by": "openai", "connection_type": "external", "preset": true, "info": { "id": "deep-dive-web-search", "user_id": "e012ba2b-24c1-4ea8-bc9d-30396a28b9b6", "base_model_id": "gemma-4-31b-it", "name": "Deep-Dive Web Search", "meta": { "description": null, "capabilities": { "file_context": true, "vision": true, "file_upload": true, "web_search": true, "image_generation": false, "code_interpreter": false, "terminal": false, "citations": true, "status_updates": true, "builtin_tools": true, "usage": true }, "suggestion_prompts": null, "tags": [], "builtinTools": { "image_generation": false, "code_interpreter": false }, "defaultFeatureIds": [ "web_search" ], "skillIds": [ "humanizer" ] }, "access_grants": [], "is_active": true, "updated_at": 1779169140, "created_at": 1779051010 }, "actions": [], "filters": [], "tags": [] }, ... } ``` ### Additional Information _No response_
GiteaMirror added the bug label 2026-05-21 03:13:17 -05:00
Author
Owner

@owui-terminator[bot] commented on GitHub (May 19, 2026):

🔍 Related Issues Found

I found some existing issues that might be related. Please check if any of these are duplicates or contain helpful solutions:

  1. 🟣 #21760 ** OpenAPI tool servers — frontend sends empty tool_servers=[] so middleware never injects schemas**
    Directly matches the symptom of OpenAPI tool servers not being injected into chat requests. It describes the frontend sending tool_servers=[], which would make external OpenAPI tools invisible to the model even when enabled.
    by antonioromero-pm · bug

  2. 🟣 #24367 issue: Unable to use global tool server while user tool server works properly
    Very close to this report’s behavior: a globally added MCPO/OpenAPI tool server shows as available in chat but no functions are listed and the model request does not include the server tools. It suggests a scope/attachment issue for OpenAPI tools.
    by theFra985 · bug

  3. 🟣 #21901 issue: Workspace tools never run in default (prompt-based) function-calling mode
    Although focused on workspace tools, it documents a function-calling-mode path where enabled tools are loaded but never actually invoked because the handler is bypassed. That is relevant to this issue’s 'native function call mode' wording and points to a similar tool-routing bug.
    by mlinares-tecnalia · bug

  4. 🟣 #17764 issue: External Tool servers (OpenAPI) stopped working with 0.6.31 update
    An older regression where external OpenAPI tool servers stopped working after an upgrade. It is not the same version, but it covers the same feature area and failure mode: OpenAPI external tools becoming unusable despite being configured.
    by dmizin · bug


💡 If your issue is a duplicate, please close it and add any additional details to the existing issue instead.

This comment was generated automatically. React with 👍 if helpful, 👎 if not.

<!-- gh-comment-id:4486858233 --> @owui-terminator[bot] commented on GitHub (May 19, 2026): <!-- terminator-bot:related-issues-reply --> 🔍 **Related Issues Found** I found some existing issues that might be related. Please check if any of these are duplicates or contain helpful solutions: 1. 🟣 [#21760](https://github.com/open-webui/open-webui/issues/21760) ** OpenAPI tool servers — frontend sends empty tool_servers=[] so middleware never injects schemas** *Directly matches the symptom of OpenAPI tool servers not being injected into chat requests. It describes the frontend sending `tool_servers=[]`, which would make external OpenAPI tools invisible to the model even when enabled.* *by antonioromero-pm · `bug`* 2. 🟣 [#24367](https://github.com/open-webui/open-webui/issues/24367) **issue: Unable to use global tool server while user tool server works properly** *Very close to this report’s behavior: a globally added MCPO/OpenAPI tool server shows as available in chat but no functions are listed and the model request does not include the server tools. It suggests a scope/attachment issue for OpenAPI tools.* *by theFra985 · `bug`* 3. 🟣 [#21901](https://github.com/open-webui/open-webui/issues/21901) **issue: Workspace tools never run in default (prompt-based) function-calling mode** *Although focused on workspace tools, it documents a function-calling-mode path where enabled tools are loaded but never actually invoked because the handler is bypassed. That is relevant to this issue’s 'native function call mode' wording and points to a similar tool-routing bug.* *by mlinares-tecnalia · `bug`* 4. 🟣 [#17764](https://github.com/open-webui/open-webui/issues/17764) **issue: External Tool servers (OpenAPI) stopped working with 0.6.31 update** *An older regression where external OpenAPI tool servers stopped working after an upgrade. It is not the same version, but it covers the same feature area and failure mode: OpenAPI external tools becoming unusable despite being configured.* *by dmizin · `bug`* --- 💡 If your issue is a duplicate, please close it and add any additional details to the existing issue instead. *This comment was generated automatically.* React with 👍 if helpful, 👎 if not.
Author
Owner

@fanningert commented on GitHub (May 19, 2026):

https://github.com/open-webui/open-webui/issues/17764 issue: External Tool servers (OpenAPI) stopped working with 0.6.31 update - Looks like the sam eproblem, but is closed.

<!-- gh-comment-id:4486957067 --> @fanningert commented on GitHub (May 19, 2026): https://github.com/open-webui/open-webui/issues/17764 issue: External Tool servers (OpenAPI) stopped working with 0.6.31 update - Looks like the sam eproblem, but is closed.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#123738