Skip to content

Conversation

@SamMorrowDrums
Copy link
Collaborator

Closes: #1362

A possible implementation of cursor pagination arguments, to replace the explicit pagination control, and make it clear to the model how to get more data.

- Replace page/perPage parameters with single cursor parameter
- Fix page size at 10 items (fetch 11 to detect more data)
- Add cursor parsing and encoding functions
- Update all paginated tools to return items, moreData, and cursor fields
- Preserve existing metadata for search results (totalCount, etc.)

This addresses issue #1362 by providing deterministic cursor values
that models can pass back directly without inferring page numbers.
Simplify workflow jobs pagination to directly handle jobs array
instead of trying to parse CallToolResult text content.
Update all tool snapshots to reflect the new cursor parameter
replacing page/perPage parameters.
- Updated all tests to handle new paginated response format with items, moreData, and cursor fields
- Updated CreatePaginatedSearchResponse to handle 'issues' field for SearchIssues
- Fixed SearchIssues and SearchPullRequests tests to unmarshal paginated responses correctly
- Updated per_page expectations from 30/10 to 11 (CursorFetchSize) in all test mocks
- Fixed ListIssues test to check for GraphQL 'after' cursor instead of REST 'cursor'
- All tests now passing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Proposal: Move MCP pagination to cursor-based approach

2 participants