![[Bug]: MCP dataset discovery fails](https://www.chat-gpts.plus/wp-content/uploads/2026/06/16146-d9a4dcc9.jpg)
[Bug]: MCP dataset discovery fails
快速结论:该报错发生在 RAGFlow 0.26.0 版本中,使用 MCP 工具进行数据集发现时,由于 MCP 服务器硬编码了 page_size=1000,但 REST API 强制要求 page_size <= 100,导致请求被拒绝。优先排查 MCP 服务器源码中的 _DATASET_PAGE_SIZE 常量。
问题场景
用户在 RAGFlow 0.26.0 版本中使用 MCP 功能时触发。MCP 服务器在调用 /api/v1/datasets 接口进行数据集发现时,使用了 page_size=1000 的硬编码值,这与后端 REST API 的限制冲突。
报错原文
[TextContent(type='text', text='Field: <page_size> - Message: <Value error, page_size must be less than or equal to 100> - Value: <1000>', annotations=None, meta=None)]
原因分析
根因是 MCP 服务器源码 mcp/server/server.py 第 61 行定义了一个硬编码常量 _DATASET_PAGE_SIZE = 1000,而 PR #15292 在 REST API 端引入了 REST_API_MAX_PAGE_SIZE = 100 的限制。当 MCP 的 list_datasets 方法(第 165 行)以 page_size=1000 调用 _fetch_datasets_page(第 183 行)时,REST API 拒绝了这个请求,导致 MCP 工具发现失败。
环境排查
- RAGFlow 版本:0.26.0
- 分支:master
- 相关文件:
mcp/server/server.py(重点关注第 61 行的_DATASET_PAGE_SIZE常量和第 165 行的list_datasets方法) - 底层限制:REST API 的
page_size限制为<= 100(来自 PR #15292)
解决步骤
- 定位到
mcp/server/server.py第 61 行,将_DATASET_PAGE_SIZE常量的值从1000修改为100(或更小,如 50)。 - MCP 服务器已实现分页逻辑来遍历所有页面,因此只需调整页面大小即可,不需要修改其他结构。
- 可优先尝试:将
_DATASET_PAGE_SIZE设置为100,重新启动 MCP 服务。 - 如果无法修改源码(如使用 Docker 部署),可能需要等待官方修复此 bug 并发布新版本。
验证方法
修改后重新启动 MCP 服务,再次执行数据集发现操作。如果不再出现 page_size must be less than or equal to 100 的错误,且 MCP 工具能正常发现数据集,则问题已解决。


![[Bug] Desktop 2.2.5 (Windows, Cloud): sign-in loop — /api/auth/get-session returns null while OIDC bearer token is valid → bounces to "Sign](https://www.chat-gpts.plus/wp-content/uploads/2026/06/15931-43eff339-768x403.jpg)
