Authentification
Chaque requete vers /api necessite un en-tete Authorization avec un jeton Bearer. Vous avez deux facons d en obtenir un.
OAuth (recommande pour les clients IA)
Les clients IA effectuent l enregistrement dynamique de client a la premiere connexion. La page /mcp/connect le fait automatiquement. Votre client recoit un jeton d acces de 30 jours.
Cle API
Pour les scripts et la CI, generez une cle API personnelle dans l application DesignerBox sous Compte / Cles API. La cle commence par apikey_.
Point de terminaison
Tous les appels d outils vont vers un unique endpoint JSON-RPC 2.0 via HTTPS POST.
Outils
list_designs
Lister les creations de l equipe actuelle, avec filtre de dossier optionnel et pagination.
Arguments
limitfolderIdRetourne
Un objet avec designs: [{id, title, folderId, brandProfileId, createdAt, updatedAt}].
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":1,
"params":{"name":"list_designs","arguments":{"limit":10}}}
get_design
Recuperer les metadonnees completes d une creation incluant titre, dossier, references de profil de marque et date de creation.
Arguments
designIdRetourne
Un objet avec les metadonnees completes de la creation : id, title, folderId, brandProfileId, createdAt, updatedAt.
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":2,
"params":{"name":"get_design","arguments":{"designId":""}}}
search_designs
Recherche plein texte dans les titres et descriptions des creations de l equipe active.
Arguments
querylimitRetourne
Un objet avec designs: [{id, title, folderId, snippet, updatedAt}].
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":3,
"params":{"name":"search_designs","arguments":{"query":"logo","limit":10}}}
list_brand_profiles
Retourner tous les profils de marque de l equipe actuelle avec voix, themes, niche et industrie.
Arguments
Aucun argument.
Retourne
Un objet avec profiles: [{id, name, brandVoice, mainThemes, primaryNiche, industry, isActive}].
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":4,
"params":{"name":"list_brand_profiles","arguments":{}}}
list_folders
Lister les dossiers dans l espace de travail de l equipe active. Utile pour cibler list_designs sur un dossier specifique.
Arguments
Aucun argument.
Retourne
Un objet avec folders: [{id, name, designCount, createdAt}].
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":5,
"params":{"name":"list_folders","arguments":{}}}
list_photo_packs
Parcourir les packs de photos disponibles. Accepte un parametre de langue optionnel pour les labels de categorie.
Arguments
languageRetourne
Un objet avec packs: [{id, name, category, imageCount, language}].
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":6,
"params":{"name":"list_photo_packs","arguments":{}}}
list_teams
Retourner les equipes auxquelles appartient l utilisateur authentifie, avec l equipe active marquee.
Arguments
Aucun argument.
Retourne
Un objet avec currentTeamId et teams: [{teamId, teamName, isCurrent}].
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":7,
"params":{"name":"list_teams","arguments":{}}}
get_plan_limits
Lire le niveau d abonnement actuel et les quotas par niveau (stockage et credits IA). Le bloc aiCredits imbrique les credits mensuels de l abonnement, purchasedBalance des packs ponctuels, total et solde disponible. Disponible sur tous les plans.
Arguments
Aucun argument.
Retourne
Un objet avec tier, isPaid, isTrial, upgradeUrl, limits.storage ({limit, current, exceeded}), limits.aiCredits ({monthly:{limit,current,exceeded}, purchasedBalance, total, available}) et creditsAvailable ({monthly, purchasedBalance, total}). Avec ULTRA Unlimited, limits.aiCredits.monthly.limit et limits.aiCredits.total valent -1, limits.aiCredits.available est null, et creditsAvailable.monthly et creditsAvailable.total sont null. purchasedBalance est toujours un nombre (zero sans packs).
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":8,
"params":{"name":"get_plan_limits","arguments":{}}}
get_plan
Lire le nom du plan, le cycle de facturation (mensuel ou annuel), le statut de l abonnement Stripe, la devise, la date de renouvellement, la fin d essai et le nombre de sieges. Complement de get_plan_limits. Disponible sur tous les plans sans cout de credits IA.
Arguments
Aucun argument.
Retourne
Un objet avec tier, isPaid, isTrial, billingCycle (mensuel ou annuel ou null), status (statut Stripe), currency, renewalDate (ISO 8601), trialEnd (ISO 8601 ou null), quantity (sieges ou null), cancelAtPeriodEnd et upgradeUrl.
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":43,
"params":{"name":"get_plan","arguments":{}}}
search_tools
Rechercher le catalogue d outils MCP par texte, categorie ou intention. Retourne categories, scope et descriptions.
Arguments
All optional. Call with no arguments to list all 43 tools.
querycategoryRetourne
Un objet avec totalTools, matchCount, categories et tools: [{name, category, requiresScope, description, useCases, matchedOn: [name|category|description|use_case]}].
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":9,
"params":{"name":"search_tools",
"arguments":{"query":"brand profile"}}}
create_avatarPlan payant
Generer une image d avatar IA a partir d un prompt textuel. Requiert des credits IA et un plan payant.
Arguments
promptstyleclientRequestIdRetourne
Un objet avec taskId, status, imageUrl (quand pret) et creditsUsed.
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":10,
"params":{"name":"create_avatar",
"arguments":{"prompt":"professional headshot, warm lighting"}}}
set_current_team
Changer l equipe active pour ce jeton Bearer. L utilisateur doit en etre membre. Effet immediat pour les outils suivants.
Arguments
teamIdRetourne
Un objet avec teamId, teamName, persisted et une note optionnelle.
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":11,
"params":{"name":"set_current_team",
"arguments":{"teamId":"team_xxxxx"}}}
update_brand_profile
Mettre a jour le profil de marque actif. Champs autorises : brandVoice, mainThemes, contentGoals, contentTypes, primaryNiche, subNiches, industry, industries.
Arguments
brandVoiceOther patchable fields: mainThemes, contentGoals, contentTypes, primaryNiche, subNiches, industry, industries.
Retourne
Un objet avec profileId, name, updated: [noms des champs modifies] et les valeurs actuelles apres le patch.
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":12,
"params":{"name":"update_brand_profile",
"arguments":{"brandVoice":["bold","minimal"]}}}
Avatars
list_avatars
Listez les tâches de génération d'avatar pour l'utilisateur courant (périmètre utilisateur, pas équipe). Filtre de statut optionnel et limite (par défaut 50, max 100).
Arguments
statuslimitExemple
{"jsonrpc":"2.0","method":"tools/call","id":13,
"params":{"name":"list_avatars","arguments":{"status":"completed"}}}
get_avatar
Récupérez le détail complet d'une tâche d'avatar par taskUUID. Renvoie l'état de la tâche, y compris les images générées une fois terminées. Lorsque le teamId est résolu, les accès inter-équipes sont rejetés.
Arguments
taskUUIDExemple
{"jsonrpc":"2.0","method":"tools/call","id":14,
"params":{"name":"get_avatar","arguments":{"taskUUID":""}}}
get_avatar_status
Sondez la progression d'une tâche d'avatar. Renvoie un état succinct (status, progress, message). Utilisez get_avatar pour le détail complet.
Arguments
taskUUIDExemple
{"jsonrpc":"2.0","method":"tools/call","id":15,
"params":{"name":"get_avatar_status","arguments":{"taskUUID":""}}}
Modèles
list_templates
Listez les modèles de contenu regroupés par catégorie. Forme de catalogue (pas par équipe). Passez une langue pour restreindre à une locale ; omettez pour toutes les langues. Utilisez get_template pour le corps complet.
Arguments
languageExemple
{"jsonrpc":"2.0","method":"tools/call","id":16,
"params":{"name":"list_templates","arguments":{"language":"en"}}}
get_template
Récupérez un modèle par id ou slug. Renvoie le corps du modèle pour servir de structure de contenu. id ou slug est requis.
Arguments
idslugExemple
{"jsonrpc":"2.0","method":"tools/call","id":17,
"params":{"name":"get_template","arguments":{"slug":"hero-banner"}}}
Ressources
list_assets
Listez les assets (images, vidéos et fichiers téléversés) de l'équipe active. Filtres optionnels par dossier ou préfixe MIME. Utilisez get_asset pour le détail complet.
Arguments
folderIdpagelimittypeExemple
{"jsonrpc":"2.0","method":"tools/call","id":18,
"params":{"name":"list_assets","arguments":{"type":"image","limit":20}}}
get_asset
Récupérez le détail complet d'un asset par ID. Le service sous-jacent rejette les accès inter-équipes.
Arguments
idExemple
{"jsonrpc":"2.0","method":"tools/call","id":19,
"params":{"name":"get_asset","arguments":{"id":""}}}
list_brand_assets
Listez les assets de marque (logos, polices, palettes et similaires) de l'équipe active. Filtres optionnels par profil de marque, type de fichier, catégorie, étiquettes ou recherche libre. Distinct des profils de marque, qui décrivent voix et thèmes.
Arguments
brandProfileIdfileTypecategorytagssearchExemple
{"jsonrpc":"2.0","method":"tools/call","id":20,
"params":{"name":"list_brand_assets","arguments":{"category":"logo"}}}
Génération IA
generate_imagePlan payant
Générez une ou plusieurs images IA de manière synchrone (~30 secondes). Coûte au moins 1 crédit par image. Le palier FREE est bloqué. Passez clientRequestId pour des relances idempotentes pendant 5 minutes. Renvoie immédiatement les URL des images.
Arguments
promptmodelaspectRationumberResultsnegativePromptclientRequestIdExemple
{"jsonrpc":"2.0","method":"tools/call","id":21,
"params":{"name":"generate_image",
"arguments":{"prompt":"sunset over the alps","aspectRatio":"16:9"}}}
generate_videoPlan payant
Soumettez une tâche de génération vidéo IA. Renvoie immédiatement un taskUUID ; la tâche est traitée de manière asynchrone (adossée à BullMQ). Utilisez get_video_status pour sonder. Le coût en crédits est calculé selon le modèle et la durée. Le palier FREE est bloqué.
Arguments
promptmodeltypedurationresolutionaspectRatioinputImagenegativePromptclientRequestIdExemple
{"jsonrpc":"2.0","method":"tools/call","id":22,
"params":{"name":"generate_video",
"arguments":{"prompt":"a cat surfing","model":""}}}
get_video_status
Sondez la progression d'une tâche de génération vidéo. Renvoie l'état complet et l'URL finale de la vidéo une fois terminée. Adossé à une file BullMQ (vrai asynchrone).
Arguments
taskUUIDExemple
{"jsonrpc":"2.0","method":"tools/call","id":23,
"params":{"name":"get_video_status","arguments":{"taskUUID":""}}}
Photos de stock
search_stock_photos
Recherchez des photos de stock simultanément sur Unsplash, Pexels et Pixabay. Renvoie les résultats par fournisseur ainsi que les erreurs par fournisseur. Recherche uniquement ; pas de listage.
Arguments
querypageperPageExemple
{"jsonrpc":"2.0","method":"tools/call","id":24,
"params":{"name":"search_stock_photos","arguments":{"query":"mountains"}}}
Workflows communautaires et pipelines
list_community_workflows
Listez les workflows publiés par la communauté. Filtrez par catégorie, triez par populaires, récents ou vues, et limitez à les vôtres, équipe ou tous. Utilisez get_community_workflow pour le graphe complet.
Arguments
pagelimitcategorysortsearchfilterExemple
{"jsonrpc":"2.0","method":"tools/call","id":25,
"params":{"name":"list_community_workflows","arguments":{"sort":"recent"}}}
get_community_workflow
Récupérez le détail complet d'un workflow communautaire, y compris son graphe de nœuds et arêtes. Utilisez list_community_workflows pour parcourir.
Arguments
idExemple
{"jsonrpc":"2.0","method":"tools/call","id":26,
"params":{"name":"get_community_workflow","arguments":{"id":""}}}
list_pipelines
Listez les pipelines (canvas de workflow) de l'équipe active. Renvoie une forme allégée avec le nombre de nœuds ; utilisez get_pipeline pour le graphe complet.
Arguments
pagelimitsortExemple
{"jsonrpc":"2.0","method":"tools/call","id":27,
"params":{"name":"list_pipelines","arguments":{}}}
get_pipeline
Récupérez un pipeline (canvas de workflow) par ID, dans le périmètre de l'équipe active. Renvoie le graphe complet de nœuds et arêtes.
Arguments
idExemple
{"jsonrpc":"2.0","method":"tools/call","id":28,
"params":{"name":"get_pipeline","arguments":{"id":""}}}
list_whiteboards
Listez les whiteboards MySpace de l'utilisateur courant, dans le périmètre de l'équipe active. Le contenu du whiteboard est omis dans la vue liste ; utilisez l'endpoint de lecture dédié pour le contenu.
Arguments
Aucun argument.
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":29,
"params":{"name":"list_whiteboards","arguments":{}}}
Conversations et whiteboards
list_conversations
Listez les conversations Assistant IA de l'utilisateur pour l'équipe active. Filtre de statut optionnel (active ou archived) et filtre d'étiquettes. Utilisez get_conversation pour l'historique complet.
Arguments
statuspagelimittagsExemple
{"jsonrpc":"2.0","method":"tools/call","id":30,
"params":{"name":"list_conversations","arguments":{"status":"archived"}}}
get_conversation
Récupérez une conversation Assistant IA avec son historique complet de messages. Les accès inter-utilisateurs et inter-équipes sont rejetés par le service.
Arguments
idExemple
{"jsonrpc":"2.0","method":"tools/call","id":31,
"params":{"name":"get_conversation","arguments":{"id":""}}}
Galeries et skills
generate_designPlan payant
Genere un design de galerie en appliquant une skill a une image source (image-to-image). Synchrone ~30-45s. Coute 1 credit IA par appel. Le tier FREE est bloque. Utilise list_skills pour decouvrir les valeurs skillId valides. Passe clientRequestId pour les retries idempotents sous 5 minutes.
Arguments
sourceImageUrlskillIdclientRequestIdExemple
{"jsonrpc":"2.0","method":"tools/call","id":32,
"params":{"name":"generate_design",
"arguments":{"sourceImageUrl":"https://example.com/photo.jpg","skillId":""}}}
list_galleries
Liste les assets de galerie IA (designs generes via generate_design) pour l equipe et l utilisateur actifs. Pagination et filtre de categorie optionnels. Retourne une forme allegee : assetId, assetUrl, slug, displayName, galleryCategory, createdAt.
Arguments
limitpagecategoryExemple
{"jsonrpc":"2.0","method":"tools/call","id":33,
"params":{"name":"list_galleries","arguments":{"limit":10}}}
list_skills
Liste les skills actives disponibles pour generate_design. Retourne skillId, name, type (image ou video), group et category. Utilise-le pour decouvrir les valeurs skillId valides avant d appeler generate_design.
Arguments
typeExemple
{"jsonrpc":"2.0","method":"tools/call","id":34,
"params":{"name":"list_skills","arguments":{"type":"image"}}}
Generation cinematographique
generate_cinema_studioPlan payant
Genere des images IA cinematographiques en combinant boitier, objectif, focale, ouverture et ratio. Synchrone ~30s. Coute 1 credit IA par image. Le tier FREE est bloque. Passe referenceImageUrl pour basculer en mode reference-image (transfert de style). Passe clientRequestId pour les retries idempotents sous 5 minutes.
Arguments
scenePromptcameraBodylensfocalLengthapertureaspectRatioimageCountreferenceImageUrlclientRequestIdExemple
{"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}}}
Gestion des taches asynchrones
cancel_avatar_taskDestructif
Annule une tache de generation avatar en attente ou en cours. Le remboursement cote service rend les credits precedemment debites. Les taches en etat terminal (completed ou failed) ne peuvent pas etre annulees ; l appel retourne une erreur structuree.
Arguments
taskUUIDExemple
{"jsonrpc":"2.0","method":"tools/call","id":36,
"params":{"name":"cancel_avatar_task","arguments":{"taskUUID":""}}}
cancel_video_taskDestructif
Annule une tache de generation video en attente ou en cours. Le remboursement cote service rend les credits precedemment debites. Les taches en etat terminal (completed ou failed) ne peuvent pas etre annulees ; l appel retourne une erreur structuree.
Arguments
taskUUIDExemple
{"jsonrpc":"2.0","method":"tools/call","id":37,
"params":{"name":"cancel_video_task","arguments":{"taskUUID":""}}}
list_video_tasks
Liste les taches de generation video de l utilisateur courant (par utilisateur, parite avec list_avatars). Filtre de statut optionnel (pending, processing, completed, failed, cancelled) et limite (defaut 20, max 100). Utilise get_video_status pour le polling detaille.
Arguments
statuslimitExemple
{"jsonrpc":"2.0","method":"tools/call","id":38,
"params":{"name":"list_video_tasks","arguments":{"status":"completed"}}}
Detail par recuperation unitaire
get_brand_profile
Recupere le detail complet d un seul profil de marque par ID. L acces inter-equipes est rejete avec un not-found generique (pas de fuite d existence). Utilise list_brand_profiles pour enumerer les IDs.
Arguments
brandProfileIdExemple
{"jsonrpc":"2.0","method":"tools/call","id":39,
"params":{"name":"get_brand_profile","arguments":{"brandProfileId":""}}}
get_brand_asset
Recupere le detail complet d un seul asset de marque par ID. L acces inter-equipes est rejete avec un not-found generique (pas de fuite d existence). Utilise list_brand_assets pour enumerer les IDs.
Arguments
brandAssetIdExemple
{"jsonrpc":"2.0","method":"tools/call","id":40,
"params":{"name":"get_brand_asset","arguments":{"brandAssetId":""}}}
get_photo_pack
Recupere une seule categorie de photo-pack incluant ses images. Forme catalogue (sans scope d equipe). Code langue optionnel ; repli sur l anglais si le locale demande manque.
Arguments
categoryIdlanguageExemple
{"jsonrpc":"2.0","method":"tools/call","id":41,
"params":{"name":"get_photo_pack","arguments":{"categoryId":"3d-rendered-object"}}}
get_whiteboard
Recupere un seul whiteboard par ID incluant son blob de contenu complet. Les whiteboards sont par utilisateur (createur uniquement) ; l acces inter-utilisateurs est rejete avec un not-found generique.
Arguments
whiteboardIdExemple
{"jsonrpc":"2.0","method":"tools/call","id":42,
"params":{"name":"get_whiteboard","arguments":{"whiteboardId":""}}}
Ressources MCP
Les ressources sont un contexte en lecture seule que le client peut recuperer via la methode MCP resources/read. Claude les charge au debut de la conversation.
designerbox://account/summary
Plan, credits IA utilises / limite, nombre de creations, nom de l equipe active et nombre de dossiers.
designerbox://brand-profiles/active
Le profil de marque actif de l equipe actuelle avec les champs pertinents pour le LLM.
designerbox://teams/current
Metadonnees de l equipe actuelle (teamId, teamName) et nombre total d equipes disponibles.
designerbox://recent-designs
Les 10 creations les plus recentes de l equipe active, pre-chargees dans le contexte de Claude.
Workflows nommes
Raccourcis du menu de commandes qui enchainent plusieurs outils. Choisissez-en un et laissez votre assistant realiser une tache en plusieurs etapes avec confirmation avant toute mutation.
/weekly-design-batch
Lit le profil de marque et les creations recentes, puis propose des themes et objectifs de dossier pour la semaine a venir.
/audit-gallery
Parcourt les creations recentes via list_designs et signale celles qui s ecartent du profil de marque actif. Lecture seule.
/brand-sync
Compare les creations avec le profil de marque actif et identifie les lacunes. Suggere des mises a jour; vous approuvez avant tout changement.
/regenerate-with-style
Regenere un design existant dans un style different. Appelle get_asset, puis list_skills si necessaire, puis generate_design.
Endpoints de decouverte et OAuth
Metadonnees conformes aux standards pour que tout client MCP puisse s autoconfigurer.
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
