Local-first MCP server for Apple Ads Platform API v1 with typed, receipt-gated campaign operations.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add apple-ads --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.7~/.codex/config.toml
[mcp_servers.apple-ads]
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>" }
# codex mcp add apple-ads --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.7~/.cursor/mcp.json
{
"mcpServers": {
"apple-ads": {
"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>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"apple-ads": {
"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>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"apple-ads": {
"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>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"apple-ads": {
"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>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"apple-ads": {
"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>"
}
}
}
}Environment variables
APPLE_ADS_MCP_CONFIG
Replace the placeholders with your own credentials and keep them out of version control.