# SciFig-API und MCP-Server

Erstellen Sie wissenschaftliche Abbildungen, Diagramme und Flussdiagramme per Code oder mit KI-Assistenten. Lesbare Version: https://scifig.ai/de/developers. OpenAPI: https://scifig.ai/api/v1/openapi.json.

## Überblick

Die SciFig API erstellt wissenschaftliche Abbildungen, Diagramme und Flussdiagramme mit denselben Engines, Preisen und Credits wie die Website. Die Basis-URL lautet `https://scifig.ai/api/v1`. Jede Erstellung ist ein Job: Sie erstellen ihn und lesen anschließend seinen Status und seine Ausgaben ab.

KI-Assistenten können SciFig über den MCP-Server unter `https://mcp.scifig.ai/mcp` nutzen (siehe unten „MCP-Server“).

## Authentifizierung

Senden Sie bei jeder Anfrage außer `/pricing`, `/openapi.json` und `/openapi.yaml` den Header `Authorization: Bearer <credential>`.

- Schlüssel mit Schreibrechten benötigen ein aktives Abonnement oder ein positives Paketguthaben und gelten 30, 90 oder 365 Tage. Reine Leseschlüssel können auch unbefristet sein.
- OAuth-Zugriffstoken (`sf_at_…`): Sie werden nach Ihrer Genehmigung an MCP-Clients ausgegeben und sind eine Stunde gültig. Clients, die `offline_access` anfordern, erhalten zusätzlich ein 30 Tage gültiges Aktualisierungstoken (`sf_rt_…`). Den Zugriff einer App widerrufen Sie unter Einstellungen → API-Schlüssel → Verbundene Apps.
- Acht unabhängige Berechtigungen sind einzeln wählbar. Keine schließt eine andere ein; Uploads, Auftrags- und Kontostandsabfragen benötigen jeweils ihre eigene Berechtigung. `images:generate`, `images:edit`, `images:convert`, `charts:generate`, `flowcharts:generate`, `files:write`, `jobs:read`, `credits:read`
- `GET /api/v1/capabilities` benötigt gültige Zugangsdaten, aber keine fachliche Berechtigung. Es liefert nur `granted_scopes`, ohne Guthaben, Tarif oder Kontodaten.
- Alle authentifizierten Aufrufe einschließlich Berechtigungsfehlern werden 30 Tage als Metadaten gespeichert. Keine Prompts, Inhalte, Dateinamen, IP-Adressen oder Zugangsdaten. Bei Plattformausfällen kann die Protokollierung ausfallen. Schlüssel, Aufrufverlauf und verbundene Apps zeigen jeweils 10 Einträge pro Seite. Die Credits beziehen sich auf die Abrechnung des zugehörigen Auftrags; wiederholte Anfragen dürfen nicht als zusätzliche Ausgaben summiert werden.
- Nur zugelassene `CIMD`-Clients dürfen `private_key_jwt` verwenden. Die Signatur wird mit einem öffentlichen Schlüssel geprüft; ein Schutz vor Replay-Angriffen verhindert die Wiederverwendung derselben Assertion. Die anonyme dynamische Registrierung erlaubt weiterhin nur `none` oder `client_secret_basic`.

## Schnellstart

```bash
curl https://scifig.ai/api/v1/images/generations \
  -H "Authorization: Bearer $SCIFIG_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Prefer: wait=25" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Mitochondrial electron transport chain, labelled", "aspect_ratio": "4:3"}'
```

Die Antwort enthält den Job. Solange er noch läuft, lautet der Status `202` mit `Location: /api/v1/jobs/{id}`. Fragen Sie diese URL alle paar Sekunden ab, bis `status` auf `succeeded`, `failed` oder `canceled` steht. Laden Sie anschließend die Ergebnisse über `outputs[].download_url` herunter.

## Konventionen

- Anfragen und Antworten verwenden JSON; Datei-Uploads und Diagrammdaten verwenden `multipart/form-data`. Feldnamen sind in `snake_case` geschrieben.
- Jeder `POST`, der etwas erstellt, benötigt einen `Idempotency-Key`-Header (1–255 sichtbare ASCII-Zeichen). Eine Wiederholung mit demselben Schlüssel und demselben Inhalt liefert denselben Job und berechnet ihn nie zweimal. Derselbe Schlüssel mit anderem Inhalt führt zu `409 IDEMPOTENCY_CONFLICT`. Zwei gleichzeitige Anfragen mit demselben Schlüssel liefern denselben Job oder `409 IDEMPOTENCY_IN_PROGRESS`, solange die andere Anfrage noch angenommen wird. Eine abgelehnte Anfrage (etwa `INSUFFICIENT_CREDITS`) behält ihre Antwort für diesen Schlüssel: Senden Sie sie nach dem Aufladen oder einem Upgrade mit einem neuen Schlüssel. Sobald der Job existiert, enthalten wiederholbare Fehler (`429`, `503`, `409 IDEMPOTENCY_IN_PROGRESS`) oder `500 INTERNAL_ERROR` die Angabe `details.job_id`. Wiederholen Sie mit demselben Schlüssel oder fragen Sie `GET /jobs/{job_id}` ab; verwenden Sie keinen neuen Schlüssel. Wurde ein Job angenommen, konnte aber nicht zurückgelesen werden, lautet die Antwort `202` mit dem Status `queued`.
- `Prefer: wait=N` (1–30 Sekunden) hält die Antwort zurück, bis der Job fertig ist oder die Wartezeit endet.
- Jede Antwort enthält `X-Request-Id`. Fehler verwenden das Format `{"error": {"code", "message", "request_id", "details"}}`.
- Die API unterstützt keine Browserzugriffe über CORS. Rufen Sie sie von einem Server oder Skript aus auf.

## Endpunkte und Credits

| Endpunkt | Zweck | Credits |
| --- | --- | --- |
| POST /images/generations | Wissenschaftliche Illustration erstellen | 50 / 75 / 100 (standard / advanced / premium) |
| POST /images/edits | Bild bearbeiten: per Anweisung, mit Maske zum Neuzeichnen eines Bereichs, weißer Hintergrund, Seitenverhältnis, Farbänderung oder Textersetzung | 50 / 75 / 100; mit Maske oder `replace_text` 100 |
| POST /images/text-detections | Text in einem Bild vor dem Ersetzen erkennen | 0 |
| POST /images/upscales | Auf 2K, 4K oder 8K vergrößern | 50 / 100 / 150 |
| POST /images/conversions | In SVG, PNG, PDF, TIFF oder PPTX konvertieren; Flussdiagramm-SVGs in PNG, PDF, TIFF oder PPTX | SVG 150; andere Formate kostenlos, 200 pro Tag |
| POST /charts/generations | Diagramm aus CSV-, TSV- oder Excel-Daten erstellen | 100 |
| POST /charts/edits | Neueste Version eines Diagramms ändern | 100 |
| POST /flowcharts/generations | Flussdiagramm als SVG erstellen | 100 |
| POST /flowcharts/edits | Neueste Version eines Flussdiagramms ändern | 100 |
| POST /files | Bild, Maske oder Flussdiagrammanhang hochladen | 0 |
| GET /jobs/{id} | Status, Credits und Downloadlinks eines Auftrags | 0 |
| GET /jobs | Ihre neuesten Aufträge, neueste zuerst, mit Cursor-Paginierung | 0 |
| GET /files/{file_id} | Datei herunterladen | 0 |
| GET /credits | Guthaben, Tarif und Aufgabenlimits | 0 |
| GET /pricing | Credit-Preis jeder Operation ohne Authentifizierung | 0 |
| GET /openapi.json | OpenAPI-3.1-Beschreibung ohne Authentifizierung | 0 |
| GET /openapi.yaml | Dieselbe Beschreibung als YAML | 0 |

## Anfragefelder

`POST /images/generations`: `prompt` (erforderlich), `aspect_ratio` (`1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9`), `quality` (`standard`, `advanced`, `premium`), `style`, `palette` (eine Voreinstellungs-ID oder 1–4 `#RRGGBB`-Farben), `reference_file_ids` (bis zu 3). Einige Modelle und Referenzbilder benötigen einen kostenpflichtigen Tarif; die Fehlerantwort weist darauf hin.

`POST /images/edits`: `image` (eine `file_id`) und `operation`. `instruct` (Standard) verwendet `instruction` (bis zu 2000 Zeichen) und optional `mask` (PNG; Weiß markiert den veränderbaren Bereich; mit Maske wird immer das `premium`-Modell genutzt). `white_background` ersetzt den Hintergrund durch reines Weiß. `aspect_ratio` passt das Bild an `aspect_ratio` an. `recolor` wendet `palette` (1–8 `#RRGGBB`-Farben) an oder wählt eine Farbpalette. Alle diese Operationen akzeptieren `quality`. `replace_text` verwendet `text_detection` (die ID aus `POST /images/text-detections` für dasselbe Bild) und `replacements` (`[{"index", "text"}]`) und nutzt immer das `premium`-Modell für Textbearbeitung.

`POST /images/text-detections`: `image`. Liefert `id`, die Bildmaße `width` und `height` sowie `texts` (`index`, `text`, `corners`) in Lesereihenfolge. Kostenlos; es gilt dasselbe Limit wie auf der Website: 20 Erkennungen pro 15 Minuten.

`POST /images/upscales`: `image`, `scale` (`2k`; `4k` erfordert mindestens Starter, `8k` mindestens Plus; ein positives Guthaben aus einem Credit-Paket zählt als Pro).

`POST /images/conversions`: `image`, `format` (`svg`, `png`, `pdf`, `tiff`, `pptx`). Für SVG ist `vector_mode` entweder `editable_text` (Standard) oder `full_vector`; die Quelle ist ein PNG-, JPEG- oder WebP-Bild. Für andere Formate ist `dpi` 300, 600 oder 1000. DPI wird als Metadatum gespeichert und bestimmt die Seitengröße; die Pixel werden nicht neu berechnet (für mehr Pixel zuerst hochskalieren). Die Quelle ist ein PNG- oder JPEG-Bild oder die SVG-Ausgabe eines Flussdiagramms. WebP wird nicht akzeptiert; PNG und TIFF benötigen eine PNG-Quelle. Die SVG-Ausgabe eines Flussdiagramms wird auf dem Server mit Arial und Noto gerendert. `width` (256–4096, Standard 2048) bestimmt die lange Kante in Pixeln; nicht darstellbarer Text wird abgelehnt. Die PPTX-Datei enthält das gerenderte Bild, keine bearbeitbaren Formen.

`POST /charts/generations` (`multipart`): `data` (CSV, TSV, TXT, XLSX oder XLS, bis zu 8 MB; das Trennzeichen in Textdateien wird erkannt), `request` (gewünschtes Diagramm, 1–16.000 Zeichen), optional `chart_types` (kommagetrennt), `journal_style` (`default`, `nature`, `science`, `cell`, `plos`, `acs`), `figure_width` (`single`, `onehalf`, `double`), `color_palette`, `sheet_name` (Tabellenblatt einer Arbeitsmappe mit mehreren Blättern). Unlesbare Daten führen zu `400 INVALID_REQUEST` mit `details.field = data` und dem Parsercode in `details.reason`. Ausgaben: PNG, PDF, TIFF und EPS.

`POST /charts/edits` und `POST /flowcharts/edits`: `job` (ein früherer Diagramm- oder Flussdiagramm-Job) und `instruction` (1–16.000 Zeichen für Diagramme, 1–8.000 für Flussdiagramme). Die Bearbeitung setzt bei der Ausgabe dieses Jobs an und behält Daten, Diagrammtypen und Zeitschriftenstil (Diagramme) beziehungsweise das Seitenverhältnis (Flussdiagramme) bei. Wie im Arbeitsbereich kann nur die neueste Version bearbeitet werden. Existiert eine neuere Version (auch von der Website), lautet die Antwort `409 REVISION_CONFLICT` mit `details.reason = NOT_LATEST_REVISION`. Solange der übergeordnete Job läuft, folgt ein wiederholbarer Fehler `409 REVISION_CONFLICT` (`PARENT_JOB_RUNNING`, mit `Retry-After`); ist er fehlgeschlagen, folgt `400 INVALID_REQUEST` (`JOB_NOT_SUCCEEDED`).

`POST /flowcharts/generations`: `prompt` (1–8.000 Zeichen), `aspect_ratio` (`auto` oder eines der oben genannten Seitenverhältnisse), optional `attachment_file_ids` (bis zu 8, hochgeladen mit dem Verwendungszweck `flowchart_attachment`). Ausgabe: SVG.

## Jobs

`status` ist `queued`, `processing`, `succeeded`, `failed` oder `canceled`. `credits` enthält die aus dem Ledger gelesenen Werte `reserved`, `charged` und `refunded`. Bei einem fehlgeschlagenen Job werden die Credits erstattet.

Eine Erstellung oder Bearbeitung mit Zeitüberschreitung hat den Status `failed`, `error.code = TASK_TIMED_OUT` und den Zeitstempel `late_delivery_until`. Bis dahin kann das Ergebnis noch kostenlos eintreffen. Lesen Sie den Job weiter ab, statt einen neuen zu erstellen.

Eine Ablehnung durch die Inhaltsrichtlinie ist entweder `422 CONTENT_REJECTED` bei der Erstellung der Anfrage oder ein Job mit Status `failed` und `error.code = CONTENT_REJECTED`, wenn sie während der Ausführung erfolgt. In beiden Fällen werden die Credits erstattet.

Jede Ausgabe enthält eine `file_id`, ein `format` und eine `download_url`, die eine Stunde lang ohne Zugangsdaten funktioniert. PNG-Ausgaben enthalten außerdem `width` und `height`. Diagramm- und Flussdiagramm-Ausgaben enthalten eine `editor_url`, die das Ergebnis im Arbeitsbereich der Website öffnet. Illustrationen und Konvertierungen haben keine solche URL.

Bildausgaben (PNG, JPEG, WebP) können per `file_id` als `image` oder Referenz an Bildendpunkte übergeben werden. Konvertierungen akzeptieren Quellen bis zu 20 MB. Für PNG, PDF, TIFF und PPTX sind PNG- oder JPEG-Bilder sowie die SVG-Ausgabe eines Flussdiagramms zulässig, jedoch kein WebP.

## Dateien

`POST /files` (`multipart`): `file` und `purpose` (`image`, `mask` oder `flowchart_attachment`). Bilder: PNG, JPEG oder WebP bis zu 20 MB; Masken: PNG bis zu 8 MB; Flussdiagramm-Anhänge: Formate des FlowChart-Arbeitsbereichs bis zu 32 MB. Die Antwort ist `201` mit `file_id`, `purpose`, `content_type`, `size_bytes`, `expires_at` und `created_at`. Uploads sind 24 Stunden nutzbar und teilen die Upload-Limits der Website. Darüber hinaus lautet die Antwort `429 RATE_LIMITED`. Ein optionaler `Idempotency-Key` (1–255 sichtbare ASCII-Zeichen) macht Uploads wiederholbar: Dasselbe Konto, derselbe Schlüssel und derselbe `purpose` liefern die erste Datei mit `201`, ohne erneuten Upload oder weiteren Verbrauch des Upload-Limits. Derselbe Schlüssel und `purpose` mit anderen Bytes führen zu `409 IDEMPOTENCY_CONFLICT`. Die Wiederholung eines abgelaufenen Uploads führt zu `400 INVALID_REQUEST` mit `details.reason = FILE_EXPIRED`; laden Sie ihn mit einem neuen Schlüssel erneut hoch.

`GET /files/{file_id}` lädt Ihre eigene Datei mit Ihren Zugangsdaten oder der signierten `download_url` eines Jobs herunter. Abgelaufene oder veränderte signierte Links liefern `404`. Dasselbe gilt für alle Links eines gesperrten Kontos oder eines Kontos, das gerade gelöscht wird.

## Fehler

| Code | HTTP | Bedeutung |
| --- | --- | --- |
| UNAUTHORIZED | 401 | Zugangsdaten fehlen oder sind ungültig. |
| ACCOUNT_UNAVAILABLE | 401 | Dieses Konto kann die API nicht verwenden. |
| SCOPE_DENIED | 403 | Die Zugangsdaten gewähren diese Berechtigung nicht. |
| INVALID_REQUEST | 400 | Die Anfrage ist ungültig. |
| IDEMPOTENCY_KEY_REQUIRED | 400 | Ein Idempotency-Key-Header mit 1–255 sichtbaren ASCII-Zeichen ist erforderlich. |
| IDEMPOTENCY_CONFLICT | 409 | Dieser Idempotency-Key wurde bereits für eine andere Anfrage verwendet. |
| IDEMPOTENCY_IN_PROGRESS | 409 | Eine Anfrage mit diesem Idempotency-Key wird noch verarbeitet. |
| NOT_FOUND | 404 | Nicht gefunden. |
| REVISION_CONFLICT | 409 | Der Diagramm- oder Flussdiagrammauftrag kann derzeit nicht bearbeitet werden: `NOT_LATEST_REVISION`, `EDIT_IN_PROGRESS` oder `PARENT_JOB_RUNNING`, solange der übergeordnete Auftrag noch läuft. |
| PAYLOAD_TOO_LARGE | 413 | Der Anfrageinhalt ist zu groß. |
| INSUFFICIENT_CREDITS | 402 | Nicht genügend Credits. |
| CONTENT_REJECTED | 422 | Die Inhaltsrichtlinie hat die Anfrage abgelehnt. Dies wird beim Erstellen der Anfrage als `422` zurückgegeben oder als `error.code` eines fehlgeschlagenen Auftrags, wenn es während der Ausführung geschieht; in beiden Fällen werden die Credits erstattet. |
| PLAN_REQUIRED | 403 | Ihr Tarif enthält diese Option nicht. |
| RATE_LIMITED | 429 | Zu viele Anfragen, Aufgaben pro Stunde, Konvertierungen pro Tag oder Uploads; `details.reason` nennt den Grund. |
| CONCURRENCY_LIMITED | 429 | Für dieses Konto laufen zu viele Aufgaben. |
| SERVICE_UNAVAILABLE | 503 | Der Dienst ist vorübergehend nicht verfügbar. Wiederholen Sie die Anfrage mit demselben Idempotency-Key. |
| TASK_FAILED | 502 | Die Aufgabe ist fehlgeschlagen und ihre Credits wurden erstattet. Senden Sie zum erneuten Versuch eine neue Anfrage mit einem neuen Idempotency-Key. |
| INTERNAL_ERROR | 500 | Interner Fehler. |

`details.reason` nennt die genaue Ursache von `INVALID_REQUEST`, `PLAN_REQUIRED` und ähnlichen Fehlern. Nur `INSUFFICIENT_CREDITS` enthält `details.top_up_url`; dessen `utm_source` ist je nach Anfragekanal `api` oder `mcp`.

Codes, die nur in einem fehlgeschlagenen Job auftreten:

| error.code | Bedeutung | Vorgehen |
| --- | --- | --- |
| TASK_TIMED_OUT | Die Aufgabe hat ihr Zeitlimit überschritten und die Credits wurden erstattet. Eine Illustrationsgenerierung oder -bearbeitung kann `late_delivery_until` enthalten: Bis dahin kann das Ergebnis noch kostenlos eintreffen. | Fragen Sie den Auftrag bis `late_delivery_until` weiter ab; senden Sie andernfalls eine neue Anfrage mit einem neuen Schlüssel |
| CONTENT_REJECTED | Die Inhaltsrichtlinie hat das Ergebnis während der Ausführung abgelehnt; die Credits wurden erstattet. Derselbe Code wird als `422` zurückgegeben, wenn die Anfrage selbst bei der Erstellung abgelehnt wird. | Ändern Sie die Beschreibung oder Eingabe und verwenden Sie einen neuen Schlüssel |
| ADMISSION_INCOMPLETE | Der Auftrag wurde nie gestartet, da ein wiederholbarer Fehler ihn verhindert hat. Es wurden keine Credits verbraucht. | Senden Sie dieselbe Anfrage mit demselben Idempotency-Key |
| TASK_NOT_FOUND | Der Auftrag wurde angenommen, aber seine Aufgabe ist nicht mehr auffindbar. | Senden Sie eine neue Anfrage mit einem neuen Schlüssel |
| TASK_FAILED | Die Aufgabe ist fehlgeschlagen und die Credits wurden erstattet. Jeder Engine-Fehler ohne eigenen öffentlichen Code wird zu `TASK_FAILED`; der Engine-Code steht in `details.reason`. | Senden Sie eine neue Anfrage mit einem neuen Schlüssel |
| INTERNAL_ERROR | Die Aufgabe ist ohne Angabe eines Grundes fehlgeschlagen; die Credits wurden erstattet. | Senden Sie eine neue Anfrage mit einem neuen Schlüssel |

## Ratenbegrenzung

- Erstellung: 20 Anfragen pro Minute und Zugangsschlüssel sowie 40 pro Minute und Konto. OAuth-Zugangsdaten werden je Client und Konto gezählt.
- Lesen: 120 Anfragen pro Minute und Zugangsschlüssel.
- Die Anzahl laufender Aufgaben hängt von Ihrem Tarif ab. Pro Stunde starten höchstens 200 Aufgaben. Beide Limits werden mit der Website geteilt.
- Antworten nach erfolgreicher Authentifizierung und Berechtigungsprüfung enthalten `X-RateLimit-Limit`, `X-RateLimit-Remaining` und `X-RateLimit-Reset`; bei `429` kommt `Retry-After` hinzu.
- `429 RATE_LIMITED` hat mehrere Ursachen. Lesen Sie `details.reason` und die [Seite zur Ratenbegrenzung](/de/docs/api/rate-limits).

## Offizielles SciFig-Plugin installieren

Fügen Sie den SciFig-Marktplatz in Claude Code hinzu, um die Remote-MCP-Verbindung und vier Skills für Einrichtung, Abbildungen, Diagramme und Export zu installieren.

```text
/plugin marketplace add lilingm963/scifig-plugins
/plugin install scifig@scifig-plugins
```

- [Überblick über API und MCP](/de/developers)
- [MCP-Installationsanleitung](/de/developers/mcp/install.md)
- [API-Referenz](/de/docs/api)
- [Offizielles Plugin entdecken](https://github.com/lilingm963/scifig-plugins)
- [Eintrag im MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.lilingm963%2Fscifig/versions/1.0.0)

## MCP-Server

Server-URL: `https://mcp.scifig.ai/mcp`, Streamable HTTP. Clients mit OAuth-Unterstützung verbinden sich durch Anmeldung bei SciFig und Zustimmung zum Zugriff. Clients, die Header senden, können einen API-Schlüssel als `Authorization: Bearer sk_live_…` verwenden.

| Werkzeug | Funktion |
| --- | --- |
| generate_figure | Wissenschaftliche Illustration aus einer Beschreibung erstellen |
| edit_figure | Bild bearbeiten: per Anweisung, optional in einem maskierten Bereich, weißer Hintergrund, Seitenverhältnis, Farbänderung oder Textersetzung |
| detect_text | Text in einem Bild vor dem Ersetzen erkennen |
| upscale_figure | Auf 2K, 4K oder 8K vergrößern |
| convert_figure | In SVG, PNG, PDF, TIFF oder PPTX konvertieren |
| generate_chart | Diagramm aus CSV- oder TSV-Text oder JSON-Zeilen erstellen, bis zu 1 MB |
| edit_chart | Neueste Version eines Diagramms ändern |
| generate_flowchart | Flussdiagramm als SVG erstellen, optional aus bis zu 8 Anhängen |
| edit_flowchart | Neueste Version eines Flussdiagramms ändern |
| get_job | Status, Credits und Downloadlinks eines Auftrags |
| list_figures | Neueste Aufträge |
| get_credit_balance | Credit-Guthaben, Tarif und Limits |

Erstellungswerkzeuge warten bis zu 25 Sekunden. Läuft ein Auftrag noch, rufen Sie später `get_job` auf. Ein erneuter Aufruf des Erstellungswerkzeugs erstellt einen neuen kostenpflichtigen Auftrag. Die Ergebnisse enthalten jeden Downloadlink und bei Diagrammen und Flussdiagrammen auch den Link zum Öffnen im SciFig-Editor.

Die Initialisierung nutzt `/capabilities` ohne `credits:read`. Jedes Werkzeug benötigt seine eigene Berechtigung. Externe URL- und data-URL-Uploads benötigen zusätzlich `files:write`, geprüft vor dem Abruf. Vorhandene `file_id` benötigen dies nicht. Inline-Downloads und `get_job` benötigen `jobs:read`. Fehlt es, behalten Sie das Auftragsergebnis und erläutern die Einschränkung, statt ohne Zustimmung Rechte zu erweitern.

## Client verbinden

Claude, auf claude.ai und in Claude Desktop: Einstellungen → Konnektoren → Benutzerdefinierten Konnektor hinzufügen. Geben Sie die Server-URL ein, melden Sie sich bei SciFig an und erlauben Sie den Zugriff.

Öffnen Sie `Plugins` in ChatGPT und fügen Sie eine private benutzerdefinierte MCP-Verbindung hinzu. Die Menüs hängen vom Konto ab.

Claude Code:

```bash
claude mcp add --transport http scifig https://mcp.scifig.ai/mcp
```

Codex (`~/.codex/config.toml`):

```toml
[mcp_servers.scifig]
url = "https://mcp.scifig.ai/mcp"
```

Öffnen Sie Cursor `Customize` → MCP und bearbeiten Sie `mcp.json` unter Erhalt aller vorhandenen Server. Wählen Sie dann `Authenticate` und genehmigen Sie SciFig im Browser.

```json
{
  "mcpServers": {
    "scifig": {
      "url": "https://mcp.scifig.ai/mcp"
    }
  }
}
```

Clients ohne OAuth können den Header `Authorization: Bearer sk_live_…` mit einem API-Schlüssel aus Einstellungen → API-Schlüssel hinzufügen.
