Ontwikkelaars

MCP en AI-assistenten

De MCP-server van Gradiently geeft een AI-assistent tools om Marks te zoeken, merken en ontwerpen te maken, te bewerken en te renderen. Hij draait op één adres en gebruikt je API-key.

Bijgewerkt 1 oktober 2026

Het Model Context Protocol is een open standaard om AI-assistenten tools te geven. Gradiently draait een gehoste MCP-server op https://gradiently.design/api/mcp. Koppel hem één keer met een API-key, en je assistent kan de tools van Gradiently aanroepen terwijl je met hem praat. Elke tool doet dezelfde API-requests als je eigen code zou doen, dus hij heeft dezelfde rechten, licenties, credits en limieten.

Voordat je koppelt

  • Maak een key aan in Instellingen › API en agents (zie API-keys en rechten). De key bepaalt in welke workspace de assistent werkt en welke tools werken.
  • Elke request naar de server moet de key meesturen als Authorization: Bearer gr_live_…, ook de eerste. Zonder key antwoordt de server met 401.
  • De server spreekt Streamable HTTP, stateless, met JSON-antwoorden. Hij heeft geen sessie nodig en er is geen aparte eventstream om te openen.
  • De server accepteert alleen API-keys. Inloggen via OAuth wordt niet aangeboden.

Claude Code koppelen

Voeg Gradiently toe als externe server via HTTP, met je key in de header. Bewaar de key in een omgevingsvariabele, zodat hij nooit in je shellgeschiedenis of in een gecommit bestand terechtkomt.

bash
export GRADIENTLY_API_KEY="gr_live_…"

claude mcp add --transport http gradiently https://gradiently.design/api/mcp \
  --header "Authorization: Bearer $GRADIENTLY_API_KEY"

Start een nieuwe sessie in Claude Code en vraag om de tools van Gradiently te tonen, om de verbinding te controleren. Meldt hij een authenticatiefout, dan is de key verkeerd getypt of ingetrokken, of is zijn maker geen eigenaar of beheerder van de workspace meer.

Andere clients

Elke client die een externe MCP-server via Streamable HTTP kan toevoegen en een eigen request-header kan meesturen, kan Gradiently gebruiken met dezelfde URL en header. Of de jouwe dat kan, hangt af van de client en de versie.

  • Claude Desktop en claude.ai voegen externe servers toe als aangepaste connectors. Kun je in het connectorformulier een Authorization-header instellen, gebruik dan de URL en header hierboven. Biedt het alleen inloggen via OAuth, dan kun je Gradiently daar nog niet koppelen.
  • ChatGPT en andere assistenten: dezelfde regel. Ondersteunt de client externe MCP-servers met een bearer-header, koppel hem dan met de URL en je key.
  • Clients die je met een JSON-bestand instelt, accepteren vaak de vorm hieronder, die ook in Instellingen staat onder Een MCP-client verbinden. Kijk in de documentatie van je client voor het precieze formaat.
json
{
  "mcpServers": {
    "gradiently": {
      "url": "https://gradiently.design/api/mcp",
      "headers": { "Authorization": "Bearer gr_live_…" }
    }
  }
}

Hoe de tools werken

  • Elke tool geeft zijn resultaat terug als JSON-tekst. Gaat er iets mis, dan geeft de tool in plaats daarvan de foutmelding van de API terug, zoals een ontbrekend recht of een onbekende template.
  • Tools die een merk nodig hebben, nemen een optionele personality (het id of de slug). Zonder merk gebruiken ze het eerste merk van de workspace.
  • Tools die een ontwerp opslaan, geven de Studio-link terug: het adres /studio/<id> van het ontwerp op gradiently.design.
  • Verschillende tools zoeken eerst je merken op via /api/me, waarvoor zowel workspaces:read als designs:read nodig is. Die tools noemen hieronder beide rechten.
  • Een toolaanroep telt mee voor de limiet van je key: één keer voor de MCP-request en één keer voor elke API-request die de tool doet.

Marks

ToolWat hij doetInvoerRechten
search_marksDoorzoekt de openbare Markt op naam of code. Geeft kleuren, materialen, status en houder terug.q, tone (dark of light), limit (1 tot 120, standaard 24), allemaal optioneelmarks:read
get_markEén Mark met zijn volledige recept.code (een code of een id)marks:read
list_marksMarks die voor deze workspace worden gehouden, met de status van de licentie, en je concepten erin.geenmarks:read
claim_markClaimt een beschikbare Mark. De maker van de key wordt de houder, nooit de workspace.codemarks:read, marks:claim
make_markBouwt een Markrecept op basis van een bedoeling, of bewerkt er een, met een beoordeling van kleur en leesbaarheid en de dichtstbijzijnde Mark in de Markt. Slaat niets op.spec, of recipe en editmarks:read
save_markSlaat een recept op als je privé concept-Mark, of werkt een concept van jou bij. Geeft de Forge-link terug.name, recipe, id (optioneel)brand:generate
export_markRendert een Mark op zichzelf als PNG, tot 4096 px per zijde.mark, width, height, personalityworkspaces:read, designs:read, designs:write
list_mark_versionsDe opgeslagen versies van een concept, de nieuwste eerst. Alleen de maker van de Mark ziet ze.mark, cursormarks:read
save_mark_versionBewaart een concept zoals het nu is, of een opgegeven recept, als versie met een naam.mark, label, recipebrand:generate
restore_mark_versionZet een versie terug als concept. De huidige staat wordt eerst als versie bewaard.mark, versionbrand:generate
update_mark_versionHernoemt een versie of geeft er een ster aan. Versies met een ster blijven bewaard.mark, version, label, starredbrand:generate
delete_mark_versionVerwijdert een versie, nooit de gepubliceerde.mark, versionbrand:generate

Een claim waarvoor betaald moet worden, faalt met een melding dat er afgerekend moet worden; rond hem af in Gradiently. Een key kan nergens voor betalen.

Merken en workspace

ToolWat hij doetInvoerRechten
generate_brandMaakt merkkandidaten op basis van een naam en beschrijving. Dezelfde invoer geeft altijd dezelfde kandidaten.input: name, description, industry, tone, colours, count, noncebrand:generate
adopt_brandMaakt van één kandidaat een concept-Mark, een merk en drie startontwerpen, in één stap.input (ongewijzigd), keybrand:generate
list_personalitiesDe merken van de workspace, met hun id’s.geenworkspaces:read, designs:read
create_personalityMaakt een merk met een naam.namepersonalities:write
get_brand_profileWat een merk is, voor wie het is, de toon, wat wel en niet mag, en de lettertypen.personalityworkspaces:read, designs:read
update_brand_profileVervangt het profiel van een merk. De Designer leest het voor elk ontwerp.personality, profileworkspaces:read, designs:read, personalities:write
my_workspaceJij, de merken van de workspace met hun Markcodes, en de Marks die ervoor worden gehouden.geenworkspaces:read, designs:read, marks:read
list_workspacesDe workspace van de key en jouw rol erin.cursorworkspaces:read
invite_memberMailt een uitnodiging om lid te worden van de workspace, zeven dagen geldig.workspaceId, email, role (admin, editor of viewer)members:write

tone accepteert hoogstens drie van calm, bold, warm, cool, playful, luxe, natural, technical, editorial en nocturnal; een request met meer wordt geweigerd. colours accepteert tot acht hexkleuren en count vraagt om één tot acht kandidaten; meer dan dat wordt ook geweigerd. Om een kandidaat over te nemen, stuur je precies de invoer die hem genereerde, met de key van de kandidaat: de server maakt de kandidaat opnieuw op basis van die invoer en vertrouwt nooit een recept dat de client stuurt.

Ontwerpen

ToolWat hij doetInvoerRechten
designVraagt de eigen Designer van Gradiently om op basis van een gewone vraag een ontwerp te maken of te wijzigen. Hij leest het merkprofiel en de Mark, ontwerpt, beoordeelt en slaat op.request, personality, size, designId, scope, selectionworkspaces:read, designs:read, designs:write
create_designsMaakt op de achtergrond een reeks van maximaal twaalf ontwerpen vanuit één briefing.brief, items (size, brief, title), title, personality, mark, waitworkspaces:read, designs:read, designs:write
get_design_setDe voortgang van een reeks en de Studio-link van elk ontwerp zodra het bestaat.iddesigns:read
stop_design_setStopt een lopende reeks. Ontwerpen die al getekend zijn, blijven opgeslagen.iddesigns:write
compose_designMaakt de opmaak van je tekst met de layout-engine en slaat hem op. Geeft punten uit de beoordeling terug om op te lossen.composition, personality, designId, titleworkspaces:read, designs:read, designs:write
find_templatesDoorzoekt de handgemaakte ontwerpen van Gradiently. Geeft er tot zes terug, met een afbeelding en hun vakken.query, sizeelke key
use_templateMaakt een opgeslagen ontwerp van een template en behoudt de compositie.template, text, photos, icons, hide, personality, designIdworkspaces:read, designs:read, designs:write
list_templatesId’s van starttemplates met de id’s van hun tekstelementen, en elk vast formaat.geenelke key
create_designMaakt een ontwerp van een starttemplate-id, een vast formaat en tekst per element-id.template, size, copy, look, personalityworkspaces:read, designs:read, designs:write

design en create_designs gebruiken de AI-credits van de workspace, net als de Designer in de Studio. Is het saldo te laag, dan falen ze met een melding die dat zegt; waardeer op in Instellingen › AI-credits. Per persoon lopen er hoogstens twee reeksen tegelijk, en een afgeronde reeks blijft ongeveer twintig minuten leesbaar. De ontwerpen zelf blijven bestaan.

Een compositie noemt een size (een formaat-id zoals ig-post, x-post of li-banner, of {w, h} in pixels), een layout (statement, editorial, poster, split, stat, quote, list, event of minimal) en blocks in leesvolgorde, elk met een role zoals headline, body of cta en de bijbehorende text.

json
{
  "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" }
    ]
  }
}
Invoer voor compose_design. Het antwoord bevat het id van het ontwerp, de Studio-link, punten uit de beoordeling en de elementen die zijn geplaatst.

Bewerken en exporteren

ToolWat hij doetInvoerRechten
list_designsDe opgeslagen ontwerpen van een merk, met Studio-links.personalityworkspaces:read, designs:read
get_designHet formaat en de pagina’s van een ontwerp, en elk element met zijn eigenschappen. Filter lange ontwerpen op pagina, soort, naam of tekst.id, page, kind, name, textdesigns:read
edit_designWijzigt een ontwerp met maximaal 100 bewerkingen, zoals iemand dat in de Studio zou doen, en slaat het op.id, ops, pagedesigns:write
update_design_textVervangt de tekst van gekozen tekstelementen en behoudt de opmaak.id, text (element-id naar tekst)designs:read, designs:write
resize_copiesSlaat kopieën op in maximaal acht andere formaten, opnieuw opgemaakt zoals de Studio dat doet. Het origineel blijft ongewijzigd.id, sizesdesigns:read, designs:write
wear_markZet een Mark op één ontwerp, of maakt hem de Mark van een merk voor nieuwe ontwerpen.mark, en design of personalityzie hieronder
render_designRendert een opgeslagen ontwerp naar PNG of PDF met de engine van de Studio. Geeft het bestand terug als base64.id, width, height, format, pagedesigns:read
export_design_linkPubliceert een bekijklink, /d/<id>, die iedereen met de link kan openen.iddesigns:write

wear_mark op een ontwerp heeft designs:read en designs:write nodig. Een Mark de Mark van een merk maken vraagt om workspaces:read, designs:read en personalities:write, en om een Mark die jij houdt met een actieve licentie. Noem je de Mark bij zijn code, dan is ook marks:read nodig.

render_design accepteert width en height van 1 tot 4096 pixels en format png of pdf. page telt vanaf 0: PNG rendert standaard de eerste pagina en PDF alle pagina’s. Een PDF houdt elke pagina op het formaat uit de Studio, dus het formaat dat je vraagt, moet daarbij passen. Voor renderen is dezelfde exportlicentie voor de Mark van het ontwerp nodig als in de Studio, en het ontwerp wordt nooit gepubliceerd of gewijzigd.

Voorbeeldprompts

  • “Zoek donkere Marks met chroom erin in de Markt en laat me de drie zien die het dichtst bij diep petrol liggen.” Gebruikt search_marks.
  • “Genereer merkrichtingen voor Hearth, een buurtbakkerij, rustig en warm, en neem de richting met het zachtste palet over.” Gebruikt generate_brand en adopt_brand.
  • “Smeed een Mark die Night Harbour heet: een lege ondergrond, van marineblauw naar natriumoranje, één rustige korrellaag. Los alles op wat de beoordeling aanwijst en sla hem dan op.” Gebruikt make_mark en save_mark.
  • “Verander de kop van ontwerp 4f1c… in ‘Deuren open om zeven uur’ en maak kopieën voor een Instagramstory en een X-post.” Gebruikt get_design, update_design_text en resize_copies.
  • “Render ontwerp 4f1c… als PNG van 1080 bij 1350 en sla het op als launch.png.” Gebruikt render_design.
  • “Maak een poster voor ons zonnewendefeest op het dak, 21 juni, van zonsondergang tot zonsopgang.” Gebruikt design, waarvoor workspaces:read nodig is.

De volledige referentie voor de endpoints achter deze tools staat op API-referentie. Voor al het andere kun je ons een verzoek sturen.

Hulp nodig?

Stuur ons een verzoek met het onderwerp API en MCP, en een mens antwoordt je.

Een verzoek sturen