Apple Ads MCP — Claude Code MCP server: what it does, how to install
Local-first MCP server for Apple Ads Platform API v1. Inspect App Store ad groups, analyze search queries, and preview campaign changes safely.
claude mcp add --env APPLE_ADS_MCP_CONFIG=<APPLE_ADS_MCP_CONFIG> --transport stdio apple-ads-mcp -- docker run -i --rm -e APPLE_ADS_MCP_CONFIG ghcr.io/zelentsov-dev/apple-ads-mcp:v0.3.7What Apple Ads MCP does
This server connects AI assistants to the Apple Ads Platform API v1 across four placements: Search Results, Search Tab, Today Tab, and Product Pages. Security starts with local confinement. All private keys and auth tokens stay on your filesystem, while every query targets an explicit account profile. Optimization runs strictly under manual command. Because there is no background scheduler, the agent cannot alter ad spend on its own.
The server operates in read-only mode by default. Making actual updates requires passing six distinct safety gates. You must start the process with write flags enabled, run a dedicated preview call, and receive a short-lived single-use receipt valid for ten minutes. Applying updates through operations_apply fails if the live campaign state shifted after the preview step. Inventory queries return up to 200 items per call with pagination. Without a valid private key path in your local profile, auth_check refuses to proceed.
What it helps with
- audit App Store advertising structure without risk of accidental edits
- research keyword opportunities and search popularity metrics
- generate typed reports across campaigns, ad groups, and search terms
- execute bid and budget updates using single-use preview receipts
Example prompts for the agent
- Run server_info and account_health for my profile without enabling write access.
- List available placements for my app and explain any eligibility gaps.
- Audit the current campaign structure and extract search term performance.
How to install Apple Ads MCP
Platform CLI
claude mcp add --env APPLE_ADS_MCP_CONFIG=<APPLE_ADS_MCP_CONFIG> --transport stdio apple-ads-mcp -- docker run -i --rm -e APPLE_ADS_MCP_CONFIG ghcr.io/zelentsov-dev/apple-ads-mcp:v0.3.7Replace <…> with your own values
Platform CLI
codex mcp add apple-ads-mcp --env APPLE_ADS_MCP_CONFIG=<APPLE_ADS_MCP_CONFIG> -- docker run -i --rm -e APPLE_ADS_MCP_CONFIG ghcr.io/zelentsov-dev/apple-ads-mcp:v0.3.7Replace <…> with your own values
Config file
{
"mcpServers": {
"apple-ads-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"APPLE_ADS_MCP_CONFIG",
"ghcr.io/zelentsov-dev/apple-ads-mcp:v0.3.7"
],
"env": {
"APPLE_ADS_MCP_CONFIG": "<APPLE_ADS_MCP_CONFIG>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"apple-ads-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"APPLE_ADS_MCP_CONFIG",
"ghcr.io/zelentsov-dev/apple-ads-mcp:v0.3.7"
],
"env": {
"APPLE_ADS_MCP_CONFIG": "<APPLE_ADS_MCP_CONFIG>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e APPLE_ADS_MCP_CONFIG=<APPLE_ADS_MCP_CONFIG> apple-ads-mcp docker run -i --rm -e APPLE_ADS_MCP_CONFIG ghcr.io/zelentsov-dev/apple-ads-mcp:v0.3.7Replace <…> with your own values
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 MCP
How to install Apple Ads MCP in Claude Code?
Run `claude mcp add --env APPLE_ADS_MCP_CONFIG=<APPLE_ADS_MCP_CONFIG> --transport stdio apple-ads-mcp -- docker run -i --rm -e APPLE_ADS_MCP_CONFIG ghcr.io/zelentsov-dev/apple-ads-mcp:v0.3.7`. This sets up the stdio transport using the official Docker container.
What does Apple Ads MCP do?
It provides typed MCP tools to query and manage the Apple Ads Platform API v1. You can inspect campaigns, review search volume, retrieve reports, and adjust targeting across App Store placements.
How are unauthorized campaign changes prevented?
The server stays read-only by default. Modifying inventory requires write privileges, a targeted preview request, and an apply command backed by a single-use receipt that expires in ten minutes.