﻿---
title: "Represent Tool execution errors as error results"
description: "Tool execution errors are completed MCP Tool results with isError true, not a separate description-only error catalogue. Check the error result's content and avoid presenting succe"
source: "https://mcpdesc.org/docs/rules/0.9.0-rc.3/mcpdesc/tool-example-error-result/"
---

Tool execution errors are completed MCP Tool results with isError true, not a separate description-only error catalogue. Check the error result’s content and avoid presenting successful structured output as the error payload.

## Requirement

A Tool execution-error example result sets isError to true and does not contain structuredContent.

## Details

**Rule ID:** `mcpdesc.tool.example.error-result`  
**Owner:** mcpdesc  
**Surface:** Tool example · **Path:** `result`  
**Kind:** mcpdesc-semantic  
**Requirement level:** must  
**Protocol versions:** independent of the MCP protocol version  
**Status:** internal · **Enforcement:** internal

## Required by

* **MCP Description 0.9.0, Section 9.3 (an execution-error result MUST NOT contain structuredContent; outputSchema does not validate error content)**  
  * 9\. Tools: [req-tool-example-error-result](https://mcpdesc.org/docs/specification/0.9.0-rc.3/tools#req-tool-example-error-result)
  * 1. Tools: [req-tool-example-success](https://mcpdesc.org/docs/specification/0.9.0-rc.3/tools#req-tool-example-success)

## Notes

MCP does not forbid structuredContent on error results; MCP Description requires its absence so that example structuredContent always conforms to outputSchema.

## Examples

### Invalid example

Source: [expected-invalid/invalid-tool-example-result-semantics.json](https://github.com/mcpdesc/mcpdesc-specification/blob/v0.9.0-rc.3/spec/draft/fixtures/expected-invalid/invalid-tool-example-result-semantics.json) · Selected: `/tools/1/examples/business-error/result`

```json
{
  "resultType": "complete",
  "content": [
    {
      "type": "text",
      "text": "Rejected"
    }
  ],
  "structuredContent": {
    "code": "rejected"
  },
  "isError": true
}
```

## Rule Source Code

[tool.yaml](https://github.com/mcpdesc/mcpdesc-specification/blob/v0.9.0-rc.3/spec/draft/validation/rules/tool.yaml) at immutable tag [v0.9.0-rc.3](https://github.com/mcpdesc/mcpdesc-specification/blob/v0.9.0-rc.3/spec/draft).
