分页模型
MCP 中的分页使用一种基于不透明游标(cursor)的方法,而不是编号的页。- 游标是一个不透明的字符串 token,表示结果集中的一个位置
- 页大小由服务器确定,客户端**不得(MUST NOT)**假定固定的页大小
响应格式
分页在服务器发送一个包含以下内容的响应时开始:- 当前页的结果
- 如果存在更多结果,则一个可选的
nextCursor字段
请求格式
在收到一个游标后,客户端可以通过发出一个包含该游标的请求来_继续_分页:分页流程
支持分页的操作
以下 MCP 操作支持分页:resources/list—— 列出可用的资源resources/templates/list—— 列出资源模板prompts/list—— 列出可用的提示tools/list—— 列出可用的工具
实现指南
-
服务器应当(SHOULD):
- 提供稳定的游标
- 优雅地处理无效的游标
-
客户端应当(SHOULD):
- 将缺失的
nextCursor视为结果的结束 - 同时支持分页和非分页的流程
- 将缺失的
-
客户端**必须(MUST)**将游标视为不透明的 token:
- 不对游标格式做出假设
- 不尝试解析或修改游标
- 不跨会话持久化游标