Skip to content

feat: Add Pagination for requesting list of prompts #140

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

denniskawurek
Copy link
Contributor

Adds the Pagination feature to the prompts/list feature to fulfil the specification.

Motivation and Context

This adds the Pagination feature to the prompts/list feature as described in the specification.

To make this possible mainly two changes are made:

  1. The logic for cursor handling is added.
  2. Handling for invalid parameters (MCP error code -32602 (Invalid params)) is added to the McpServerSession.

Decisions made:

  1. For now the cursor is the integer value of the start index encoded as a base64 string.
  2. The page size is set to 10.
  3. When parameters are found to be invalid the newly introduced McpParamsValidationError is returned to handle it properly in the McpServerSession.

If this change is ok, I'm happy to create a follow-up PR for the other MCP features. Maybe some parts of the cursor handling can be moved out to separate methods.

How Has This Been Tested?

Integration tests are added for the prompts/list feature.

Types of changes

  • New feature (non-breaking change which adds functionality)

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Adds the Pagination feature to the `prompts/list` feature as described in the specification.

To make this possible mainly two changes are made:

1. The logic for cursor handling is added.
2. Handling for invalid parameters (MCP error code `-32602 (Invalid params)`) is added to the `McpServerSession`.

For now the cursor is the base64 encoded start index of the next page.

The page size is set to 10.

When parameters are found to be invalid the newly introduced `McpParamsValidationError` is returned to handle it properly in the `McpServerSession`.
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.

1 participant