Skip to main content
Glama
MCP Apple Ads

MCP Apple Ads

by mgcrea

Apple Ads: List Keywords

apple_ads_list_keywords
Read-only

Lists targeting keywords with match type, bid, and status, optionally filtered to one ad group, so you can audit keyword targeting without pulling performance reports.

Instructions

List targeting keywords, optionally filtered to one ad group, with their match type, bid and status. What each keyword actually cost and returned comes from apple_ads_get_report at level "keyword", not from here.

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_keywords"
  }
}

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 keywords 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.2/5.0
Behavior4/5

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

readOnlyHint=true already establishes the safety profile, so the bar is lower, and the description still adds useful context: it discloses which fields come back and, more importantly, which data does NOT come back, redirecting cost/return queries elsewhere. Pagination, savePath behavior, and account resolution are left to the schema.

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 sentences, front-loaded with the core purpose, with zero filler. The second sentence earns its place by preventing a common misrouting to the wrong tool.

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 filtered list tool with no output schema, the description covers purpose, returned fields, scoping, and the nearest alternative. Account resolution and paging details are adequately handled by the schema, so nothing essential is missing.

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 pagination, savePath, and adAccountId are already fully documented in the schema. The description only adds the ad-group scoping meaning, which matches the adGroupId schema text — baseline 3 applies.

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?

The description uses a specific verb and resource ("List targeting keywords") and states the returned fields (match type, bid, status). It explicitly disambiguates itself from apple_ads_get_report, so an agent can choose between the two without opening either schema.

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?

It states the optional ad-group filter condition and explicitly routes performance-what-it-cost-and-returned questions to apple_ads_get_report at level "keyword". It stops short of naming apple_ads_list_negative_keywords as the counterpart for exclusions, so the positive-vs-negative distinction is only implied by "targeting".

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