pub struct CreateMessageRequestParams {
pub messages: Vec<SamplingMessage>,
pub model_preferences: Option<ModelPreferences>,
pub system_prompt: Option<String>,
pub include_context: Option<String>,
pub temperature: Option<f64>,
pub max_tokens: u32,
pub stop_sequences: Option<Vec<String>>,
pub metadata: Option<HashMap<String, Value>>,
pub tools: Option<Vec<Tool>>,
pub tool_choice: Option<ToolChoice>,
}Deprecated per SEP-2577 (2026-07-28). Replacement: integrate directly with LLM provider APIs. Earliest removal: first release on/after 2027-07-28.
Expand description
Parameters for sampling/createMessage request (per MCP spec).
Deprecated per SEP-2577 — see module-level docs.
include_context value note: "thisServer" and "allServers" are
soft-deprecated per SEP-2596 and conditional on
ClientCapabilities.sampling.context. Omit the field or use "none".
Fields§
§messages: Vec<SamplingMessage>Deprecated per SEP-2577 (2026-07-28). Replacement: integrate directly with LLM provider APIs. Earliest removal: first release on/after 2027-07-28.
Messages for context
model_preferences: Option<ModelPreferences>Deprecated per SEP-2577 (2026-07-28). Replacement: integrate directly with LLM provider APIs. Earliest removal: first release on/after 2027-07-28.
Optional model preferences
system_prompt: Option<String>Deprecated per SEP-2577 (2026-07-28). Replacement: integrate directly with LLM provider APIs. Earliest removal: first release on/after 2027-07-28.
Optional system prompt
include_context: Option<String>Deprecated per SEP-2577 (2026-07-28). Replacement: integrate directly with LLM provider APIs. Earliest removal: first release on/after 2027-07-28.
Optional include context
temperature: Option<f64>Deprecated per SEP-2577 (2026-07-28). Replacement: integrate directly with LLM provider APIs. Earliest removal: first release on/after 2027-07-28.
Optional temperature
max_tokens: u32Deprecated per SEP-2577 (2026-07-28). Replacement: integrate directly with LLM provider APIs. Earliest removal: first release on/after 2027-07-28.
Maximum tokens (required field)
stop_sequences: Option<Vec<String>>Deprecated per SEP-2577 (2026-07-28). Replacement: integrate directly with LLM provider APIs. Earliest removal: first release on/after 2027-07-28.
Optional stop sequences
metadata: Option<HashMap<String, Value>>Deprecated per SEP-2577 (2026-07-28). Replacement: integrate directly with LLM provider APIs. Earliest removal: first release on/after 2027-07-28.
Optional metadata to pass through to the LLM provider.
Schema: metadata?: JSONObject — same HashMap<String, Value>
convention this crate uses for other JSONObject fields (e.g.
ClientCapabilities.experimental).
tools: Option<Vec<Tool>>Deprecated per SEP-2577 (2026-07-28). Replacement: integrate directly with LLM provider APIs. Earliest removal: first release on/after 2027-07-28.
Optional tools the LLM can use during sampling.
tool_choice: Option<ToolChoice>Deprecated per SEP-2577 (2026-07-28). Replacement: integrate directly with LLM provider APIs. Earliest removal: first release on/after 2027-07-28.
Optional tool choice configuration.
Implementations§
Source§impl CreateMessageRequestParams
impl CreateMessageRequestParams
pub fn new( messages: Vec<SamplingMessage>, max_tokens: u32, ) -> CreateMessageRequestParams
pub fn with_tools(self, tools: Vec<Tool>) -> CreateMessageRequestParams
pub fn with_tool_choice( self, tool_choice: ToolChoice, ) -> CreateMessageRequestParams
pub fn with_model_preferences( self, preferences: ModelPreferences, ) -> CreateMessageRequestParams
pub fn with_system_prompt( self, prompt: impl Into<String>, ) -> CreateMessageRequestParams
pub fn with_temperature(self, temperature: f64) -> CreateMessageRequestParams
pub fn with_stop_sequences( self, sequences: Vec<String>, ) -> CreateMessageRequestParams
Sourcepub fn validate_message_shape(&self) -> Result<(), String>
pub fn validate_message_shape(&self) -> Result<(), String>
Sampling message-shape MUSTs:
- A user-role message whose content contains a
ToolResultblock MUST contain ONLYToolResultblocks (no mixing with text/image/etc.). - Every assistant-role message containing a
ToolUseblock MUST be immediately followed by a user-role message consisting entirely ofToolResultblocks whosetool_use_ids match the precedingToolUseids.
Trait Implementations§
Source§impl Clone for CreateMessageRequestParams
impl Clone for CreateMessageRequestParams
Source§fn clone(&self) -> CreateMessageRequestParams
fn clone(&self) -> CreateMessageRequestParams
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CreateMessageRequestParams
impl Debug for CreateMessageRequestParams
Source§impl<'de> Deserialize<'de> for CreateMessageRequestParams
impl<'de> Deserialize<'de> for CreateMessageRequestParams
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<CreateMessageRequestParams, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<CreateMessageRequestParams, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl HasCreateMessageRequestParams for CreateMessageRequestParams
impl HasCreateMessageRequestParams for CreateMessageRequestParams
Source§fn messages(&self) -> &Vec<SamplingMessage>
fn messages(&self) -> &Vec<SamplingMessage>
Deprecated per SEP-2577 (2026-07-28) with the Sampling surface. Earliest removal: first release on/after 2027-07-28.
Source§fn model_preferences(&self) -> Option<&ModelPreferences>
fn model_preferences(&self) -> Option<&ModelPreferences>
Deprecated per SEP-2577 (2026-07-28) with the Sampling surface. Earliest removal: first release on/after 2027-07-28.
Source§fn system_prompt(&self) -> Option<&String>
fn system_prompt(&self) -> Option<&String>
Deprecated per SEP-2577 (2026-07-28) with the Sampling surface. Earliest removal: first release on/after 2027-07-28.
Source§fn include_context(&self) -> Option<&String>
fn include_context(&self) -> Option<&String>
Deprecated per SEP-2577 (2026-07-28) with the Sampling surface. Earliest removal: first release on/after 2027-07-28.
Source§fn temperature(&self) -> Option<&f64>
fn temperature(&self) -> Option<&f64>
Deprecated per SEP-2577 (2026-07-28) with the Sampling surface. Earliest removal: first release on/after 2027-07-28.
Source§fn max_tokens(&self) -> u32
fn max_tokens(&self) -> u32
Deprecated per SEP-2577 (2026-07-28) with the Sampling surface. Earliest removal: first release on/after 2027-07-28.