mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2025-12-19 14:54:24 +01:00
fix: Pass cursor parameter to server (#745)
This commit is contained in:
@@ -209,7 +209,9 @@ class ClientSession(
|
||||
types.ClientRequest(
|
||||
types.ListResourcesRequest(
|
||||
method="resources/list",
|
||||
cursor=cursor,
|
||||
params=types.PaginatedRequestParams(cursor=cursor)
|
||||
if cursor is not None
|
||||
else None,
|
||||
)
|
||||
),
|
||||
types.ListResourcesResult,
|
||||
@@ -223,7 +225,9 @@ class ClientSession(
|
||||
types.ClientRequest(
|
||||
types.ListResourceTemplatesRequest(
|
||||
method="resources/templates/list",
|
||||
cursor=cursor,
|
||||
params=types.PaginatedRequestParams(cursor=cursor)
|
||||
if cursor is not None
|
||||
else None,
|
||||
)
|
||||
),
|
||||
types.ListResourceTemplatesResult,
|
||||
@@ -295,7 +299,9 @@ class ClientSession(
|
||||
types.ClientRequest(
|
||||
types.ListPromptsRequest(
|
||||
method="prompts/list",
|
||||
cursor=cursor,
|
||||
params=types.PaginatedRequestParams(cursor=cursor)
|
||||
if cursor is not None
|
||||
else None,
|
||||
)
|
||||
),
|
||||
types.ListPromptsResult,
|
||||
@@ -340,7 +346,9 @@ class ClientSession(
|
||||
types.ClientRequest(
|
||||
types.ListToolsRequest(
|
||||
method="tools/list",
|
||||
cursor=cursor,
|
||||
params=types.PaginatedRequestParams(cursor=cursor)
|
||||
if cursor is not None
|
||||
else None,
|
||||
)
|
||||
),
|
||||
types.ListToolsResult,
|
||||
|
||||
@@ -53,6 +53,14 @@ class RequestParams(BaseModel):
|
||||
meta: Meta | None = Field(alias="_meta", default=None)
|
||||
|
||||
|
||||
class PaginatedRequestParams(RequestParams):
|
||||
cursor: Cursor | None = None
|
||||
"""
|
||||
An opaque token representing the current pagination position.
|
||||
If provided, the server should return results starting after this cursor.
|
||||
"""
|
||||
|
||||
|
||||
class NotificationParams(BaseModel):
|
||||
class Meta(BaseModel):
|
||||
model_config = ConfigDict(extra="allow")
|
||||
@@ -79,12 +87,13 @@ class Request(BaseModel, Generic[RequestParamsT, MethodT]):
|
||||
model_config = ConfigDict(extra="allow")
|
||||
|
||||
|
||||
class PaginatedRequest(Request[RequestParamsT, MethodT]):
|
||||
cursor: Cursor | None = None
|
||||
"""
|
||||
An opaque token representing the current pagination position.
|
||||
If provided, the server should return results starting after this cursor.
|
||||
"""
|
||||
class PaginatedRequest(
|
||||
Request[PaginatedRequestParams | None, MethodT], Generic[MethodT]
|
||||
):
|
||||
"""Base class for paginated requests,
|
||||
matching the schema's PaginatedRequest interface."""
|
||||
|
||||
params: PaginatedRequestParams | None = None
|
||||
|
||||
|
||||
class Notification(BaseModel, Generic[NotificationParamsT, MethodT]):
|
||||
@@ -358,13 +367,10 @@ class ProgressNotification(
|
||||
params: ProgressNotificationParams
|
||||
|
||||
|
||||
class ListResourcesRequest(
|
||||
PaginatedRequest[RequestParams | None, Literal["resources/list"]]
|
||||
):
|
||||
class ListResourcesRequest(PaginatedRequest[Literal["resources/list"]]):
|
||||
"""Sent from the client to request a list of resources the server has."""
|
||||
|
||||
method: Literal["resources/list"]
|
||||
params: RequestParams | None = None
|
||||
|
||||
|
||||
class Annotations(BaseModel):
|
||||
@@ -423,12 +429,11 @@ class ListResourcesResult(PaginatedResult):
|
||||
|
||||
|
||||
class ListResourceTemplatesRequest(
|
||||
PaginatedRequest[RequestParams | None, Literal["resources/templates/list"]]
|
||||
PaginatedRequest[Literal["resources/templates/list"]]
|
||||
):
|
||||
"""Sent from the client to request a list of resource templates the server has."""
|
||||
|
||||
method: Literal["resources/templates/list"]
|
||||
params: RequestParams | None = None
|
||||
|
||||
|
||||
class ListResourceTemplatesResult(PaginatedResult):
|
||||
@@ -570,13 +575,10 @@ class ResourceUpdatedNotification(
|
||||
params: ResourceUpdatedNotificationParams
|
||||
|
||||
|
||||
class ListPromptsRequest(
|
||||
PaginatedRequest[RequestParams | None, Literal["prompts/list"]]
|
||||
):
|
||||
class ListPromptsRequest(PaginatedRequest[Literal["prompts/list"]]):
|
||||
"""Sent from the client to request a list of prompts and prompt templates."""
|
||||
|
||||
method: Literal["prompts/list"]
|
||||
params: RequestParams | None = None
|
||||
|
||||
|
||||
class PromptArgument(BaseModel):
|
||||
@@ -703,11 +705,10 @@ class PromptListChangedNotification(
|
||||
params: NotificationParams | None = None
|
||||
|
||||
|
||||
class ListToolsRequest(PaginatedRequest[RequestParams | None, Literal["tools/list"]]):
|
||||
class ListToolsRequest(PaginatedRequest[Literal["tools/list"]]):
|
||||
"""Sent from the client to request a list of tools the server has."""
|
||||
|
||||
method: Literal["tools/list"]
|
||||
params: RequestParams | None = None
|
||||
|
||||
|
||||
class ToolAnnotations(BaseModel):
|
||||
@@ -741,7 +742,7 @@ class ToolAnnotations(BaseModel):
|
||||
|
||||
idempotentHint: bool | None = None
|
||||
"""
|
||||
If true, calling the tool repeatedly with the same arguments
|
||||
If true, calling the tool repeatedly with the same arguments
|
||||
will have no additional effect on the its environment.
|
||||
(This property is meaningful only when `readOnlyHint == false`)
|
||||
Default: false
|
||||
|
||||
Reference in New Issue
Block a user