Skip to main content
Glama
MCP Apple Ads

MCP Apple Ads

by mgcrea

Apple Ads: List Ads

apple_ads_list_ads
Read-only

Lists ads in an Apple Ads ad account, optionally filtered to a single ad group, with paging and optional JSON export.

Instructions

List the ads in an ad account, optionally filtered to one ad group. An ad pairs a creative with an ad group; what it cost and returned comes from apple_ads_get_report at level "ad".

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "apple_ads_list_ads"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoHow many records to return (1-1000). Apple's own maximum page size is 5000.
offsetNoRows to skip, for paging. The response's `pagination` block says how many exist.
savePathNoAbsolute path to also write this result to, as pretty-printed JSON. Use it rather than copying values out of the response into a file by hand. Parent directories are created.
adGroupIdNoOnly ads in this ad group.
adAccountIdNoThe ad account to act on. Omit it when you have exactly one or APPLE_ADS_AD_ACCOUNT_ID is set — it is resolved automatically. List them with apple_ads_list_accounts.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes the safety profile, so the description only needs to add context beyond it. It contributes the conceptual model of an ad and the boundary that cost/return data lives in a different tool, but says nothing about result volume, paging behavior, or the savePath side effect.

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?

Two short sentences, zero repetition, and the operation and scope are front-loaded before the cross-tool pointer. Every clause carries information.

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?

For a read-only, annotation-backed list tool with no output schema, the description plus the richly documented parameters give an agent enough to call it correctly. The only mild gap is that the response shape (pagination block, ad fields) is left entirely to the schema and parameter hints.

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 limit, offset, savePath, adGroupId, and adAccountId are already fully documented in the schema. The description only restates the ad-group filter, adding no syntax, defaults, or resolution rules beyond what the parameters already spell out.

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 and resource ("List the ads in an ad account") with scope (optional ad-group filter), and adds a domain gloss — "An ad pairs a creative with an ad group" — that separates it from sibling list tools such as apple_ads_list_creatives and apple_ads_list_ad_groups.

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?

Makes clear when to call it (enumerating ads, optionally scoped to one ad group) and routes metric-seeking agents to apple_ads_get_report at level "ad". It gives no explicit when-not-to-use or prerequisite conditions, but the primary routing decision is covered.

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