Capabilities API
Comment fonctionnent les capabilities des cles API et les sept scopes utilisateur que vous pouvez attacher a une cle.
Ce que sont les capabilities
Chaque cle API porte une liste explicite de capabilities. Une capability est une entree de liste blanche cote serveur qui designe quelles operations /v1/* la cle peut effectuer. Une cle avec desktop:read peut lister et inspecter vos bureaux mais ne peut pas en demarrer un. Une cle avec desktop:lifecycle peut demarrer et arreter des bureaux mais ne peut pas executer de Python dessus. Une cle avec kb:read peut chercher dans votre base de connaissances et rien d'autre.
Restreindre les scopes reduit la surface d'impact. Si une cle fuit -- commitee par accident, copiee dans un carnet partage, collee dans un chat -- l'attaquant ne peut faire que ce que les capabilities de cette cle autorisent. Par defaut, choisissez le jeu le plus petit possible.
Les capabilities sont statiques
Les capabilities sont figees a la creation de la cle. Il n'existe pas de flux d'edition de cle. Pour changer les scopes, revoquez la cle existante et generez-en une nouvelle avec le bon jeu. C'est volontaire : cela empeche toute escalade silencieuse de privileges sur une cle deja distribuee et auditee.
La selection par defaut
Le formulaire de creation pre-selectionne un defaut etroit : desktop:read et desktop:chat. C'est suffisant pour qu'un assistant inspecte vos bureaux et discute avec l'agent qui y tourne, sans pouvoir controler ni modifier quoi que ce soit. N'ajoutez d'autres scopes que lorsque vous en avez vraiment besoin pour l'integration que vous montez.
Les scopes utilisateur
desktop:read
Lister vos bureaux et lire leurs details : statut, specs, infos sur l'agent. Pas de controle, pas de chat, pas de cycle de vie.
desktop:lifecycle
Demarrer, arreter et redemarrer vos bureaux. Ne permet pas de creer de nouveaux bureaux ni d'en detruire -- ces operations ne sont pas exposees dans cette version.
desktop:control
Envoyer des entrees souris, clavier et molette a un bureau. Executer du Python sur le runtime de l'agent. Prendre des captures d'ecran. C'est le scope de controle le plus large ; traitez-le comme une credential de bureau distant.
desktop:chat
Envoyer des messages a l'agent IA qui tourne sur un bureau et recevoir sa reponse. N'inclut ni le controle de l'ecran, ni le cycle de vie.
scheduled_jobs:read
Lister les taches planifiees de votre workspace, eventuellement filtrees par workspace ou par bureau.
scheduled_jobs:write
Creer des taches planifiees et declencher des executions immediates. La suppression de taches n'est pas exposee dans cette version.
kb:read
Recherche plein texte et lecture de notes dans la base de connaissances de votre workspace.
Scopes reserves
Les scopes administrateurs (lecture et ecriture) sont reserves pour de futurs outils reserves aux administrateurs et ne peuvent pas etre selectionnes lors de la creation d'une cle sur un compte non-administrateur. La creation et la suppression de bureaux ne sont pas exposees via l'API dans cette version ; elles auront un scope distinct lorsqu'elles seront introduites.
Forme de l'erreur en cas de capability manquante
Quand un outil est appele avec un scope insuffisant, la reponse est 403 Forbidden avec un corps qui nomme la capability manquante ainsi que celles que la cle possede :
{
"error": "Missing required capability: desktop:lifecycle",
"required": "desktop:lifecycle",
"held": ["desktop:read", "desktop:chat"]
}
Utilisez held pour decider s'il faut reessayer avec un autre outil ou emettre une nouvelle cle avec un scope plus large.
Pour la carte complete des capabilities par outil, voir Outils MCP.
Articles connexes
Cles API
Creer, restreindre, faire tourner et revoquer des cles API pour l'acces programmatique via Authorization: Bearer.
Reference des outils MCP
Les 18 outils livres dans @lebureau/mcp v0.1.0, groupes par domaine, avec la capability requise sur la cle API.
Vue d'ensemble du serveur MCP
Ce qu'est @lebureau/mcp, ce qu'il permet a votre assistant IA de faire, et comment il dialogue avec Le Bureau.