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
parent b8f7b027c3
commit a00b20a427
2 changed files with 154 additions and 4 deletions

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,