Skip to main content
Glama
get-mcp-ads

ChatGPT Ads MCP server

openai ads get mutation

openai_ads_get_mutation
Read-onlyIdempotent

Retrieves a write preview or receipt to check its state, approved native state, and result before resubmitting a mutation. Do not resubmit writes marked UNKNOWN or APPLYING.

Instructions

Read a write preview or receipt held by this server process: its state, the native state it was approved against and the result. Receipts live in memory and a restart forgets them. Never resubmit a write whose state is UNKNOWN or APPLYING.

Input Schema

NameRequiredDescriptionDefault
mutationIdYesThe confirmationToken or mutationId returned by a write preview or receipt.
adAccountIdYesThe adacct_ ID configured in OPENAI_ADS_ACCOUNT_ID. The API key is scoped to this one account; another ID is refused.

Output Schema

NameRequiredDescriptionDefault
resultYesOriginal tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description's real contribution is lifecycle behavior: receipts are held in memory and a restart forgets them, and certain states must never be followed by a resubmit. That transient-state warning is exactly the kind of non-obvious trait annotations cannot express. It stops short of describing receipt contents in detail or what to do on each state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences: what it reads, what the data's lifetime is, and the safety prohibition. The most operationally important fact (in-memory, lost on restart) and the unsafe-state warning are both front-loaded with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema and complete annotations, the only things the description needs to add are lifecycle and hazard context, which it does. The remaining gap is workflow positioning — it never says what to call first to get a confirmationToken, so the entry point into this tool is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters carry their own documentation, including the accepted confirmationToken-or-mutationId form and the adacct_ account scoping. The description adds nothing beyond that. Baseline 3 is correct when the schema carries the full parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and object: read a write preview or receipt, and enumerates what it returns (state, the native state it was approved against, the result). That is far more precise than the sibling get_* tools, which fetch ad entities. It does not explicitly differentiate itself from close siblings like openai_ads_get_write_context or openai_ads_get_bulk_job, which an agent could plausibly confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is mostly implied: the emphasis on the approval state suggests polling after a write preview, and 'Never resubmit a write whose state is UNKNOWN or APPLYING' is a hard exclusion rule. But there is no explicit statement of when to call this versus get_write_context or get_write_schema, nor what to do with each returned state. The agent must infer the workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.