Aller au contenu
MCP

Intégration MCP

MCP est le point d’entrée IA natif de Stellary et la meilleure façon de connecter Cursor, Claude Code, Claude Desktop, ou tout autre client Model Context Protocol à des données de delivery vivantes. Au lieu de reconstruire manuellement l’arbre REST, un client externe peut se brancher sur l’endpoint /mcp intégré et opérer à travers la même surface de tools que les agents et le runtime.

Cette page documente le comportement réel du serveur MCP actuellement implémenté dans le backend : transport, modèle d’identité, exposition du registre de tools, missions en file, gestion des propositions et extensions pilotées par plugins.

Pourquoi cette page compte

Dans Stellary, MCP n’est ni une surcouche tardive ni un simple habillage autour d’exemples de doc. C’est une surface runtime de premier plan, branchée directement au delivery projet, à la supervision cockpit, à l’exécution des agents et aux plugins installés dans le workspace.

Vue d’ensemble

Le serveur MCP est intégré directement dans le backend NestJS. Il n’y a pas de daemon séparé à lancer, pas de sidecar à déployer, et pas de bridge custom à maintenir.

Endpoint: https://api.stellary.co/mcp
Transport: Streamable HTTP
Méthodes: GET et POST
Header auth: Authorization: Bearer <token>
Session requise: non
GET est utile pour la découverte / négociation de protocole.
POST transporte les vraies requêtes MCP.

L’implémentation crée un transport stateless neuf à chaque requête, notamment pour rester compatible avec les clients MCP qui ne persistent pas d’identifiant de session.

Besoin d’abord du setup produit plus large ? Commencez par le Démarrage rapide pour le workspace, les tokens et les agents, ou utilisez la Référence API si vous devez provisionner des ressources avant qu’un client IA n’entre dans la boucle.

MCP vs REST

Utilisez MCP lorsque l’appelant est un client IA ou une boucle agent. Utilisez REST lorsque vous avez besoin d’un CRUD ressource déterministe, de contrats HTTP explicites, ou d’une intégration backend classique.

Cas d’usagePréférer MCPPréférer REST
Assistant IA interactif dans Cursor ou ClaudeOuiNon
Boucle agent avec travail en fileOuiNon
Provisioning explicite de projet depuis du codeNonOui
Tests d’intégration déterministes sur les routesNonOui
Tools plugins installés dans un workflow IAOuiGénéralement non

Si vous devez créer workspaces, projets ou flux billing avant que la couche IA n’entre en jeu, partez de la Référence API puis ajoutez MCP par-dessus.

Transport

Clientmcp

Cursor, Claude Desktop, Claude Code, ou un autre client compatible MCP se connecte via Streamable HTTP.

Serveur intégré/mcp

Stellary gère GET et POST directement dans le backend et recrée un transport à chaque requête.

Tools workspacelive

Le même endpoint peut exposer des tools board, cockpit, file agent et plugins.

Le transport est volontairement stateless. En pratique, cela signifie que vous pouvez connecter des clients comme Cursor sans dépendre d’un Mcp-Session-Id persistant.

Modèle d’identité

Une connexion OAuth appartient à un workspace et peut autoriser votre identité, un ou plusieurs agents actifs, ou les deux. Les credentials directs historiques restent pris en charge.

Connexion OAuthMoi + agents

Le choix recommandé pour Claude, Codex, ChatGPT et les clients compatibles. Le consentement sélectionne le workspace et les identités.

Agent sélectionnéAgent token

Chaque appel réapplique son état actif, ses projets, son rôle, sa politique de tools, son autonomie et son contexte de mission.

Credentials directsPAT / JWT

Ils restent disponibles pour les scripts et les clients historiques qui ne savent pas encore ouvrir un parcours OAuth.

Appelez stellary_list_identities pour obtenir les références opaques. Avec une seule identité, actingAs est implicite. Avec plusieurs identités, actingAs est obligatoire sur chaque appel, y compris stellary_init et les tools de mission.

Authentification

OAuth 2.1 avec découverte, enregistrement dynamique des clients et PKCE S256 est le parcours public recommandé. Les clients reçoivent un access token d’une heure et peuvent renouveler leur connexion avec un refresh token rotatif lorsque offline_access est accordé.

Type de bearerIdentité résolueMeilleur usageNuance importante
Access token OAuthMoi et/ou agents autorisésClaude, Codex, ChatGPT et clients OAuth compatiblesLe workspace, les identités et les scopes sont choisis au consentement
JWT utilisateurUtilisateur humainSessions navigateur et setup client courtPratique pour explorer, mais moins confortable qu’un PAT dans un outil externe
Personal access tokenUtilisateur humainCursor, Claude Code, scripts, clients stables hors navigateurCompatibilité pour les clients qui ne prennent pas encore OAuth en charge
Agent tokenAgent de workspaceMissions en file, tools plugins, automatisation avec contexte workspaceLe meilleur fit pour les boucles agent externes et les agents MCP-only
MCP_TOKENContexte MCP anonymeBarrière de transport et setups local/dev limitésLes tools Stellary actuels ont encore majoritairement besoin d’une identité utilisateur ou agent

L’accès est réévalué à chaque appel : scopes du credential, accès projet, permissions workspace, état et politique de l’agent, autonomie et snapshot de mission restent prioritaires. Un agent suspendu devient immédiatement indisponible sans couper les autres identités de la connexion.

Configuration client

Ajoutez seulement l’endpoint https://api.stellary.co/mcp dans un client OAuth compatible. Le client découvre automatiquement Stellary, ouvre la connexion dans votre navigateur, puis revient avec ses tokens. Aucun PAT n’est à copier dans sa configuration.

Cursor

{
"mcpServers": {
"stellary": {
"url": "https://api.stellary.co/mcp"
}
}
}

Claude Code

claude mcp add stellary \
--transport http \
https://api.stellary.co/mcp

Claude Desktop et clients similaires

{
"mcpServers": {
"stellary": {
"url": "https://api.stellary.co/mcp"
}
}
}

Après connexion, le premier mouvement utile consiste généralement à appeler list_projects, puis à passer sur des IDs exacts pour le reste de la session.

Pour un client historique sans OAuth, créez un personal access token depuis la section API tokens et ajoutez-le comme bearer. OAuth reste le parcours recommandé pour toute nouvelle connexion.

Workflows courants

En pratique, le serveur MCP de Stellary est surtout utilisé selon trois schémas : exploration interactive du workspace, exécution d’agent sur missions en file, et actions opérationnelles pilotées par plugins.

Assistant projet interactifhumain

Utilisez Cursor, Claude Code ou Claude Desktop comme un utilisateur humain pour inspecter projets, cartes, documents et signaux cockpit dans un même workspace.

Exécution de missions en fileagent

Faites tourner un agent dédié hors de l’app, récupérez les missions en file et renvoyez l’état des cartes vers le delivery.

Opérations pilotées par pluginsplugins

Combinez contexte board et tools GitHub, Slack, Email, Discord ou X depuis la même surface MCP pour des workflows réellement opérationnels.

Pour les surfaces produit derrière ces workflows, voyez Board & cartes, Documents & contexte et le guide des agents.

Surface des tools

Les tools MCP sont assemblés depuis trois endroits dans le backend : les anciens tools cockpit, le registre partagé de tools cœur, et les plugins workspace installés. Le résultat est un endpoint unique, mais pas un usage unique.

Lecture boardcore

Explorez projets, membres, labels, cartes, sous-tâches et contexte delivery avant de décider d’une écriture.

list_projects | get_project_details | list_cards | get_card_details | get_card_comments
Écriture board & collaborationcore

Créez ou mettez à jour des cartes, déplacez le travail entre colonnes, assignez, commentez et gardez les checklists ou sous-tâches alignées.

create_card | create_cards_bulk | move_card | update_card | assign_card | add_comment
Cockpit & supervisioncore

Lisez les signaux de pilotage du workspace, le contexte sprint, le monitoring et les propositions en attente depuis la couche cockpit.

get_pilotage_state | get_cockpit_dashboard | get_agent_status | list_pending_proposals
Runtime agentagent

Exécutez des boucles agent externes, réclamez des missions en file, terminez ou faites échouer les runs, et gardez le cycle de vie des cartes synchronisé avec l’app.

stellary_init | get_next_mission | wait_for_mission | complete_mission | fail_mission

Plusieurs tools board acceptent une commodité par nom avec résolution exacte ou fuzzy. Malgré cela, pour les runs sérieux et les boucles agent longues, mieux vaut découvrir les IDs d’abord puis les réutiliser explicitement.

Si vous voulez comprendre les surfaces humaines sur lesquelles ces tools opèrent, lisez aussi le guide board et le guide documents.

Tools plugins

Les définitions plugins sont enregistrées automatiquement dans la même surface MCP lorsque le plugin est installé et activé dans un workspace. Leurs IDs de tools sont préfixés par le slug du plugin.

Exemples:
github_list_repos
github_create_pr
slack_post_message
email_send_email
discord_post_message
x_create_draft

Le codebase embarque actuellement des définitions de plugins pour GitHub, Slack, Email, Discord et X. Ces tools demandent un contexte workspace plus une configuration plugin déchiffrée, donc ils sont typiquement consommés via des agent tokens.

Missions agent

MCP devient particulièrement puissant lorsqu’il est couplé à des agents de workspace dédiés. Dans ce modèle, l’app met les missions en file et le client MCP externe devient la boucle d’exécution.

  1. Assignez un agent actif à une carte dans Stellary.
  2. Lancez une mission depuis l’app.
  3. Si l’agent est mcpOnly, la mission est mise en file au lieu d’être exécutée localement.
  4. Le client MCP externe réclame le travail avec get_next_mission ou long-poll avec wait_for_mission.
  5. La prise en charge passe la mission en cours et déplace la carte vers la colonne in-progress si possible.
  6. Le client termine avec complete_mission ou fail_mission, ce qui met à jour l’état de mission et poste un commentaire sur la carte.

Pour les agent tokens, stellary_init est l’appel de bootstrap recommandé. Il retourne le mode d’autonomie, les règles, les skills, et la liste filtrée des tools réellement disponibles pour cet agent.

Boucle agent recommandée:
1. stellary_init
2. get_next_mission ou wait_for_mission
3. lire le contexte carte et les documents
4. exécuter les tools avec des IDs exacts
5. complete_mission ou fail_mission

Approbations

Le comportement de proposition est piloté par la couche de policy des tools. Seuls les agent tokens participent aux contrôles de propositions liés à l’autonomie ; un humain utilisant MCP agit directement en son nom.

Mode d’autonomie agentTools de lectureTools d’écriture et de collaboration
autonomousExécution directeExécution directe
supervisedExécution directeLes tools sûrs s’exécutent directement ; les tools marqués approval_required retournent une proposition persistée
approvalExécution directeTout tool non-read devient une proposition

Les agents MCP-only gardent le mode d’autonomie configuré dans Stellary. En mode approval, les écritures non-read deviennent des propositions persistées, même si le client d’exécution est externe.

Développement local

En développement local, si NODE_ENV n’est pas `production` et que MCP_TOKEN n’est pas défini, le contrôleur laisse les requêtes non authentifiées atteindre le transport MCP. Cela simplifie le branchement local, mais ne donne pas magiquement accès aux données workspace.

Exemple backend/.env:
# MCP_TOKEN=your-secret-token
Sans MCP_TOKEN en local :
- /mcp reste joignable
- les tools workspace actuels demandent encore majoritairement une identité utilisateur ou agent

En production, ou dès que MCP_TOKEN est configuré, un bearer token est requis avant même d’atteindre le transport.

Dépannage

401 token invalide ou expiré

Un client OAuth doit suivre le challenge WWW-Authenticate et ouvrir le consentement Stellary. Pour un credential direct, vérifiez le format bearer, son expiration et sa révocation.

Le tool indique qu’il faut un user token

Vous êtes probablement connecté avec MCP_TOKEN ou avec une requête locale anonyme. Passez sur un JWT utilisateur ou un personal access token.

Le tool indique qu’il faut un contexte workspace

Avec plusieurs identités OAuth, appelez stellary_list_identities puis fournissez actingAs. Pour une action agent liée à un projet, réclamez d’abord une mission afin d’obtenir un missionRunId valide.

Le tool plugin est visible mais échoue

Le plugin du workspace n’est peut-être pas installé ou activé, ou sa configuration chiffrée peut être manquante. Les tools plugins demandent aussi un contexte agent/workspace dans le flow MCP actuel.

Le fuzzy matching choisit la mauvaise ressource

Commencez par list_projects, list_cards, ou un autre tool de découverte, puis réutilisez les IDs exacts. C’est le pattern le plus sûr pour des boucles agent longues.

Ces pages aident à relier MCP au reste du modèle opératoire Stellary, du provisioning des ressources jusqu’aux agents de workspace et à une stratégie MCP plus large.