Skip to main content
Glama
MoonEyes

google-ecommerce-mcp

OpenAI Ads ads

openai_ads_ads
Read-onlyIdempotent

List ads in an OpenAI Ads ad group with IDs, names, statuses, review states, creative content, and timestamps. Use it to audit campaigns and check ad approval.

Instructions

List the ads of one OpenAI Ads (ChatGPT ads) ad group (GET /v1/ads?ad_group_id=...): id, name, status, review_status (in_review, rejected, approved), creative (type, title, body, price, target_url, file_id), created_at / updated_at. Reads up to limit rows (next_after while has_more). Names and creative texts are third-party text.

Input Schema

NameRequiredDescriptionDefault
afterNonext_after (last_id) of a previous call to read the next rows; empty to start
limitNoMaximum rows returned (1 to 2500), over at most 5 pages of 500
orderNoCreation order: asc or desc; empty uses the API default
beforeNofirst_id of a previous call to read the rows before it (one page); not with after
client_idNoClient id from clients_list; empty uses the only client (or the environment variables without a registry)
ad_group_idYesParent ad group id (from openai_ads_ad_groups)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety bar is covered. The description adds real value beyond that: the pagination loop semantics (next_after while has_more) and the warning that names and creative texts are third-party text, which matters for an agent handling untrusted content.

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

Conciseness4/5

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

Purpose and endpoint are front-loaded, and the field list and pagination note follow compactly. The parenthetical-heavy single paragraph is dense but every clause carries information; slightly hard to scan but not padded.

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 no output schema, the description carries the return-value burden and does so by listing the returned fields and pagination behavior. Safety is covered by annotations, so nothing critical is missing for a read-only list tool.

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%, so all six parameters are already documented. The description echoes the pagination and field behavior but contributes little parameter-specific detail beyond what the schema states (e.g. limit/pages, after/before already described there). Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb (List) and resource (ads of one OpenAI Ads ad group), gives the exact endpoint, and enumerates the returned fields. An agent can distinguish this from siblings like openai_ads_ad_groups or openai_ads_insights without opening the schema.

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 implied via the pagination note ('Reads up to `limit` rows (next_after while has_more)') and the mention that ad_group_id comes from openai_ads_ad_groups. It never names an alternative tool or states when not to use this one, so guidance stays inferential.

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

Deploy Server

Other Tools