pub struct CallToolResult {
pub content: Vec<ContentBlock>,
pub is_error: Option<bool>,
pub meta: Option<Map<String, Value>>,
pub structured_content: Option<Map<String, Value>>,
}Expand description
The server’s response to a tool call.
JSON schema
{
"description": "The server's response to a tool call.",
"type": "object",
"required": [
"content"
],
"properties": {
"_meta": {
"description": "See [General fields: _meta](https://modelcontextprotocol.io/specification/2025-11-25/basic/index#meta) for notes on _meta usage.",
"type": "object",
"additionalProperties": {}
},
"content": {
"description": "A list of content objects that represent the unstructured result of the tool call.",
"type": "array",
"items": {
"$ref": "#/$defs/ContentBlock"
}
},
"isError": {
"description": "Whether the tool call ended in an error.\n\nIf not set, this is assumed to be false (the call was successful).\n\nAny errors that originate from the tool SHOULD be reported inside the result\nobject, with isError set to true, _not_ as an MCP protocol-level error\nresponse. Otherwise, the LLM would not be able to see that an error occurred\nand self-correct.\n\nHowever, any errors in _finding_ the tool, an error indicating that the\nserver does not support tool calls, or any other exceptional conditions,\nshould be reported as an MCP error response.",
"type": "boolean"
},
"structuredContent": {
"description": "An optional JSON object that represents the structured result of the tool call.",
"type": "object",
"additionalProperties": {}
}
}
}Fields§
§content: Vec<ContentBlock>A list of content objects that represent the unstructured result of the tool call.
is_error: Option<bool>Whether the tool call ended in an error. If not set, this is assumed to be false (the call was successful). Any errors that originate from the tool SHOULD be reported inside the result object, with isError set to true, not as an MCP protocol-level error response. Otherwise, the LLM would not be able to see that an error occurred and self-correct. However, any errors in finding the tool, an error indicating that the server does not support tool calls, or any other exceptional conditions, should be reported as an MCP error response.
meta: Option<Map<String, Value>>See General fields: _meta for notes on _meta usage.
structured_content: Option<Map<String, Value>>An optional JSON object that represents the structured result of the tool call.
Implementations§
Source§impl CallToolResult
impl CallToolResult
pub fn text_content(content: Vec<TextContent>) -> Self
pub fn image_content(content: Vec<ImageContent>) -> Self
pub fn audio_content(content: Vec<AudioContent>) -> Self
pub fn resource_link(content: Vec<ResourceLink>) -> Self
pub fn embedded_resource(content: Vec<EmbeddedResource>) -> Self
Sourcepub fn with_error(error: CallToolError) -> Self
pub fn with_error(error: CallToolError) -> Self
Create a CallToolResult with an error, containing an error message in the content
Sourcepub fn with_meta(self, meta: Option<Map<String, Value>>) -> Self
pub fn with_meta(self, meta: Option<Map<String, Value>>) -> Self
Assigns metadata to the CallToolResult, enabling the inclusion of extra context or details.
Sourcepub fn with_structured_content(
self,
structured_content: Map<String, Value>,
) -> Self
pub fn with_structured_content( self, structured_content: Map<String, Value>, ) -> Self
Assigns structured_content to the CallToolResult
Sourcepub fn from_content(content: Vec<ContentBlock>) -> Self
pub fn from_content(content: Vec<ContentBlock>) -> Self
Creates a new instance using the provided content blocks.
This method initializes the structure with the given content and
resets all optional fields (is_error, meta, and structured_content)
to None.
§Arguments
content- A vector ofContentBlockvalues to populate the instance.
§Returns
Returns a new instance containing the supplied content.
Sourcepub fn add_content(self, content: ContentBlock) -> Self
pub fn add_content(self, content: ContentBlock) -> Self
Adds a single content block to the instance.
This method appends the provided content to the existing content vector
and returns the updated instance, enabling a builder-style pattern.
Trait Implementations§
Source§impl Clone for CallToolResult
impl Clone for CallToolResult
Source§fn clone(&self) -> CallToolResult
fn clone(&self) -> CallToolResult
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CallToolResult
impl Debug for CallToolResult
Source§impl<'de> Deserialize<'de> for CallToolResult
impl<'de> Deserialize<'de> for CallToolResult
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<CallToolError> for CallToolResult
Conversion of CallToolError into a CallToolResult with an error.
impl From<CallToolError> for CallToolResult
Conversion of CallToolError into a CallToolResult with an error.