Skip to main content
MCP server CX Codex

Apple Ads — MCP server for Claude Code: App Store campaigns in chat

Pulls Apple Ads campaigns and performance into your MCP client. Writes are drafted first and applied only after you confirm.

Install into Claude Code · Platform CLI All methods and platforms ↓
claude mcp add apple-ads -e APPLE_ADS_CLIENT_ID=<APPLE_ADS_CLIENT_ID> -e APPLE_ADS_TEAM_ID=<APPLE_ADS_TEAM_ID> -e APPLE_ADS_KEY_ID=<APPLE_ADS_KEY_ID> -e APPLE_ADS_PRIVATE_KEY=<APPLE_ADS_PRIVATE_KEY> -e APPLE_ADS_AD_ACCOUNT_IDS=<APPLE_ADS_AD_ACCOUNT_IDS> -- npx -y @getmcpads/apple-ads-mcp-server
Open on GitHub

What Apple Ads does

The server talks to Apple Ads Platform API v1 over OAuth 2 client credentials. You get 9 read tools and 11 write tools, the latter switched off unless asked for. Requests go straight to Apple, no gateway in between.

Signing happens locally: an EC P-256 key is loaded from the environment at startup and held in memory. The runtime requirement is Node.js 22.23.4, 24.22.1 or 26.12.1 or newer; an older one triggers a stderr warning. Set APPLE_ADS_AD_ACCOUNT_IDS with 1 to 200 account IDs, because every call is scoped to that allowlist. Without the key material and a valid account list the server returns nothing useful.

Writes always surface as a preview, updates are bound to a snapshot, and created entities start paused. apple_ads_list_ad_accounts replaces hosted account selection and returns only what you configured. Check that list before flipping APPLE_ADS_ENABLE_WRITES to true.

What it helps with

  • see App Store campaigns and metrics without opening the web UI
  • draft a bid change and inspect the preview before it lands
  • create a campaign or ad group in paused state
  • restrict agent access to a named set of ad accounts
  • check which ad accounts this connection can reach

Example prompts for the agent

  • Show the campaigns in my account and their spend for last week
  • Draft a lower bid on this ad group and show the preview without applying it
  • List the ad accounts you have access to

How to install Apple Ads

Platform CLI

claude mcp add apple-ads -e APPLE_ADS_CLIENT_ID=<APPLE_ADS_CLIENT_ID> -e APPLE_ADS_TEAM_ID=<APPLE_ADS_TEAM_ID> -e APPLE_ADS_KEY_ID=<APPLE_ADS_KEY_ID> -e APPLE_ADS_PRIVATE_KEY=<APPLE_ADS_PRIVATE_KEY> -e APPLE_ADS_AD_ACCOUNT_IDS=<APPLE_ADS_AD_ACCOUNT_IDS> -- npx -y @getmcpads/apple-ads-mcp-server

Replace <…> with your own values. 2 more environment variables are in the server README

Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more

Questions about Apple Ads

How do I install Apple Ads in Claude Code?

Run `claude mcp add apple-ads -e APPLE_ADS_CLIENT_ID=<APPLE_ADS_CLIENT_ID> -e APPLE_ADS_TEAM_ID=<APPLE_ADS_TEAM_ID> -e APPLE_ADS_KEY_ID=<APPLE_ADS_KEY_ID> -e APPLE_ADS_PRIVATE_KEY=<APPLE_ADS_PRIVATE_KEY> -e APPLE_ADS_AD_ACCOUNT_IDS=<APPLE_ADS_AD_ACCOUNT_IDS> -- npx -y @getmcpads/apple-ads-mcp-server`, filling in your own environment values.

What does Apple Ads do?

It gives the agent read tools for Apple Ads campaigns and performance, plus a separate set of write tools. Every change goes through a preview and an explicit confirmation.

What do I need before it works?

An EC P-256 key uploaded in the Apple Ads API settings, the clientId, teamId and keyId shown there, your ad account IDs, and a supported Node.js release.

Similar MCP servers

All MCP servers for Marketing and content →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor