Serveur MCP
Connecte Claude, ChatGPT, Cursor, VS Code, ou tout client MCP directement à ton espace de travail.
Voici la façon stratégique d'utiliser SOIS : amène ton propre agent. Ton espace de travail Sois AI est un serveur MCP complet, donc l'agent IA que tu utilises déjà se connecte et raisonne directement sur les outils de ton espace de travail. De plus en plus, les gens ne se connectent jamais à la console SOIS. Ils indiquent à leur propre Claude, ChatGPT, Cursor ou Gemini ce dont ils ont besoin, et celui-ci opère SOIS en leur nom via MCP. La console devient un endroit pour visualiser et gérer l'activité des agents, pas la façon principale de travailler.
Tout client qui parle le Protocole de Contexte de Modèle peut se connecter et utiliser les outils de ton espace de travail : rechercher des contacts, créer des tâches, envoyer des e-mails, gérer des documents, et plus encore, sans écrire une seule intégration. Parce que ton propre agent fait le raisonnement, SOIS ne dépense aucune IA en ton nom.
Un seul point de terminaison. Protocole standard. Chaque outil que ton compte est autorisé à utiliser, disponible pour tout client compatible.
L'unique URL
Ton espace de travail expose un seul point de terminaison MCP :
https://<your-workspace>.sois.ai/api/mcp
Le serveur s'identifie avec la marque de ton espace de travail (par exemple "Acme"), donc il apparaît sous ton propre nom dans le client. Tout ce qui suit dépend de cette unique URL.
Il existe deux façons de s'authentifier. OAuth est la voie recommandée et c'est ce que les connecteurs intégrés dans Claude et ChatGPT utilisent : tu colles l'URL, tu approuves une fois, et il n'y a aucun jeton à copier ou à renouveler manuellement. Un jeton Bearer plus clé API est également pris en charge pour les scripts, serveurs et clients qui n'utilisent pas OAuth.
Option A : OAuth 2.1 (recommandée, rien à coller)
Les connecteurs MCP modernes découvrent et terminent toute la connexion pour toi. Tu fournis uniquement l'URL.
1. Dans ton client (par exemple Claude ou ChatGPT), ajoute un connecteur personnalisé et colle ton URL MCP : https://<your-workspace>.sois.ai/api/mcp
2. Le client appelle le point de terminaison sans jeton et reçoit un 401 portant un défi de découverte :
WWW-Authenticate: Bearer resource_metadata="https://<your-workspace>.sois.ai/.well-known/oauth-protected-resource"
3. Le client lit ces métadonnées, trouve le serveur d'autorisation de ton espace de travail, s'enregistre automatiquement (Dynamic Client Registration), et ouvre l'écran de connexion et de consentement.
4. Tu approuves la connexion dans ton compte SOIS. Le client reçoit un jeton via PKCE (avec un jeton de rafraîchissement tournant) et commence à fonctionner. Aucun jeton n'est jamais copié manuellement.
Pourquoi c'est sûr. Le serveur d'autorisation est ton propre domaine d'espace de travail, donc les jetons sont limités au locataire et ne quittent jamais ton réseau. L'autorisation est ton rôle : un jeton accordé ne peut jamais faire plus que ce que tu peux faire, car chaque appel d'outil est vérifié par permissions à l'exécution. Les chaînes de portée sont volontairement grossières ; la vraie limite est tes permissions par utilisateur.
Ce que le serveur d'autorisation annonce :
| Propriété | Valeur |
|---|---|
| Point de terminaison d'autorisation | /oauth/authorize |
| Point de terminaison de jeton | /oauth/token |
| Point de terminaison d'enregistrement | /oauth/register (Dynamic Client Registration) |
| Types d'octroi | authorization_code, refresh_token |
| PKCE | requis (S256) |
| Portées | mcp, mcp:read, mcp:write, offline_access |
Tu n'appelles normalement pas ces éléments toi-même ; un client MCP conforme suit le flux automatiquement une fois qu'il a l'URL.
Option B : Jeton Bearer + clé API (direct ou côté serveur)
Pour les scripts, serveurs, ou tout client qui n'implémente pas OAuth. Tu génères deux identifiants et les envoies comme en-têtes à chaque requête.
1. Ouvre Paramètres > Connecte ton Agent dans ton espace de travail Sois AI.
2. Choisis ton client (Claude Desktop, Cursor, VS Code, ou Générique) et clique sur Générer des identifiants pour obtenir un jeton Bearer, une clé API, et un extrait de configuration prêt à l'emploi.
3. Colle la configuration dans ton client.
{
"mcpServers": {
"sois-workspace": {
"url": "https://<your-workspace>.sois.ai/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN",
"X-Api-Key": "YOUR_API_KEY"
}
}
}
}
Cursor utilise la même forme dans .cursor/mcp.json ; VS Code l'imbrique sous "mcp": { "servers": { ... } } avec "type": "http".
| En-tête | Valeur | Objectif |
|---|---|---|
Authorization |
Bearer <token> |
Identité (jeton Sanctum, expiration à 90 jours) |
X-Api-Key |
sois_... |
Suivi du budget et de l'utilisation |
Deux identifiants parce que l'identité et les dépenses sont séparées : un jeton prouve qui tu es, la clé contrôle et mesure le coût, et l'un sans l'autre est inutile. (Les jetons OAuth portent leur autorisation différemment, donc un connecteur sur l'Option A n'a pas besoin de l'en-tête X-Api-Key.)
Génère la paire par programmation quand tu automatises l'intégration :
curl -X POST "https://<your-workspace>.sois.ai/api/mcp/quick-setup" \
-H "Authorization: Bearer YOUR_EXISTING_TOKEN" \
-H "Content-Type: application/json" \
-d '{"client": "generic"}'
Points de terminaison de découverte
Un client peut tout apprendre à partir de trois documents publics à la racine de ton espace de travail :
| Point de terminaison | Objectif |
|---|---|
/.well-known/mcp.json |
Carte du serveur : nom, version, version du protocole, et emplacements des métadonnées OAuth |
/.well-known/oauth-protected-resource |
RFC 9728 : quel serveur d'autorisation protège cette ressource |
/.well-known/oauth-authorization-server |
RFC 8414 : les points de terminaison authorize, token et register, les octrois, et la méthode PKCE |
La carte du serveur indique authentication.type comme oauth2 et renvoie aux deux documents OAuth, c'est ainsi qu'un connecteur sait démarrer le flux de l'Option A.
Détails du protocole
Le point de terminaison parle Streamable HTTP avec JSON-RPC 2.0 (version de spécification 2025-06-18).
Cycle de vie de la session
| Étape | Requête | Notes |
|---|---|---|
| Initialiser | POST /api/mcp méthode initialize |
Négocie les capacités ; la réponse porte un en-tête Mcp-Session-Id |
| Lister les outils | POST /api/mcp méthode tools/list |
Retourne chaque outil que ton compte est autorisé à utiliser |
| Appeler un outil | POST /api/mcp méthode tools/call |
params.name + params.arguments |
| Maintenir vivant | GET /api/mcp avec Mcp-Session-Id |
Ouvre un flux SSE pour les messages serveur vers client |
| Démantèlement | DELETE /api/mcp avec Mcp-Session-Id |
Termine la session |
Inclus le Mcp-Session-Id de la réponse d'initialisation sur chaque requête ultérieure.
Méthodes prises en charge
| Méthode | Description |
|---|---|
initialize |
Démarre une session, négocie les capacités |
ping |
Vérification de santé |
tools/list |
Liste les outils disponibles avec schémas |
tools/call |
Exécute un outil par nom avec arguments |
notifications/initialized |
Le client confirme l'initialisation (pas de réponse) |
notifications/cancelled |
Le client annule une requête en attente (pas de réponse) |
Quels outils sont disponibles
tools/list retourne tout ce que ton compte peut faire dans Sois AI, filtré selon tes permissions :
- Contacts : rechercher, créer, mettre à jour, résumer
- Tâches : créer, assigner, mettre à jour le statut, rechercher
- Calendrier : lister, créer, mettre à jour des événements, vérifier la disponibilité
- Documents : rechercher, créer, mettre à jour le contenu
- Fichiers : parcourir, télécharger, envoyer
- Boîte de réception : lire, rédiger, envoyer
- Départements et équipe : lister et gérer (admin)
- Applications installées : chaque outil ajouté par les extensions que tu as installées (CRM, facturation, entrepôt, entités personnalisées, etc.)
La liste exacte dépend du rôle de l'utilisateur authentifié et des applications installées. Les outils sont filtrés par permissions et échouent en mode fermé, donc une connexion ne peut jamais appeler quelque chose que l'utilisateur n'est pas autorisé à utiliser.
Le constructeur d'applications fonctionne sur ce même point de terminaison
Il n'y a pas de serveur MCP séparé pour construire des applications. Les outils du constructeur d'extensions font partie du même serveur MCP d'espace de travail et apparaissent dans le même tools/list, avec une condition : ils sont réservés aux administrateurs, donc ils n'apparaissent que pour les comptes capables de construire. Si ton compte peut construire des applications, ta liste d'outils inclut aussi :
getExtensionRules,getExtensionFrameSpec(à quoi une application doit ressembler)createExtensionProject,listExtensionProjects,getExtensionStatusvalidateExtensionBundle,uploadExtensionBundle
Donc construire une application est le même acte que tout le reste : tu connectes ton agent à ton espace de travail une fois, et si tu es un constructeur il peut échafauder, valider et publier une application en parallèle de la gestion de ton entreprise, tout via le seul point de terminaison /api/mcp. Voir Construire une application pour le flux de travail.
(À ne pas confondre avec le connecteur public en lecture seule de contexte de construction qu'un opérateur peut ajouter pour annoncer les capacités d'un réseau ; c'est un point de terminaison séparé, non authentifié sur le domaine du réseau, pas ton serveur MCP d'espace de travail.)
Budget, limites et erreurs
| Quoi | Valeur |
|---|---|
| Limite de débit | 120 requêtes/minute |
| Coût d'appel d'outil | facturé en crédits IA |
| Budget | par clé API (Option B) ou par espace de travail ; tu définis le plafond |
| Expiration du jeton | 90 jours (jeton Sanctum Option B) ; les jetons OAuth se rafraîchissent automatiquement |
Les erreurs JSON-RPC standard s'appliquent, plus quelques codes spécifiques :
| Code | Signification |
|---|---|
-32001 |
Non autorisé ou session expirée (les connecteurs Option A reçoivent le défi OAuth ici) |
-32002 |
Crédits IA insuffisants |
-32003 |
Outil non autorisé pour ce compte |
-32004 |
Plafond de budget atteint |
Teste ta connexion
curl -X POST "https://<your-workspace>.sois.ai/api/mcp/test" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "X-Api-Key: YOUR_API_KEY"
Retourne si les identifiants fonctionnent et combien d'outils leur sont visibles.
Amener ton propre agent est la voie stratégique. Le Serveur MCP permet à ton propre client IA de raisonner directement sur tes outils SOIS, donc SOIS ne dépense aucune IA en ton nom. La Passerelle d'Agent de Chat est la rampe d'accès pour les appelants qui n'ont pas d'agent : messages en langage clair sur HTTP, où l'agent propre de SOIS fait le raisonnement. Utilise celui qui convient à ton appelant, ou les deux.
Tu veux connecter Sois à des serveurs MCP externes à la place ? Voir la Passerelle MCP pour les connexions sortantes.