← Zurück zu claude-meta-mcp
Setup-Guide · ~20 Min

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.

Überblick
  1. Meta Developer App anlegen und fünf Use Cases auswählen
  2. App ans Meta Business Portfolio koppeln
  3. System-User im Business Portfolio erstellen
  4. Assets (App, Ad Account, Page, Catalog) dem System-User zuweisen
  5. System-User-Token generieren
  6. Token validieren und in .env eintragen
Schritt 01

Meta Developer App anlegen

  1. Auf developers.facebook.com/apps anmelden und auf »Create app« klicken.
  2. 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.
  3. Nach dem Anlegen landest du im App-Dashboard.
Schritt 02

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)
Hinweisinstagram_manage_messages (DM-Zugriff) ist bewusst NICHT enthalten. Auch für eigene Accounts verlangt Meta für diesen Scope ein App Review. Der Connector exposed aktuell kein DM-Tool.

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.

Schritt 03

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.

  1. Im Meta-Developer-Dashboard auf »App settings → Basic«.
  2. Ganz nach unten zu »Business Portfolio« scrollen.
  3. Existierendes Portfolio auswählen oder »Create new«, falls du noch keines hast.
  4. Unten »Save changes« klicken.

Verifiziere unter business.facebook.com → Settings → Accounts → Apps, dass die App jetzt in der Liste auftaucht.

Schritt 04

System-User anlegen

  1. In business.facebook.com → Settings (unten links) → Users → System Users.
  2. »Add« → Name z. B. claude-mcp → Rolle: Admin (System Admin).
  3. Den neuen System-User anklicken, um den Detail-Panel zu öffnen.
Schritt 05

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.
HinweisFalls Ad Account, Page oder Catalog nicht in der Liste auftauchen: vorher unter Settings → Accounts → Ad Accounts / Pages / Catalogs → Add hinzufügen. Bei der Page musst du Page-Admin sein.

Der Instagram-Business-Account wird automatisch über die zugehörige Facebook-Page erreichbar, separate Zuweisung nicht nötig.

Schritt 06

System-User-Token generieren

  1. Im System-User-Detail-Panel auf den Tab »Tokens« → »Generate New Token«.
  2. »Select App«: claude-meta-mcp wählen. Das bindet das Token an deine App-Signing-Keys.
  3. »Token expiration«: »Never«. Genau das ist der Sinn eines System-User-Tokens.
  4. Permissions: alle für das v0.4-Toolset benötigten Scopes (siehe Liste unten) anhaken.
  5. »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
HinweisDu kannst Scopes weglassen. Die zugehörigen Tools liefern dann zur Laufzeit 403 zurück. Beispiel: nur ads_read + business_management = read-only Ads, keine CRUD-Tools, kein Instagram, keine Pages-Writes.
Schritt 07

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
AchtungFalls »The access token could not be decrypted« erscheint: meistens ist die App nicht ans Business Portfolio gekoppelt (Schritt 3), die falsche App im Generate-Dropdown gewählt (Schritt 6.2), oder das App-Secret wurde nach System-User-Anlage zurückgesetzt. In dem Fall einfach Token neu generieren.
Schritt 08

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-mcp

Schnell-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 Pages

Token-Rotation

System-User-Tokens mit »Never« laufen nicht automatisch ab. Trotzdem solltest du sie regelmäßig rotieren:

  1. business.facebook.com → System Users → Tokens → »Revoke Token«
  2. Neuen Token mit denselben Scopes generieren (Schritt 6).
  3. .env am Server aktualisieren.
  4. pm2 reload claude-meta-mcp --update-env
HinweisBei Verdacht auf Token-Leak zuerst revoken, dann neu erstellen. Revoke wirkt sofort.

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.

Troubleshooting
(#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