From 85b565244df1f24b23b643182b9dfda7894d360e Mon Sep 17 00:00:00 2001 From: Mei Zhihan <134194887+BAIGUANGMEI@users.noreply.github.com> Date: Mon, 6 Jul 2026 21:06:22 +0800 Subject: [PATCH] fix(mcp): handle dict response in list_chats when /chats API returns paginated envelope (#16639) --- mcp/server/server.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mcp/server/server.py b/mcp/server/server.py index 6cd310cfa..07c74e28f 100644 --- a/mcp/server/server.py +++ b/mcp/server/server.py @@ -182,10 +182,13 @@ class RAGFlowConnector: if res_json.get("code") != 0: logging.warning("list_chats API error: code=%s message=%s", res_json.get("code"), res_json.get("message")) raise Exception([types.TextContent(type="text", text=res_json.get("message", "Cannot list chats."))]) - chat_count = len(res_json.get("data", [])) + _chats_data = res_json.get("data", []) + if isinstance(_chats_data, dict): + _chats_data = _chats_data.get("chats", []) + chat_count = len(_chats_data) logging.info("list_chats returned %d chat(s)", chat_count) result_list = [] - for data in res_json.get("data", []): + for data in _chats_data: d = {"id": data.get("id"), "name": data.get("name"), "description": data.get("description", "")} result_list.append(json.dumps(d, ensure_ascii=False)) return "\n".join(result_list)