# Tap & Scale > Apple Ads your AI agent runs: it harvests search terms into exact keywords, proposes each fix with the numbers behind it, and applies only what your policy allows. Every change is logged and reverts in one click. Two machine surfaces expose the same engine: an MCP server at /api/mcp for agents, and a REST API at /api/v1 for your own code. **When to use Tap & Scale.** Reach for it when the job is one of these, on an Apple Ads (App Store search ads) account the user owns: - **Harvest search terms** — move Search Match terms that install into EXACT keywords, and propose negatives for the ones that only spend. - **Audit an account** — a scored audit of the account with a 30/60/90-day roadmap, read-only. - **Work an optimization plan** — pacing against the operator's daily spend goal and CPA band, and a ranked list of what to scale, fix or protect. - **Make a change safely** — budgets, CPT bids, CPA goals, keywords, match types, storefronts and ad groups, each as a proposal with the numbers behind it. - **Report on it** — weekly reports, segment performance by storefront or device, and blended revenue where it is connected. **When not to use it:** - **Other ad networks.** Apple Ads only (Google Ads is Bid & Scale; Meta is Reach & Scale). - **Ad creative or App Store pages.** It manages keywords, bids and budgets, not custom product pages or screenshots. - **Changes made in the Apple Ads UI.** Apple has no change-history API, so edits made there are invisible; the action history covers our own changes only. **How to call it:** - **As an agent (MCP):** connect to `https://tapandscale.com/api/mcp` over Streamable HTTP and sign in with OAuth 2.1 in the browser — there is no token to paste (a headless agent can send a `tsk_` API key as the Bearer instead). In Claude Code: `claude mcp add --transport http tapandscale https://tapandscale.com/api/mcp`. Call `asa_list_ad_accounts` first and pass the account's `projectId` to every account-scoped tool; check `asa_get_sync_status` before analysing. Server card: https://tapandscale.com/.well-known/mcp/server-card.json - **From application code (REST):** `https://tapandscale.com/api/v1` with `Authorization: Bearer tsk_…`. Spec: https://tapandscale.com/openapi.json - **Connecting Apple Ads** has no OAuth: the human creates API credentials in the Apple Ads UI and enters them in the app. `asa_get_connection_status` says where. It cannot happen over MCP. - **Apple's vocabulary:** taps (not clicks), installs (not conversions), TTR, CPT, CPA; a storefront is a country. There is no ROAS, quality score or ad copy. - **Safety:** reads are free and safe. Every `asa_propose_*` call is a proposal: bounded, low-risk changes apply under the operator's policy (which an API key never triggers), everything larger waits in the approval queue, and an applied change reverts with `asa_revert_action` from the state snapshotted before it moved. Start here: [Connect Apple Ads](https://tapandscale.com/docs/get-started/connect-apple-ads) · [MCP guide](https://tapandscale.com/docs/mcp) · [Approvals](https://tapandscale.com/docs/guides/approvals) · [API reference](https://tapandscale.com/docs/api) ## Agents - [Connect an AI agent](https://tapandscale.com/agents): every client Tap & Scale works with, and how each connects - [Claude Code](https://tapandscale.com/agents/claude-code): One claude mcp add command, or the plugin with five slash commands. - [Cursor](https://tapandscale.com/agents/cursor): One JSON block in ~/.cursor/mcp.json. - [Codex](https://tapandscale.com/agents/codex): One codex mcp add command, shared by every Codex client. - [OpenClaw](https://tapandscale.com/agents/openclaw): One mcp.servers entry in openclaw.json, so every channel gets the tools. - [Grok bot](https://tapandscale.com/agents/grok): A remote MCP tool on the bot's xAI API requests. - [Hermes](https://tapandscale.com/agents/hermes): One HTTP MCP server in ~/.hermes/config.yaml. - [Claude](https://tapandscale.com/agents/claude): A custom connector under Customize → Connectors, on web, Desktop, and mobile. - [Claude Cowork](https://tapandscale.com/agents/claude-cowork): The same custom connector as claude.ai, enabled for Cowork. - [ChatGPT](https://tapandscale.com/agents/chatgpt): A developer-mode app, on paid plans on the web. - [Gemini CLI](https://tapandscale.com/agents/gemini): One entry in ~/.gemini/settings.json. - [Windsurf](https://tapandscale.com/agents/windsurf): One serverUrl entry in mcp_config.json. Windsurf is now Devin Desktop. - [VS Code](https://tapandscale.com/agents/vs-code): One .vscode/mcp.json file you can commit for the team. - [eve](https://tapandscale.com/agents/eve): One MCP connection file, with a scoped, expiring API key. - [Any MCP client](https://tapandscale.com/agents/mcp): One URL for any client that speaks remote MCP. ## Docs - [Tap & Scale](https://tapandscale.com/docs): A dashboard and AI copilot that runs your Apple Search Ads — synced, audited, and optimized under a money-safe policy. - [API Reference](https://tapandscale.com/docs/api): Read and optimize Apple Ads accounts over HTTP. - [Discover Apple Ads orgs](https://tapandscale.com/docs/api/accounts/discover-accounts) - [Get the account's strategy brief](https://tapandscale.com/docs/api/accounts/get-account-brief) - [Get the Apple Ads connection status](https://tapandscale.com/docs/api/accounts/get-connection) - [Get sync status](https://tapandscale.com/docs/api/accounts/get-sync-status) - [Import an Apple Ads account](https://tapandscale.com/docs/api/accounts/import-account) - [List Apple Ads accounts](https://tapandscale.com/docs/api/accounts/list-accounts) - [Set the optimization targets](https://tapandscale.com/docs/api/accounts/set-optimization-targets) - [Trigger a full re-sync](https://tapandscale.com/docs/api/accounts/trigger-sync) - [Replace the account's strategy brief](https://tapandscale.com/docs/api/accounts/update-account-brief) - [Approve a queued action](https://tapandscale.com/docs/api/actions/approve-action) - [Explain the safe-apply policy](https://tapandscale.com/docs/api/actions/explain-policy) - [List the change ledger](https://tapandscale.com/docs/api/actions/list-actions) - [List the approval queue](https://tapandscale.com/docs/api/actions/list-approvals) - [Propose: ad group status](https://tapandscale.com/docs/api/actions/propose-ad-group-status) - [Propose: ad group targeting](https://tapandscale.com/docs/api/actions/propose-ad-group-targeting) - [Propose: ad status](https://tapandscale.com/docs/api/actions/propose-ad-status) - [Propose: add keywords](https://tapandscale.com/docs/api/actions/propose-add-keywords) - [Propose: add negative keywords](https://tapandscale.com/docs/api/actions/propose-add-negative-keywords) - [Propose: budget change](https://tapandscale.com/docs/api/actions/propose-budget-change) - [Propose: campaign bid strategy](https://tapandscale.com/docs/api/actions/propose-campaign-bid-strategy) - [Propose: campaign geo](https://tapandscale.com/docs/api/actions/propose-campaign-geo) - [Propose: campaign status](https://tapandscale.com/docs/api/actions/propose-campaign-status) - [Propose: campaign target cpa](https://tapandscale.com/docs/api/actions/propose-campaign-target-cpa) - [Propose: change match type](https://tapandscale.com/docs/api/actions/propose-change-keyword-match-type) - [Propose: clone ad group](https://tapandscale.com/docs/api/actions/propose-clone-ad-group) - [Propose: clone campaign](https://tapandscale.com/docs/api/actions/propose-clone-campaign) - [Propose: cpa goal](https://tapandscale.com/docs/api/actions/propose-cpa-goal) - [Propose: create ad group](https://tapandscale.com/docs/api/actions/propose-create-ad-group) - [Propose: create campaign](https://tapandscale.com/docs/api/actions/propose-create-campaign) - [Propose: default bid](https://tapandscale.com/docs/api/actions/propose-default-bid) - [Propose: keyword bid](https://tapandscale.com/docs/api/actions/propose-keyword-bid) - [Propose: keyword status](https://tapandscale.com/docs/api/actions/propose-keyword-status) - [Propose: remove negative keywords](https://tapandscale.com/docs/api/actions/propose-remove-negative-keywords) - [Propose: rename ad group](https://tapandscale.com/docs/api/actions/propose-rename-ad-group) - [Propose: rename campaign](https://tapandscale.com/docs/api/actions/propose-rename-campaign) - [Propose: search match](https://tapandscale.com/docs/api/actions/propose-search-match) - [Reject a queued action](https://tapandscale.com/docs/api/actions/reject-action) - [Revert an applied action](https://tapandscale.com/docs/api/actions/revert-action) - [List ad groups](https://tapandscale.com/docs/api/ad-groups/list-ad-groups) - [List ads and creatives](https://tapandscale.com/docs/api/ads/list-ads) - [Get an audit report](https://tapandscale.com/docs/api/audits/get-audit-report) - [List audit runs](https://tapandscale.com/docs/api/audits/list-audits) - [Run an audit now](https://tapandscale.com/docs/api/audits/trigger-audit) - [Authentication](https://tapandscale.com/docs/api/authentication): API keys, scopes, and how a key reaches an account. - [List campaigns](https://tapandscale.com/docs/api/campaigns/list-campaigns) - [Errors](https://tapandscale.com/docs/api/errors): The error envelope and every code you can branch on. - [Get headline account metrics](https://tapandscale.com/docs/api/insights/get-account-overview) - [Get the optimization plan](https://tapandscale.com/docs/api/insights/get-optimization-plan) - [Get performance by segment](https://tapandscale.com/docs/api/insights/get-segment-performance) - [Run a live Apple report](https://tapandscale.com/docs/api/insights/run-report) - [List keywords](https://tapandscale.com/docs/api/keywords/list-keywords) - [List negative keywords](https://tapandscale.com/docs/api/negative-keywords/list-negative-keywords) - [Pagination and windows](https://tapandscale.com/docs/api/pagination): Why the lists truncate instead of paginating, and how date windows work. - [Policy states](https://tapandscale.com/docs/api/policy-states): What happens to a proposal after you POST it — and why "queued" is a success. - [Cluster search terms into silos](https://tapandscale.com/docs/api/research/discover-search-term-silos) - [Score a keyword list](https://tapandscale.com/docs/api/research/score-keywords) - [Expand seed terms via App Store autosuggest](https://tapandscale.com/docs/api/research/suggest-keywords) - [List search terms](https://tapandscale.com/docs/api/search-terms/list-search-terms) - [Get a weekly report](https://tapandscale.com/docs/api/weekly-reports/get-weekly-report) - [List weekly reports](https://tapandscale.com/docs/api/weekly-reports/list-weekly-reports) - [Generate this week's report now](https://tapandscale.com/docs/api/weekly-reports/trigger-weekly-report) - [Concepts](https://tapandscale.com/docs/concepts): The vocabulary and models you need to reason about an Apple Search Ads account with Tap & Scale. - [Accounts and projects](https://tapandscale.com/docs/concepts/accounts-and-projects): The two-tier shell — workspace vs project — and a map of the dashboard. - [Apple Ads vocabulary](https://tapandscale.com/docs/concepts/apple-ads-vocabulary): The metrics, entities, and enums that differ from Google Ads — and the features Apple Search Ads simply doesn't have. - [How sync works](https://tapandscale.com/docs/concepts/how-sync-works): The warehouse model, freshness warnings, and why changes made in Apple's UI are invisible until re-synced. - [The safe-apply policy](https://tapandscale.com/docs/concepts/safe-apply-policy): How Tap & Scale decides which money-moving changes auto-apply and which wait for your approval. - [What is Tap & Scale?](https://tapandscale.com/docs/get-started): The model in five minutes — warehouse, dashboard, Ads copilot, and the safe-apply policy. - [Connect an Apple Ads account](https://tapandscale.com/docs/get-started/connect-apple-ads): Provision Apple Ads API credentials, paste them in, import your orgs, and run the first sync. - [Set optimization targets](https://tapandscale.com/docs/get-started/optimization-targets): A daily spend goal and CPA band per account drive both the recommendation feed and what auto-applies. - [Guides](https://tapandscale.com/docs/guides): Task-first playbooks for running an Apple Search Ads account with Tap & Scale. - [Review approvals](https://tapandscale.com/docs/guides/approvals): Approve, reject, or revert the changes the copilot proposes — the human decision point for money-moving writes. - [Expand keywords](https://tapandscale.com/docs/guides/keyword-expansion): Grow profitable coverage — harvest first, then silo discovery and ideation verified against App Store demand. - [Launch a campaign](https://tapandscale.com/docs/guides/launch-a-campaign): Scaffold Brand / Discovery / Category from zero, seed cold-start keywords, and read the first week honestly. - [Run an audit](https://tapandscale.com/docs/guides/run-an-audit): A prioritized health sweep for when you inherit an account or ask "where do I start?" - [Run the Search Match harvest](https://tapandscale.com/docs/guides/search-match-harvest): Promote proven auto-discovered search terms to EXACT keywords, negate them in discovery, and cut the junk. - [MCP Reference](https://tapandscale.com/docs/mcp): Drive an Apple Search Ads account from Claude Code, Codex, or claude.ai — the full asa_* tool surface. - [Approval tools](https://tapandscale.com/docs/mcp/approvals): Approve, reject, or revert queued changes — operator-only, exposed only over MCP. - [Authentication & scopes](https://tapandscale.com/docs/mcp/authentication): OAuth 2.1 for a person, a tsk_ API key for a headless agent. What each credential reaches, and the projectId-first flow. - [Install the MCP server](https://tapandscale.com/docs/mcp/install): Connect the Tap & Scale MCP server to Claude Code, a claude.ai connector, or Codex. - [Read tools](https://tapandscale.com/docs/mcp/reads): Pull performance, structure, plans, audits, and history from the warehouse. All safe. - [Setup, sync & growth tools](https://tapandscale.com/docs/mcp/setup-and-sync): Connect, import, sync, target, and ideate keywords — the tools that stand up and grow an account. - [Write tools](https://tapandscale.com/docs/mcp/writes): The money-moving asa_propose_* tools, and how the safe-apply policy decides what applies. Full text: https://tapandscale.com/llms-full.txt