Authentifizierung
Jede Anfrage an /api benoetigt einen Authorization-Header mit einem Bearer-Token. Sie haben zwei Wege, eines zu erhalten.
OAuth (empfohlen fuer KI-Clients)
KI-Clients fuehren beim ersten Verbinden Dynamic Client Registration durch. Die Seite /mcp/connect erledigt das automatisch. Ihr Client erhaelt ein 30-Tage-Access-Token.
API-Schluessel
Fuer Skripte und CI generieren Sie einen persoenlichen API-Schluessel in der DesignerBox-App unter Account / API-Schluessel. Der Schluessel beginnt mit apikey_.
Endpunkt
Alle Tool-Aufrufe gehen an einen einzigen JSON-RPC-2.0-Endpoint per HTTPS POST.
Tools
list_designs
Designs des aktuellen Teams auflisten, mit optionalem Ordnerfilter und Seitennavigation.
Argumente
limitfolderIdRueckgabe
Ein Objekt mit designs: [{id, title, folderId, brandProfileId, createdAt, updatedAt}]. Bis zu limit Ergebnisse.
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":1,
"params":{"name":"list_designs","arguments":{"limit":10}}}
get_design
Vollstaendige Metadaten fuer ein Design inklusive Titel, Ordner, Markenprofil-Referenzen und Erstelldatum abrufen.
Argumente
designIdRueckgabe
Ein Objekt mit vollstaendigen Design-Metadaten: id, title, folderId, brandProfileId, createdAt, updatedAt.
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":2,
"params":{"name":"get_design","arguments":{"designId":""}}}
search_designs
Volltextsuche ueber Design-Titel und Beschreibungen des aktiven Teams. Filter: limit (1-100, Standard 20).
Argumente
querylimitRueckgabe
Ein Objekt mit designs: [{id, title, folderId, snippet, updatedAt}].
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":3,
"params":{"name":"search_designs","arguments":{"query":"logo","limit":10}}}
list_brand_profiles
Alle Markenprofile des aktuellen Teams mit Stimme, Themen, Nische und Branche zurueckgeben.
Argumente
Keine Argumente.
Rueckgabe
Ein Objekt mit profiles: [{id, name, brandVoice, mainThemes, primaryNiche, industry, isActive}].
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":4,
"params":{"name":"list_brand_profiles","arguments":{}}}
list_folders
Ordner im aktiven Team-Workspace auflisten. Nuetzlich um list_designs auf einen Ordner einzuschraenken.
Argumente
Keine Argumente.
Rueckgabe
Ein Objekt mit folders: [{id, name, designCount, createdAt}].
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":5,
"params":{"name":"list_folders","arguments":{}}}
list_photo_packs
Verfuegbare Fotopakete durchsuchen. Akzeptiert optionalen Sprachparameter fuer Kategorie-Labels.
Argumente
languageRueckgabe
Ein Objekt mit packs: [{id, name, category, imageCount, language}].
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":6,
"params":{"name":"list_photo_packs","arguments":{}}}
list_teams
Teams zurueckgeben, denen der authentifizierte Nutzer angehoert, mit Markierung des aktiven Teams.
Argumente
Keine Argumente.
Rueckgabe
Ein Objekt mit currentTeamId und teams: [{teamId, teamName, isCurrent}].
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":7,
"params":{"name":"list_teams","arguments":{}}}
get_plan_limits
Aktuellen Abonnement-Tier und Tier-Quotas (Speicher und KI-Credits) lesen. Der aiCredits-Bereich verschachtelt monatliche Abonnement-Credits, purchasedBalance aus einmaligen Credit-Packs, Gesamtdeckel und verbleibend verfuegbar. In jedem Plan verfuegbar.
Argumente
Keine Argumente.
Rueckgabe
Ein Objekt mit tier, isPaid, isTrial, upgradeUrl, limits.storage ({limit, current, exceeded}), limits.aiCredits ({monthly:{limit,current,exceeded}, purchasedBalance, total, available}) und creditsAvailable ({monthly, purchasedBalance, total}). Bei ULTRA Unlimited sind limits.aiCredits.monthly.limit und limits.aiCredits.total beide -1, limits.aiCredits.available ist null, und creditsAvailable.monthly und creditsAvailable.total sind beide null. purchasedBalance ist immer eine Zahl (null bei keinen Packs).
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":8,
"params":{"name":"get_plan_limits","arguments":{}}}
get_plan
Plan-Name, Abrechnungszyklus (monatlich oder jaehrlich), Stripe-Abonnement-Status, Waehrung, Verlaengerungsdatum, Trial-Ende und Sitzplatzanzahl lesen. Paart mit get_plan_limits. In jedem Plan verfuegbar ohne KI-Credit-Kosten.
Argumente
Keine Argumente.
Rueckgabe
Ein Objekt mit tier, isPaid, isTrial, billingCycle (monatlich oder jaehrlich oder null), status (Stripe-Status), currency, renewalDate (ISO 8601), trialEnd (ISO 8601 oder null), quantity (Sitzplatzanzahl oder null), cancelAtPeriodEnd und upgradeUrl.
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":43,
"params":{"name":"get_plan","arguments":{}}}
search_tools
Den MCP-Tool-Katalog nach Freitext, Kategorie oder Absicht durchsuchen. Gibt Kategorien, Scope und Beschreibungen zurueck.
Argumente
All optional. Call with no arguments to list all 43 tools.
querycategoryRueckgabe
Ein Objekt mit totalTools, matchCount, categories und tools: [{name, category, requiresScope, description, useCases, matchedOn: [name|category|description|use_case]}].
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":9,
"params":{"name":"search_tools",
"arguments":{"query":"brand profile"}}}
create_avatarBezahlpaket
KI-Avatar-Bild aus einem Textprompt generieren. Gibt eine URL des generierten Bildes zurueck. Benoetigt KI-Credits und einen Bezahlplan.
Argumente
promptstyleclientRequestIdRueckgabe
Ein Objekt mit taskId, status, imageUrl (wenn fertig) und creditsUsed.
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":10,
"params":{"name":"create_avatar",
"arguments":{"prompt":"professional headshot, warm lighting"}}}
set_current_team
Aktives Team fuer diesen Bearer-Token wechseln. Nutzer muss Mitglied sein. Sofort wirksam fuer nachfolgende Tools.
Argumente
teamIdRueckgabe
Ein Objekt mit teamId, teamName, persisted und einer optionalen Notiz.
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":11,
"params":{"name":"set_current_team",
"arguments":{"teamId":"team_xxxxx"}}}
update_brand_profile
Aktives Markenprofil aktualisieren. Erlaubte Felder: brandVoice, mainThemes, contentGoals, contentTypes, primaryNiche, subNiches, industry, industries.
Argumente
brandVoiceOther patchable fields: mainThemes, contentGoals, contentTypes, primaryNiche, subNiches, industry, industries.
Rueckgabe
Ein Objekt mit profileId, name, updated: [geaenderte Feldnamen] und den aktuellen Werten nach dem Patch.
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":12,
"params":{"name":"update_brand_profile",
"arguments":{"brandVoice":["bold","minimal"]}}}
Avatare
list_avatars
Avatar-Generierungs-Tasks fuer den aktuellen Benutzer auflisten (benutzer-bezogen, nicht team-bezogen). Optionaler Status-Filter und Limit (Standard 50, max 100).
Argumente
statuslimitBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":13,
"params":{"name":"list_avatars","arguments":{"status":"completed"}}}
get_avatar
Vollstaendige Details zu einem Avatar-Task per taskUUID abrufen. Liefert den Task-Status inklusive generierter Bilder bei Fertigstellung. Cross-Team-Zugriffe werden zurueckgewiesen, wenn die teamId aufgeloest ist.
Argumente
taskUUIDBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":14,
"params":{"name":"get_avatar","arguments":{"taskUUID":""}}}
get_avatar_status
Avatar-Task-Fortschritt abfragen. Liefert einen schlanken Status-Snapshot (status, progress, message). get_avatar fuer volle Details inklusive generierter Bilder verwenden.
Argumente
taskUUIDBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":15,
"params":{"name":"get_avatar_status","arguments":{"taskUUID":""}}}
Vorlagen
list_templates
Inhaltsvorlagen nach Kategorien gruppiert auflisten. Katalog-Form (nicht team-bezogen). Sprache uebergeben, um auf eine Locale zu beschraenken; weglassen fuer alle Sprachen. get_template fuer den vollen Body.
Argumente
languageBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":16,
"params":{"name":"list_templates","arguments":{"language":"en"}}}
get_template
Eine einzelne Vorlage per id oder slug abrufen. Liefert den Vorlagen-Body als Geruest fuer Inhalte. Eines von id oder slug ist erforderlich.
Argumente
idslugBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":17,
"params":{"name":"get_template","arguments":{"slug":"hero-banner"}}}
Assets
list_assets
Assets (hochgeladene Bilder, Videos und Dateien) des aktiven Teams auflisten. Optionale Filter nach Ordner oder MIME-Typ-Praefix. get_asset fuer volle Details verwenden.
Argumente
folderIdpagelimittypeBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":18,
"params":{"name":"list_assets","arguments":{"type":"image","limit":20}}}
get_asset
Vollstaendige Details zu einem Asset per ID abrufen. Cross-Team-Zugriffe werden vom unterliegenden Service zurueckgewiesen.
Argumente
idBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":19,
"params":{"name":"get_asset","arguments":{"id":""}}}
list_brand_assets
Marken-Assets (Logos, Schriften, Farbpaletten und aehnliche) des aktiven Teams auflisten. Optionale Filter nach Markenprofil, Dateityp, Kategorie, Tags oder Freitextsuche. Unterscheidet sich von Markenprofilen, die Stimme und Themen beschreiben.
Argumente
brandProfileIdfileTypecategorytagssearchBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":20,
"params":{"name":"list_brand_assets","arguments":{"category":"logo"}}}
KI-Generierung
generate_imageBezahlpaket
Eines oder mehrere KI-Bilder synchron generieren (~30 Sekunden). Kostet mindestens 1 KI-Credit pro Bild. FREE-Tier ist blockiert. clientRequestId fuer idempotente Wiederholungen innerhalb von 5 Minuten uebergeben. Liefert die generierten Bild-URLs sofort.
Argumente
promptmodelaspectRationumberResultsnegativePromptclientRequestIdBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":21,
"params":{"name":"generate_image",
"arguments":{"prompt":"sunset over the alps","aspectRatio":"16:9"}}}
generate_videoBezahlpaket
Einen KI-Video-Generierungs-Task einreichen. Liefert sofort ein taskUUID; der Task wird asynchron verarbeitet (BullMQ-gestuetzt). get_video_status fuer Polling verwenden. Credit-Kosten werden aus Modell und Dauer berechnet. FREE-Tier ist blockiert.
Argumente
promptmodeltypedurationresolutionaspectRatioinputImagenegativePromptclientRequestIdBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":22,
"params":{"name":"generate_video",
"arguments":{"prompt":"a cat surfing","model":""}}}
get_video_status
Video-Generierungs-Task-Fortschritt abfragen. Liefert vollen Task-Status inklusive finaler Video-URL bei Fertigstellung. Durch eine BullMQ-Queue (echt asynchron) gestuetzt.
Argumente
taskUUIDBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":23,
"params":{"name":"get_video_status","arguments":{"taskUUID":""}}}
Stockfotos
search_stock_photos
Stockfotos gleichzeitig ueber Unsplash, Pexels und Pixabay durchsuchen. Liefert pro Anbieter Ergebnisse plus pro-Anbieter-Fehler. Nur Suche; kein List- oder Browse-Modus.
Argumente
querypageperPageBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":24,
"params":{"name":"search_stock_photos","arguments":{"query":"mountains"}}}
Community-Workflows und Pipelines
list_community_workflows
Veroeffentlichte Community-Workflows auflisten. Nach Kategorie filtern, sortieren nach beliebt, neu oder Aufrufen, und auf eigene, Team oder alle einschraenken. get_community_workflow fuer den vollen Graph.
Argumente
pagelimitcategorysortsearchfilterBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":25,
"params":{"name":"list_community_workflows","arguments":{"sort":"recent"}}}
get_community_workflow
Vollstaendige Details zu einem Community-Workflow inklusive Knotengraph und Kanten abrufen. list_community_workflows zum Browsen verwenden.
Argumente
idBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":26,
"params":{"name":"get_community_workflow","arguments":{"id":""}}}
list_pipelines
Pipelines (Workflow-Canvas) des aktiven Teams auflisten. Liefert eine schlanke Form mit Knotenanzahl; get_pipeline fuer den vollen Graph.
Argumente
pagelimitsortBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":27,
"params":{"name":"list_pipelines","arguments":{}}}
get_pipeline
Eine Pipeline (Workflow-Canvas) per ID abrufen, beschraenkt auf das aktive Team. Liefert vollen Knoten- und Kantengraph.
Argumente
idBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":28,
"params":{"name":"get_pipeline","arguments":{"id":""}}}
list_whiteboards
MySpace-Whiteboards des aktuellen Benutzers auflisten, beschraenkt auf das aktive Team. Whiteboard-Inhalt wird in der Listen-Ansicht weggelassen; den dedizierten Read-Endpoint fuer Inhalte verwenden.
Argumente
Keine Argumente.
Beispiel
{"jsonrpc":"2.0","method":"tools/call","id":29,
"params":{"name":"list_whiteboards","arguments":{}}}
Konversationen und Whiteboards
list_conversations
KI-Assistent-Chat-Konversationen des Benutzers fuer das aktive Team auflisten. Optionaler Status-Filter (active oder archived) und Tag-Filter. get_conversation fuer den vollen Nachrichtenverlauf.
Argumente
statuspagelimittagsBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":30,
"params":{"name":"list_conversations","arguments":{"status":"archived"}}}
get_conversation
Eine einzelne KI-Assistent-Konversation inklusive vollem Nachrichtenverlauf abrufen. Cross-User- und Cross-Team-Zugriffe werden vom Service zurueckgewiesen.
Argumente
idBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":31,
"params":{"name":"get_conversation","arguments":{"id":""}}}
Galerien und Skills
generate_designBezahlpaket
Generiere ein Gallery-Design, indem eine Skill auf ein Quellbild angewendet wird (image-to-image). Synchron ~30-45s. Kostet 1 KI-Credit pro Aufruf. FREE-Tier ist blockiert. list_skills aufrufen, um gueltige skillId-Werte zu finden. clientRequestId fuer idempotente Wiederholungen innerhalb von 5 Minuten uebergeben.
Argumente
sourceImageUrlskillIdclientRequestIdBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":32,
"params":{"name":"generate_design",
"arguments":{"sourceImageUrl":"https://example.com/photo.jpg","skillId":""}}}
list_galleries
KI-Gallery-Assets (Designs aus generate_design) fuer das aktive Team und den Benutzer auflisten. Unterstuetzt Pagination und einen optionalen Kategorie-Filter. Liefert eine schlanke Form: assetId, assetUrl, slug, displayName, galleryCategory, createdAt.
Argumente
limitpagecategoryBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":33,
"params":{"name":"list_galleries","arguments":{"limit":10}}}
list_skills
Aktive Skills fuer generate_design auflisten. Liefert skillId, name, type (image oder video), group und category. Damit gueltige skillId-Werte ermittelt werden, bevor generate_design aufgerufen wird.
Argumente
typeBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":34,
"params":{"name":"list_skills","arguments":{"type":"image"}}}
Kinematografische Generierung
generate_cinema_studioBezahlpaket
Generiere kinematografische KI-Bilder mit einer Kombination aus Kamera, Objektiv, Brennweite, Blende und Seitenverhaeltnis. Synchron ~30s. Kostet 1 KI-Credit pro Bild. FREE-Tier ist blockiert. referenceImageUrl uebergeben, um in den Referenzbild-Modus (Style-Transfer) zu wechseln. clientRequestId fuer idempotente Wiederholungen innerhalb von 5 Minuten uebergeben.
Argumente
scenePromptcameraBodylensfocalLengthapertureaspectRatioimageCountreferenceImageUrlclientRequestIdBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":35,
"params":{"name":"generate_cinema_studio",
"arguments":{"scenePrompt":"a wide shot of a foggy harbour at dawn","aspectRatio":"16:9","imageCount":2}}}
Async-Task-Management
cancel_avatar_taskDestruktiv
Einen ausstehenden oder laufenden Avatar-Generierungs-Task abbrechen. Der service-seitige Refund-Pfad erstattet zuvor berechnete Credits zurueck. Tasks im Endzustand (completed oder failed) koennen nicht abgebrochen werden; der Aufruf liefert einen strukturierten Fehler.
Argumente
taskUUIDBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":36,
"params":{"name":"cancel_avatar_task","arguments":{"taskUUID":""}}}
cancel_video_taskDestruktiv
Einen ausstehenden oder laufenden Video-Generierungs-Task abbrechen. Der service-seitige Refund-Pfad erstattet zuvor berechnete Credits zurueck. Tasks im Endzustand (completed oder failed) koennen nicht abgebrochen werden; der Aufruf liefert einen strukturierten Fehler.
Argumente
taskUUIDBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":37,
"params":{"name":"cancel_video_task","arguments":{"taskUUID":""}}}
list_video_tasks
Video-Generierungs-Tasks des aktuellen Benutzers auflisten (user-bezogen, parity mit list_avatars). Optionaler Status-Filter (pending, processing, completed, failed, cancelled) und Limit (Standard 20, Max 100). get_video_status fuer vollstaendige Polling-Details verwenden.
Argumente
statuslimitBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":38,
"params":{"name":"list_video_tasks","arguments":{"status":"completed"}}}
Einzelabruf-Details
get_brand_profile
Vollstaendige Details fuer ein einzelnes Markenprofil per ID abrufen. Cross-Team-Zugriff wird als generischer not-found zurueckgewiesen (keine Existenz-Leaks). list_brand_profiles verwenden, um IDs aufzuzaehlen.
Argumente
brandProfileIdBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":39,
"params":{"name":"get_brand_profile","arguments":{"brandProfileId":""}}}
get_brand_asset
Vollstaendige Details fuer ein einzelnes Marken-Asset per ID abrufen. Cross-Team-Zugriff wird als generischer not-found zurueckgewiesen (keine Existenz-Leaks). list_brand_assets verwenden, um IDs aufzuzaehlen.
Argumente
brandAssetIdBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":40,
"params":{"name":"get_brand_asset","arguments":{"brandAssetId":""}}}
get_photo_pack
Eine einzelne Photo-Pack-Kategorie inklusive ihrer Bilder abrufen. Katalog-foermig (nicht team-bezogen). Optionaler Sprachcode; Fallback auf Englisch, wenn das angeforderte Locale fehlt.
Argumente
categoryIdlanguageBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":41,
"params":{"name":"get_photo_pack","arguments":{"categoryId":"3d-rendered-object"}}}
get_whiteboard
Ein einzelnes Whiteboard per ID inklusive vollem Inhalts-Blob abrufen. Whiteboards sind user-bezogen (nur Ersteller); Cross-User-Zugriff wird als generischer not-found zurueckgewiesen.
Argumente
whiteboardIdBeispiel
{"jsonrpc":"2.0","method":"tools/call","id":42,
"params":{"name":"get_whiteboard","arguments":{"whiteboardId":""}}}
MCP-Ressourcen
Ressourcen sind nur lesbarer Kontext, den der Client per MCP resources/read abrufen kann. Claude laedt sie zu Beginn des Gespraechs, um Account-, Team- und Markenkontext zu haben.
designerbox://account/summary
Plan, verbrauchte / verbleibende KI-Credits, Design-Anzahl, aktiver Teamname und Ordneranzahl.
designerbox://brand-profiles/active
Das aktive Markenprofil des aktuellen Teams mit LLM-relevanten Feldern.
designerbox://teams/current
Aktuelle Team-Metadaten (teamId, teamName) und Gesamtanzahl verfuegbarer Teams.
designerbox://recent-designs
Die 10 neuesten Designs des aktiven Teams, vorab in Claudes Kontext geladen.
Benannte Workflows
Slash-Menue-Shortcuts, die mehrere Tools verketten. Waehlen Sie einen aus und lassen Sie Ihren KI-Assistenten mehrere Schritte durchlaufen, mit Bestaetigung vor jeder Aenderung.
/weekly-design-batch
Liest Markenprofil und aktuelle Designs, dann schlaegt Design-Themen und Ordnerziele fuer die kommende Woche vor.
/audit-gallery
Geht aktuelle Designs mit list_designs durch und markiert Elemente, die vom aktiven Markenprofil abweichen. Nur lesend.
/brand-sync
Vergleicht Designs mit dem aktiven Markenprofil und zeigt Luecken auf. Schlaegt Aktualisierungen vor; Sie genehmigen, bevor sich etwas aendert.
/regenerate-with-style
Ein bestehendes Design in einem anderen Stil neu generieren. Ruft get_asset, dann list_skills bei Bedarf, dann generate_design auf.
Discovery- und OAuth-Endpoints
Standardkonformes Metadaten-Dokument, damit jeder MCP-Client sich automatisch konfigurieren kann.
GET /.well-known/oauth-protected-resource/apiRFC 9728GET /.well-known/oauth-authorization-serverRFC 8414GET /oauth/.well-known/openid-configurationOIDCPOST /oauth/regDynamic Client Registration (RFC 7591)GET /oauth/authAuthorize (PKCE-S256 required)POST /oauth/tokenToken exchange
