Il Model Context Protocol è uno standard aperto per dare strumenti agli assistenti IA. Gradiently gestisce un server MCP ospitato all’indirizzo https://gradiently.design/api/mcp. Collegalo una volta con una chiave API, e il tuo assistente potrà chiamare gli strumenti di Gradiently mentre gli parli. Ogni strumento fa le stesse richieste API che farebbe il tuo codice, quindi ha gli stessi permessi, licenze, crediti e limiti.
Prima di collegarti
- Crea una chiave in Impostazioni › API e agenti (vedi Chiavi API e permessi). La chiave decide in quale spazio di lavoro opera l’assistente e quali strumenti funzioneranno.
- Ogni richiesta al server deve portare la chiave come
Authorization: Bearer gr_live_…, compresa la prima. Senza chiave il server risponde 401. - Il server usa Streamable HTTP, senza stato, con risposte JSON. Non richiede una sessione e non ha un flusso di eventi separato da aprire.
- Il server accetta solo chiavi API. Non offre l’accesso tramite OAuth.
Collegare Claude Code
Aggiungi Gradiently come server remoto via HTTP, con la tua chiave nell’header. Tieni la chiave in una variabile d’ambiente, così non finisce mai nella cronologia della shell o in un file di cui fai commit.
export GRADIENTLY_API_KEY="gr_live_…"
claude mcp add --transport http gradiently https://gradiently.design/api/mcp \
--header "Authorization: Bearer $GRADIENTLY_API_KEY"Avvia una nuova sessione di Claude Code e chiedigli di elencare gli strumenti di Gradiently per verificare il collegamento. Se segnala un errore di autenticazione, la chiave è stata scritta male o revocata, oppure chi l’ha creata non è più proprietario o amministratore dello spazio di lavoro.
Altri client
Qualsiasi client che possa aggiungere un server MCP remoto via Streamable HTTP e inviare un header personalizzato può usare Gradiently con lo stesso URL e lo stesso header. Se il tuo può farlo dipende dal client e dalla sua versione.
- Claude Desktop e claude.ai aggiungono i server remoti come connettori personalizzati. Se il modulo del connettore ti permette di impostare un header Authorization, usa l’URL e l’header qui sopra. Se offre solo l’accesso tramite OAuth, per ora Gradiently non si può collegare lì.
- ChatGPT e altri assistenti: vale la stessa regola. Dove il client supporta server MCP remoti con un header bearer, collegalo con l’URL e la tua chiave.
- I client configurati con un file JSON accettano spesso la struttura qui sotto, mostrata anche nelle Impostazioni in Collega un client MCP. Controlla la documentazione del tuo client per il formato esatto.
{
"mcpServers": {
"gradiently": {
"url": "https://gradiently.design/api/mcp",
"headers": { "Authorization": "Bearer gr_live_…" }
}
}
}Come si comportano gli strumenti
- Ogni strumento restituisce il risultato come testo JSON. Quando qualcosa non va, lo strumento restituisce invece il messaggio di errore dell’API, ad esempio un permesso mancante o un modello sconosciuto.
- Gli strumenti che richiedono un brand accettano un
personalityfacoltativo (il suo id o slug). Se manca, usano il primo brand dello spazio di lavoro. - Gli strumenti che salvano un design restituiscono il suo link allo Studio, l’indirizzo
/studio/<id>del design su gradiently.design. - Diversi strumenti cercano prima i tuoi brand tramite
/api/me, che richiede siaworkspaces:readsiadesigns:read. Per questi strumenti, qui sotto sono elencati entrambi i permessi. - Una chiamata a uno strumento conta sul limite di frequenza della tua chiave una volta per la richiesta MCP e una volta per ogni richiesta API fatta dallo strumento.
Mark
| Strumento | Cosa fa | Input | Permessi |
|---|---|---|---|
search_marks | Cerca nel Mercato pubblico per nome o codice. Restituisce colori, materiali, stato e titolare. | q, tone (dark o light), limit (da 1 a 120, 24 se omesso), tutti facoltativi | marks:read |
get_mark | Un Mark e la sua ricetta completa. | code (un codice o un id) | marks:read |
list_marks | I Mark riservati per questo spazio di lavoro, con lo stato della licenza, e le tue bozze al suo interno. | nessuno | marks:read |
claim_mark | Riserva un Mark disponibile. Il titolare è chi ha creato la chiave, mai lo spazio di lavoro. | code | marks:read, marks:claim |
make_mark | Costruisce una ricetta di Mark da un’intenzione, o ne modifica una, con una verifica di colore e leggibilità e il Mark più vicino nel Mercato. Non salva nulla. | spec, oppure recipe ed edit | marks:read |
save_mark | Salva una ricetta come tuo Mark privato in bozza, o aggiorna una bozza di cui sei titolare. Restituisce il suo link alla Forge. | name, recipe, id (facoltativo) | brand:generate |
export_mark | Genera un Mark da solo come PNG, fino a 4096 px per lato. | mark, width, height, personality | workspaces:read, designs:read, designs:write |
list_mark_versions | Le versioni salvate di una bozza, dalla più recente. Le vede solo il creatore del Mark. | mark, cursor | marks:read |
save_mark_version | Conserva una bozza com’è ora, o una ricetta data, come versione con nome. | mark, label, recipe | brand:generate |
restore_mark_version | Ripristina una versione come bozza. Lo stato attuale viene prima conservato come versione. | mark, version | brand:generate |
update_mark_version | Rinomina una versione o la segna con una stella. Le versioni con stella vengono conservate. | mark, version, label, starred | brand:generate |
delete_mark_version | Elimina una versione, mai quella pubblicata. | mark, version | brand:generate |
Una riserva che richiede un pagamento fallisce con un messaggio che indica di completare il checkout; completala in Gradiently. Una chiave non può pagare nulla.
Brand e spazio di lavoro
| Strumento | Cosa fa | Input | Permessi |
|---|---|---|---|
generate_brand | Crea proposte di brand da un nome e una descrizione. Lo stesso input dà sempre le stesse proposte. | input: name, description, industry, tone, colours, count, nonce | brand:generate |
adopt_brand | Trasforma una proposta in un Mark in bozza, un brand e tre design iniziali, in un solo passaggio. | input (invariato), key | brand:generate |
list_personalities | I brand dello spazio di lavoro, con i loro id. | nessuno | workspaces:read, designs:read |
create_personality | Crea un brand con un nome. | name | personalities:write |
get_brand_profile | Cos’è un brand, a chi si rivolge, il suo tono di voce, cosa fare e cosa evitare, e i font. | personality | workspaces:read, designs:read |
update_brand_profile | Sostituisce il profilo di un brand. Il Designer lo legge prima di ogni design. | personality, profile | workspaces:read, designs:read, personalities:write |
my_workspace | Tu, i brand dello spazio di lavoro con i codici dei loro Mark, e i Mark riservati per esso. | nessuno | workspaces:read, designs:read, marks:read |
list_workspaces | Lo spazio di lavoro della chiave e il tuo ruolo al suo interno. | cursor | workspaces:read |
invite_member | Invia via email un invito di sette giorni per entrare nello spazio di lavoro. | workspaceId, email, role (admin, editor o viewer) | members:write |
tone accetta fino a tre valori tra calm, bold, warm, cool, playful, luxe, natural, technical, editorial e nocturnal; una richiesta che ne invia di più viene rifiutata. colours accetta fino a otto colori esadecimali e count chiede da una a otto proposte; oltre questi limiti la richiesta viene rifiutata allo stesso modo. Per adottare una proposta, invia esattamente l’input che l’ha generata insieme alla key della proposta: il server ricrea la proposta da quell’input e non si fida mai di una ricetta inviata dal client.
Progettare
| Strumento | Cosa fa | Input | Permessi |
|---|---|---|---|
design | Chiede al Designer di Gradiently di creare un design, o di modificarne uno, a partire da una richiesta a parole. Legge il profilo del brand e il Mark, progetta, verifica e salva. | request, personality, size, designId, scope, selection | workspaces:read, designs:read, designs:write |
create_designs | Crea in background una serie di fino a dodici design da un solo brief. | brief, items (size, brief, title), title, personality, mark, wait | workspaces:read, designs:read, designs:write |
get_design_set | L’avanzamento di una serie e il link allo Studio di ogni design appena esiste. | id | designs:read |
stop_design_set | Ferma una serie in corso. I design già disegnati restano salvati. | id | designs:write |
compose_design | Impagina i tuoi testi con il motore di impaginazione e salva il risultato. Restituisce i problemi da correggere emersi dalla verifica. | composition, personality, designId, title | workspaces:read, designs:read, designs:write |
find_templates | Cerca tra i design fatti a mano da Gradiently. Ne restituisce fino a sei, con un’immagine e i loro spazi. | query, size | qualsiasi chiave |
use_template | Crea un design salvato da un modello, mantenendone la composizione. | template, text, photos, icons, hide, personality, designId | workspaces:read, designs:read, designs:write |
list_templates | Gli id dei modelli iniziali con gli id dei loro elementi di testo, e ogni formato predefinito. | nessuno | qualsiasi chiave |
create_design | Crea un design da un id di modello iniziale, un formato predefinito e testi indicati per id dell’elemento. | template, size, copy, look, personality | workspaces:read, designs:read, designs:write |
design e create_designs consumano i crediti IA dello spazio di lavoro, come fa il Designer nello Studio. Quando il saldo è troppo basso falliscono con un messaggio che lo dice; ricarica in Impostazioni › Crediti IA. Al massimo due serie per persona vengono eseguite insieme, e una serie finita resta leggibile per circa venti minuti. I design invece restano.
Una composizione indica un size (l’id di un formato predefinito come ig-post, x-post o li-banner, oppure {w, h} in pixel), un layout (statement, editorial, poster, split, stat, quote, list, event o minimal) e i blocks in ordine di lettura, ciascuno con un role come headline, body o cta e il suo text.
{
"composition": {
"size": "ig-post",
"layout": "event",
"blocks": [
{ "role": "eyebrow", "text": "Summer supper club" },
{ "role": "headline", "text": "Long table on the roof" },
{ "role": "details", "text": "", "items": ["Saturday 21 June", "7pm till late"] },
{ "role": "cta", "text": "Book a seat" }
]
}
}compose_design. La risposta contiene l’id del design, il suo link allo Studio, i problemi emersi dalla verifica e gli elementi posizionati.Modificare ed esportare
| Strumento | Cosa fa | Input | Permessi |
|---|---|---|---|
list_designs | I design salvati di un brand con i link allo Studio. | personality | workspaces:read, designs:read |
get_design | Il formato di un design, le pagine e ogni elemento con le sue proprietà. Filtra i design lunghi per pagina, tipo, nome o testo. | id, page, kind, name, text | designs:read |
edit_design | Modifica un design con fino a 100 operazioni, come farebbe una persona nello Studio, e lo salva. | id, ops, page | designs:write |
update_design_text | Sostituisce le parole degli elementi di testo scelti e mantiene l’impaginazione. | id, text (dall’id dell’elemento alle parole) | designs:read, designs:write |
resize_copies | Salva copie in fino a otto altri formati, reimpaginate come fa lo Studio. L’originale non cambia. | id, sizes | designs:read, designs:write |
wear_mark | Mette un Mark su un design, oppure lo rende il Mark di un brand per i nuovi design. | mark, e design o personality | vedi sotto |
render_design | Genera un design salvato in PNG o PDF con il motore dello Studio. Restituisce il file in base64. | id, width, height, format, page | designs:read |
export_design_link | Pubblica un link di visualizzazione, /d/<id>, che chiunque lo abbia può aprire. | id | designs:write |
wear_mark su un design richiede designs:read e designs:write. Rendere un Mark il Mark di un brand richiede workspaces:read, designs:read e personalities:write, e un Mark riservato da te con una licenza attiva. Indicare il Mark con il suo codice richiede anche marks:read.
render_design accetta width e height da 1 a 4096 pixel e format png o pdf. page parte da 0: il PNG genera per impostazione predefinita la prima pagina e il PDF tutte le pagine. Un PDF mantiene ogni pagina al suo formato nello Studio, quindi il formato che chiedi deve corrispondere. La generazione richiede la stessa licenza di esportazione per il Mark del design richiesta dallo Studio, e non pubblica né modifica mai il design.
Esempi di prompt
- «Trova nel Mercato Mark scuri con del cromo e mostrami i tre più vicini al deep teal.» Usa
search_marks. - «Genera direzioni di brand per Hearth, una panetteria di quartiere, calma e accogliente, e adotta quella con la palette più morbida.» Usa
generate_brandeadopt_brand. - «Forgia un Mark chiamato Night Harbour: un fondo vuoto, dal blu navy all’arancione sodio, un solo livello di grana discreto. Correggi tutto ciò che la verifica segnala, poi salvalo.» Usa
make_markesave_mark. - «Cambia il titolo del design 4f1c… in “Porte aperte alle sette” e crea copie per una storia Instagram e un post su X.» Usa
get_design,update_design_texteresize_copies. - «Genera il design 4f1c… come PNG da 1080 per 1350 e salvalo in launch.png.» Usa
render_design. - «Crea un poster per la nostra festa del solstizio in terrazza, 21 giugno, dal tramonto all’alba.» Usa
design, che richiedeworkspaces:read.
Il riferimento completo agli endpoint dietro questi strumenti è in Riferimento API. Per tutto il resto, inviaci una richiesta.

