Autenticazione
Ogni richiesta a /api richiede un header Authorization con un Bearer token. Hai due modi per ottenerne uno.
OAuth (consigliato per i client AI)
I client AI eseguono la Dynamic Client Registration alla prima connessione, poi guidano l'utente attraverso una schermata di consenso OAuth. La pagina /mcp/connect gestisce tutto automaticamente. Il tuo client riceve un token di accesso valido 30 giorni.
Chiave API
Per script e CI, genera una API key personale nell'app DesignerBox in Account / API Keys. La chiave inizia con apikey_ e viene presentata come bearer token come qualsiasi altro.
Endpoint
Tutte le chiamate agli strumenti vanno a un unico endpoint JSON-RPC 2.0 tramite HTTPS POST.
Strumenti
list_designs
Elenca i progetti del team corrente, con filtro cartella e paginazione opzionali.
Argomenti
limitfolderIdRestituisce
Un oggetto con designs: [{id, title, folderId, brandProfileId, createdAt, updatedAt}]. Fino a limit risultati.
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":1,
"params":{"name":"list_designs","arguments":{"limit":10}}}
get_design
Recupera tutti i metadati di un singolo progetto, inclusi titolo, cartella, riferimenti al profilo brand e data di creazione.
Argomenti
designIdRestituisce
Un oggetto con tutti i metadati del progetto: id, title, folderId, brandProfileId, createdAt, updatedAt e gli eventuali dati provider associati.
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":2,
"params":{"name":"get_design","arguments":{"designId":""}}}
search_designs
Ricerca a testo completo tra i titoli e le descrizioni dei progetti del team attivo. Filtri: limit (1-100, default 20).
Argomenti
querylimitRestituisce
Un oggetto con designs: [{id, title, folderId, snippet, updatedAt}]. Snippet contiene il contesto corrispondente.
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":3,
"params":{"name":"search_designs","arguments":{"query":"logo","limit":10}}}
list_brand_profiles
Restituisce tutti i profili brand del team corrente con i campi voice, temi, nicchia e settore.
Argomenti
Nessun argomento.
Restituisce
Un oggetto con profiles: [{id, name, brandVoice, mainThemes, primaryNiche, industry, isActive}].
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":4,
"params":{"name":"list_brand_profiles","arguments":{}}}
list_folders
Elenca le cartelle nel workspace del team attivo. Utile per indirizzare list_designs a una cartella specifica.
Argomenti
Nessun argomento.
Restituisce
Un oggetto con folders: [{id, name, designCount, createdAt}].
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":5,
"params":{"name":"list_folders","arguments":{}}}
list_photo_packs
Esplora i photo pack disponibili. Accetta un parametro lingua opzionale per filtrare le etichette di categoria.
Argomenti
languageRestituisce
Un oggetto con packs: [{id, name, category, imageCount, language}].
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":6,
"params":{"name":"list_photo_packs","arguments":{}}}
list_teams
Restituisce i team di cui l'utente autenticato è proprietario o membro, con il team attivo contrassegnato.
Argomenti
Nessun argomento.
Restituisce
Un oggetto con currentTeamId e teams: [{teamId, teamName, isCurrent}].
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":7,
"params":{"name":"list_teams","arguments":{}}}
get_plan_limits
Leggi il livello di abbonamento corrente e le quote per livello (spazio e crediti AI). Il bucket aiCredits contiene i crediti dell'abbonamento mensile, il purchasedBalance dei pack di crediti una tantum, il tetto totale e la disponibilità residua. Utile prima degli strumenti di modifica per prevedere se la chiamata andrà a buon fine.
Argomenti
Nessun argomento.
Restituisce
Un oggetto con tier, isPaid, isTrial, upgradeUrl, limits.storage ({limit, current, exceeded}), limits.aiCredits ({monthly:{limit,current,exceeded}, purchasedBalance, total, available}) e creditsAvailable ({monthly, purchasedBalance, total}). Per ULTRA Unlimited, limits.aiCredits.monthly.limit e limits.aiCredits.total valgono entrambi -1, limits.aiCredits.available è null e creditsAvailable.monthly e creditsAvailable.total sono entrambi null. purchasedBalance è sempre un numero (zero quando non ci sono pack).
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":8,
"params":{"name":"get_plan_limits","arguments":{}}}
get_plan
Leggi il nome del piano, il ciclo di fatturazione (mensile o annuale), lo stato dell'abbonamento Stripe, la valuta, la data di rinnovo, la fine della prova e il numero di postazioni. Si abbina a get_plan_limits, che restituisce l'utilizzo delle quote. Disponibile su ogni piano senza costo in crediti AI.
Argomenti
Nessun argomento.
Restituisce
Un oggetto con tier, isPaid, isTrial, billingCycle (monthly o yearly o null), status (stato dell'abbonamento Stripe), currency, renewalDate (ISO 8601), trialEnd (ISO 8601 o null), quantity (numero di postazioni o null), cancelAtPeriodEnd e upgradeUrl.
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":43,
"params":{"name":"get_plan","arguments":{}}}
search_tools
Cerca nel catalogo strumenti MCP per query a testo libero, categoria o intento. Restituisce categorie, requiresScope, descrizioni in una riga e i tag di caso d'uso corrispondenti. Gratuito per tutti i piani (superficie di discovery).
Argomenti
All optional. Call with no arguments to list all 43 tools.
querycategoryRestituisce
Un oggetto con totalTools, matchCount, categories: [string[]] e tools: [{name, category, requiresScope, description, useCases, matchedOn: [name|category|description|use_case]}].
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":9,
"params":{"name":"search_tools",
"arguments":{"query":"brand profile"}}}
create_avatarPiano a pagamento
Genera un'immagine avatar AI da un prompt testuale. Restituisce un URL all'immagine generata e l'ID del task. Richiede crediti AI e un piano a pagamento.
Argomenti
promptstyleclientRequestIdRestituisce
Un oggetto con taskId, status, imageUrl (quando pronta) e creditsUsed.
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":10,
"params":{"name":"create_avatar",
"arguments":{"prompt":"professional headshot, warm lighting"}}}
set_current_team
Cambia il team attivo per questo Bearer token. L'utente deve esserne membro. Viene salvato sul token OAuth; la modifica in sessione lo rende effettivo immediatamente per gli strumenti successivi nella stessa conversazione.
Argomenti
teamIdRestituisce
Un oggetto con teamId, teamName, persisted (true se OAuth, false se API key) e una nota opzionale.
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":11,
"params":{"name":"set_current_team",
"arguments":{"teamId":"team_xxxxx"}}}
update_brand_profile
Modifica il profilo brand attivo. Campi consentiti: brandVoice, mainThemes, contentGoals, contentTypes, primaryNiche, subNiches, industry, industries. Qualsiasi altro campo viene ignorato silenziosamente.
Argomenti
brandVoiceOther patchable fields: mainThemes, contentGoals, contentTypes, primaryNiche, subNiches, industry, industries.
Restituisce
Un oggetto con profileId, name, updated: [nomi dei campi modificati] e i valori attuali di brandVoice, mainThemes, contentGoals, contentTypes, primaryNiche, industry dopo la modifica.
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":12,
"params":{"name":"update_brand_profile",
"arguments":{"brandVoice":["bold","minimal"]}}}
Avatar
list_avatars
Elenca i task di generazione avatar dell'utente corrente (a livello utente, non di team). Filtro di stato opzionale e limit (default 50, max 100).
Argomenti
statuslimitEsempio
{"jsonrpc":"2.0","method":"tools/call","id":13,
"params":{"name":"list_avatars","arguments":{"status":"completed"}}}
get_avatar
Recupera tutti i dettagli di un singolo task avatar tramite taskUUID. Restituisce lo stato del task incluse le immagini generate al completamento. L'accesso cross-team viene rifiutato quando teamId è risolto.
Argomenti
taskUUIDEsempio
{"jsonrpc":"2.0","method":"tools/call","id":14,
"params":{"name":"get_avatar","arguments":{"taskUUID":""}}}
get_avatar_status
Interroga l'avanzamento di un task avatar. Restituisce uno snapshot di stato essenziale (status, progress, message). Usa get_avatar per recuperare tutti i dettagli incluse le immagini generate al completamento.
Argomenti
taskUUIDEsempio
{"jsonrpc":"2.0","method":"tools/call","id":15,
"params":{"name":"get_avatar_status","arguments":{"taskUUID":""}}}
Template
list_templates
Elenca i content template raggruppati per categoria. Strutturato come catalogo (non limitato al team). Passa una lingua per restringere i risultati a una singola localizzazione; ometti per tutte le localizzazioni. Usa get_template per il corpo completo.
Argomenti
languageEsempio
{"jsonrpc":"2.0","method":"tools/call","id":16,
"params":{"name":"list_templates","arguments":{"language":"en"}}}
get_template
Recupera un singolo template tramite id o slug. Restituisce il corpo del template da usare come scaffold di contenuto. È obbligatorio uno tra id o slug.
Argomenti
idslugEsempio
{"jsonrpc":"2.0","method":"tools/call","id":17,
"params":{"name":"get_template","arguments":{"slug":"hero-banner"}}}
Asset
list_assets
Elenca gli asset (immagini, video e file caricati) del team attivo. Filtri opzionali per cartella o prefisso di tipo MIME. Usa get_asset per tutti i dettagli.
Argomenti
folderIdpagelimittypeEsempio
{"jsonrpc":"2.0","method":"tools/call","id":18,
"params":{"name":"list_assets","arguments":{"type":"image","limit":20}}}
get_asset
Recupera tutti i dettagli di un singolo asset tramite ID. L'accesso cross-team viene rifiutato dal servizio sottostante.
Argomenti
idEsempio
{"jsonrpc":"2.0","method":"tools/call","id":19,
"params":{"name":"get_asset","arguments":{"id":""}}}
list_brand_assets
Elenca gli asset del brand (logo, font, campioni di palette e simili) del team attivo. Filtri opzionali per profilo brand, tipo di file, categoria, tag o ricerca a testo libero. Diverso dai profili brand, che descrivono voice e temi.
Argomenti
brandProfileIdfileTypecategorytagssearchEsempio
{"jsonrpc":"2.0","method":"tools/call","id":20,
"params":{"name":"list_brand_assets","arguments":{"category":"logo"}}}
Generazione AI
generate_imagePiano a pagamento
Genera una o più immagini AI in modo sincrono (circa 30 secondi). Costa almeno 1 credito AI per immagine. Il livello FREE è bloccato. Passa clientRequestId per tentativi idempotenti entro 5 minuti. Restituisce subito gli URL delle immagini generate.
Argomenti
promptmodelaspectRationumberResultsnegativePromptclientRequestIdEsempio
{"jsonrpc":"2.0","method":"tools/call","id":21,
"params":{"name":"generate_image",
"arguments":{"prompt":"sunset over the alps","aspectRatio":"16:9"}}}
generate_videoPiano a pagamento
Invia un task di generazione video AI. Restituisce subito un taskUUID; il task viene elaborato in modo asincrono (supportato da BullMQ). Usa get_video_status per verificarne il completamento. Il costo in crediti è calcolato in base al modello e alla durata. Il livello FREE è bloccato.
Argomenti
promptmodeltypedurationresolutionaspectRatioinputImagenegativePromptclientRequestIdEsempio
{"jsonrpc":"2.0","method":"tools/call","id":22,
"params":{"name":"generate_video",
"arguments":{"prompt":"a cat surfing","model":""}}}
get_video_status
Interroga l'avanzamento di un task di generazione video. Restituisce lo stato completo del task incluso l'URL finale del video al completamento. Supportato da una coda BullMQ (asincrono reale).
Argomenti
taskUUIDEsempio
{"jsonrpc":"2.0","method":"tools/call","id":23,
"params":{"name":"get_video_status","arguments":{"taskUUID":""}}}
Foto stock
search_stock_photos
Cerca foto stock su Unsplash, Pexels e Pixabay simultaneamente. Restituisce i risultati di ogni provider più gli eventuali errori per provider. Solo ricerca; nessun elenco o esplorazione.
Argomenti
querypageperPageEsempio
{"jsonrpc":"2.0","method":"tools/call","id":24,
"params":{"name":"search_stock_photos","arguments":{"query":"mountains"}}}
Workflow della community e pipeline
list_community_workflows
Elenca i workflow pubblicati dalla community. Filtra per categoria, ordina per popolari, recenti o visualizzazioni e limita a mine, team o all. Usa get_community_workflow per il grafo completo.
Argomenti
pagelimitcategorysortsearchfilterEsempio
{"jsonrpc":"2.0","method":"tools/call","id":25,
"params":{"name":"list_community_workflows","arguments":{"sort":"recent"}}}
get_community_workflow
Recupera tutti i dettagli di un workflow della community incluso il grafo di nodi e collegamenti. Usa list_community_workflows per l'esplorazione.
Argomenti
idEsempio
{"jsonrpc":"2.0","method":"tools/call","id":26,
"params":{"name":"get_community_workflow","arguments":{"id":""}}}
list_pipelines
Elenca le pipeline (canvas dei workflow) del team attivo. Restituisce una struttura essenziale con il numero di nodi; usa get_pipeline per il grafo completo.
Argomenti
pagelimitsortEsempio
{"jsonrpc":"2.0","method":"tools/call","id":27,
"params":{"name":"list_pipelines","arguments":{}}}
get_pipeline
Recupera una pipeline (canvas del workflow) tramite ID, limitata al team attivo. Restituisce il grafo completo di nodi e collegamenti.
Argomenti
idEsempio
{"jsonrpc":"2.0","method":"tools/call","id":28,
"params":{"name":"get_pipeline","arguments":{"id":""}}}
list_whiteboards
Elenca le lavagne MySpace dell'utente corrente, limitate al team attivo. Il contenuto delle lavagne è omesso nella vista elenco; usa l'endpoint di lettura dedicato per il contenuto.
Argomenti
Nessun argomento.
Esempio
{"jsonrpc":"2.0","method":"tools/call","id":29,
"params":{"name":"list_whiteboards","arguments":{}}}
Conversazioni e lavagne
list_conversations
Elenca le conversazioni chat dell'AI Assistant dell'utente per il team attivo. Filtro di stato opzionale (active o archived) e filtro per tag. Usa get_conversation per l'intera cronologia dei messaggi.
Argomenti
statuspagelimittagsEsempio
{"jsonrpc":"2.0","method":"tools/call","id":30,
"params":{"name":"list_conversations","arguments":{"status":"archived"}}}
get_conversation
Recupera una singola conversazione dell'AI Assistant inclusa l'intera cronologia dei messaggi. L'accesso cross-user e cross-team viene rifiutato dal servizio sottostante.
Argomenti
idEsempio
{"jsonrpc":"2.0","method":"tools/call","id":31,
"params":{"name":"get_conversation","arguments":{"id":""}}}
Gallerie e skill
generate_designPiano a pagamento
Genera un design di galleria applicando una skill a un'immagine sorgente (image-to-image). Sincrono ~30-45s. Costa 1 credito AI per chiamata. Il livello FREE è bloccato. Usa list_skills per scoprire i valori skillId validi. Passa clientRequestId per tentativi idempotenti entro 5 minuti.
Argomenti
sourceImageUrlskillIdclientRequestIdEsempio
{"jsonrpc":"2.0","method":"tools/call","id":32,
"params":{"name":"generate_design",
"arguments":{"sourceImageUrl":"https://example.com/photo.jpg","skillId":""}}}
list_galleries
Elenca gli asset di galleria AI (design generati tramite generate_design) per il team e l'utente attivi. Supporta la paginazione e un filtro di categoria opzionale. Restituisce una struttura essenziale: assetId, assetUrl, slug, displayName, galleryCategory, createdAt.
Argomenti
limitpagecategoryEsempio
{"jsonrpc":"2.0","method":"tools/call","id":33,
"params":{"name":"list_galleries","arguments":{"limit":10}}}
list_skills
Elenca le skill attive disponibili per generate_design. Restituisce skillId, name, type (image o video), group e category. Usalo per scoprire i valori skillId validi prima di chiamare generate_design.
Argomenti
typeEsempio
{"jsonrpc":"2.0","method":"tools/call","id":34,
"params":{"name":"list_skills","arguments":{"type":"image"}}}
Generazione cinematografica
generate_cinema_studioPiano a pagamento
Genera immagini AI cinematografiche usando una combinazione di corpo macchina, obiettivo, lunghezza focale, apertura e rapporto d'aspetto. Sincrono ~30s. Costa 1 credito AI per immagine. Il livello FREE è bloccato. Fornisci referenceImageUrl per passare alla modalità reference-image (trasferimento di stile). Passa clientRequestId per tentativi idempotenti entro 5 minuti.
Argomenti
scenePromptcameraBodylensfocalLengthapertureaspectRatioimageCountreferenceImageUrlclientRequestIdEsempio
{"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}}}
Gestione dei task asincroni
cancel_avatar_taskDistruttivi
Annulla un task di generazione avatar in attesa o in corso. Il percorso di rimborso lato servizio restituisce i crediti addebitati in precedenza. I task in stato terminale (completed o failed) non possono essere annullati; la chiamata restituisce un errore strutturato.
Argomenti
taskUUIDEsempio
{"jsonrpc":"2.0","method":"tools/call","id":36,
"params":{"name":"cancel_avatar_task","arguments":{"taskUUID":""}}}
cancel_video_taskDistruttivi
Annulla un task di generazione video in attesa o in corso. Il percorso di rimborso lato servizio restituisce i crediti addebitati in precedenza. I task in stato terminale (completed o failed) non possono essere annullati; la chiamata restituisce un errore strutturato.
Argomenti
taskUUIDEsempio
{"jsonrpc":"2.0","method":"tools/call","id":37,
"params":{"name":"cancel_video_task","arguments":{"taskUUID":""}}}
list_video_tasks
Elenca i task di generazione video dell'utente corrente (a livello utente, in parità con list_avatars). Filtro di stato opzionale (pending, processing, completed, failed, cancelled) e limit (default 20, max 100). Usa get_video_status per i dettagli completi di polling.
Argomenti
statuslimitEsempio
{"jsonrpc":"2.0","method":"tools/call","id":38,
"params":{"name":"list_video_tasks","arguments":{"status":"completed"}}}
Recupero dei dettagli singoli
get_brand_profile
Recupera tutti i dettagli di un singolo profilo brand tramite ID. L'accesso cross-team viene rifiutato con un generico not-found (nessuna rivelazione di esistenza). Usa list_brand_profiles per enumerare gli ID.
Argomenti
brandProfileIdEsempio
{"jsonrpc":"2.0","method":"tools/call","id":39,
"params":{"name":"get_brand_profile","arguments":{"brandProfileId":""}}}
get_brand_asset
Recupera tutti i dettagli di un singolo asset del brand tramite ID. L'accesso cross-team viene rifiutato con un generico not-found (nessuna rivelazione di esistenza). Usa list_brand_assets per enumerare gli ID.
Argomenti
brandAssetIdEsempio
{"jsonrpc":"2.0","method":"tools/call","id":40,
"params":{"name":"get_brand_asset","arguments":{"brandAssetId":""}}}
get_photo_pack
Recupera una singola categoria di photo pack incluse le sue immagini. Strutturato come catalogo (non limitato al team). Codice lingua opzionale; ripiega sull'inglese quando la localizzazione richiesta manca.
Argomenti
categoryIdlanguageEsempio
{"jsonrpc":"2.0","method":"tools/call","id":41,
"params":{"name":"get_photo_pack","arguments":{"categoryId":"3d-rendered-object"}}}
get_whiteboard
Recupera una singola lavagna tramite ID incluso l'intero blob di contenuto. Le lavagne sono a livello utente (solo il creatore); l'accesso cross-user viene rifiutato con un generico not-found.
Argomenti
whiteboardIdEsempio
{"jsonrpc":"2.0","method":"tools/call","id":42,
"params":{"name":"get_whiteboard","arguments":{"whiteboardId":""}}}
Risorse MCP
Le risorse sono contesto in sola lettura che il client può recuperare tramite il metodo MCP resources/read. Claude le recupera all'inizio della conversazione per avere il contesto di account, team e brand senza doverlo richiedere a ogni sessione.
designerbox://account/summary
Piano, crediti AI usati / limite, numero di progetti, nome del team attivo e numero di cartelle. I conteggi sono limitati a 100 ciascuno per un caricamento rapido.
designerbox://brand-profiles/active
Il profilo brand attivo per il team corrente. Restituisce i campi rilevanti per l'LLM: brandVoice, mainThemes, contentGoals, contentTypes, primaryNiche, industry.
designerbox://teams/current
Metadati del team corrente (teamId, teamName) più il conteggio totalTeamsAvailable. Abbinalo a list_teams + set_current_team per cambiare team.
designerbox://recent-designs
I 10 progetti più recenti del team attivo, precaricati nel contesto di Claude così da avere conoscenza immediata della libreria di progetti senza una chiamata a strumenti.
Workflow con nome
Scorciatoie del menu slash che coordinano più strumenti. Scegline una e lascia che il tuo assistente AI segua un compito in più passaggi, con conferma prima di modificare qualsiasi cosa.
/weekly-design-batch
Legge il profilo brand e i progetti recenti, poi propone temi di design e cartelle di destinazione per la settimana in arrivo.
/audit-gallery
Scorre i progetti recenti tramite list_designs e segnala gli elementi che si discostano dal tuo profilo brand attivo. Sola lettura.
/brand-sync
Confronta i progetti con il tuo profilo brand attivo ed evidenzia lacune o campi obsoleti. Propone aggiornamenti; approvi tu prima che qualcosa cambi.
/regenerate-with-style
Rigenera un progetto esistente in uno stile diverso. Chiama get_asset, poi list_skills se necessario, poi generate_design.
Endpoint di discovery e OAuth
Metadati conformi agli standard così qualsiasi client MCP può configurarsi automaticamente.
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
