# Serveur MCP

Utilisez SciFig dans Claude, ChatGPT, Claude Code, Codex et Cursor via le serveur MCP distant.

Source : https://scifig.ai/fr/docs/api/mcp

## Serveur MCP

URL du serveur : `https://mcp.scifig.ai/mcp`, Streamable HTTP. Les clients prenant en charge OAuth se connectent en ouvrant une session SciFig et en autorisant l’accès ; ceux qui envoient des en-têtes peuvent utiliser une clé API sous la forme `Authorization: Bearer sk_live_…`.

| Outil | Fonction |
| --- | --- |
| generate_figure | Créer une illustration scientifique à partir d’une description |
| edit_figure | Modifier une image : instruction, éventuellement dans une zone masquée, fond blanc, rapport largeur/hauteur, changement de couleurs ou remplacement de texte |
| detect_text | Détecter le texte d’une image avant de le remplacer |
| upscale_figure | Agrandir en 2K, 4K ou 8K |
| convert_figure | Convertir en SVG, PNG, PDF, TIFF ou PPTX |
| generate_chart | Tracer un graphique à partir de texte CSV ou TSV ou de lignes JSON, jusqu’à 1 MB |
| edit_chart | Modifier la version la plus récente d’un graphique |
| generate_flowchart | Dessiner un diagramme de flux en SVG, éventuellement à partir de 8 pièces jointes au maximum |
| edit_flowchart | Modifier la version la plus récente d’un diagramme de flux |
| get_job | Statut, crédits et liens de téléchargement d’une tâche |
| list_figures | Tâches récentes |
| get_credit_balance | Solde de crédits, offre et limites |

Les outils de création attendent jusqu’à 25 secondes. Si une tâche est encore en cours, appelez `get_job` plus tard ; rappeler l’outil de création crée et facture une nouvelle tâche. Les résultats répertorient chaque lien de téléchargement et, pour les graphiques et diagrammes de flux, le lien d’ouverture dans l’éditeur SciFig.

Les outils de création vérifient la portée `figures:generate` avant de télécharger les pièces jointes. Une connexion en lecture seule peut consulter les tâches et les crédits, mais ne peut pas créer de figure.

## Connectez votre client

Claude, sur claude.ai et dans Claude Desktop : Paramètres → Connecteurs → Ajouter un connecteur personnalisé. Saisissez l’URL du serveur, connectez-vous à SciFig et autorisez l’accès.

ChatGPT : Paramètres → Applications → Avancé → Mode développeur. Créez une application avec l’URL du serveur et l’authentification OAuth.

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"
```

Cursor, dans `~/.cursor/mcp.json`, avec une clé API créée dans Paramètres → Développeur :

```json
{
  "mcpServers": {
    "scifig": {
      "url": "https://mcp.scifig.ai/mcp",
      "headers": { "Authorization": "Bearer sk_live_…" }
    }
  }
}
```

Les clients sans OAuth peuvent ajouter l’en-tête `Authorization: Bearer sk_live_…` avec une clé API créée dans Paramètres → Développeur.

## Paramètres des outils

| Outil | Paramètre | Obligatoire | Règles |
| --- | --- | --- | --- |
| generate_figure | prompt | oui | 3 à 20 000 caractères |
|  | aspect_ratio | non | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` |
|  | quality | non | `standard`, `advanced` ou `premium` |
|  | style | non | Une valeur parmi `flat`, `2-5d`, `line-art`, `hand-drawn`, `scientific`, `line`, `3d`, `editorial`, `sketch`, `watercolor`, `auto` |
|  | palette | non | Nom de palette de 1 à 64 caractères, ou 1 à 4 couleurs `#RRGGBB` |
|  | reference_images | non | Jusqu’à 3 images : `file_id`, URL https ou URL data ; PNG, JPEG ou WebP jusqu’à 20 MB, environ 3 MB pour une URL data, voir ci-dessous |
|  | idempotency_key | non | Facultatif ; réutiliser uniquement pour retenter la même requête après un dépassement de délai ou une erreur réseau |
| edit_figure | image | oui | `file_id`, URL https ou URL data ; PNG, JPEG ou WebP jusqu’à 20 MB, environ 3 MB pour une URL data, voir ci-dessous |
|  | operation | non | `instruct` par défaut, `white_background`, `aspect_ratio`, `recolor` ou `replace_text` |
|  | instruction | pour `instruct` | 1 à 2 000 caractères |
|  | mask | non | Uniquement pour `instruct` : PNG jusqu’à 8 MB, blanc dans les zones où l’image peut changer |
|  | aspect_ratio | pour `aspect_ratio` | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` |
|  | palette | non | Uniquement pour `recolor` : 1 à 8 couleurs `#RRGGBB` |
|  | text_detection | pour `replace_text` | L’identifiant renvoyé par `detect_text` |
|  | replacements | pour `replace_text` | 1 à 256 éléments `[{"index", "text"}]` : `index` de 0 à 255 issu de `detect_text`, chaque indice au plus une fois ; text de 1 à 500 caractères |
|  | quality | non | Ignoré par `replace_text` |
|  | idempotency_key | non | Facultatif ; réutiliser uniquement pour retenter la même requête après un dépassement de délai ou une erreur réseau |
| detect_text | image | oui | `file_id`, URL https ou URL data ; PNG, JPEG ou WebP jusqu’à 20 MB, environ 3 MB pour une URL data, voir ci-dessous |
|  | idempotency_key | non | Facultatif ; réutiliser uniquement pour retenter la même requête après un dépassement de délai ou une erreur réseau |
| upscale_figure | image | oui | `file_id`, URL https ou URL data ; PNG, JPEG ou WebP jusqu’à 20 MB, environ 3 MB pour une URL data, voir ci-dessous |
|  | scale | oui | `2k`, `4k` ou `8k` |
|  | idempotency_key | non | Facultatif ; réutiliser uniquement pour retenter la même requête après un dépassement de délai ou une erreur réseau |
| convert_figure | image | oui | `file_id`, URL https ou URL data ; PNG, JPEG ou WebP jusqu’à 20 MB, environ 3 MB pour une URL data, voir ci-dessous ; ou le résultat SVG d’un diagramme de flux via `file_id` |
|  | format | oui | `svg`, `png`, `pdf`, `tiff` ou `pptx` |
|  | vector_mode | non | Uniquement avec le format `svg` : `editable_text` ou `full_vector` |
|  | dpi | non | Pas pour `svg` : 300, 600 ou 1000 |
|  | width | non | Pas pour `svg` ; uniquement pour les sources SVG de diagrammes de flux : 256–4096 pixels |
|  | idempotency_key | non | Facultatif ; réutiliser uniquement pour retenter la même requête après un dépassement de délai ou une erreur réseau |
| generate_chart | data | `data` ou `rows` | Texte CSV ou TSV avec une ligne d’en-tête, jusqu’à 1 MB, soit 1 000 000 de caractères |
|  | rows | `data` ou `rows` | À la place de `data` : 1 à 100 000 objets associant noms de colonnes et valeurs ; envoyés en CSV, jusqu’à 1 MB |
|  | data_format | non | `csv` ou `tsv` ; détecté à partir de la première ligne si omis |
|  | request | oui | Ce qu’il faut tracer, de 1 à 16 000 caractères |
|  | chart_types | non | Jusqu’à 46 types de graphiques, sans doublons ; voir [graphiques](/fr/docs/api/charts) |
|  | journal_style | non | `default`, `nature`, `science`, `cell`, `plos` ou `acs` |
|  | figure_width | non | `single`, `onehalf` ou `double` |
|  | color_palette | non | Nom de palette ; voir [graphiques](/fr/docs/api/charts) |
|  | idempotency_key | non | Facultatif ; réutiliser uniquement pour retenter la même requête après un dépassement de délai ou une erreur réseau |
| edit_chart | job_id | oui | La tâche de graphique la plus récente |
|  | instruction | oui | 1 à 16 000 caractères |
|  | idempotency_key | non | Facultatif ; réutiliser uniquement pour retenter la même requête après un dépassement de délai ou une erreur réseau |
| generate_flowchart | prompt | oui | 1 à 8 000 caractères |
|  | aspect_ratio | non | `auto`, `16:9`, `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `21:9` |
|  | attachments | non | Jusqu’à 8 fichiers : `file_id`, URL https ou URL data ; PDF, DOC, DOCX, Markdown, texte, SVG, PNG, JPEG ou WebP, jusqu’à 32 MB chacun |
|  | idempotency_key | non | Facultatif ; réutiliser uniquement pour retenter la même requête après un dépassement de délai ou une erreur réseau |
| edit_flowchart | job_id | oui | La tâche de diagramme de flux la plus récente |
|  | instruction | oui | 1 à 8 000 caractères |
|  | idempotency_key | non | Facultatif ; réutiliser uniquement pour retenter la même requête après un dépassement de délai ou une erreur réseau |
| get_job | job_id | oui | Un identifiant de tâche |
| list_figures | limit | non | 1–20 |
|  | cursor | non | `next_cursor` de la page précédente |
| get_credit_balance | — | — | Aucun paramètre |

`generate_chart` accepte uniquement des données texte, jusqu’à 1 MB. Pour les classeurs Excel (et leur `sheet_name`) ou les fichiers plus volumineux, utilisez [`POST /charts/generations`](/fr/docs/api/charts).

## Fonctionnement des outils

- Le serveur est à l’adresse `https://mcp.scifig.ai/mcp` (Streamable HTTP). Il appelle cette API pour vous ; les tarifs, crédits, limites et erreurs sont donc identiques.
- Les paramètres d’image et de pièce jointe acceptent une `file_id`, une URL https ou une URL de données. Les URL et URL de données sont d’abord téléversées avec `POST /files` et comptent donc dans les limites de téléversement. Les URL de SciFig sont refusées (transmettez la `file_id`). Les redirections ne sont suivies que vers d’autres adresses https.
- Une requête au serveur MCP est limitée à 4 MB. Base64 augmente la taille d’un fichier d’un tiers ; une URL de données peut donc contenir environ 3 MB. Transmettez les fichiers plus volumineux par une URL https.
- Le serveur vérifie vos identifiants uniquement lors de `initialize` et de `tools/call`. Un jeton expiré ou révoqué renvoie `401` pour permettre au client de le renouveler ou de se reconnecter. Un compte banni ou en cours de suppression renvoie `403`.
- Les images terminées sont affichées directement dans la conversation si elles ne dépassent pas 1 MB. Chaque résultat contient des liens de téléchargement ; les graphiques et diagrammes de flux ajoutent un lien pour ouvrir le résultat dans l’éditeur SciFig.
- Chaque création utilise un nouvel Idempotency-Key, sauf si l’assistant fournit `idempotency_key`. Demander à nouveau crée donc une nouvelle tâche facturée. Utilisez `get_job` pour consulter son avancement.
- Une réponse d’erreur inclut `idempotency_key` et, lorsqu’une tâche existe, `job_id`. Après un dépassement de délai ou une erreur serveur, réessayez avec la même clé ou appelez `get_job`. Un refus tel que `402 INSUFFICIENT_CREDITS` reste enregistré sous sa clé ; renvoyez alors la requête avec une nouvelle clé.
