Das Model Context Protocol ist ein offener Standard, um KI-Assistenten Werkzeuge zu geben. Gradiently betreibt einen gehosteten MCP-Server unter https://gradiently.design/api/mcp. Verbinde ihn einmal mit einem API-Schlüssel, und dein Assistent kann die Werkzeuge von Gradiently aufrufen, während du mit ihm sprichst. Jedes Werkzeug stellt dieselben API-Anfragen, die dein eigener Code stellen würde, und hat daher dieselben Berechtigungen, Lizenzen, Credits und Limits.
Bevor du dich verbindest
- Erstelle einen Schlüssel unter Einstellungen › API und Agenten (siehe API-Schlüssel und Scopes). Der Schlüssel entscheidet, in welchem Arbeitsbereich der Assistent arbeitet und welche Werkzeuge funktionieren.
- Jede Anfrage an den Server muss den Schlüssel als
Authorization: Bearer gr_live_…mitschicken, auch die erste. Ohne ihn antwortet der Server mit 401. - Der Server spricht Streamable HTTP, zustandslos, mit JSON-Antworten. Er braucht keine Sitzung und hat keinen separaten Event-Stream, den du öffnen müsstest.
- Der Server akzeptiert nur API-Schlüssel. Eine Anmeldung per OAuth bietet er nicht an.
Claude Code verbinden
Füg Gradiently als Remote-Server über HTTP hinzu, mit deinem Schlüssel im Header. Bewahr den Schlüssel in einer Umgebungsvariable auf, damit er nie in deinem Shell-Verlauf oder einer committeten Datei landet.
export GRADIENTLY_API_KEY="gr_live_…"
claude mcp add --transport http gradiently https://gradiently.design/api/mcp \
--header "Authorization: Bearer $GRADIENTLY_API_KEY"Starte eine neue Sitzung in Claude Code und bitte es, die Werkzeuge von Gradiently aufzulisten, um die Verbindung zu prüfen. Meldet es einen Authentifizierungsfehler, wurde der Schlüssel falsch eingegeben oder widerrufen, oder sein Ersteller ist kein Inhaber oder Admin des Arbeitsbereichs mehr.
Andere Clients
Jeder Client, der einen Remote-MCP-Server über Streamable HTTP hinzufügen und einen eigenen Request-Header senden kann, kann Gradiently mit derselben URL und demselben Header nutzen. Ob deiner das kann, hängt vom Client und seiner Version ab.
- Claude Desktop und claude.ai fügen Remote-Server als benutzerdefinierte Connectors hinzu. Wenn du im Connector-Formular einen Authorization-Header setzen kannst, nimm die URL und den Header von oben. Bietet es nur eine Anmeldung per OAuth an, lässt sich Gradiently dort noch nicht verbinden.
- ChatGPT und andere Assistenten: dieselbe Regel. Wo der Client Remote-MCP-Server mit einem Bearer-Header unterstützt, verbinde ihn mit der URL und deinem Schlüssel.
- Clients, die über eine JSON-Datei konfiguriert werden, akzeptieren oft die Form unten, die auch in den Einstellungen unter Einen MCP-Client verbinden steht. Das genaue Format findest du in der Dokumentation deines Clients.
{
"mcpServers": {
"gradiently": {
"url": "https://gradiently.design/api/mcp",
"headers": { "Authorization": "Bearer gr_live_…" }
}
}
}Wie sich die Werkzeuge verhalten
- Jedes Werkzeug gibt sein Ergebnis als JSON-Text zurück. Wenn etwas scheitert, gibt das Werkzeug stattdessen die Fehlermeldung der API zurück, etwa zu einem fehlenden Scope oder einer unbekannten Vorlage.
- Werkzeuge, die eine Marke brauchen, nehmen optional
personality(ihre ID oder ihren Slug). Ohne diese Angabe nutzen sie die erste Marke des Arbeitsbereichs. - Werkzeuge, die ein Design speichern, geben seinen Studio-Link zurück, die Adresse
/studio/<id>des Designs auf gradiently.design. - Mehrere Werkzeuge schlagen deine Marken zuerst über
/api/menach, was sowohlworkspaces:readals auchdesigns:readbraucht. Bei diesen Werkzeugen stehen unten beide Scopes. - Ein Werkzeugaufruf zählt gegen das Ratenlimit deines Schlüssels einmal für die MCP-Anfrage und einmal für jede API-Anfrage, die das Werkzeug stellt.
Marks
| Werkzeug | Was es tut | Eingaben | Scopes |
|---|---|---|---|
search_marks | Durchsucht den öffentlichen Markt nach Name oder Code. Gibt Farben, Materialien, Status und Halter zurück. | q, tone (dark oder light), limit (1 bis 120, Standard 24), alle optional | marks:read |
get_mark | Ein Mark und sein vollständiges Rezept. | code (ein Code oder eine ID) | marks:read |
list_marks | Marks, die für diesen Arbeitsbereich gehalten werden, mit Lizenzstatus, und deine Entwürfe darin. | keine | marks:read |
claim_mark | Sichert einen verfügbaren Mark. Der Ersteller des Schlüssels hält ihn, nie der Arbeitsbereich. | code | marks:read, marks:claim |
make_mark | Baut ein Mark-Rezept aus einer Absicht oder bearbeitet eines, mit Prüfung von Farbe und Lesbarkeit und dem ähnlichsten Mark im Markt. Speichert nichts. | spec, oder recipe und edit | marks:read |
save_mark | Speichert ein Rezept als deinen privaten Mark-Entwurf oder aktualisiert einen Entwurf, der dir gehört. Gibt seinen Forge-Link zurück. | name, recipe, id (optional) | brand:generate |
export_mark | Rendert einen Mark für sich allein als PNG, bis zu 4096 px pro Seite. | mark, width, height, personality | workspaces:read, designs:read, designs:write |
list_mark_versions | Die gespeicherten Versionen eines Entwurfs, die neueste zuerst. Nur der Ersteller des Marks sieht sie. | mark, cursor | marks:read |
save_mark_version | Bewahrt einen Entwurf im aktuellen Zustand oder ein angegebenes Rezept als benannte Version auf. | mark, label, recipe | brand:generate |
restore_mark_version | Macht eine Version wieder zum Entwurf. Der aktuelle Zustand wird vorher als Version aufbewahrt. | mark, version | brand:generate |
update_mark_version | Benennt eine Version um oder markiert sie mit einem Stern. Versionen mit Stern bleiben erhalten. | mark, version, label, starred | brand:generate |
delete_mark_version | Löscht eine Version, nie die veröffentlichte. | mark, version | brand:generate |
Ein Sichern, das eine Zahlung braucht, scheitert mit dem Hinweis, dass ein Checkout nötig ist; schließ es in Gradiently ab. Ein Schlüssel kann nichts bezahlen.
Marken und Arbeitsbereich
| Werkzeug | Was es tut | Eingaben | Scopes |
|---|---|---|---|
generate_brand | Erstellt Markenvorschläge aus einem Namen und einer Beschreibung. Dieselbe Eingabe ergibt immer dieselben Vorschläge. | input: name, description, industry, tone, colours, count, nonce | brand:generate |
adopt_brand | Macht aus einem Vorschlag in einem Schritt einen Mark-Entwurf, eine Marke und drei Startdesigns. | input (unverändert), key | brand:generate |
list_personalities | Die Marken des Arbeitsbereichs mit ihren IDs. | keine | workspaces:read, designs:read |
create_personality | Erstellt eine Marke mit Namen. | name | personalities:write |
get_brand_profile | Was eine Marke ist, für wen sie ist, ihr Ton, Dos and Don’ts und Schriften. | personality | workspaces:read, designs:read |
update_brand_profile | Ersetzt das Profil einer Marke. Der Designer liest es vor jedem Design. | personality, profile | workspaces:read, designs:read, personalities:write |
my_workspace | Du, die Marken des Arbeitsbereichs mit den Codes ihrer Marks und die Marks, die für ihn gehalten werden. | keine | workspaces:read, designs:read, marks:read |
list_workspaces | Der Arbeitsbereich des Schlüssels und deine Rolle darin. | cursor | workspaces:read |
invite_member | Verschickt per E-Mail eine sieben Tage gültige Einladung in den Arbeitsbereich. | workspaceId, email, role (admin, editor oder viewer) | members:write |
tone nimmt bis zu drei der Werte calm, bold, warm, cool, playful, luxe, natural, technical, editorial und nocturnal an; eine Anfrage mit mehr wird abgelehnt. colours nimmt bis zu acht Hex-Farben an, und count fordert einen bis acht Vorschläge an; mehr davon wird ebenfalls abgelehnt. Um einen Vorschlag zu übernehmen, schick genau die Eingabe, die ihn erzeugt hat, zusammen mit dem key des Vorschlags: Der Server erzeugt den Vorschlag aus dieser Eingabe neu und vertraut nie einem Rezept, das der Client schickt.
Gestalten
| Werkzeug | Was es tut | Eingaben | Scopes |
|---|---|---|---|
design | Bittet den Designer von Gradiently, aus einer einfachen Anfrage ein Design zu machen oder eines zu ändern. Er liest das Markenprofil und den Mark, gestaltet, prüft und speichert. | request, personality, size, designId, scope, selection | workspaces:read, designs:read, designs:write |
create_designs | Erstellt im Hintergrund eine Reihe von bis zu zwölf Designs aus einem Briefing. | brief, items (size, brief, title), title, personality, mark, wait | workspaces:read, designs:read, designs:write |
get_design_set | Der Fortschritt einer Reihe und der Studio-Link jedes Designs, sobald es existiert. | id | designs:read |
stop_design_set | Stoppt eine laufende Reihe. Bereits fertige Designs bleiben gespeichert. | id | designs:write |
compose_design | Setzt deinen Text mit der Layout-Engine und speichert das Design. Gibt Prüfhinweise zurück, die du beheben solltest. | composition, personality, designId, title | workspaces:read, designs:read, designs:write |
find_templates | Durchsucht die handgemachten Designs von Gradiently. Gibt bis zu sechs zurück, mit Bild und ihren Platzhaltern. | query, size | jeder Schlüssel |
use_template | Macht aus einer Vorlage ein gespeichertes Design und behält ihre Komposition bei. | template, text, photos, icons, hide, personality, designId | workspaces:read, designs:read, designs:write |
list_templates | IDs der Startvorlagen mit den IDs ihrer Textelemente und alle Größenvorgaben. | keine | jeder Schlüssel |
create_design | Erstellt ein Design aus der ID einer Startvorlage, einer Größenvorgabe und Text, zugeordnet nach Element-ID. | template, size, copy, look, personality | workspaces:read, designs:read, designs:write |
design und create_designs verbrauchen die KI-Credits des Arbeitsbereichs, so wie der Designer im Studio. Ist das Guthaben zu niedrig, scheitern sie mit einer entsprechenden Meldung; lade unter Einstellungen › KI-Credits auf. Pro Person laufen höchstens zwei Reihen gleichzeitig, und eine fertige Reihe bleibt etwa zwanzig Minuten lang abrufbar. Die Designs selbst bleiben erhalten.
Eine Komposition nennt eine size (die ID einer Vorgabe wie ig-post, x-post oder li-banner, oder {w, h} in Pixeln), ein layout (statement, editorial, poster, split, stat, quote, list, event oder minimal) und blocks in Lesereihenfolge, jeweils mit einer role wie headline, body oder cta und ihrem 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. Die Antwort enthält die ID des Designs, seinen Studio-Link, Prüfhinweise und die platzierten Elemente.Bearbeiten und exportieren
| Werkzeug | Was es tut | Eingaben | Scopes |
|---|---|---|---|
list_designs | Die gespeicherten Designs einer Marke mit Studio-Links. | personality | workspaces:read, designs:read |
get_design | Größe, Seiten und jedes Element eines Designs mit seinen Eigenschaften. Lange Designs lassen sich nach Seite, Art, Name oder Text filtern. | id, page, kind, name, text | designs:read |
edit_design | Ändert ein Design mit bis zu 100 Operationen, wie es eine Person im Studio tun würde, und speichert es. | id, ops, page | designs:write |
update_design_text | Ersetzt die Worte ausgewählter Textelemente und behält das Layout bei. | id, text (Element-ID zu Worten) | designs:read, designs:write |
resize_copies | Speichert Kopien in bis zu acht anderen Größen, neu angeordnet wie im Studio. Das Original bleibt unverändert. | id, sizes | designs:read, designs:write |
wear_mark | Gibt einem Design einen Mark oder macht ihn zum Mark einer Marke für neue Designs. | mark, und design oder personality | siehe unten |
render_design | Rendert ein gespeichertes Design mit der Engine des Studios als PNG oder PDF. Gibt die Datei als Base64 zurück. | id, width, height, format, page | designs:read |
export_design_link | Veröffentlicht einen Ansichtslink, /d/<id>, den jeder öffnen kann, der ihn hat. | id | designs:write |
wear_mark auf einem Design braucht designs:read und designs:write. Um einen Mark zum Mark einer Marke zu machen, braucht es workspaces:read, designs:read und personalities:write sowie einen Mark, den du mit aktiver Lizenz hältst. Wenn du den Mark über seinen Code angibst, brauchst du außerdem marks:read.
render_design nimmt width und height von 1 bis 4096 Pixeln und format png oder pdf. page zählt ab 0: PNG rendert standardmäßig die erste Seite, PDF alle Seiten. Ein PDF behält jede Seite in ihrer Größe aus dem Studio, die angefragte Größe muss also passen. Zum Rendern braucht es für den Mark des Designs dieselbe Exportlizenz wie im Studio, und das Design wird dabei nie veröffentlicht oder verändert.
Beispiel-Prompts
- „Finde dunkle Marks mit Chrom im Markt und zeig mir die drei, die Dunkelpetrol am nächsten kommen.“ Nutzt
search_marks. - „Generiere Markenrichtungen für Hearth, eine Bäckerei im Viertel, ruhig und warm, und übernimm die mit der sanftesten Palette.“ Nutzt
generate_brandundadopt_brand. - „Schmiede einen Mark namens Night Harbour: ein leerer Grund, Marineblau bis Natriumorange, eine ruhige Körnungsebene. Beheb alles, was die Prüfung anmerkt, und speichere ihn dann.“ Nutzt
make_markundsave_mark. - „Ändere die Überschrift in Design 4f1c… zu ‚Einlass ab sieben‘ und mach Kopien für eine Instagram-Story und einen X-Post.“ Nutzt
get_design,update_design_textundresize_copies. - „Rendere Design 4f1c… als PNG mit 1080 mal 1350 und speichere es als launch.png.“ Nutzt
render_design. - „Mach ein Poster für unsere Sonnwendparty auf der Dachterrasse, 21. Juni, von Sonnenuntergang bis Sonnenaufgang.“ Nutzt
design, dasworkspaces:readbraucht.
Die vollständige Referenz der Endpunkte hinter diesen Werkzeugen steht unter API-Referenz. Für alles andere schick uns eine Anfrage.

