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.31
Ollama Version (if applicable)
No response
Operating System
macOS Sonoma
Browser (if applicable)
Chrome
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
With 0.6.31, I'm trying out direct mcp connection where I had mcpo openapi connection before, using the same mcp server, with native function calling, using aws nova or claude 3.7 model.
Mcpo calling works, but direct mcp connection doesn't. I think I've traced it down to how the mcp result is handled compared to how mcpo handles it, and possibly the non openai model interprets it (or fail to).
I'm not sure if this was the intended behavior, but it makes switching from mcpo to just mcp impossible for me as the models aren't returning anything with this result.
Actual Behavior
model returns nothing using mcp calling
Steps to Reproduce
Spin up a mcp server, with mcpo server, add both to the admin as external tools in openwebui
Make the same query, with native function call, to both server, using claude 3.7 (or some other non openai model) (I haven't tested this with openai models)
the query using mcpo server works, the one using mcp returns nothing
Logs & Screenshots
Log for mcpo call:
2025-09-27 00:59:45.589 | DEBUG | open_webui.utils.chat:generate_chat_completion:167 - generate_chat_completion: {'model': 'bedrock-nova-pro', 'stream': True, 'tools': [{'type': 'function', 'function': {'name': 'tool_Get_current_weather_post', 'description': 'Get the current weather', 'parameters': {'type': 'object', 'properties': {}, 'required': []}}}], 'messages': [{'role': 'user', 'content': 'what’s the current weather'}, {'role': 'assistant', 'content': '<thinking>To determine the current weather, I will use the tool_Get_current_weather_post tool, which retrieves the current weather conditions.</thinking>', 'tool_calls': [{'id': 'tooluse_WuvTRfVxQl68IPLh90REgA', 'function': {'arguments': '{}', 'name': 'tool_Get_current_weather_post'}, 'type': 'function', 'index': 0}]}, {'role': 'tool', 'tool_call_id': 'tooluse_WuvTRfVxQl68IPLh90REgA', 'content': 'sunny'}]}
Log for mcp call:
2025-09-27 01:03:15.977 | DEBUG | open_webui.utils.chat:generate_chat_completion:167 - generate_chat_completion: {'model': 'bedrock-nova-pro', 'stream': True, 'tools': [{'type': 'function', 'function': {'name': 'Get current weather', 'description': 'Get the current weather', 'parameters': {'properties': {}, 'title': 'get_weatherArguments', 'type': 'object'}}}], 'messages': [{'role': 'user', 'content': 'what’s the current weather'}, {'role': 'assistant', 'content': '<thinking>To determine the current weather, I will use the Get_current_weather tool.</thinking>', 'tool_calls': [{'id': 'tooluse_ZQTbAsNIToKZ3Wmfd_IK6w', 'function': {'arguments': '{}', 'name': 'Get current weather'}, 'type': 'function', 'index': 0}]}, {'role': 'tool', 'tool_call_id': 'tooluse_ZQTbAsNIToKZ3Wmfd_IK6w', 'content': '[\n {\n "type": "text",\n "text": "sunny",\n "annotations": null,\n "meta": null\n }\n]'}]}
Additional Information
No response
Originally created by @dlamoris on GitHub (Sep 27, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/17808
### 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.31
### Ollama Version (if applicable)
_No response_
### Operating System
macOS Sonoma
### Browser (if applicable)
Chrome
### 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
With 0.6.31, I'm trying out direct mcp connection where I had mcpo openapi connection before, using the same mcp server, with native function calling, using aws nova or claude 3.7 model.
Mcpo calling works, but direct mcp connection doesn't. I think I've traced it down to how the mcp result is handled compared to how mcpo handles it, and possibly the non openai model interprets it (or fail to).
Mcpo is unwrapping the mcp response and sending only the text/image value (see https://github.com/open-webui/mcpo/blob/main/src/mcpo/utils/main.py#L38) but mcp support is returning the entire 'content' array (https://github.com/open-webui/open-webui/blob/v0.6.31/backend/open_webui/utils/mcp/client.py#L69).
I'm not sure if this was the intended behavior, but it makes switching from mcpo to just mcp impossible for me as the models aren't returning anything with this result.
### Actual Behavior
model returns nothing using mcp calling
### Steps to Reproduce
1. Spin up a mcp server, with mcpo server, add both to the admin as external tools in openwebui
2. Make the same query, with native function call, to both server, using claude 3.7 (or some other non openai model) (I haven't tested this with openai models)
3. the query using mcpo server works, the one using mcp returns nothing
### Logs & Screenshots
Log for mcpo call:
```
2025-09-27 00:59:45.589 | DEBUG | open_webui.utils.chat:generate_chat_completion:167 - generate_chat_completion: {'model': 'bedrock-nova-pro', 'stream': True, 'tools': [{'type': 'function', 'function': {'name': 'tool_Get_current_weather_post', 'description': 'Get the current weather', 'parameters': {'type': 'object', 'properties': {}, 'required': []}}}], 'messages': [{'role': 'user', 'content': 'what’s the current weather'}, {'role': 'assistant', 'content': '<thinking>To determine the current weather, I will use the tool_Get_current_weather_post tool, which retrieves the current weather conditions.</thinking>', 'tool_calls': [{'id': 'tooluse_WuvTRfVxQl68IPLh90REgA', 'function': {'arguments': '{}', 'name': 'tool_Get_current_weather_post'}, 'type': 'function', 'index': 0}]}, {'role': 'tool', 'tool_call_id': 'tooluse_WuvTRfVxQl68IPLh90REgA', 'content': 'sunny'}]}
```
Log for mcp call:
```
2025-09-27 01:03:15.977 | DEBUG | open_webui.utils.chat:generate_chat_completion:167 - generate_chat_completion: {'model': 'bedrock-nova-pro', 'stream': True, 'tools': [{'type': 'function', 'function': {'name': 'Get current weather', 'description': 'Get the current weather', 'parameters': {'properties': {}, 'title': 'get_weatherArguments', 'type': 'object'}}}], 'messages': [{'role': 'user', 'content': 'what’s the current weather'}, {'role': 'assistant', 'content': '<thinking>To determine the current weather, I will use the Get_current_weather tool.</thinking>', 'tool_calls': [{'id': 'tooluse_ZQTbAsNIToKZ3Wmfd_IK6w', 'function': {'arguments': '{}', 'name': 'Get current weather'}, 'type': 'function', 'index': 0}]}, {'role': 'tool', 'tool_call_id': 'tooluse_ZQTbAsNIToKZ3Wmfd_IK6w', 'content': '[\n {\n "type": "text",\n "text": "sunny",\n "annotations": null,\n "meta": null\n }\n]'}]}
```
### Additional Information
_No response_
GiteaMirror
added the bug label 2026-05-25 09:29:07 -05:00
After debugging more, it was actually because my mcp function names had spaces in them, and that was tripping up litellm. Fixing the function names fixed the issue.
<!-- gh-comment-id:3341978963 -->
@dlamoris commented on GitHub (Sep 27, 2025):
After debugging more, it was actually because my mcp function names had spaces in them, and that was tripping up litellm. Fixing the function names fixed the issue.
Still, the difference in response handling from mcpo is probably worth looking at, especially if the content returned is not text, and the content array doesn't include potential structured content (https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content)
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 @dlamoris on GitHub (Sep 27, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/17808
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.31
Ollama Version (if applicable)
No response
Operating System
macOS Sonoma
Browser (if applicable)
Chrome
Confirmation
README.md.Expected Behavior
With 0.6.31, I'm trying out direct mcp connection where I had mcpo openapi connection before, using the same mcp server, with native function calling, using aws nova or claude 3.7 model.
Mcpo calling works, but direct mcp connection doesn't. I think I've traced it down to how the mcp result is handled compared to how mcpo handles it, and possibly the non openai model interprets it (or fail to).
Mcpo is unwrapping the mcp response and sending only the text/image value (see https://github.com/open-webui/mcpo/blob/main/src/mcpo/utils/main.py#L38) but mcp support is returning the entire 'content' array (https://github.com/open-webui/open-webui/blob/v0.6.31/backend/open_webui/utils/mcp/client.py#L69).
I'm not sure if this was the intended behavior, but it makes switching from mcpo to just mcp impossible for me as the models aren't returning anything with this result.
Actual Behavior
model returns nothing using mcp calling
Steps to Reproduce
Logs & Screenshots
Log for mcpo call:
Log for mcp call:
Additional Information
No response
@dlamoris commented on GitHub (Sep 27, 2025):
After debugging more, it was actually because my mcp function names had spaces in them, and that was tripping up litellm. Fixing the function names fixed the issue.
Still, the difference in response handling from mcpo is probably worth looking at, especially if the content returned is not text, and the content array doesn't include potential structured content (https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content)
@tjbck commented on GitHub (Sep 29, 2025):
Addressed in dev.