# apple-ads

This MCP server connects Apple Search Ads API v5 to an AI client for campaign, budget, keyword, and report operations.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 7
- Author: Happygallo
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/Happygallo/apple-ads-mcp
- Updated: 2026-03-17
- HTML: https://affpapa.org/en/nevibecode/mcp/apple-ads

## What it does

apple-ads links an MCP client with Apple Search Ads API v5. It can create, edit, pause, and remove campaigns and ad groups, adjust bids, manage targeting and negative keywords, and work with creatives and budgets.

Its tools cover reports for campaigns, ad groups, keywords, ads, and geographic performance. It can also inspect the queries behind ad traffic, produce impression-share reports, and change the active organization during a session.

Setup requires the Apple API values `ASA_CLIENT_ID`, `ASA_TEAM_ID`, and `ASA_KEY_ID`, plus the path in `ASA_PRIVATE_KEY_PATH`. The server cannot connect without those credentials and a private key; an API user must use a different Apple ID from the account administrator.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `ASA_CLIENT_ID`, `ASA_TEAM_ID`, `ASA_KEY_ID`, `ASA_PRIVATE_KEY_PATH`, `ASA_ORG_ID` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env ASA_CLIENT_ID=<ASA_CLIENT_ID> --env ASA_TEAM_ID=<ASA_TEAM_ID> --env ASA_KEY_ID=<ASA_KEY_ID> --env ASA_PRIVATE_KEY_PATH=<ASA_PRIVATE_KEY_PATH> --env ASA_ORG_ID=<ASA_ORG_ID> --transport stdio apple-ads -- npx -y apple-ads-mcp
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add apple-ads --env ASA_CLIENT_ID=<ASA_CLIENT_ID> --env ASA_TEAM_ID=<ASA_TEAM_ID> --env ASA_KEY_ID=<ASA_KEY_ID> --env ASA_PRIVATE_KEY_PATH=<ASA_PRIVATE_KEY_PATH> --env ASA_ORG_ID=<ASA_ORG_ID> -- npx -y apple-ads-mcp
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "apple-ads": {
            "command": "npx",
            "args": [
                "-y",
                "apple-ads-mcp"
            ],
            "env": {
                "ASA_CLIENT_ID": "<ASA_CLIENT_ID>",
                "ASA_TEAM_ID": "<ASA_TEAM_ID>",
                "ASA_KEY_ID": "<ASA_KEY_ID>",
                "ASA_PRIVATE_KEY_PATH": "<ASA_PRIVATE_KEY_PATH>",
                "ASA_ORG_ID": "<ASA_ORG_ID>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "apple-ads": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "apple-ads-mcp"
            ],
            "env": {
                "ASA_CLIENT_ID": "<ASA_CLIENT_ID>",
                "ASA_TEAM_ID": "<ASA_TEAM_ID>",
                "ASA_KEY_ID": "<ASA_KEY_ID>",
                "ASA_PRIVATE_KEY_PATH": "<ASA_PRIVATE_KEY_PATH>",
                "ASA_ORG_ID": "<ASA_ORG_ID>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e ASA_CLIENT_ID=<ASA_CLIENT_ID> -e ASA_TEAM_ID=<ASA_TEAM_ID> -e ASA_KEY_ID=<ASA_KEY_ID> -e ASA_PRIVATE_KEY_PATH=<ASA_PRIVATE_KEY_PATH> -e ASA_ORG_ID=<ASA_ORG_ID> apple-ads npx -y apple-ads-mcp
```
Replace <…> with your own values

## When to use it
- manage Apple Search Ads campaigns
- change keyword bids and exclusions
- review campaign and geo reports
- inspect queries that trigger ads
- switch between organizations

## Example prompts
- Show campaign and ad-group results for the previous week.
- Pause the brand campaign and set the discovery budget to the requested amount.
- Find useful search queries and add the strongest ones as exact-match keywords.

## Similar
- [ads-apple](https://affpapa.org/en/nevibecode/skills/ads-apple.md) — skill · 3700 installs
- [apple-search-ads](https://affpapa.org/en/nevibecode/skills/apple-search-ads.md) — skill · 2900 installs
- [amazon_ads_mcp](https://affpapa.org/en/nevibecode/mcp/amazon-ads-mcp.md) — MCP server · ★ 74
- [ads-launch](https://affpapa.org/en/nevibecode/skills/ads-launch.md) — skill · 610 installs
- [LinkedIn Ads](https://affpapa.org/en/nevibecode/mcp/linkedin-ads.md) — MCP server
- [spotify-ads-api](https://affpapa.org/en/nevibecode/plugins/spotify-ads-api.md) — plugin · ★ 20

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
