Documentation

Coroid en tant que serveur MCP

Connectez Hermes, Codex, Claude Code, Cursor ou tout autre client MCP et travaillez avec Coroid via des outils gouvernés.

Coroid expose un serveur Model Context Protocol (MCP) distant. Un assistant ou un agent externe, comme Hermes, Codex, Claude Code ou Cursor, peut l'utiliser pour travailler avec Coroid via le même registre d'outils gouvernés que celui utilisé par l'assistant de chat.

Configurez 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 s'exécute sur le passerelle API, à cette adresse :

https://api.coroid.ai/mcp

Le protocole de transport est le HTTP streamable sans état. Authentifiez-vous avec OAuth ou un jeton d'accès personnel.

Ce qui est activé

Coroid active les fonctionnalités MCP par étapes, pour toutes les organisations en même temps.

FonctionnalitéSur coroid.ai
Connexion OAuthActivé
Lire les outilsActivé
Jeton d'accès personnelActivé
Outils qui créent, modifient, exécutent ou livrent du travailActivé
Outils d'administration, y compris les paramètres d'organisationPas encore

Tant qu'une fonctionnalité n'est pas activée, les clients ne voient pas ses outils et Coroid rejette les appels destinés à ceux-ci. 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 lorsqu'il se connecte. Avant de les approuver, 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 coroid

Avec un jeton d'accès à la place :

hermes mcp add coroid --url https://api.coroid.ai/mcp --auth header

Donnez le jeton à Hermes lorsqu'il en fait la demande. Conservez-le dans le magasin de données d'identification 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.delivery

Avec un jeton d'accès à la place :

export COROID_MCP_TOKEN="cmp_pat_…"
codex mcp add coroid --url https://api.coroid.ai/mcp --bearer-token-env-var COROID_MCP_TOKEN

Claude Code

claude mcp add --transport http --scope user coroid https://api.coroid.ai/mcp
/mcp

Exécutez la première commande dans votre terminal. Ensuite, tapez la seconde dans Claude Code, sélectionnez coroid et connectez-vous dans votre navigateur.

Avec un jeton d'accès à la place :

export COROID_MCP_TOKEN="cmp_pat_…"
claude mcp add --transport http --scope user --header "Authorization: Bearer $COROID_MCP_TOKEN" coroid https://api.coroid.ai/mcp

Cursor

Ajoutez Coroid à ~/.cursor/mcp.json, ou à .cursor/mcp.json dans un dépôt pour partager la configuration avec toutes les personnes qui y travaillent :

{
  "mcpServers": {
    "coroid": {
      "url": "https://api.coroid.ai/mcp"
    }
  }
}

Cursor se connecte via OAuth : approuvez la connexion dans votre navigateur lorsqu'il vous le demande. Vérifiez les scopes sur cet écran, car une connexion sans scopes d'écriture ne permet que la lecture.

Avec un jeton d'accès à la place :

{
  "mcpServers": {
    "coroid": {
      "url": "https://api.coroid.ai/mcp",
      "headers": {
        "Authorization": "Bearer ${env:COROID_MCP_TOKEN}"
      }
    }
  }
}

Définissez COROID_MCP_TOKEN dans l'environnement à partir duquel Cursor démarre. Un .cursor/mcp.json dans un dépôt est commité avec lui ; placez donc la variable deux, jamais le jeton.

Autres clients

Tout client prenant en charge les serveurs MCP distants via HTTP streamable 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. Elle indique sous quel nom l'agent agit, avec quels scopes et projets.

Jeton d'accès

Les jetons sont créés et gérés sous Jeton d'accès. Comme toute autre donnée d'identification, ils sont affichés une fois et ne sont jamais renvoyés par la suite.

Émettez un jeton par client plutôt que de partager le même. La révocation de l'accès d'un seul client devient alors une action isolée plutôt qu'une panne pour 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 concerne tous les projets ou uniquement ceux que vous sélectionnez. Un propriétaire peut également attacher une politique d'automatisation. Tous les jetons commencent par le même préfixe : cmp_pat_.

Conservez un jeton dans l'environnement de votre client ou dans son magasin de données d'identification. Ne le placez jamais dans un dépôt ou dans une invite de commande.

Scopes et rôles

Un scope définit ce qu'une connexion peut faire. Votre rôle dans 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 que vous avez perdus.

ScopeCe qu'il débloqueRôle le plus bas
mcp.readLire les projets, tâches, plans, sprints, rapports, dépendances, capacité, exécutions d'agents, voies de production, promotions et versionsRéviseur
mcp.work.writeCréer et modifier les tâches, plans, sprints, dépendances et rapportsMembre
mcp.executeDémarrer, arrêter, réessayer, mettre en pause, reprendre et annuler du travailMembre
mcp.deliveryApprouver les plans, clore les sprints, gérer les promotions, valider les voies et publier les versionsMembre
mcp.projects.adminCréer, mettre à jour, archiver et restaurer des projets, ainsi que gérer le versionnement des versionsAdministrateur
mcp.schedules.adminLire, créer, modifier, déclencher et supprimer des planningsAdministrateur
mcp.integrations.adminLire, tester, activer ou désactiver et supprimer des intégrationsAdministrateur
mcp.secrets.writeCréer des intégrations qui stockent les identifiants d'accèsPropriétaire
mcp.organization.adminGérer les membres, les invitations, le profil de l'organisation et les paramètres de l'organisationPropriétaire
mcp.billing.readRéservé. Aucun outil ne l'utilise encore.—
mcp.billing.writeRéservé. Aucun outil ne l'utilise encore.Propriétaire

Seul un administrateur ou un propriétaire peut accorder un périmètre dont le rôle le plus bas est Administrateur. Seul un propriétaire peut accorder un périmètre dont le rôle le plus bas est Propriétaire.

Une connexion limitée à certains projets ne peut pas accéder à quoi que ce soit dans d'autres projets, même via l'identifiant 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 à l'échelle de l'organisation, comme ceux-ci : list_plans, get_capacity_dashboard.

Outils

Votre client n'affiche que les outils activés et autorisés par vos périmètres et rôles. La colonne d'approbation indique ce qui se passe lors de l'appel à un outil :

ApprobationCe qui se passe
AucunL'outil s'exécute immédiatement
PolitiqueL'appel attend une approbation, sauf si une politique d'automatisation le couvre
ToujoursL'appel attend toujours l'approbation d'un propriétaire ou d'un administrateur

Lecture

Ces outils nécessitent le rôle de Réviseur et ce périmètre : mcp.read. Aucun d'entre eux n'a besoin d'approbation.

ZoneOutils
Projetslist_projects, get_project, get_project_dependencies, list_project_branches
Tâcheslist_tasks, get_task, get_workflow_status, get_execution_status, check_task_can_start
Planslist_plans, get_plan, get_plan_progress, list_plan_tasks
Sprintslist_sprints, get_sprint, get_sprint_status
Dépendancesanalyze_dependencies, get_dependency_graph, get_global_dependency_graph, get_cross_project_blockers
Rapportslist_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écutions d'agentslist_agent_executions, get_agent_execution, get_agent_execution_state, get_execution_conversation, list_tool_executions
Voies d'usine et promotionslist_factory_lanes, get_factory_lane, list_factory_lane_tasks, get_factory_lane_gate_context, list_promotions, get_promotion
Historique du codeexplain_code
Anti-slopanti_slop_rules, anti_slop_scan

Pour en savoir plus sur les outils de publication, consultez Versions via MCP.

Règles Anti-slop de votre éditeur

Les deux outils Anti-slop permettent à l'agent personnel d'un développeur de conformer son travail aux normes du Contrôle qualité appliquées à chaque pull request, avant même que l'pull request n'existe.

  • anti_slop_rules renvoie la politique Anti-slop publiée du projet : les règles et celles qui bloquent, les règles personnalisées, les règles mises en quarantaine, les nouvelles dépendances que Coroid peut rechercher dans les registres publics, ainsi qu'un extrait pour AGENTS.md qui énonce les mêmes règles pour un agent local. Collez l'extrait dans AGENTS.md, ou dans une règle dans .cursor/rules pour Cursor.
  • anti_slop_scan analyse une branche, une balise ou une validation que Coroid a synchronisée avec une base, la branche par défaut sauf indication contraire. Il ne fait qu'une lecture : il ne modifie aucun fichier, n'exécute aucune commande, n'installe rien et n'appelle aucun modèle. Il est limité à 5 appels par minute.

Une analyse est une prévisualisation. Le Contrôle qualité vérifie toujours l'pull request, et c'est son verdict qui compte. Consultez Vérifications Anti-slop.

Créer et modifier des tâches

Ces outils nécessitent le rôle Membre et ce périmètre : mcp.work.write.

ZoneOutilsApprobation
Tâchescreate_task, update_taskAucun
Planscreate_plan, update_planAucun
Plansdelete_planToujours
Sprintscreate_sprint, plan_sprint, add_task_to_sprintAucun
Sprintsremove_task_from_sprintToujours
Dépendancescreate_dependencyAucun
Rapportscreate_report, update_report, create_report_folder, update_report_folder, create_report_subscription, update_report_subscriptionAucun
Rapportsbatch_update_reports, delete_report, delete_report_folder, delete_report_subscriptionToujours

Le travail créé via MCP ne passe pas par la phase de qualification. Une demande de la taille d'un plan envoyée à l'outil de tâches devient un plan brouillon au lieu d'une tâche. Les plans créés via MCP démarrent sous forme de brouillons.

Exécuter le travail

Ces outils nécessitent le rôle Membre et ce périmètre : mcp.execute.

ZoneOutilsApprobation
Tâchesstart_task_execution, retry_task_executionPolitique
Tâchesstop_task_executionToujours
Plansstart_planning_workflow, execute_plan, retry_plan_task_integrationPolitique
Planscancel_planToujours
Sprintsstart_sprintPolitique
Rapportspause_report, resume_report, cancel_report, retry_report_generationPolitique
Usinestart_global_execution, pause_global_execution, resume_global_execution, pause_factory_lane, resume_factory_lanePolitique
Usinecancel_global_execution, set_agent_execution_stateToujours

Livraison

Ces outils nécessitent le rôle Membre et ce périmètre : mcp.delivery. Les versions ont leur propre section ci-dessous.

OutilsApprobation
approve_plan, close_sprint, create_promotion, approve_promotion, request_promotion_changes, validate_factory_lanePolitique
force_merge_promotionToujours

Administration

Ces outils modifient la configuration de l'organisation et de ses projets.

OutilsPérimètreRôle le plus basApprobation
create_project, update_project, restore_projectmcp.projects.adminAdministrateurAucun
archive_projectmcp.projects.adminAdministrateurToujours
list_schedules, get_schedule, create_schedule, update_schedulemcp.schedules.adminAdministrateurAucun
trigger_schedulemcp.schedules.adminAdministrateurPolitique
delete_schedulemcp.schedules.adminAdministrateurToujours
list_integrations, get_integrationmcp.integrations.adminAdministrateurAucun
test_integrationmcp.integrations.adminAdministrateurPolitique
set_integration_status, delete_integrationmcp.integrations.adminAdministrateurToujours
create_integrationmcp.secrets.writePropriétaireToujours
list_organization_members, list_organization_invitationsmcp.organization.adminPropriétaireAucun
invite_organization_member, update_organization_member_role, remove_organization_member, revoke_organization_invitation, update_organizationmcp.organization.adminPropriétaireToujours

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 de paramétrage de Coroid, écrit les données dans un bundle, prévisualise ce dernier puis l'applique. Ces outils nécessitent le rôle de Propriétaire et cet étendue : mcp.organization.admin.

OutilFonctionnalitéApprobation
describe_organization_settings_schemaRenvoie le format de paramétrage, ses sections et les indications de mappageAucun
export_organization_settingsExporte les paramètres actuels, avec les secrets sous forme de placeholdersAucun
preview_organization_settings_importAffiche les modifications apportées par un bundle sans effectuer d'écritureAucun
apply_organization_settings_importApplique un bundle, qui fusionne par défaut avec les paramètres actuels ou les remplaceToujours

Un bundle contient des placeholders à la place des valeurs de secrets, et Coroid rejette un bundle qui inclut 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 de chat et passent par la même API de version que le portail :

OutilÉtendueApprobation
list_releases, get_release, list_release_commits, preview_release, get_release_settings, list_release_pull_requestsmcp.readAucun
create_release, update_release, run_release_checks, draft_release_notesmcp.deliveryAucun
approve_release, request_release_deployment, bundle_release_pull_requestsmcp.deliveryToujours
update_release_versioningmcp.projects.adminAucun

create_release accepte un identifiant de validation complet, un identifiant court d'une validation récente, ou latest, et laisse la version définie par la source de version du projet sauf si vous en spécifiez une. get_release rapporte, par environnement, les vérifications, la dernière déploiement, la version signalée par le pipeline et si Coroid a vérifié la version en cours d'exécution. Un jeton limité à certains projets ne peut pas accéder aux versions d'autres projets. La API de version applique néanmoins ses propres règles d'approbation, donc une approbation via MCP compte exactement comme une approbation dans le portail.

list_release_pull_requests renvoie les pull requests ouverts d'un projet dans l'ordre proposé par Coroid, avec la raison pour laquelle certaines seraient exclues. bundle_release_pull_requests crée une version à partir de celles-ci : une branche de version avec les pull requests fusionnées dans l'ordre et un pull request de version. Il pousse une branche et ouvre un pull request, il attend donc toujours l'intervention d'une personne. Exclure prNumbers pour utiliser la sélection de Coroid.

Approbations et politiques d'automatisation

Approbations est une file d'attente d'actions en attente d'une intervention humaine. Politiques d'automatisation détermine 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 avec l'accord d'une personne pour les actions importantes. Définissez les politiques avant de confier un jeton à tout élément fonctionnant en autonomie.

Lorsqu'un appel nécessite une approbation, le client reçoit un identifiant d'approbation et un lien au lieu d'un résultat. Un propriétaire ou 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 pas le modifier ensuite. Un appel non approuvé dans les 10 minutes expire.

Une politique d'automatisation permet à un jeton d'accès d'exécuter les outils marqués Policy sans attendre d'approbation. Seuls les propriétaires créent des politiques et les associent aux jetons. Une politique nomme les outils exacts, peut être limitée à certains projets et fixe le nombre maximal d'appels par heure, par jour et simultanément. Elle peut également expirer. Révoquer une politique révoque tous les jetons associés. Les outils marqués Toujours 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 modifiant 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 statut et son résultat. Ces quatre outils fonctionnent pour toute connexion :

OutilFonctionnalité
get_operationRenvoie le statut et le résultat d'une opération
wait_for_operationAttend jusqu'à 25 secondes que l'état d'une opération change
cancel_operationAnnule une opération qui n'a pas encore commencé
get_approvalRenvoie le statut et le résultat d'une approbation

Le serveur fournit également ces ressources :

RessourceContenu
coroid://contextL'identité sous laquelle la connexion agit, avec son rôle, ses étendues et ses projets
coroid://capabilitiesLes outils que cette connexion peut utiliser
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 échoue et indique le temps d'attente avant une nouvelle tentative.

Ce qui n'est pas exposé intentionnellement

Le registre d'outils est géré et les exclusions sont volontaires. Il ne fournit aucun de ces éléments :

  • un shell
  • Accès Git
  • le système de fichiers
  • accès brut à la base de données
  • HTTP interne arbitraire
  • Les propres outils d'administration MCP sortants de Coroid

Vous pourrez désormais gérer le travail — créer et consulter les tâches, plans, projets et versions — ce n'est 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, 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.