Schnellstart
- Öffne in ContentGarden Konto → KI-Zugriff.
- Erstelle einen Zugang und kopiere den Schlüssel. Er wird nur einmal vollständig angezeigt.
- Speichere ihn lokal als
CONTENTGARDEN_TOKEN. Committe ihn niemals. - Verbinde deinen MCP-Client mit
https://api.contentgarden.app/mcp.
Codex verbinden
Setze den Schlüssel in deiner lokalen Umgebung und ergänze im App-Repository .codex/config.toml:
export CONTENTGARDEN_TOKEN="cg_pat_…"
[mcp_servers.contentgarden] url = "https://api.contentgarden.app/mcp" bearer_token_env_var = "CONTENTGARDEN_TOKEN" default_tools_approval_mode = "writes"
Nach einem Neustart kann Codex zum Beispiel beantworten: „Was wartet in ContentGarden?“, „Synchronisiere die neuen Produktwege aus diesem PR“ oder „Plane das fertige Reel ein.“
Claude Code verbinden
Lege im Projekt eine .mcp.json ohne Klartext-Schlüssel an:
{
"mcpServers": {
"contentgarden": {
"type": "http",
"url": "https://api.contentgarden.app/mcp",
"headers": {
"Authorization": "Bearer ${CONTENTGARDEN_TOKEN}"
}
}
}
}
Die Umgebungsvariable bleibt lokal oder im Secret Store deiner Entwicklungsumgebung.
MCP-Werkzeuge
list_workspacesBeete und Handlungsstatus auflistenget_garden_statusErnte, Planung, Fehler und Blocker prüfenget_brand_contextMarke, Produkt, USP, No-Gos und Farben lesenupdate_brand_contextMarkenkontext gezielt aktualisierenget_capture_policy„Nicht anklicken“ und App-Wege lesenadd_blocked_capture_targetGesperrtes Ziel sicher ergänzenupsert_capture_pathDeterministischen Weg durch die App pflegenrun_capture_testWeg testen und Schritt für Schritt sehen, was trafdelete_capture_pathEigenen Fehlversuch wieder entfernenlist_suggestionsErntefähige Vorschläge anzeigengenerate_suggestionsNeue Vorschläge als Job erzeugenharvest_suggestionProduktion eines Reels startenlist_ready_reelsFertige, ungeplante Reels anzeigenschedule_reelAuf die nächsten freien Zeiten legenget_jobHintergrundjob und Fehler prüfensync_contentProduktwissen aus dem Repository synchronisierensearch_product_knowledgeSynchronisiertes Wissen durchsuchenBoden, ist der Schritt click_text mit dem Text Boden – nicht „Tab Boden“. Was ein Element ist, gehört nicht in seinen Namen; gesucht wird, was auf dem Bildschirm steht. click_point ist nur für Flächen ohne Beschriftung da (Zeichenfläche, Karte, Diagramm). Wartet der Weg auf ein Ergebnis, nimm wait_for_text statt wait. Und nach dem Schritt, dessen Ergebnis man sehen soll, gehört ein zoom auf dessen Beschriftung: Eine Desktop-Oberfläche im Hochformat ist ohne Nahaufnahme unlesbar. Danach immer run_capture_test: Es sagt je Schritt, ob er sein Ziel getroffen hat – ein ungetesteter Weg ist geraten. Das Zeitbudget kommt bei jedem Schreiben mit; aufgenommen werden nur etwa 8–18 Sekunden.Produktwissen im Entwicklungsflow
Halte einen kuratierten Bereich im App- oder Shop-Repository. ContentGarden braucht keine Kopie des Quellcodes, sondern die fachliche Wahrheit, die Reels erklären dürfen.
.contentgarden/
product.md
features/
onboarding.md
material-calculation.md
capture/
paths.md
Ein Feature-Dokument sollte Problem, sichtbaren Ablauf, Ergebnis, wichtige Begriffe und Grenzen beschreiben. Ein Agent kann diese Dateien lesen und mit sync_content übertragen.
Direkt über REST synchronisieren
curl -X PUT \
"https://api.contentgarden.app/v1/agent/workspaces/WORKSPACE_ID/content" \
-H "Authorization: Bearer $CONTENTGARDEN_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sourceRevision": "git:abc123",
"replace": false,
"documents": [{
"path": ".contentgarden/features/material.md",
"kind": "feature",
"title": "Material berechnen",
"body": "Nutzer planen eine Fläche und sehen anschließend…"
}]
}'
Das aktuelle Produktwissen wird bei neuen Vorschlägen als begrenzte Faktenquelle verwendet. So kann ContentGarden neue Funktionen berücksichtigen, ohne den gesamten Quellcode an ein Sprachmodell zu senden.
Sichere App-Aufnahmen
Aufnahmeregeln sind keine unverbindlichen Prompts. ContentGarden prüft gesperrte Texte, Labels und URL-Teile beim Browserlauf.
- Agenten dürfen gesperrte Ziele ergänzen, aber nicht entfernen.
- Capture-Änderungen verwenden eine Revision. Bei parallelen Änderungen antwortet die API mit
capture_revision_conflict. - Wege bestehen nur aus klar begrenzten, überprüfbaren Aufnahmeaktionen.
- Logins, Käufe und destruktive Aktionen sind für automatische Vision-Wege verboten.
Agent REST API
Alle Endpunkte verwenden Authorization: Bearer cg_pat_…. Die Antworten sind JSON.
| Methode | Pfad | Zweck |
|---|---|---|
| GET | /v1/agent/workspaces | Beete auflisten |
| GET | /v1/agent/workspaces/:id/status | Handlungsstatus |
| GET | /v1/agent/workspaces/:id/brand | Markenkontext |
| PATCH | /v1/agent/workspaces/:id/brand | Marke aktualisieren |
| GET | /v1/agent/workspaces/:id/capture | Aufnahmeregeln |
| POST | /v1/agent/workspaces/:id/capture/blocked-targets | Gesperrtes Ziel ergänzen |
| PUT | /v1/agent/workspaces/:id/capture/paths/:pathId | App-Weg speichern |
| DELETE | /v1/agent/workspaces/:id/capture/paths/:pathId | App-Weg entfernen |
| POST | /v1/agent/workspaces/:id/capture/test | Probeaufnahme mit Schritt-Diagnose |
| GET | /v1/agent/workspaces/:id/suggestions | Frische Vorschläge |
| POST | /v1/agent/workspaces/:id/suggestions/generate | Vorschläge erzeugen |
| POST | /v1/agent/workspaces/:id/suggestions/:sid/harvest | Vorschlag ernten |
| GET | /v1/agent/workspaces/:id/reels/ready | Fertige Reels |
| POST | /v1/agent/workspaces/:id/reels/:reelId/schedule | Reel einplanen |
| GET | /v1/agent/workspaces/:id/jobs/:jobId | Jobstatus prüfen |
| PUT | /v1/agent/workspaces/:id/content | Produktwissen synchronisieren |
| GET | /v1/agent/workspaces/:id/content?q=… | Produktwissen durchsuchen |
Authentifizierung und Datenschutz
- Zugriffsschlüssel werden geschützt gespeichert und nie erneut vollständig angezeigt.
- Der Klartext wird genau einmal bei der Erstellung angezeigt.
- Neue Zugriffsschlüssel laufen nach 180 Tagen automatisch ab.
- Ein widerrufener Schlüssel verliert sofort den Zugriff.
- Ohne laufenden bezahlten Plan werden auch vorhandene Schlüssel abgewiesen.
- Schreibende Agentenaktionen erscheinen im Audit-Protokoll.
- Produktwissen bleibt geschützt im jeweiligen ContentGarden-Konto.