Bilder generieren
Magic Edit
Video erstellen
Jobs & Credits verfolgen
/mcp, ohne
abschließenden Slash) bedient beide Authentifizierungsmodi. Der Transport ist
zustandslos: Jeder Tool-Aufruf gibt eine einzelne JSON-Antwort zurück, und
Generierungs-Tools liefern sofort eine Job-id, sodass nichts einen langlebigen
Stream offen hält.
In drei Schritten verbunden
Hol dir deine Zugangsdaten
Füge den Server hinzu
https://api.samsa.ai/mcp. Es gibt nichts zu
installieren und keinen lokalen Prozess — siehe deinen Client
unten für die genaue einmalige Einrichtung.Leg los mit dem Erstellen
Authentifizierung
Der MCP-Endpoint akzeptiert zwei Arten von Zugangsdaten auf derselben URL. Wähle die, die zu deinem Client passt:401-Challenge, registriert sich dynamisch (PKCE,
kein Client-Secret) und schickt dich durch einen Consent-Screen, bevor er ein
kurzlebiges Access-Token austauscht. Der interaktive Browser-Consent-Flow ist in
Early Access — wenn ein Login nicht abschließt, sag uns unter
support@samsa.ai Bescheid.Tools
Der Server stellt neun Tools bereit. Die vier Reads (list_models,
get_model, get_job_status, get_credit_balance) und die beiden
Modell-Verwaltungs-Tools (create_model, update_model) sind kostenlos; die drei
Generierungs-Tools kosten Credits aus dem Pool deiner
Organisation, zu denselben Raten wie App und REST API.
Parameter
list_models(category?)
list_models(category?)
category(optional) — filtert auf eines vonstyle,object,person,setting.
id, name,
category und einer presigned thumbnail_url zurück. Verwende die ids oder
Namen als style_id / object_ids / person_ids / setting_ids in
generate_image und generate_video — ein Name wird zu einem für dich
sichtbaren Modell aufgelöst.get_model(model_id)
get_model(model_id)
model_id(erforderlich) — die id des Modells.
create_model(name, category, images, …)
create_model(name, category, images, …)
name(erforderlich) — der Modellname.category(erforderlich) — eines vonstyle,object,person,setting.images(erforderlich) — 1–10 Referenzbilder. Jedes ist entweder eine öffentlichehttps-URL oder ein inline base64-Data-URI (data:image/png;base64,…) —image/jpeg,image/pngoderimage/webp, je ≤ 10 MB.instruction(optional) — die stets angewandte Guidance des Modells (≤ 8000 Zeichen), die als verbindliche (“MUST FOLLOW”) Vorgabe in jede Generierung eingespeist wird, die das Modell komponiert. Siehe Modelltraining.webhook_url(optional) — einehttps-URL, die einmal benachrichtigt wird, sobald das Training einen finalen Status erreicht.
{ id, status: "pending", estimated_credits } zurück;
frage get_job_status(kind="model", id=…) ab (das zusätzlich den
models.read Scope erfordert), bis completed oder failed, und verwende die
Modell-id dann in generate_image / generate_video.
Kostenlos — die Modellerstellung zieht keine Credits ab. Presigned Uploads
großer Dateien sind REST-only (nicht über MCP verfügbar) — nutze dafür
POST /models/prepare.update_model(model_id, …)
update_model(model_id, …)
model_id(erforderlich) — das zu aktualisierende Modell.name(optional) — ein neuer Modellname.default_prompt(optional) — ein neuer Default-Prompt.instruction(optional) — die stets angewandte Guidance des Modells (≤ 8000 Zeichen). Sende einen leeren String, um sie zu löschen.
name, default_prompt oder instruction an;
ausgelassene Felder bleiben unverändert. Synchron — gibt sofort das
vollständige aktualisierte Modell zurück (gleiche Form wie get_model).
Kostenlos.generate_image(prompt, …)
generate_image(prompt, …)
prompt(erforderlich) — der Text-Prompt.style_id,object_ids,person_ids,setting_ids(optional) — ids oder Namen trainierter Modelle auslist_modelszum Komponieren (ein Name wird zu einem für dich sichtbaren Modell aufgelöst).color_palette(optional) — eine anzuwendende Farbpalette, angegeben als Name oder id (wie bei den Referenzen auf trainierte Modelle).num_outputs(1–4, Default1),aspect_ratio(Default"1:1"),resolution(Default"1K";1K/2K/4K).
aspect_ratio akzeptiert 1:1 (Default), 2:3, 3:2, 3:4, 4:3,
4:5, 5:4, 9:16, 16:9, 21:9, 1:4, 4:1, 1:8 und 8:1.Async — gibt sofort { id, status: "pending", estimated_credits }
zurück. Kosten: 5 × num_outputs × Auflösung (1K ×1, 2K ×2, 4K ×4),
abgezogen beim Einreichen.edit_image(prompt, …)
edit_image(prompt, …)
prompt(erforderlich) — wie das Bild bearbeitet werden soll.- Genau eines von
image_id(ein Bild in deinem Samsa-Kontext) oderimage_url(eine öffentliche https-URL). style_id,object_ids,person_ids,setting_ids(optional) — ids oder Namen trainierter Modelle auslist_models, um sie für markenkonforme Edits wiederzuverwenden (ein Name wird zu einem für dich sichtbaren Modell aufgelöst), gleichauf mitgenerate_image.color_palette(optional) — eine anzuwendende Farbpalette, angegeben als Name oder id.engine(optional) —nano_banana_pro(Default),geminioderkontext. Die Angabe einer trainierten-Modell-Referenz oder einer Farbpalette erzwingtnano_banana_pro.
{ id, status: "pending", estimated_credits } zurück.
Kosten: 5 Credits pro output (nano_banana_pro skaliert mit der Auflösung:
1K ×1, 2K ×2, 4K ×4), abgezogen beim Einreichen.generate_video(mode, …)
generate_video(mode, …)
mode(erforderlich) — eines von:image_to_video— animiert einen Startframe. Erfordert genau eines vonimage_id/image_url; optionalend_image_urlbei endframe-fähigen Engines;promptoptional.text_to_video— erfordertprompt.text_to_video_styled— erfordertpromptundstyle_id;object_ids/person_ids/setting_idsoptional, plus eine optionalecolor_palette(Name oder id).
engine(Defaultveo_3_1_lite),duration(Default: die kürzeste von der Engine unterstützte Dauer, in Sekunden),aspect_ratio(Default"16:9"; auch9:16,1:1).
{ id, status: "pending", estimated_credits } zurück.
Kosten: 5 / Sekunde × Engine × Auflösung × Audio-Multiplikatoren; der
styled-Modus addiert pauschal 10 für das Zwischenbild. Siehe
Preise.get_job_status(kind, id)
get_job_status(kind, id)
kind(erforderlich) —image_generation,image_edit,videoodermodel.id(erforderlich) — die Job- oder Modell-id, die ein Submit-Tool zurückgegeben hat.
pending → processing → completed / failed) zurück
und, sobald completed, presigned Ergebnis-URLs, die 24 Stunden gültig sind.
Erfordert den Scope des einreichenden Tools (models.read für
kind: "model").Bei einem abgeschlossenen Bild-Job (image_generation oder
image_edit) enthält die Antwort außerdem das Bild selbst als
herunterskalierte Inline-Vorschau — sodass MCP clients es direkt rendern
können — neben dem Link zum Bild in voller Auflösung. Die Vorschau ist eine
Kopie mit reduzierter Auflösung für die schnelle Anzeige; rufe den Link ab, um
das Original in voller Auflösung zu erhalten.get_credit_balance()
get_credit_balance()
Das Async-Muster
Die drei Generierungs-Tools sind asynchron — sie stellen einen Job in die Warteschlange und kehren sofort zurück, sodass dein Client nie auf ein Rendering warten muss.Einreichen
generate_image, edit_image oder generate_video auf. Es gibt in
Millisekunden { id, status: "pending", estimated_credits, next_step } zurück,
und die geschätzten Credits werden beim Einreichen aus dem Pool deiner
Organisation abgezogen.Abfragen
get_job_status(kind=…, id=…) mit der id auf, die du erhalten hast. Der
Status wechselt pending → processing → completed (oder failed).
Bild-Jobs sind typischerweise in 30 Sekunden bis zwei Minuten fertig, Video in
einer bis fünf.Einsammeln
completed, trägt die Antwort presigned Ergebnis-URLs, die 24 Stunden
gültig sind. Wenn ein Job auf Samsas Seite failed endet, werden die Credits
automatisch an denselben Pool zurückerstattet.Richte deinen Client ein
Fügehttps://api.samsa.ai/mcp zu deinem Client unten hinzu. Claude und
ChatGPT melden sich mit OAuth an; jeder andere Client authentifiziert sich mit
einem API key (Authorization: Bearer samsa_sk_…).
- Claude
- ChatGPT
- Claude Code
- Cursor
- VS Code
- Weitere Clients
Füge den Connector hinzu
https://api.samsa.ai/mcp.Melde dich an
/mcp
aus dem Browser mit Origin: https://claude.ai auf, was Samsa erlaubt, sodass
Discovery und Login ohne zusätzliche Konfiguration funktionieren. Folge auf dem
Desktop Anthropics aktuellen Connector-Anweisungen und verwende dieselbe
Server-URL.Sicherheit, Credits & Zugriff
- Credits.
generate_image,edit_imageundgenerate_videoziehen aus dem gemeinsamen Credit-Pool deiner Organisation zu den Raten der App. Reads sind kostenlos. Prüfe das Guthaben jederzeit mitget_credit_balance. - Scopes. Jedes Tool erfordert einen Scope. Ein API key oder OAuth-Token stellt nur die Tools bereit, die seine Scopes erlauben — schränke einen Key auf genau das ein, was eine Integration braucht.
- Zugriff widerrufen. Ein Admin widerruft einen API key in Settings → API Keys; der Widerruf ist terminal und wird beim allernächsten Aufruf wirksam. Für eine OAuth-Verbindung trenne den Connector in deinem Client (Claude- oder ChatGPT-Connector-Einstellungen); Access-Tokens können auch an Samsas OAuth-Revocation-Endpoint widerrufen werden. Ein widerrufenes Credential funktioniert sofort nicht mehr.
Fehlerbehebung
Wiederholte Login-Aufforderungen oder 401s
Wiederholte Login-Aufforderungen oder 401s
401 ist der Server, der den Client bittet, sich (erneut) zu
authentifizieren.- OAuth-Clients: trenne den Samsa-Connector und verbinde ihn erneut, um den Login neu zu starten. Wenn der Consent nie abschließt, kann es der Early-Access-Browser-Flow sein — sag uns Bescheid.
- API-key-Clients: bestätige, dass der Header exakt
Authorization: Bearer samsa_sk_...lautet und der Key gültig ist — ein fehlender, abgelaufener oder widerrufener Key gibt401 invalid_api_keyzurück. Erstelle im Zweifel einen frischen Key in Settings → API Keys.
Für welche Organisation handle ich?
Für welche Organisation handle ich?
Tool-Aufruf abgelehnt — insufficient credits
Tool-Aufruf abgelehnt — insufficient credits
insufficient_credits-Fehler
zurück, bevor irgendein Job läuft — es wird nichts berechnet. Prüfe
get_credit_balance, dann lade auf oder upgrade in der
Samsa-App. Reads sind immer kostenlos.Rate limited oder zu viele Jobs
Rate limited oder zu viele Jobs
- Request-Rate pro Key — 60 Requests/Minute; ein Überschuss gibt
rate_limitedzurück. - Concurrency pro Organisation — höchstens 5 gleichzeitige Jobs; ein
sechster gibt
too_many_active_jobszurück. Lass Jobs fertig werden (frageget_job_statusab), bevor du weitere einreichst. - MCP-Transport-Concurrency — ein Ansturm gleichzeitiger
/mcp-Requests auf einem einzelnen Worker kann einen transienten429 concurrency_limit_exceededmitRetry-After: 1zurückgeben. Warte eine Sekunde und versuche es erneut.
Ein Tool fehlt oder sagt, ihm fehle ein Scope
Ein Tool fehlt oder sagt, ihm fehle ein Scope
generate_image images.generate. Bearbeite die Scopes
des Keys (oder erstelle einen neuen Key) in Settings → API Keys und
verbinde dich dann neu.
