Table of Contents

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

IList<ContentBlock>

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; }

Property Value

JsonNode