Meta App und System-User-Token einrichten
Schritt für Schritt: vom leeren Meta-Developer-Dashboard bis zum funktionierenden System-User-Token im connector .env. Etwa 20 Minuten, wenn du schon ein Business Portfolio hast, sonst ~40.
Dieser Guide ist die offizielle Begleit-Anleitung zum claude-meta-mcp v0.4 Connector. System-User-Tokens sind gegenüber regulären User-Access-Tokens vorzuziehen, weil sie nicht ablaufen und für Server-zu-Server-Setups gemacht sind. UI-Beschriftungen unten gehen von einem englischen Meta-Account aus. Bei deutscher Oberfläche heißen die Menüpunkte sinngemäß identisch.
- Meta Developer App anlegen und fünf Use Cases auswählen
- App ans Meta Business Portfolio koppeln
- System-User im Business Portfolio erstellen
- Assets (App, Ad Account, Page, Catalog) dem System-User zuweisen
- System-User-Token generieren
- Token validieren und in .env eintragen
Meta Developer App anlegen
- Auf developers.facebook.com/apps anmelden und auf »Create app« klicken.
- Vergib einen Namen (z. B. claude-meta-mcp) und eine Kontakt-E-Mail. Die Business-Portfolio-Zuordnung kannst du jetzt überspringen. Die machen wir in Schritt 3.
- Nach dem Anlegen landest du im App-Dashboard.
Fünf Use Cases auswählen
Meta hat 2024–2025 das alte »Berechtigungen einzeln auswählen« durch einen Use-Case-Wizard ersetzt.
Im App-Dashboard auf »Use cases → Add use case« und folgende fünf Cases anlegen. Zusammen decken sie das komplette v0.4-Toolset (47 Tools) ab:
- »Measure ad performance with Marketing API« → liefert ads_read, business_management, read_insights
- »Create and manage ads with Marketing API« → liefert ads_management, business_management
- »Manage everything on your Page« → liefert pages_show_list, pages_manage_posts, pages_manage_metadata, pages_read_engagement
- »Manage messaging and content on Instagram« → liefert instagram_basic, instagram_content_publish, instagram_manage_comments, instagram_manage_insights
- »Manage products with Catalog API« → liefert catalog_management (für Product-Catalog-Inspektion: Businesses, Catalogs, Feeds, Produkte, Diagnostics)
Nach Auswahl dieser Use Cases zeigt der App-Tab »Permissions and Features« jede Berechtigung als »Standard Access (granted by default)«. Für eigene Assets musst du nichts beim App Review einreichen.
App ans Business Portfolio koppeln
Das ist der Schritt, den die meisten übersehen: ohne ihn schlagen System-User-Tokens mit »could not be decrypted« fehl.
- Im Meta-Developer-Dashboard auf »App settings → Basic«.
- Ganz nach unten zu »Business Portfolio« scrollen.
- Existierendes Portfolio auswählen oder »Create new«, falls du noch keines hast.
- Unten »Save changes« klicken.
Verifiziere unter business.facebook.com → Settings → Accounts → Apps, dass die App jetzt in der Liste auftaucht.
System-User anlegen
- In business.facebook.com → Settings (unten links) → Users → System Users.
- »Add« → Name z. B. claude-mcp → Rolle: Admin (System Admin).
- Den neuen System-User anklicken, um den Detail-Panel zu öffnen.
Assets dem System-User zuweisen
Der System-User braucht expliziten Zugriff auf die App, das Ad Account, die Page und (für v0.4-Catalog-Tools) den Catalog.
Im System-User-Detail-Panel jeweils »Add Assets« klicken:
- Tab Apps → claude-meta-mcp anhaken → Rolle »Develop app« oder »Manage app«.
- Tab Ad Accounts → dein Ad Account anhaken, Permissions: »Manage campaigns« + »View performance«.
- Tab Pages → die Page anhaken, Permissions: »Create content« + »Manage Page posts« + »View Page insights«.
- Tab Catalogs → den Product Catalog anhaken (Permission: »View catalog«). Nur nötig, wenn du die v0.4-Product-Catalog-Tools nutzen willst.
Der Instagram-Business-Account wird automatisch über die zugehörige Facebook-Page erreichbar, separate Zuweisung nicht nötig.
System-User-Token generieren
- Im System-User-Detail-Panel auf den Tab »Tokens« → »Generate New Token«.
- »Select App«: claude-meta-mcp wählen. Das bindet das Token an deine App-Signing-Keys.
- »Token expiration«: »Never«. Genau das ist der Sinn eines System-User-Tokens.
- Permissions: alle für das v0.4-Toolset benötigten Scopes (siehe Liste unten) anhaken.
- »Generate Token« → der Token erscheint einmalig. Auf den Copy-Button klicken, nicht den dargestellten String per Maus markieren. Meta verschleiert ihn visuell bis zum Klick.
Volle Scope-Liste für v0.4 (47 Tools):
- ads_read, ads_management, business_management
- pages_show_list, pages_manage_posts, pages_manage_metadata, pages_read_engagement
- instagram_basic, instagram_content_publish, instagram_manage_comments, instagram_manage_insights
- catalog_management (für die v0.4 Product-Catalog-Tools: Catalogs, Feeds, Produkte, Diagnostics)
- optional: read_insights
Token validieren
Bevor du den Token in .env packst, prüfe ihn mit Meta's eigenem Debugger.
Auf developers.facebook.com/tools/debug/accesstoken/ den Token einfügen. Du solltest sehen:
- Type: System User
- App ID: deine App-ID
- Expires: Never
- Scopes: die 12+ ausgewählten Permissions
Token in .env eintragen und reload
# am Server, NICHT durch Drittanbieter:
nano /var/www/connector/.env
# Zeile setzen:
META_ACCESS_TOKEN=EAA...
# Connector neuladen:
pm2 reload claude-meta-mcp --update-env
# oder
systemctl restart claude-meta-mcpSchnell-Check, dass alles greift:
TOKEN=$(grep ^META_ACCESS_TOKEN /var/www/connector/.env | cut -d= -f2-)
curl -s "https://graph.facebook.com/v22.0/me?access_token=$TOKEN" | jq
# → {"name":"<dein system user name>","id":"..."}
curl -s "https://graph.facebook.com/v22.0/me/adaccounts?fields=id,name&access_token=$TOKEN" | jq
# → Liste der zugewiesenen Ad Accounts
curl -s "https://graph.facebook.com/v22.0/me/accounts?fields=id,name&access_token=$TOKEN" | jq
# → Liste der zugewiesenen PagesToken-Rotation
System-User-Tokens mit »Never« laufen nicht automatisch ab. Trotzdem solltest du sie regelmäßig rotieren:
- business.facebook.com → System Users → Tokens → »Revoke Token«
- Neuen Token mit denselben Scopes generieren (Schritt 6).
- .env am Server aktualisieren.
- pm2 reload claude-meta-mcp --update-env
Standard Access vs Advanced Access
Standardmäßig läuft deine App im Development Mode mit Standard Access:
- ✅ funktioniert mit deinen eigenen Ad Accounts und Pages
- ✅ funktioniert mit bis zu ~5 explizit hinzugefügten Test-Usern
- ❌ funktioniert NICHT für beliebige Public-User
Für ein self-hosted Single-Tenant-Setup ist genau das richtig. Multi-Tenant-Betrieb (Connector öffentlich anbieten) bräuchte Advanced Access mit Business Verification, App Review und Datenlöschungs-Callback, geplant für eine spätere Connector-Version.
(#100) Tried accessing nonexisting field
Die App hat die geforderte Permission nicht. Prüfe Schritt 2 (Use Cases attached) und Schritt 5 (Asset-Assignment am System-User).
Invalid OAuth access token signature
Token aus einer anderen App oder einem anderen Business Portfolio. Token in Schritt 6 mit der richtigen App im Dropdown neu generieren.
(#10) Application does not have permission for this action
Das Asset (Page oder Ad Account) ist dem System-User nicht zugewiesen, oder die Rolle reicht für die Aktion nicht. Schritt 5 prüfen.
Error validating access token: Session has expired
Tritt nur bei User-Tokens auf, nicht bei System-User-Tokens. Du hast versehentlich einen User-Token (z. B. via Graph API Explorer) generiert. Schritt 6 mit dem System-User-Tab nochmal durchgehen.
The access token could not be decrypted
Siehe Hinweis in Schritt 7: fast immer ein Business-Portfolio- oder App-Assignment-Thema.
Was kommt jetzt?
Mit dem Token im .env und einem reload kann der Connector loslegen. Nächster sinnvoller Schritt: in Claude den Connector verbinden und mit get_ad_account einen Trockenlauf machen, z. B. Balance, Currency und Account-Status prüfen, bevor du die ersten Test-Kampagnen mit status=PAUSED anlegst.
← Zurück zu claude-meta-mcp