---
title: request_capability
description: Tell AdCrunch about a task that no tool can do yet.
---

Ask for a task that no AdCrunch tool can do. The agent tells you that AdCrunch cannot do the task now, and AdCrunch records the request. The requests show the team which tools to build next.

> "Pause each Google Ads campaign that spent more than €500 yesterday."

AdCrunch makes no change on Google Ads today. The agent checks the tool list and finds no tool for the task. It calls `request_capability` with the task in one or two sentences. Then it tells you that AdCrunch cannot do this task now.

- **AdCrunch records the request in its product analytics.** No person replies to it. The [privacy policy](https://adcrunch.dev/privacy/) states what AdCrunch keeps.
- **The request holds no names, emails or account ids.** The tool tells the agent to leave them out.
- **The tool needs the `capability_request:write` scope.** It reads no data of your organization.

## Reference

Records a task that no AdCrunch tool can do. Call it only after you check the tool list. Describe the task in one or two sentences. Do not include names, emails or account ids.

### Input

| Argument | Type | Required | Description |
| --- | --- | --- | --- |
| `request` | string, 1 to 500 characters | yes | The task that no tool can do, in one or two sentences. Do not include names, emails or account ids. |

### Output

A successful call returns this object in `structuredContent`.

| Field | Type | Always present | Description |
| --- | --- | --- | --- |
| `recorded` | `true` | yes | AdCrunch recorded the request. |

### Failure codes

A failed call has `isError` set, and `structuredContent.error` holds one of these codes. [Errors](/mcp/errors) describes the shape of a failed call.

- `forbidden`
- `invalid_request`
- `internal_error`

### Scope

The token must hold `capability_request:write`. [Auth & scopes](/mcp/auth) lists each scope.

### Annotations

A client reads these hints. A hint that the tool does not declare has the default value of the MCP specification.

- **Writes.** The tool can change data.
- **Not destructive.** The tool makes only additive changes.
- **Not idempotent.** A second call with the same arguments can change more.
- **Closed world.** The tool reads and writes the data of AdCrunch only.

### Example

The arguments:

```json
{
  "request": "Pause a campaign on Google Ads."
}
```

The result, in `structuredContent`:

```json
{
  "recorded": true
}
```
