> ## Documentation Index
> Fetch the complete documentation index at: https://docs.danubeai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Report Tool

> Report a broken or degraded tool

## Overview

Report a tool that is broken, degraded, returning incorrect output, or timing out. This notifies the tool publisher so they can investigate and fix the issue.

**Auth:** Optional (works with or without authentication).

## Path Parameters

<ParamField path="tool_id" type="string" required>
  The UUID of the tool to report
</ParamField>

## Body Parameters

<ParamField body="reason" type="string" required>
  Report reason. One of: `broken`, `degraded`, `incorrect_output`, `timeout`, `other`
</ParamField>

<ParamField body="description" type="string" default="">
  Optional details about the issue
</ParamField>

## Response

<ResponseField name="id" type="string">
  Created report UUID
</ResponseField>

<ResponseField name="tool_id" type="string">
  The reported tool UUID
</ResponseField>

<ResponseField name="reason" type="string">
  The report reason
</ResponseField>

<ResponseField name="status" type="string">
  Report status (e.g. "open")
</ResponseField>

## Example

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.danubeai.com/v1/tools/tool_abc123/report" \
    -H "danube-api-key: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "reason": "broken",
      "description": "Returns 500 error on every call since yesterday"
    }'
  ```

  ```python Python SDK theme={null}
  from danube import DanubeClient

  with DanubeClient(api_key="dk_...") as client:
      report = client.tools.report(
          tool_id="tool_abc123",
          reason="broken",
          description="Returns 500 error on every call since yesterday",
      )
  ```

  ```typescript TypeScript SDK theme={null}
  import { DanubeClient } from 'danube';

  const client = new DanubeClient({ apiKey: 'dk_...' });
  const report = await client.tools.report({
    toolId: 'tool_abc123',
    reason: 'broken',
    description: 'Returns 500 error on every call since yesterday',
  });
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "id": "report_xyz789",
    "tool_id": "tool_abc123",
    "reason": "broken",
    "description": "Returns 500 error on every call since yesterday",
    "status": "open",
    "created_at": "2026-02-24T12:00:00Z"
  }
  ```
</ResponseExample>

## MCP Tool

This endpoint is also available as the `report_tool` MCP tool:

```python theme={null}
result = await mcp.call_tool("report_tool", {
    "tool_id": "tool_abc123",
    "reason": "broken",
    "description": "Returns 500 error on every call"
})
```
