3.1 KiB
Support for MCP server features
%toc
Prompts
Server-side:
MCP servers can provide LLM prompt templates (called simply prompts) to clients.
Every prompt has a required name which identifies it, and a set of named arguments, which are strings.
Construct a prompt with a name and descriptions of its arguments.
Associated with each prompt is a handler that expands the template given values for its arguments.
Use Server.AddPrompt
to add a prompt along with its handler.
If AddPrompt is called before a server is connected, the server will have the prompts capability.
If all prompts are to be added after connection, set ServerOptions.HasPrompts
to advertise the capability.
Client-side:
To list the server's prompts, call
Call ClientSession.Prompts to get an iterator.
If needed, you can use the lower-level
ClientSession.ListPrompts to list the server's prompts.
Call ClientSession.GetPrompt to retrieve a prompt by name, providing
arguments for expansion.
Set ClientOptions.PromptListChangedHandler to be notified of changes in the list of prompts.
%include ../../mcp/server_example_test.go prompts -
Resources
Tools
Utilities
Completion
Logging
Pagination
Server-side feature lists may be paginated, using cursors. The SDK supports this by default.
Client-side: The ClientSession provides methods returning
iterators for each feature type.
These iterators are an iter.Seq2[Feature, error], where the error value
indicates whether page retrieval failed.
ClientSession.Promptsiterates prompts.ClientSession.Resourceiterates resources.ClientSession.ResourceTemplatesiterates resource templates.ClientSession.Toolsiterates 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
to customize the page size.