aapl-ads-mcp
aapl-ads-mcp
Ein MCP-Server, der Claude (und jeden MCP-kompatiblen Client) mit der Apple Search Ads API v5 verbindet.
Was ist das?
MCP (Model Context Protocol) ist ein offener Standard, der es KI-Assistenten ermöglicht, externe Tools aufzurufen. Dieser Server implementiert den MCP-stdio-Transport und stellt 9 schreibgeschützte Tools bereit, die Ihr Apple Search Ads-Konto abfragen – Kampagnen, Anzeigengruppen, Keywords und Leistungsberichte.
Sie installieren es einmal, verknüpfen es mit Claude Desktop und stellen dann Fragen in natürlicher Sprache: „Welche Keywords haben letzten Monat die meisten Installationen generiert?“ oder „Zeige mir Kampagnen mit null Impressionen in dieser Woche.“
Related MCP server: tiktok-ads-mcp
Warum?
Die offiziellen ASA-Dashboards sind gut für Menschen, aber nicht für Ad-hoc-Analysen oder automatisierte Berichte geeignet. Bestehende MCP-Alternativen sind entweder SaaS (Sie geben Ihre Schlüssel weiter) oder werden nicht mehr gepflegt. Dies ist eine selbst gehostete Open-Source-Option, die Sie kontrollieren.
Funktionen
list_orgs — Authentifizierung überprüfen, zugängliche Organisationen auflisten
list_campaigns — Kampagnen auflisten, optional nach Status filtern
list_ad_groups — Anzeigengruppen für eine bestimmte Kampagne
list_keywords — Targeting-Keywords mit Gebotsbeträgen und Match-Typ
get_campaign_report — Impressionen, Taps, Installationen, Ausgaben, CPI, TTR nach Kampagne
get_ad_group_report — dieselben Metriken, aufgeschlüsselt nach Anzeigengruppe
get_keyword_report — Leistung pro Keyword mit wöchentlicher/täglicher/monatlicher Granularität
get_search_terms_report — die tatsächlichen Suchanfragen, die Ihre Anzeigen ausgelöst haben (am nützlichsten für die Entdeckung)
Alle Tools verwenden standardmäßig die letzten 30 Tage. Berichte unterstützen die Granularität HOURLY, DAILY, WEEKLY und MONTHLY.
Einschränkungen
Designbedingt schreibgeschützt. Keine Schreibvorgänge (Erstellen, Aktualisieren, Pausieren) in dieser Version.
Erfordert Zugriff auf die Apple Search Ads Campaign Management API. Sie müssen einen API-Benutzer in Ihrem ASA-Konto erstellen und ein ES256-Schlüsselpaar generieren.
Aggregierte Installationsmetriken funktionieren ohne App-seitige Integration.
tapInstalls,viewInstallsund verwandte Felder in ASA-Berichten werden direkt von Apple Search Ads ausgefüllt und erfordern kein SDK in Ihrer App. AdServices / AdAttributionKit wird nur benötigt, wenn Sie Installationen innerhalb Ihrer App bestimmten Kampagnen zuordnen möchten (z. B. für die Personalisierung des Onboardings).Einzelne Organisation. Die Organisations-ID ist in der Konfiguration festgelegt. Ein Wechsel zwischen mehreren Organisationen ist nicht implementiert.
Einrichtung
1. Ein ES256-Schlüsselpaar generieren
Verwenden Sie den modernen genpkey-Befehl – er erzeugt direkt das PKCS#8-Format, das dieser Server benötigt. Der ältere ecparam -genkey erzeugt das SEC1-Format und führt zu einem Startfehler.
# Generate private key (PKCS#8)
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out private-key.pem
# Derive public key
openssl pkey -in private-key.pem -pubout -out public-key.pemÜberprüfen Sie, ob der private Schlüssel mit -----BEGIN PRIVATE KEY----- beginnt (nicht -----BEGIN EC PRIVATE KEY-----). Wenn er mit der EC-Variante beginnt, konvertieren Sie ihn:
openssl pkcs8 -topk8 -nocrypt -in ec-key.pem -out private-key.pemSpeichern Sie private-key.pem nach Möglichkeit außerhalb des Repository-Stammverzeichnisses (z. B. ~/.ssh/asa-private-key.pem).
2. Einen API-Benutzer in Apple Search Ads erstellen
Gehen Sie zu ASA → Account Settings → User Management
Klicken Sie auf Create User, wählen Sie die Rolle API Account Read Only für den schreibgeschützten Zugriff (empfohlen für diesen Server). API Campaign Manager ist ebenfalls in Ordnung und fügt Schreibberechtigungen hinzu, falls Sie den Server später um Schreib-Tools erweitern möchten.
Gehen Sie zum Tab API, klicken Sie auf Create Client
Laden Sie
public-key.pemhochKopieren Sie
client_id,team_idundkey_idvom BestätigungsbildschirmFinden Sie Ihre
org_idunter Account Settings → Overview
3. Klonen und erstellen
git clone https://github.com/andrealufino/aapl-ads-mcp.git
cd aapl-ads-mcp
npm install
npm run build4. Claude Desktop konfigurieren
Bearbeiten Sie ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"aapl-ads": {
"command": "node",
"args": ["/absolute/path/to/aapl-ads-mcp/dist/index.js"],
"env": {
"ASA_CLIENT_ID": "SEARCHADS.your-client-id-here","ASA_TEAM_ID": "SEARCHADS.your-team-id-here",
"ASA_KEY_ID": "your-key-id-here",
"ASA_ORG_ID": "12345678",
"ASA_PRIVATE_KEY_PATH": "/absolute/path/to/private-key.pem"} }
} }
Hinweis: ASA_PRIVATE_KEY_PATH muss ein absoluter Pfad sein. Die Tilde (~) wird von Node.js nicht erweitert – verwenden Sie den vollständigen Pfad.
Für Container- oder Cloud-Bereitstellungen, bei denen das Einbinden einer Datei unpraktisch ist, setzen Sie stattdessen ASA_PRIVATE_KEY auf den Inline-PEM-Inhalt (Zeilenumbrüche bleiben erhalten). Wenn beides gesetzt ist, hat ASA_PRIVATE_KEY Vorrang.
Starten Sie Claude Desktop neu. Fragen Sie „run health check“, um zu überprüfen, ob der Server verbunden ist.
Nutzungsbeispiele
Dies sind Prompts in natürlicher Sprache, die mit Claude Desktop funktionieren, sobald der Server läuft:
List my Apple Ads campaigns
Zeige mir die Kampagnenleistung der letzten 30 Tage
Welche Keywords haben letzte Woche in meiner Brand-Kampagne Installationen generiert?
Welche Suchbegriffe haben im letzten Monat meine Anzeigen ausgelöst? Konzentriere dich auf solche mit Impressionen, aber ohne Installationen.
Vergleiche die wöchentlichen Ausgaben über alle Kampagnen für Q1 2025
Zeige Anzeigengruppen in Kampagne 1234567890 mit ihren Gebotsbeträgen
## Development
```bash
npm run build # compile TypeScript
npm test # run test suite (Vitest)
npm run typecheck # type-check without emitting
npm run lint # Biome lint
npm run format # Biome format (write)MCP Inspector
Um Tool-Aufrufe interaktiv ohne Claude Desktop zu debuggen:
npx @modelcontextprotocol/inspector node dist/index.jsSetzen Sie die Umgebungsvariablen in der Inspector-UI, bevor Sie eine Verbindung herstellen.
Pre-commit Hooks
Installieren Sie lefthook-Hooks lokal nach dem Klonen:
npx lefthook installDies richtet Folgendes ein:
gitleaks protect --staged— blockiert Commits, die Geheimnisse enthaltenBiome-Lint-Prüfung für bereitgestellte
.ts-DateienTypeScript-Typenprüfung
Mitwirken
Siehe docs/ARCHITECTURE.md für technische Details: Authentifizierungsfluss, HTTP-Client-Design, Tool-Muster, Besonderheiten des Berichtsschemas und Lektionen aus der ASA v5-Entwicklung.
Fehlerberichte und Pull Requests sind willkommen.
Sicherheit
Committen Sie niemals
.env- oder*.pem-Dateien – beide sind in.gitignoreenthaltenBewahren Sie
private-key.pemaußerhalb des Repository-Stammverzeichnisses aufDas Zugriffstoken wird nur im Arbeitsspeicher gehalten und niemals auf die Festplatte geschrieben
Wenn Sie vermuten, dass ein Schlüssel kompromittiert wurde, rotieren Sie ihn unter ASA → Account Settings → API
Lizenz
MIT – siehe LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server exposing the full Apple Ads (Search Ads) Campaign Management API v5 — 74 typed tools742010MIT
- AlicenseBqualityDmaintenanceProvides read-only access to TikTok advertising data, including campaigns, ad groups, ads, and performance reports through the TikTok Business API.640MIT
- AlicenseBqualityCmaintenanceRead-only MCP server for Google Ads, enabling querying campaigns, ad groups, ads, insights, and keywords without create/update/delete operations.9MIT
- FlicenseNot gradedqualityDmaintenanceEnables programmatic management of NewsBreak advertising campaigns, ad sets, ads, and assets via the NewsBreak Advertising API.1
Related MCP Connectors
Read-only Yandex Metrika MCP. Query visits, sources, geo, devices and more in plain language.
Google Ads, Meta (Facebook) Ads, GA4 and Merchant Center analysis in plain language. Read-only.
Read-only NuMetric.work accounting & ERP data: statements, KPIs, reports, invoices, documents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/andrealufino/aapl-ads-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server