Skip to main content
Voir en Markdown

Mode serveur

Avec MCP_ENABLED=true, Sovrium génère un jeu d'outils MCP à partir de votre configuration. Rien n'est exposé par défaut : une entité n'apparaît que si son schéma déclare aiAccess, et uniquement dans la forme que le rôle connecté a le droit de voir.

Surfaces exposées

Quatre familles d'objets deviennent des outils.

Surface Nom d'outil Ce qu'il fait
Tables utilisateur {app}_{table}_{op} Lire, lister, créer, mettre à jour, supprimer des enregistrements.
Automatisations manuelles {app}_automation_{name} Invoquer une automatisation à déclencheur manuel.
Modèles d'action {app}_action_{name} Exécuter un modèle d'action.
Internes admin {app}_auth_* / {app}_system_* Vues en lecture seule des tables auth et système, rôle admin uniquement.

tools/list est filtré par connexion : un identifiant viewer n'apprend même jamais qu'un outil de suppression existe. Seules les automatisations à déclencheur manuel sont éligibles — une automatisation cron ou déclenchée par changement d'enregistrement n'a aucun appelant à exposer.

Déclarer l'éligibilité

aiAccess est la déclaration d'intention de l'auteur du schéma. Elle est délibérément séparée de MCP_ENABLED : l'écrire n'expose rien, et l'interrupteur de l'opérateur n'expose rien que vous n'ayez écrit.

tables:
  - name: contacts
    aiAccess: true

Ce booléen couvre le cas courant — exposer la table avec les valeurs par défaut. La forme objet prend le relais quand ces défauts ne conviennent pas, et fournir un objet constitue en soi le signal d'activation ; il n'y a pas de champ enabled à renseigner.

tables:
  - name: contacts
    aiAccess:
      description: Customer contacts. Use this when the user asks about people.
      operations: [read, list, create, update]
      fieldExposure: permissioned
      annotations:
        readOnly: false
        destructive: false
Propriété Signification
description La description d'outil que lit le modèle. Jusqu'à 2000 caractères.
operations Sous-ensemble de read, list, create, update, delete. Les tables exposent les cinq par défaut.
fieldExposure permissioned (défaut), all ou whitelist.
whitelistFields Quels champs, quand fieldExposure: whitelist. Requis et non vide dans ce mode.
annotations Indications de risque — voir plus bas.
requireConfirmation Force l'indication destructive quel que soit le type d'opération.

Les automatisations et les modèles d'action acceptent le même bloc mais ignorent operations : chacun expose un unique outil d'invocation.

Exposition des champs

Mode Champs présents dans le schéma d'outil
permissioned Seulement ce que le rôle connecté peut lire ou écrire. Le défaut.
all Tous les champs, toujours soumis au RBAC de champ au moment de l'appel.
whitelist Seulement les noms listés dans whitelistFields.

permissioned convient presque toujours : un viewer et un admin connectés à la même table voient des schémas d'outil différents, sans que vous mainteniez deux déclarations. Recourez à whitelist quand une table porte des colonnes que le rôle peut lire mais qui ne regardent simplement pas l'IA.

Annotations de risque

Les annotations sont compilées dans la définition d'outil MCP pour qu'un client décide d'exécuter un appel silencieusement ou de demander d'abord à son utilisateur. Elles correspondent une pour une aux indications du protocole :

Annotation Indication MCP Signifie
readOnly readOnlyHint Lecture seule — approbation automatique sans risque.
destructive destructiveHint Détruit ou envoie quelque chose — demander d'abord.
idempotent idempotentHint Appeler deux fois est sans danger ; pas d'effet de bord dupliqué.
openWorld openWorldHint Sort de l'application — API externe, appel réseau.

Non renseignées, des valeurs raisonnables sont déduites du type d'opération, et MCP_CONFIRM_DESTRUCTIVE (actif par défaut) marque en outre les outils de suppression et les automatisations non idempotentes comme destructifs.

Le cas qui mérite un réglage manuel est l'automatisation techniquement idempotente mais pratiquement irréversible — envoyer un courriel, débiter une carte. requireConfirmation: true force l'indication destructive sur celles-là, quoi qu'impliquerait le type d'opération.

Pages associées

Dernière mise à jour 27 juillet 2026

Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta — les contributions et corrections sont les bienvenues.

Construit avec Sovrium