# Serveur MCP

> Connecter Claude, Cursor, Codex ou n'importe quel client MCP aux enregistrements de conformité d'un restaurant, avec une URL et votre clé d'API.

Source: https://developers.backresto.com/fr/docs/mcp

BackResto fait tourner un serveur **Model Context Protocol** à l'adresse
`https://api.backresto.com/mcp`. Connectez-y votre outil d'IA avec votre clé
d'API et vous pouvez interroger les enregistrements d'un restaurant dans
l'interface même de l'outil : pas de code, rien à installer chez nous, rien à
héberger chez vous.

Il lit à travers la même API Partenaire que tout le reste, avec la même clé.
**Il ne peut rien voir que la clé ne voyait déjà** : les autorisations par
restaurant et par scope sont appliquées par l'API, pas par l'outil que vous
connectez.

## Connecter votre outil

Il vous faut d'abord une clé ; voir [Obtenir une clé](https://developers.backresto.com/fr/docs/access). Choisissez
ensuite votre outil :

### Claude

1. **Ajouter un connecteur personnalisé**: Dans Claude, sur l'application de bureau ou sur claude.ai, ouvrez Personnaliser, puis Connecteurs, et cliquez sur Ajouter un connecteur personnalisé. Sur une offre Team ou Enterprise, un propriétaire l'ajoute d'abord une fois dans les paramètres de l'organisation.

2. **Nommez-le et collez l'adresse**: Appelez-le BackResto et collez cette URL. Dans Authentification et Client OAuth, Claude détecte notre serveur et présélectionne Se connecter maintenant et S'enregistrer automatiquement : gardez ces deux choix. N'entrez ni ID client ni secret. Cliquez ensuite sur Ajouter.

```
https://api.backresto.com/mcp
```

3. **Connectez-vous avec votre clé**: Cliquez sur Connecter. Une page BackResto s'ouvre : collez votre clé, qui commence par brp_, et cliquez sur Connecter. Claude revient avec le connecteur activé et ses cinq outils.

4. **C'est prêt**: Posez vos questions sur vos enregistrements de conformité en langage courant. La clé sait déjà quel restaurant est le vôtre.

### Claude Code

1. **Enregistrer le serveur**: Ouvrez un terminal et lancez cette commande, avec votre clé à la place de brp_YOUR_KEY.

```sh
claude mcp add --transport http --scope user backresto \
  https://api.backresto.com/mcp \
  --header "Authorization: Bearer brp_YOUR_KEY"
```

2. **Vérifier la connexion**: Lancez Claude Code et tapez /mcp. backresto apparaît comme connecté, avec cinq outils.

3. **C'est prêt**: Posez vos questions sur vos enregistrements de conformité en langage courant. La clé sait déjà quel restaurant est le vôtre.

### Cursor

1. **Ouvrir les réglages MCP**: Dans Cursor, allez dans Settings, puis Tools & MCP, et cliquez sur New MCP Server. Cela ouvre mcp.json.

2. **Ajouter le serveur**: Collez ceci dans mcp.json, avec votre clé à la place de brp_YOUR_KEY. Le serveur apparaît dans la liste avec cinq outils.

```json
{
  "mcpServers": {
    "backresto": {
      "type": "http",
      "url": "https://api.backresto.com/mcp",
      "headers": {
        "Authorization": "Bearer brp_YOUR_KEY"
      }
    }
  }
}
```

3. **C'est prêt**: Posez vos questions sur vos enregistrements de conformité en langage courant. La clé sait déjà quel restaurant est le vôtre.

### Codex

1. **Mettre la clé dans l'environnement**: Codex lit un jeton bearer dans une variable d'environnement plutôt que dans son fichier de configuration. Ajoutez cette ligne à votre profil de shell, avec votre clé à la place de brp_YOUR_KEY.

```sh
export BACKRESTO_API_KEY="brp_YOUR_KEY"
```

2. **Enregistrer le serveur**: Lancez ensuite ceci une fois. Codex enverra la valeur de la variable comme en-tête Authorization.

```sh
codex mcp add backresto \
  --url https://api.backresto.com/mcp \
  --bearer-token-env-var BACKRESTO_API_KEY
```

3. **C'est prêt**: Posez vos questions sur vos enregistrements de conformité en langage courant. La clé sait déjà quel restaurant est le vôtre.

### Autre

1. **Ouvrir les réglages MCP de votre outil**: Trouvez la section MCP ou intégrations et ajoutez un serveur distant en Streamable HTTP. Si votre outil ne demande qu'une URL, il ouvre une page BackResto où vous collez la clé, et l'en-tête devient inutile.

2. **Saisir l'adresse**: Voici l'URL du serveur.

```
https://api.backresto.com/mcp
```

3. **Ajouter votre clé en en-tête**: Envoyez-la avec chaque requête comme en-tête Authorization.

```
Authorization: Bearer brp_YOUR_KEY
```

4. **C'est prêt**: Posez vos questions sur vos enregistrements de conformité en langage courant. La clé sait déjà quel restaurant est le vôtre.

## Les outils

Cinq outils : un qui trouve le restaurant, et quatre qui lisent ses
[collections](https://developers.backresto.com/fr/docs/collections).

| Outil | Ce qu'il fait |
| --- | --- |
| `backresto_list_restaurants` | Liste les restaurants que la clé atteint, avec ses scopes sur chacun. |
| `backresto_list_collections` | Liste les collections accordées à cette clé, avec le scope qui ouvre chacune. C'est le bon premier appel quand vous ne savez pas ce que la clé atteint. |
| `backresto_list_records` | Lit une page d'enregistrements d'une collection, tombstones compris. Prend `collection`, et en option `limit` (1-100, 50 par défaut) et `cursor`. |
| `backresto_get_record` | Récupère un enregistrement par sa `collection` et son `recordId`. |
| `backresto_list_record_assets` | Liste les fichiers attachés à un enregistrement (`cleaning-task-pictures`, `delivery-pictures`, `traceability-labels` ou `drive-files`) sous forme d'URL signées, et montre les photographies au modèle comme des images qu'il peut regarder. |

Les livraisons sont deux de ces collections, `deliveries` et
`delivery-pictures`, lues avec les mêmes outils que tout le reste. Voyez
[Livraisons](https://developers.backresto.com/fr/docs/deliveries) pour ce que signifient leurs champs.

`restaurantId` est facultatif partout. Omettez-le et le restaurant de la clé est
utilisé : un restaurant qui a une seule clé n'a jamais besoin de connaître son
identifiant. Seule une clé qui atteint plusieurs restaurants doit choisir, et
l'erreur nomme les choix possibles.

Les cinq sont déclarés en lecture seule et idempotents : un client bien élevé ne
vous demandera pas la permission à chaque appel, comme il le fait pour un outil
qui écrit.

Deux limites pratiques. Les photographies sont intégrées pour le modèle jusqu'à
**dix images et environ 7,5 Mo** par appel à `backresto_list_record_assets` ; tout ce qui dépasse apparaît
quand même dans le résumé, avec son URL et la raison pour laquelle elle n'a pas
été montrée. Et l'endpoint tout entier partage le [budget](https://developers.backresto.com/fr/docs/rate-limits) de
l'API Partenaire, 300 requêtes par minute et par clé : un appel d'outil est une
requête, ce dont une conversation n'approchera jamais, et une boucle si.

## Protéger la clé

La clé, c'est la totalité de votre accès, et la configuration d'un client MCP
est un fichier ordinaire sur un ordinateur portable.

- **Ne commitez jamais ce fichier.** Si votre outil garde sa configuration dans
  un dépôt, faites référence à une variable d'environnement ou à un coffre de
  secrets du système, comme le fait la configuration Codex ci-dessus.
- **Donnez à chaque machine sa propre clé.** Une clé par ordinateur, c'est un
  ordinateur perdu qui coûte une révocation, pas une rotation sur toutes vos
  intégrations.
- **Demandez-nous quand une clé a servi pour la dernière fois** si vous pensez
  qu'une copie traîne encore quelque part. Nous voyons la dernière
  authentification de chaque clé, et une révocation, c'est le même e-mail.

## Se connecter avec la seule URL

Claude (application de bureau et claude.ai), ChatGPT et les autres outils qui ne
demandent qu'une URL de serveur se connectent par OAuth : ils s'enregistrent
d'eux-mêmes auprès de BackResto, puis ouvrent une page BackResto où vous collez
votre clé une fois. Rien à installer, aucun fichier de configuration. L'outil
garde la clé et l'envoie pour vous : il atteint exactement ce que la clé
atteint, et révoquer la clé le déconnecte.

La connexion avec un compte BackResto n'existe pas encore : la clé reste
l'identifiant. Si c'est ce qui vous sépare d'une intégration, dites-le : elle
remonte dans la liste.

## Ce en quoi il excelle

Concrètement, une fois les outils connectés, un responsable des opérations peut
demander :

- *"Quelles livraisons ont été refusées le mois dernier, et pourquoi ?"*
- *"Montre-moi toutes les livraisons de poulet au-dessus de 4 °C ce trimestre."*
- *"Montre-moi les photos de la livraison refusée mardi : le dommage est-il visible ?"*
- *"Quels réfrigérateurs sont le plus souvent sortis de leur plage, et dans quelle zone ?"*
- *"Les cycles de refroidissement sont-ils tous descendus à temps la semaine dernière ?"*
- *"Quelles tâches de nettoyage ont été sautées, et lesquelles n'ont pas de photographie ?"*

Les trois premières lisent les collections `deliveries` et `delivery-pictures`,
les autres lisent d'autres [collections](https://developers.backresto.com/fr/docs/collections), et chacune
seulement ce qui a été accordé à votre clé. Les réponses viennent des mêmes enregistrements qu'un inspecteur
lirait, à travers les mêmes autorisations que le restaurant a accordées.

Un modèle qui lit des collections devrait savoir ce qu'il lit : un snapshot de
ce que l'API a reçu, pas un historique garanti complet. Si vous mettez cela
devant un client, mettez cette phrase à côté.
