MCP Reference
Drive an Apple Search Ads account from Claude Code, Codex, or claude.ai — the full asa_* tool surface.
Tap & Scale exposes the same reads and money-safe writes as the app through a Model Context Protocol server. Add it to an MCP client and your agent can audit, plan, and optimize an account under the same safe-apply policy — bounded changes auto-apply, the rest queue for your approval.
The server speaks Streamable HTTP at /api/mcp. For callers that aren't MCP clients — cron jobs,
backend services, curl — the same capabilities are available over the REST API.
Both transports run on one tool set, so they never drift. MCP authenticates over OAuth 2.1 with no
token to mint, or — for a headless agent — with the same tsk_ key the REST API takes, verified by
the same code, so revoking a key stops both surfaces.
Install
Claude Code, claude.ai connector, or Codex.
Authentication
OAuth 2.1 or a tsk_ API key, what each reaches, and the projectId-first flow.
How tools behave
- Every tool returns
{ ok: true, ... }or{ ok: false, error }. Read theerror— it usually names the next step. - Reads are safe.
asa_propose_*tools move real money and run through the safe-apply policy. - A connected session reaches the whole workspace, so call
asa_list_ad_accountsfirst and pass the account'sprojectIdto every account-scoped tool. Workspace-level tools take none. - Apple's vocabulary applies throughout: taps, installs, CPT, CPA, storefronts, EXACT|BROAD, ACTIVE|PAUSED. See vocabulary.
Tool catalog
Accounts & setup
| Tool | Scope | Type |
|---|---|---|
asa_list_projects | org | read |
asa_list_ad_accounts | org | read |
asa_get_connection_status | org | read |
asa_discover_ad_accounts | org | read |
asa_import_ad_account | org | setup |
asa_trigger_sync | account | setup |
asa_get_sync_status | account | read |
asa_trigger_audit | account | setup |
asa_set_optimization_targets | account | setup |
asa_update_project_brief | account | setup |
Reads & analysis
| Tool | Scope | Type |
|---|---|---|
asa_get_optimization_plan | account | read |
asa_get_account_overview | account | read |
asa_list_campaigns | account | read |
asa_list_ad_groups | account | read |
asa_list_keywords | account | read |
asa_list_negative_keywords | account | read |
asa_list_ads | account | read |
asa_get_search_terms | account | read |
asa_get_segment_performance | account | read |
asa_run_report | account | read |
asa_list_audit_runs | account | read |
asa_get_audit_report | account | read |
asa_list_action_history | account | read |
asa_list_pending_actions | account | read |
asa_explain_policy | account | read |
Growth & keyword ideation
| Tool | Scope | Type |
|---|---|---|
asa_discover_search_term_silos | account | read |
asa_ideate_keyword_silos | account | read |
asa_suggest_keywords | account | read |
asa_score_keywords | account | read |
Writes (money-moving propose_*)
| Tool | Scope | Type |
|---|---|---|
asa_propose_budget_change | account | write |
asa_propose_campaign_status | account | write |
asa_propose_campaign_geo | account | write |
asa_propose_campaign_bid_strategy | account | write |
asa_propose_campaign_target_cpa | account | write |
asa_propose_cpa_goal | account | write |
asa_propose_default_bid | account | write |
asa_propose_ad_group_status | account | write |
asa_propose_ad_group_targeting | account | write |
asa_propose_search_match | account | write |
asa_propose_keyword_status | account | write |
asa_propose_keyword_bid | account | write |
asa_propose_add_keywords | account | write |
asa_propose_add_negative_keywords | account | write |
asa_propose_remove_negative_keywords | account | write |
asa_propose_change_keyword_match_type | account | write |
asa_propose_create_ad_group | account | write |
asa_propose_clone_ad_group | account | write |
asa_propose_create_campaign | account | write |
asa_propose_clone_campaign | account | write |
asa_propose_ad_status | account | write |
Approvals (operator-only, over MCP)
| Tool | Scope | Type |
|---|---|---|
asa_approve_action | account | write |
asa_reject_action | account | write |
asa_revert_action | account | write |