Référence des outils
Chaque outil exposé par le serveur MCP de DesignerBox, avec ses entrées, son format de réponse et un exemple prêt à copier.
Authentification
OAuth (recommande pour les clients IA)
Les clients IA effectuent l'enregistrement dynamique de client à la première connexion. La page /mcp/connect le fait automatiquement. Votre client reçoit un jeton d'accès de 30 jours.
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 créations de l'équipe 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
Récupérer les métadonnées complètes d'une création incluant titre, dossier, références de profil de marque et date de création.
Arguments
designIdRetourne
Un objet avec les métadonnées complètes de la création : id, title, folderId, brandProfileId, createdAt, updatedAt.
Exemple
{"jsonrpc":"2.0","method":"tools/call","id":2,
"params":{"name":"get_design","arguments":{"designId":"<id>"}}}
search_designs
Recherche plein texte dans les titres et descriptions des créations de l'équipe 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'équipe actuelle avec voix, thèmes, 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'équipe active. Utile pour cibler list_designs sur un dossier spécifique.
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 paramètre de langue optionnel pour les labels de catégorie.
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 équipes auxquelles appartient l'utilisateur authentifié, avec l'équipe active marquée.
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, catégorie ou intention. Retourne catégories, scope et descriptions.
Arguments
All optional. Call with no arguments to list every available tool.
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
Générer une image d'avatar IA à partir d'un prompt textuel. Requiert des crédits 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'équipe active pour ce jeton Bearer. L'utilisateur doit en être membre. Effet immédiat 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 modifiés] et les valeurs actuelles après 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":"<uuid>"}}}
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":"<uuid>"}}}
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":"<assetId>"}}}
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":"<videoModelId>"}}}
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":"<uuid>"}}}
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":"<workflowId>"}}}
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":"<pipelineId>"}}}
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":"<conversationId>"}}}
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":"<skill>"}}}
list_galleries
Liste les assets de galerie IA (designs générés via generate_design) pour l'équipe et l'utilisateur actifs. Pagination et filtre de catégorie optionnels. Retourne une forme allégée : 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"}}}
Génération cinématographique
generate_cinema_studioPlan payant
Génère des images IA cinématographiques en combinant boîtier, objectif, focale, ouverture et ratio. Synchrone ~30s. Coûte 1 crédit IA par image. Le tier FREE est bloqué. 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 tâche de génération avatar en attente ou en cours. Le remboursement côté service rend les crédits précédemment débités. Les tâches en état terminal (completed ou failed) ne peuvent pas être annulées ; l'appel retourne une erreur structurée.
Arguments
taskUUIDExemple
{"jsonrpc":"2.0","method":"tools/call","id":36,
"params":{"name":"cancel_avatar_task","arguments":{"taskUUID":"<uuid>"}}}
cancel_video_taskDestructif
Annule une tâche de génération vidéo en attente ou en cours. Le remboursement côté service rend les crédits précédemment débités. Les tâches en état terminal (completed ou failed) ne peuvent pas être annulées ; l'appel retourne une erreur structurée.
Arguments
taskUUIDExemple
{"jsonrpc":"2.0","method":"tools/call","id":37,
"params":{"name":"cancel_video_task","arguments":{"taskUUID":"<uuid>"}}}
list_video_tasks
Liste les tâches de génération vidéo de l'utilisateur courant (par utilisateur, parité avec list_avatars). Filtre de statut optionnel (pending, processing, completed, failed, cancelled) et limite (défaut 20, max 100). Utilise get_video_status pour le polling détaillé.
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
Récupère le détail complet d'un seul profil de marque par ID. L'accès inter-équipes est rejeté avec un not-found générique (pas de fuite d'existence). Utilise list_brand_profiles pour énumérer les IDs.
Arguments
brandProfileIdExemple
{"jsonrpc":"2.0","method":"tools/call","id":39,
"params":{"name":"get_brand_profile","arguments":{"brandProfileId":"<uuid>"}}}
get_brand_asset
Récupère le détail complet d'un seul asset de marque par ID. L'accès inter-équipes est rejeté avec un not-found générique (pas de fuite d'existence). Utilise list_brand_assets pour énumérer les IDs.
Arguments
brandAssetIdExemple
{"jsonrpc":"2.0","method":"tools/call","id":40,
"params":{"name":"get_brand_asset","arguments":{"brandAssetId":"<uuid>"}}}
get_photo_pack
Récupère une seule catégorie de photo-pack incluant ses images. Forme catalogue (sans scope d'équipe). Code langue optionnel ; repli sur l'anglais si le locale demandé manque.
Arguments
categoryIdlanguageExemple
{"jsonrpc":"2.0","method":"tools/call","id":41,
"params":{"name":"get_photo_pack","arguments":{"categoryId":"3d-rendered-object"}}}
get_whiteboard
Récupère un seul whiteboard par ID incluant son blob de contenu complet. Les whiteboards sont par utilisateur (créateur uniquement) ; l'accès inter-utilisateurs est rejeté avec un not-found générique.
Arguments
whiteboardIdExemple
{"jsonrpc":"2.0","method":"tools/call","id":42,
"params":{"name":"get_whiteboard","arguments":{"whiteboardId":"<uuid>"}}}
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, crédits IA utilisés / limite, nombre de créations, nom de l'équipe active et nombre de dossiers.
designerbox://brand-profiles/active
Le profil de marque actif de l'équipe actuelle avec les champs pertinents pour le LLM.
designerbox://teams/current
Métadonnées de l'équipe actuelle (teamId, teamName) et nombre total d'équipes disponibles.
designerbox://recent-designs
Les 10 créations les plus récentes de l'équipe active, pré-chargées dans le contexte de Claude.
Workflows nommes
Raccourcis du menu de commandes qui enchaînent plusieurs outils. Choisissez-en un et laissez votre assistant réaliser une tâche en plusieurs étapes avec confirmation avant toute mutation.
/weekly-design-batch
Lit le profil de marque et les créations récentes, puis propose des thèmes et objectifs de dossier pour la semaine à venir.
/audit-gallery
Parcourt les créations récentes via list_designs et signale celles qui s'écartent du profil de marque actif. Lecture seule.
/brand-sync
Compare les créations avec le profil de marque actif et identifie les lacunes. Suggère des mises à 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
Pilotez votre flux de travail de design depuis n importe quel assistant IA
Recherchez des créations, explorez des packs de photos, mettez à jour des profils de marque et générez des avatars en discutant avec Claude ou Cursor. Une connexion sécurisée, toutes les fonctionnalités DesignerBox.