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 a value that indicates whether the tool call was unsuccessful.
[JsonPropertyName("isError")]
public bool? IsError { get; set; }
Property Value
Remarks
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 design 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; }
Property Value
Task
Gets or sets the task data for the newly created task.
[JsonPropertyName("task")]
public McpTask? Task { get; set; }
Property Value
Remarks
This property is populated only for task-augmented tool calls. When present, the other properties
(Content, StructuredContent, IsError) may not be populated.
The actual tool result can be retrieved later via tasks/result.