diff --git a/docs/server.md b/docs/server.md index 5b17f2e5..573d3deb 100644 --- a/docs/server.md +++ b/docs/server.md @@ -35,4 +35,28 @@ ### Pagination - +Server-side feature lists may be +[paginated](https://modelcontextprotocol.io/specification/2025-06-18/server/utilities/pagination), +using cursors. The SDK supports this by default. + +**Client-side**: The `ClientSession` provides methods returning +[iterators](https://go.dev/blog/range-functions) for each feature type. +These iterators are an `iter.Seq2[Feature, error]`, where the error value +indicates whether page retrieval failed. + +- [`ClientSession.Prompts`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.Prompts) + iterates prompts. +- [`ClientSession.Resource`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.Resource) + iterates resources. +- [`ClientSession.ResourceTemplates`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.ResourceTemplates) + iterates resource templates. +- [`ClientSession.Tools`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.Tools) + iterates tools. + +The `ClientSession` also exposes `ListXXX` methods for fine-grained control +over pagination. + +**Server-side**: pagination is on by default, so in general nothing is required +server-side. However, you may use +[`ServerOptions.PageSize`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ServerOptions.PageSize) +to customize the page size. diff --git a/internal/docs/server.src.md b/internal/docs/server.src.md index a131bcd3..58777abb 100644 --- a/internal/docs/server.src.md +++ b/internal/docs/server.src.md @@ -28,4 +28,28 @@ ### Pagination - +Server-side feature lists may be +[paginated](https://modelcontextprotocol.io/specification/2025-06-18/server/utilities/pagination), +using cursors. The SDK supports this by default. + +**Client-side**: The `ClientSession` provides methods returning +[iterators](https://go.dev/blog/range-functions) for each feature type. +These iterators are an `iter.Seq2[Feature, error]`, where the error value +indicates whether page retrieval failed. + +- [`ClientSession.Prompts`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.Prompts) + iterates prompts. +- [`ClientSession.Resource`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.Resource) + iterates resources. +- [`ClientSession.ResourceTemplates`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.ResourceTemplates) + iterates resource templates. +- [`ClientSession.Tools`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.Tools) + iterates tools. + +The `ClientSession` also exposes `ListXXX` methods for fine-grained control +over pagination. + +**Server-side**: pagination is on by default, so in general nothing is required +server-side. However, you may use +[`ServerOptions.PageSize`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ServerOptions.PageSize) +to customize the page size.