Coroid expose un serveur Model Context Protocol (MCP) distant. Un assistant ou un agent externe, comme Hermes, Codex ou Claude Code, peut l'utiliser pour travailler avec Coroid via le même registre d'outils gouvernés que celui employé par l'assistant de chat.
Configurez-le sous Paramètres → Connexions → Coroid MCP server, ce qui couvre Aperçu, Configuration du client, Jeton d'accès, Approbations et Politiques d'automatisation.
Le point de terminaison
Le serveur MCP fonctionne sur le gateway API, à cette adresse :
https://api.coroid.ai/mcpLe transport utilisé est le HTTP streamable sans état. L'authentification se fait via OAuth ou un jeton d'accès personnel.
Ce qui est activé
Coroid active les fonctionnalités MCP par étapes, pour chaque organisation en même temps.
| Fonctionnalité | Sur coroid.ai |
|---|---|
| Connexion OAuth | Activé |
| Lire les outils | Activé |
| Jeton d'accès personnel | Activé |
| Outils qui créent, modifient, exécutent ou livrent du travail | Activé |
| Outils d'administration, y compris les Paramètres de l'organisation | Pas encore |
Tant qu'une fonctionnalité n'est pas activée, les clients ne voient pas ses outils et Coroid rejette les appels les concernant. Le reste de cette page décrit l'ensemble complet.
Connecter un client
Utilisez OAuth si votre client le prend en charge. Vous approuvez la connexion dans votre navigateur et pouvez la révoquer à tout moment. Les jetons d'accès expirent après 15 minutes et les jetons de rafraîchissement après 30 jours ; chaque rafraîchissement remplace le jeton de rafraîchissement.
Le client demande des scopes lors de la connexion. Avant de valider, vous voyez les scopes et choisissez si le client peut accéder à tous les projets ou seulement à certains. Un client qui ne demande aucun scope n'a qu'un accès en lecture ; demandez donc les scopes dont vous avez besoin, comme le fait l'exemple de Codex.
Hermes
hermes mcp add coroid --url https://api.coroid.ai/mcp --auth oauth
hermes mcp login coroid
hermes mcp test coroidAu lieu de cela, utilisez un jeton d'accès :
hermes mcp add coroid --url https://api.coroid.ai/mcp --auth headerDonnez le jeton à Hermes lorsqu'il en fait la demande. Conservez-le dans le magasin de credentials d'Hermes plutôt que dans son fichier de configuration.
Codex
codex mcp add coroid --url https://api.coroid.ai/mcp
codex mcp login coroid --scopes mcp.read,mcp.work.write,mcp.execute,mcp.deliveryAu lieu de cela, utilisez un jeton d'accès :
export COROID_MCP_TOKEN="cmp_pat_…"
codex mcp add coroid --url https://api.coroid.ai/mcp --bearer-token-env-var COROID_MCP_TOKENClaude Code
claude mcp add --transport http --scope user coroid https://api.coroid.ai/mcp
/mcpExécutez la première commande dans votre terminal. Ensuite, tapez la seconde dans Claude Code, sélectionnez coroid et connectez-vous via votre navigateur.
Au lieu de cela, utilisez un jeton d'accès :
export COROID_MCP_TOKEN="cmp_pat_…"
claude mcp add --transport http --scope user --header "Authorization: Bearer $COROID_MCP_TOKEN" coroid https://api.coroid.ai/mcpAutres clients
Tout client prenant en charge les serveurs MCP distants via Streamable HTTP peut se connecter. Coroid publie les métadonnées OAuth pour le point de terminaison et prend en charge l'enregistrement dynamique de clients avec PKCE. Un client sans OAuth peut envoyer un jeton d'accès en tant que jeton porteur dans cet en-tête : Authorization.
Avant qu'un agent ne modifie quoi que ce soit, demandez-lui de lister les outils de Coroid et de lire cette ressource : coroid://context. Il indique sous quel nom l'agent agit, ainsi que les scopes et projets concernés.
Jeton d'accès
Les jetons sont créés et gérés sous Jeton d'accès. Comme toute autre credential, ils sont affichés une seule fois et ne sont jamais renvoyés par la suite.
Émettez un jeton par client plutôt que de partager un seul. Révoquer l'accès d'un client unique constitue alors une action isolée plutôt qu'une panne affectant tout le monde.
Un jeton agit au nom de la personne qui l'a créé, et seule une personne connectée au portail peut en créer un. Chaque jeton possède ses propres scopes, expire après 30, 90 ou 365 jours, et couvre tous les projets ou uniquement ceux que vous sélectionnez. Un propriétaire peut également y associer une politique d'automatisation. Tous les jetons commencent par le même préfixe :
cmp_pat_.
Stockez le jeton dans l'environnement de votre client ou dans un magasin de données d'identification. Ne l'inscrivez jamais dans un dépôt ni dans une invite.
Scopes et rôles
Un scope définit les actions autorisées pour une connexion. Votre rôle au sein de l'organisation fixe la limite : un outil nécessite à la fois son scope et au moins son rôle. Coroid vérifie votre rôle actuel à chaque appel, afin qu'une connexion ne conserve jamais des droits dont vous avez perdu l'accès.
| Scope | Ce qu'il débloque | Rôle le plus bas |
|---|---|---|
mcp.read | Lecture des projets, tâches, plans, sprints, rapports, dépendances, capacité, exécutions d'agents, voies d'usine, promotions et versions | Réviseur |
mcp.work.write | Création et modification des tâches, plans, sprints, dépendances et rapports | Membre |
mcp.execute | Démarrage, arrêt, nouvelle tentative, mise en pause, reprise et annulation des travaux | Membre |
mcp.delivery | Approbation des plans, clôture des sprints, promotions, validation des voies et versions | Membre |
mcp.projects.admin | Création, mise à jour, archivage et restauration des projets, ainsi que gestion des versions | Administrateur |
mcp.schedules.admin | Lecture, création, mise à jour, déclenchement et suppression des plannings | Administrateur |
mcp.integrations.admin | Lecture, test, activation/désactivation et suppression des intégrations | Administrateur |
mcp.secrets.write | Création d'intégrations contenant des données d'identification | Propriétaire |
mcp.organization.admin | Membres, invitations, profil d'organisation et Paramètres de l'organisation | Propriétaire |
mcp.billing.read | Réservé. Aucun outil ne l'utilise encore. | — |
mcp.billing.write | Réservé. Aucun outil ne l'utilise encore. | Propriétaire |
Seul un administrateur ou un propriétaire peut accorder un scope dont le rôle le plus bas est Administrateur. Seul un propriétaire peut accorder un scope dont le rôle le plus bas est Propriétaire.
Une connexion limitée à certains projets ne peut pas accéder aux éléments d'autres projets, même via l'ID d'une tâche, d'un plan, d'un sprint, d'un rapport ou d'une version. Elle ne peut pas non plus utiliser les outils valables pour toute l'organisation, tels que ceux-ci : list_plans,
get_capacity_dashboard.
Outils
Votre client n'affiche que les outils activés et autorisés selon vos scopes et votre rôle. La colonne d'approbation indique ce qui se passe lors de l'appel à un outil :
| Approbation | Ce qui se passe |
|---|---|
| Aucun | L'outil s'exécute immédiatement |
| Politique | L'appel attend l'approbation, sauf si une politique d'automatisation s'applique. |
| Toujours | L'appel attend systématiquement l'approbation d'un propriétaire ou d'un administrateur. |
Lecture
Ces outils requièrent le rôle de Réviseur et ce scope : mcp.read. Aucun d'entre eux n'a besoin d'approbation.
| Zone | Outils |
|---|---|
| Projets | list_projects, get_project, get_project_dependencies, list_project_branches |
| Tâches | list_tasks, get_task, get_workflow_status, get_execution_status, check_task_can_start |
| Plans | list_plans, get_plan, get_plan_progress, list_plan_tasks |
| Sprints | list_sprints, get_sprint, get_sprint_status |
| Dépendances | analyze_dependencies, get_dependency_graph, get_global_dependency_graph, get_cross_project_blockers |
| Rapports | list_reports, get_report, export_report, explain_report_execution, list_report_folders, list_report_subscriptions, list_report_templates |
| Capacité et activité | get_capacity_dashboard, get_queue_eta, get_mission_control_activity, get_global_execution_stats, get_global_execution_actions, list_global_execution_runs |
| Exécution des agents | list_agent_executions, get_agent_execution, get_agent_execution_state, get_execution_conversation, list_tool_executions |
| Voies et promotions de l'Usine | list_factory_lanes, get_factory_lane, list_factory_lane_tasks, get_factory_lane_gate_context, list_promotions, get_promotion |
| Historique du code | explain_code |
Pour en savoir plus sur les outils de versionnement, consultez Versions via MCP.
Création et modification du travail
Ces outils nécessitent le rôle Membre et ce Scope : mcp.work.write.
| Zone | Outils | Approbation |
|---|---|---|
| Tâches | create_task, update_task | Aucun |
| Plans | create_plan, update_plan | Aucun |
| Plans | delete_plan | Toujours |
| Sprints | create_sprint, plan_sprint, add_task_to_sprint | Aucun |
| Sprints | remove_task_from_sprint | Toujours |
| Dépendances | create_dependency | Aucun |
| Rapports | create_report, update_report, create_report_folder, update_report_folder, create_report_subscription, update_report_subscription | Aucun |
| Rapports | batch_update_reports, delete_report, delete_report_folder, delete_report_subscription | Toujours |
Le travail créé via MCP n'est pas soumis à la phase de qualification. Une demande de taille de plan envoyée à l'outil de tâches devient un plan brouillon plutôt qu'une tâche. Les plans créés via MCP démarrent sous forme de brouillons.
Exécution du travail
Ces outils nécessitent le rôle Membre et ce Scope : mcp.execute.
| Zone | Outils | Approbation |
|---|---|---|
| Tâches | start_task_execution, retry_task_execution | Politique |
| Tâches | stop_task_execution | Toujours |
| Plans | start_planning_workflow, execute_plan, retry_plan_task_integration | Politique |
| Plans | cancel_plan | Toujours |
| Sprints | start_sprint | Politique |
| Rapports | pause_report, resume_report, cancel_report, retry_report_generation | Politique |
| Usine | start_global_execution, pause_global_execution, resume_global_execution, pause_factory_lane, resume_factory_lane | Politique |
| Usine | cancel_global_execution, set_agent_execution_state | Toujours |
Livraison
Ces outils nécessitent le rôle Membre et ce Scope : mcp.delivery. Les versions disposent de leur propre section ci-dessous.
| Outils | Approbation |
|---|---|
approve_plan, close_sprint, create_promotion, approve_promotion, request_promotion_changes, validate_factory_lane | Politique |
force_merge_promotion | Toujours |
Administration
Ces outils modifient la configuration de l'organisation et de ses Projets.
| Outils | Scope | Rôle le plus bas | Approbation |
|---|---|---|---|
create_project, update_project, restore_project | mcp.projects.admin | Administrateur | Aucun |
archive_project | mcp.projects.admin | Administrateur | Toujours |
list_schedules, get_schedule, create_schedule, update_schedule | mcp.schedules.admin | Administrateur | Aucun |
trigger_schedule | mcp.schedules.admin | Administrateur | Politique |
delete_schedule | mcp.schedules.admin | Administrateur | Toujours |
list_integrations, get_integration | mcp.integrations.admin | Administrateur | Aucun |
test_integration | mcp.integrations.admin | Administrateur | Politique |
set_integration_status, delete_integration | mcp.integrations.admin | Administrateur | Toujours |
create_integration | mcp.secrets.write | Propriétaire | Toujours |
list_organization_members, list_organization_invitations | mcp.organization.admin | Propriétaire | Aucun |
invite_organization_member, update_organization_member_role, remove_organization_member, revoke_organization_invitation, update_organization | mcp.organization.admin | Propriétaire | Toujours |
Paramètres de l'organisation
Un agent tel que Hermes peut configurer une organisation à partir de captures d'écran, de fichiers ou d'une description. Il lit le format des paramètres de Coroid, rédige son contenu dans un bundle, prévisualise ce dernier puis l'applique. Ces outils nécessitent le rôle de Propriétaire et ce Scope : mcp.organization.admin.
| Outil | Fonctionnalité | Approbation |
|---|---|---|
describe_organization_settings_schema | Renvoie le format des paramètres, ses sections et les indications de mappage | Aucun |
export_organization_settings | Exporte les paramètres actuels, avec les secrets sous forme de placeholders | Aucun |
preview_organization_settings_import | Affiche les modifications apportées par un bundle sans effectuer d'écriture | Aucun |
apply_organization_settings_import | Applique un bundle, qui est fusionné avec les paramètres actuels par défaut ou les remplace | Toujours |
Un bundle contient des placeholders au lieu de valeurs secrètes, et Coroid rejette tout bundle incluant un secret. Voir Exporter et importer les paramètres.
Versions via MCP
Les outils de version sont les mêmes que ceux utilisés par l'assistant Chat et passent par la même Version API que le portail :
| Outil | Portée | Approbation |
|---|---|---|
list_releases, get_release, list_release_commits, preview_release, get_release_settings, list_release_pull_requests | mcp.read | Aucun |
create_release, update_release, run_release_checks, draft_release_notes | mcp.delivery | Aucun |
approve_release, request_release_deployment, bundle_release_pull_requests | mcp.delivery | Toujours |
update_release_versioning | mcp.projects.admin | Aucun |
create_release accepte un hachage de commit complet, un hachage court d'un commit récent, ou
latest, et laisse la version au soin de la source de version du projet sauf si vous en spécifiez une. get_release indique, par environnement, les vérifications, la dernière déploiement, la version signalée par votre pipeline et si Coroid a confirmé la version en cours d'exécution. Un jeton limité à certains projets ne peut pas accéder aux versions d'autres projets. La Version API applique toujours ses propres règles d'approbation ; une approbation via MCP compte donc exactement comme une approbation dans le portail.
list_release_pull_requests Renvoie les demandes de fusion ouvertes du projet dans l'ordre proposé par Coroid, en indiquant la raison de leur exclusion éventuelle.
bundle_release_pull_requests crée une version à partir de ces éléments : une branche de version
avec les pull requests fusionnées dans l’ordre et un pull request de version. Cela pousse
une branche et ouvre un pull request, et attend donc toujours l’intervention d’une personne. Omettre
prNumbers Utilisez la sélection effectuée par Coroid.
Approbations et politiques d'automatisation
Approbations représente une file d'attente d'actions en attente d'approbation humaine. Politiques d'automatisation déterminent ce qui doit figurer dans cette file d'attente.
C'est le contrôle essentiel. Un client externe agissant en votre nom doit pouvoir effectuer librement les tâches routinières et uniquement les actions importantes avec l'accord d'une personne. Définissez les politiques avant de confier un jeton à tout élément s'exécutant sans surveillance.
Lorsqu'un appel nécessite une approbation, le client reçoit un identifiant d'approbation et un lien au lieu d'un résultat. Le propriétaire ou l'administrateur examine l'outil et les arguments exacts, puis approuve ou rejette l'appel. L'approbation exécute l'appel tel qu'il a été formulé, et le client ne peut plus le modifier par la suite. Un appel non approuvé dans les 10 minutes expire.
Une politique d'automatisation permet à un jeton d'accès d'exécuter des outils marqués « Policy » sans attendre d'approbation. Seuls les propriétaires peuvent créer des politiques et les associer à des jetons. Une politique précise les outils exacts, peut être limitée à certains projets et fixe un plafond pour le nombre d'appels par heure, par jour et simultanément. Elle peut également expirer. Révoquer une politique revoque tous les jetons qui y sont associés. Les outils marqués « Always » ne sont jamais couverts par une politique.
Une connexion OAuth ne peut pas porter de politique. Via OAuth, tout outil marqué « Policy » attend une approbation.
Tentatives, opérations et ressources
Chaque outil qui modifie quelque chose requiert ce paramètre : idempotencyKey.
Utilisez une nouvelle clé pour chaque nouvelle action, et la même clé lors d'une nouvelle tentative. Coroid renverra alors
le premier résultat au lieu d'agir deux fois. Une clé réutilisée avec des arguments différents sera refusée.
Une modification renvoie également une opération qui enregistre son état et son résultat. Ces quatre outils fonctionnent pour toute connexion :
| Outil | Fonctionnalité |
|---|---|
get_operation | Renvoie l'état et le résultat d'une opération |
wait_for_operation | Attend jusqu'à 25 secondes que l'état d'une opération change |
cancel_operation | Annule une opération qui n'a pas encore commencé |
get_approval | Renvoie l'état et le résultat d'une approbation |
Le serveur fournit également ces ressources :
| Ressource | Contenu |
|---|---|
coroid://context | Identité sous laquelle la connexion agit, avec son rôle, ses scopes et ses projets |
coroid://capabilities | Outils auxquels cette connexion peut accéder |
coroid://operations/{operationId} | Une opération |
coroid://approvals/{approvalId} | Une approbation |
Il propose également trois invites : create_and_run_task, investigate_failure,
prepare_release.
Chaque outil possède des limites par minute, par heure et par jour. Un appel dépassant ces limites échouera et indiquera le temps d'attente avant une nouvelle tentative.
Ce qu'il n'expose pas délibérément
Le registre d'outils est réglementé, et ces exclusions sont intentionnelles. Il ne fournit aucun de ces éléments :
- un shell
- l'accès Git
- le système de fichiers
- l'accès brut à la base de données
- HTTP interne arbitraire
- les outils d'administration MCP sortants propres à Coroid
Vous obtenez la possibilité de gérer le travail — créer et consulter des tâches, plans, projets et versions — pas un environnement d'exécution à distance. Un client MCP ne peut pas utiliser Coroid pour exécuter des commandes arbitraires.
À quoi cela sert-il ?
Utiliser Coroid depuis l'endroit où vous travaillez déjà : un éditeur, un assistant ou un outil interne, sans avoir à basculer vers le portail. Créer une tâche depuis votre terminal ou demander à un assistant de vérifier ce qui est bloqué devient une action locale.