# Interface: ToolAnnotations

## Properties[​](#properties "Direct link to Properties")

### ~~destructive?~~[​](#destructive "Direct link to destructive")

```ts
optional destructive: boolean;

```

#### Deprecated[​](#deprecated "Direct link to Deprecated")

Prefer [effect](#effect) with value `"destructive"`. Retained so existing annotations continue to force the approval gate, and so MCP-style consumers that only read `destructive` still see the hint.

***

### effect?[​](#effect "Direct link to effect?")

```ts
optional effect: ToolEffect;

```

Preferred semantic label. When set, drives both the approval gate (fires for `write`/`update`/`destructive`) and the approval-card styling.

***

### idempotent?[​](#idempotent "Direct link to idempotent?")

```ts
optional idempotent: boolean;

```

***

### ~~readOnly?~~[​](#readonly "Direct link to readonly")

```ts
optional readOnly: boolean;

```

#### Deprecated[​](#deprecated-1 "Direct link to Deprecated")

Prefer [effect](#effect). Retained for backward compatibility with tools authored against the original flags and for MCP interop.

***

### requiresUserContext?[​](#requiresusercontext "Direct link to requiresUserContext?")

```ts
optional requiresUserContext: boolean;

```
