分页模型
MCP 中的分页使用基于不透明游标的方式,而不是编号页。- cursor 是一个不透明字符串令牌,表示结果集中的某个位置
- 页面大小 由服务器决定,客户端 MUST NOT 假定固定页面大小
响应格式
当服务器发送包含以下内容的响应时,分页开始:- 当前页结果
- 如果存在更多结果,则包含可选的
nextCursor字段
请求格式
收到游标后,客户端可以通过发出包含该游标的请求来_继续_分页:分页流程
支持分页的操作
以下 MCP 操作支持分页:resources/list- 列出可用资源resources/templates/list- 列出资源模板prompts/list- 列出可用提示tools/list- 列出可用工具
实现指南
-
服务器 SHOULD:
- 提供稳定游标
- 妥善处理无效游标
-
客户端 SHOULD:
- 将缺失的
nextCursor视为结果结束 - 同时支持分页和非分页流程
- 将缺失的
-
客户端 MUST 将游标视为不透明令牌:
- 不要假定游标格式
- 不要尝试解析或修改游标
- 除判断是否提供了非 null 值之外,不要基于游标值作出任何判断(例如,空字符串是有效游标,因此 MUST NOT 被视为结果结束)