Class CallToolResult
- Namespace
- ModelContextProtocol.Protocol
- Assembly
- ModelContextProtocol.Core.dll
Represents the result of a ToolsCall request from a client to invoke a tool provided by the server.
public sealed class CallToolResult : Result
- Inheritance
-
CallToolResult
- Inherited Members
- Extension Methods
Remarks
Tool execution errors (including input validation errors, API failures, and business logic errors) should be reported inside the result object with IsError set to true, rather than as a JsonRpcError. This allows language models to see error details and potentially self-correct in subsequent requests.
Protocol-level errors (such as unknown tool names, malformed requests that fail schema validation, or server errors) should be reported as MCP protocol error responses using McpErrorCode.
See the schema for details.
Properties
Content
Gets or sets the response content from the tool call.
[JsonPropertyName("content")]
public IList<ContentBlock> Content { get; set; }
Property Value
IsError
Gets or sets an indication of whether the tool call was unsuccessful.
[JsonPropertyName("isError")]
public bool? IsError { get; set; }
Property Value
- bool?
Remarks
When set to true, it signifies that the tool execution failed. Tool execution errors (including input validation errors, API failures, and business logic errors) are reported with this property set to true and details in the Content property, rather than as protocol-level errors.
This allows language models to receive detailed error feedback and potentially self-correct in subsequent requests. For example, if a date parameter is in the wrong format or out of range, the error message in Content can explain the issue, enabling the model to retry with corrected parameters.
StructuredContent
Gets or sets an optional JSON object representing the structured result of the tool call.
[JsonPropertyName("structuredContent")]
public JsonNode? StructuredContent { get; set; }