Skip to main content
Glama
MoonEyes

google-ecommerce-mcp

OpenAI Ads ad groups

openai_ads_ad_groups
Read-onlyIdempotent

List ad groups for a specified OpenAI Ads campaign, returning IDs, names, statuses, and bidding configuration.

Instructions

List the ad groups of one OpenAI Ads (ChatGPT ads) campaign (GET /v1/ad_groups?campaign_id=...): id, name, status, bidding_config (billing_event_type, max_bid_micros in micros of the account currency), created_at / updated_at. Reads up to limit rows (next_after while has_more). Names 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)
campaign_idYesParent campaign id (from openai_ads_campaigns)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavior: rows are read up to `limit` with next_after-driven paging while has_more, and names are flagged as third-party text (a useful untrusted-content warning). It omits rate limits and any auth/scoping caveats, so it is strong but not exhaustive.

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?

One front-loaded sentence delivers purpose, endpoint, returned fields, paging, and a data-provenance caveat with no filler. The field enumeration makes it dense, but each clause carries information an agent needs given no output schema.

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?

No output schema exists, and the description compensates by naming the returned fields and the paging cursor contract; client_id and order semantics are fully covered by the schema. Only minor gaps remain (no note on empty results or ordering defaults beyond what the schema states).

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds semantics the schema does not: max_bid_micros is expressed in micros of the account currency, and next_after paging is described as a repeat-call pattern. That is meaningful clarification beyond the field documentation.

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?

Specific verb + resource + scope: 'List the ad groups of one OpenAI Ads (ChatGPT ads) campaign', with the underlying endpoint GET /v1/ad_groups?campaign_id=... . An agent can immediately distinguish this from openai_ads_campaigns (parents) and openai_ads_ads (children of an ad group).

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

Usage Guidelines4/5

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

The description scopes the call to a single parent campaign and the schema points campaign_id at openai_ads_campaigns, giving a clear entry condition. It stops short of naming alternatives or exclusions (e.g. 'for account-level inventory use openai_ads_account'), so it is clear context without explicit routing.

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