
issue: Problem with MCP server of memos app
快速结论:此问题发生在 Open WebUI 调用 memos MCP server 的搜索工具时,由于 MCP 工具返回的数据结构不符合 Open WebUI 对 CallToolResult 的验证要求,导致搜索结果显示为空。优先排查 Open WebUI 对 MCP 响应中 structuredContent 字段的处理逻辑。
问题场景
在 Open WebUI 中集成 memos MCP server 后,用户触发 memos_search_memos 工具(查询参数为 ovh),测试连接成功但实际搜索返回空结果。用户在任意浏览器中发起搜索请求均无返回。
报错原文
View Result from memos_search_memos
Input
query ovh
Output
1 validation error for CallToolResult
structuredContent
Input should be a valid dictionary [type=dict_type, input_value=[{'name': 'memos/N3eGyJtd...complete_tasks': True}}], input_type=list]
For further information visit https://errors.pydantic.dev/2.13/v/dict_type
原因分析
可能原因:Open WebUI 在处理 MCP 工具返回的 CallToolResult 对象时,期望 structuredContent 是一个字典(dict)类型,但 memos MCP server 实际返回的是一个列表(list)结构。这导致 Pydantic 验证失败,工具输出被丢弃,用户看到的结果为空。
相关联的已知缺陷可参考 #20629(MCP server 响应失败)和 #24038(MCP 工具结果中 resource content 类型被静默丢弃),这两个 Issue 也指向了 MCP 结果处理层的同一类 Schema 校验问题。
环境排查
- Open WebUI 版本:0.10.2(使用 Docker 方式部署)
- 操作系统:Debian Testing
- Ollama 版本:不适用(n/a)
- memos 版本:请确认 memos 是否使用最新版本(Issue 中提及 memos 日志无错误)
- MCP server 配置:请检查 memos MCP server 的连接配置和日志
解决步骤
- 确认 Open WebUI 版本:确保使用的是最新版 Open WebUI(Issue 提交时版本为 0.10.2,建议升级到更新版本检查是否已修复)。
- 检查 MCP server 端数据结构:在 memos MCP server 的实现中,确认
structuredContent字段返回的是字典格式还是列表格式。可优先参考 memos 的 MCP server 实现代码和 memos 相关 Issue。 - 可优先尝试:修改 memos MCP server 返回值格式(如果可自定义)——将
structuredContent从列表改为单层字典格式,或在列表外层包一层字典。 - 临时降级或绕过:如果无法修改 memos MCP server,考虑在 Open WebUI 的 MCP 结果处理逻辑中增加对列表输入的支持(参考 #24038 中的修复思路)。
- 查阅关联 Issue:仔细阅读 #20629 和 #24038 中的讨论和补丁,它们可能有直接可用的修复。
验证方法
修复后,在 Open WebUI 中再次对 memos MCP server 发起包含搜索词的查询(例如 “search for all notes related to ovh”),确认搜索工具返回了正确的笔记结果,不再产生 CallToolResult 验证错误。同时检查 Docker 容器日志中不再出现 validation error for CallToolResult 相关输出。



![[分享发现] 我发现 claude 封号策略,地区、位置、时区、ip 都不是充分条件](https://www.chat-gpts.plus/wp-content/uploads/2026/07/ai_cover_3-470-768x403.jpg)