> This page is for Docs.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://zuora.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://zuora.ferndocs.com/_mcp/server.

# Permissions and safe operation

> Use this reference to understand Mediation MCP permissions, write approvals, entity scope, and safe operating rules.

Use this reference to understand Mediation MCP permissions, write approvals, entity scope, and safe operating rules.

Mediation MCP does not bypass Zuora roles. Each operation runs as the authenticated user. Without write permissions, an agent can still investigate Mediation in read-only mode.

## Permissions

| Permission                 | Capabilities                                                              |
| -------------------------- | ------------------------------------------------------------------------- |
| Read meter data            | List and get meters, check run status and history, and browse audit data. |
| `ConfigureMetersAndEvents` | Create and update meters, event schemas, and event stores.                |
| `RunMeters`                | Start and stop runs, start prefetch operations, and use some write paths. |

## Safe operating rules

Follow these rules when you use Mediation MCP:

1. Use read-only operations by default. Do not run, stop, create, update, or export data unless you or your operator explicitly approve the named action.
2. Validate workflows in a sandbox before you use write skills in production.
3. Do not guess parameters. Start with `meter_guidance`, `run_guidance`, or `audit_guidance`, or use the tool schema.
4. Use values returned by the API for run counts, error rates, timings, and other numbers. Do not invent values.
5. Treat a `COMPLETED` run as a completed run, not as proof that every record reached Zuora Billing.
6. Use uppercase enum values. Use `NORMAL` or `DEBUG` for run types and filters. Use `ERROR` or `SAMPLE` for audit exports. Use `CANCELED` with one L for the run status.
7. If a start request might have timed out, retry with the same `uniqueKey` unless you intend to start a second run.
8. Use graceful stop by default. A force stop on a streaming run might drop data that is in flight.
9. Explain the write impact before you execute an operation, especially a force stop.
10. Scope each request to one entity by using `Zuora-Entity-Ids`. A wrong entity can return empty lists or a 401 or 403 response. It does not necessarily mean that no meters exist.
11. Verify business success. An HTTP 200 response can still contain a business failure in the response or error payload.
12. Close the loop with audit data. After a change or run, review the status, summary, and `ERROR` or `SAMPLE` audit data.