feat: add cursor pagination support to all client list methods (#718)

This commit is contained in:
Jerome 2025-05-15 04:04:04 -04:00 • committed by GitHub
commit a00b20a427
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -201,23 +201,29 @@ class ClientSession(
types.EmptyResult,
)
async def list_resources(self) -> types.ListResourcesResult:
async def list_resources(
self, cursor: str | None = None
) -> types.ListResourcesResult:
"""Send a resources/list request."""
return await self.send_request(
types.ClientRequest(
types.ListResourcesRequest(
method="resources/list",
cursor=cursor,
)
),
types.ListResourcesResult,
)
async def list_resource_templates(self) -> types.ListResourceTemplatesResult:
async def list_resource_templates(
self, cursor: str | None = None
) -> types.ListResourceTemplatesResult:
"""Send a resources/templates/list request."""
return await self.send_request(
types.ClientRequest(
types.ListResourceTemplatesRequest(
method="resources/templates/list",
cursor=cursor,
)
),
types.ListResourceTemplatesResult,
@ -278,12 +284,13 @@ class ClientSession(
request_read_timeout_seconds=read_timeout_seconds,
)
async def list_prompts(self) -> types.ListPromptsResult:
async def list_prompts(self, cursor: str | None = None) -> types.ListPromptsResult:
"""Send a prompts/list request."""
return await self.send_request(
types.ClientRequest(
types.ListPromptsRequest(
method="prompts/list",
cursor=cursor,
)
),
types.ListPromptsResult,
@ -322,12 +329,13 @@ class ClientSession(
types.CompleteResult,
)
async def list_tools(self) -> types.ListToolsResult:
async def list_tools(self, cursor: str | None = None) -> types.ListToolsResult:
"""Send a tools/list request."""
return await self.send_request(
types.ClientRequest(
types.ListToolsRequest(
method="tools/list",
cursor=cursor,
)
),
types.ListToolsResult,