60e0ffc959
Upgrade checks / Notify on failure (push) Has been cancelled
Upgrade checks / Close issue on success (push) Has been cancelled
Schema Crash Test / Real-world schema crash test (232K schemas) (push) Has been cancelled
Run static analysis / static_analysis (push) Has been cancelled
Tests / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Tests / Tests with lowest-direct dependencies (push) Has been cancelled
Tests / MCP conformance tests (push) Has been cancelled
Tests / Integration tests (push) Has been cancelled
Tests / Package install smoke (push) Has been cancelled
Upgrade checks / Static analysis (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Upgrade checks / Integration tests (push) Has been cancelled
Update MCPServerConfig Schema / update-config-schema (push) Has been cancelled
Update SDK Documentation / update-sdk-docs (push) Has been cancelled
67 lines
1.9 KiB
Plaintext
67 lines
1.9 KiB
Plaintext
---
|
|
title: pagination
|
|
sidebarTitle: pagination
|
|
---
|
|
|
|
# `fastmcp.utilities.pagination`
|
|
|
|
|
|
Pagination utilities for MCP list operations.
|
|
|
|
## Functions
|
|
|
|
### `paginate_sequence` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/utilities/pagination.py#L50" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
paginate_sequence(items: Sequence[T], cursor: str | None, page_size: int) -> tuple[list[T], str | None]
|
|
```
|
|
|
|
|
|
Paginate a sequence of items.
|
|
|
|
**Args:**
|
|
- `items`: The full sequence to paginate.
|
|
- `cursor`: Optional cursor from a previous request. None for first page.
|
|
- `page_size`: Maximum number of items per page.
|
|
|
|
**Returns:**
|
|
- Tuple of (page_items, next_cursor). next_cursor is None if no more pages.
|
|
|
|
**Raises:**
|
|
- `ValueError`: If the cursor is invalid.
|
|
|
|
|
|
## Classes
|
|
|
|
### `CursorState` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/utilities/pagination.py#L16" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
Internal representation of pagination cursor state.
|
|
|
|
The cursor encodes the offset into the result set. This is opaque to clients
|
|
per the MCP spec - they should not parse or modify cursors.
|
|
|
|
|
|
**Methods:**
|
|
|
|
#### `encode` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/utilities/pagination.py#L25" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
encode(self) -> str
|
|
```
|
|
|
|
Encode cursor state to an opaque string.
|
|
|
|
|
|
#### `decode` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/utilities/pagination.py#L31" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
decode(cls, cursor: str) -> CursorState
|
|
```
|
|
|
|
Decode cursor from an opaque string.
|
|
|
|
**Raises:**
|
|
- `ValueError`: If the cursor is invalid or malformed.
|
|
|