Optional_See General fields: _meta for notes on _meta usage.
Optionalio.modelcontextprotocol/related-task?: { taskId: string }If specified, this request is related to the provided task.
OptionalprogressToken?: string | numberIf specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.
OptionalincludeA request to include context from one or more MCP servers (including the caller), to be attached to the prompt. The client MAY ignore this request.
Default is "none". Values "thisServer" and "allServers" are soft-deprecated. Servers SHOULD only use these values if the client declares ClientCapabilities.sampling.context. These values may be removed in future spec releases.
The requested maximum number of tokens to sample (to prevent runaway completions).
The client MAY choose to sample fewer tokens than the requested maximum.
Optional_meta?: { [key: string]: unknown }See MCP specification for notes on _meta usage.
OptionalmetadataOptional metadata to pass through to the LLM provider. The format of this metadata is provider-specific.
OptionalmodelThe server's preferences for which model to select. The client MAY modify or omit this request.
OptionalcostPriority?: numberHow much to prioritize cost when selecting a model.
Optionalhints?: { name?: string }[]Optional hints to use for model selection.
OptionalintelligencePriority?: numberHow much to prioritize intelligence and capabilities when selecting a model.
OptionalspeedPriority?: numberHow much to prioritize sampling speed (latency) when selecting a model.
OptionalstopOptionalsystemAn optional system prompt the server wants to use for sampling. The client MAY modify or omit this prompt.
OptionaltaskIf specified, the caller is requesting task-augmented execution for this request. The request will return a CreateTaskResult immediately, and the actual result can be retrieved later via tasks/result.
Task augmentation is subject to capability negotiation - receivers MUST declare support for task augmentation of specific request types in their capabilities.
OptionaltemperatureOptionaltoolControls how the model uses tools.
The client MUST return an error if this field is provided but ClientCapabilities.sampling.tools is not declared.
Default is { mode: "auto" }.
Optionalmode?: "required" | "none" | "auto"Controls when tools are used:
Tools that the model may use during generation. The client MUST return an error if this field is provided but ClientCapabilities.sampling.tools is not declared.
Optional_meta?: { [key: string]: unknown }See MCP specification for notes on _meta usage.
Optionalannotations?: {Optional additional tool information.
OptionaldestructiveHint?: booleanIf true, the tool may perform destructive updates to its environment. If false, the tool performs only additive updates.
(This property is meaningful only when readOnlyHint == false)
Default: true
OptionalidempotentHint?: booleanIf 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
OptionalopenWorldHint?: booleanIf true, this tool may interact with an "open world" of external entities. If false, the tool's domain of interaction is closed. For example, the world of a web search tool is open, whereas that of a memory tool is not.
Default: true
OptionalreadOnlyHint?: booleanIf true, the tool does not modify its environment.
Default: false
Optionaltitle?: stringA human-readable title for the tool.
Optionaldescription?: stringA human-readable description of the tool.
Optionalexecution?: { taskSupport?: "optional" | "required" | "forbidden" }Execution-related properties for this tool.
OptionaltaskSupport?: "optional" | "required" | "forbidden"Indicates the tool's preference for task-augmented execution.
If not present, defaults to "forbidden".
Optionalicons?: { mimeType?: string; sizes?: string[]; src: string; theme?: "light" | "dark" }[]Optional set of sized icons that the client can display in a user interface.
Clients that support rendering icons MUST support at least the following MIME types:
image/png - PNG images (safe, universal compatibility)image/jpeg (and image/jpg) - JPEG images (safe, universal compatibility)Clients that support rendering icons SHOULD also support:
image/svg+xml - SVG images (scalable but requires security precautions)image/webp - WebP images (modern, efficient format)A JSON Schema 2020-12 object defining the expected parameters for the tool. Must have type: 'object' at the root level per MCP spec.
Intended for programmatic or logical use, but used as a display name in past specs or fallback
OptionaloutputSchema?: {An optional JSON Schema 2020-12 object defining the structure of the tool's output returned in the structuredContent field of a CallToolResult. Must have type: 'object' at the root level per MCP spec.
Optionaltitle?: stringIntended for UI and end-user contexts — optimized to be human-readable and easily understood, even by those unfamiliar with domain-specific terminology.
If not provided, the name should be used for display (except for Tool,
where annotations.title should be given precedence over using name,
if present).
CreateMessageRequestParams with required tools - for tool-enabled overload.