> For the complete documentation index, see [llms.txt](https://docs.podigee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.podigee.com/documentation/start-here/ai-agents/mcp-reference/mutation-safety-contract.md).

# Mutation safety contract

Exact preview, confirmation, idempotency, and reauthorization behavior for mutations.

## Preview

Consequential tools accept a dry-run request and return the normalized action, target, attributes or plan, request digest, and opaque confirmation. Review the complete preview before execution.

## Confirmation binding

Confirmations bind the action, target, actor, tenant, authorization grant, and request digest. The standard signed preview confirmation is valid for 15 minutes, is backed by a one-use server nonce, and fails closed if the nonce is unavailable.

A changed target, value, grant, or digest requires a new preview. Reauthorization always requires a new preview.

## Idempotency

Use one stable key for one intended semantic mutation. Reuse it only for an identical retry when the outcome is uncertain. A changed intent needs a new key.

Durable operation idempotency is namespaced by actor, tenant, operation type, and key. It survives token refresh and reconnection so an accepted operation is not duplicated.

## Exceptions

Upload-session lifecycle tools require media write scope, tenant ownership, and idempotency, but do not use preview and confirmation. Attaching uploaded media and publishing retain their confirmation contract.

Some reversible or low-risk changes have a simpler schema. Follow the exact tool schema and annotations rather than assuming every write has the same controls.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.podigee.com/documentation/start-here/ai-agents/mcp-reference/mutation-safety-contract.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
