Skip to content
Conduit

mcp server

Collegue

VynoDePal/Colleguecommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "collegue": {
      "command": "uvx",
      "args": [
        "collegue"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 25, 2026

Collègue MCP

🇫🇷 Version française | 🇬🇧 English version

Tests

Un collectif d'experts IA spécialisés sous forme de serveur MCP (Model Context Protocol). Chaque outil est un agent expert dans son domaine — analyse de code, refactoring, tests, sécurité, architecture — et ils travaillent ensemble via un système de délégation automatique, mémoire persistante et monitoring proactif.


🚀 Démarrage Rapide (Docker)

git clone https://github.com/VynoDePal/Collegue.git
cd Collegue
cp .env.example .env   # renseigner LLM_API_KEY (Gemini)
docker compose up -d

Endpoints :

URLRôle
http://localhost:4121/mcp/Serveur MCP (transport HTTP)
http://localhost:4122/_healthHealthcheck

Réseau : loopback par défaut. docker compose up publie tous les ports sur 127.0.0.1 (MCP 4121, health 4122, Keycloak 4123, dashboard 4125, nginx 8088) : rien n'est joignable depuis le réseau. Le serveur écoute sur 0.0.0.0 à l'intérieur du conteneur ; seule la publication côté hôte est restreinte. Trois variables indépendantes (dans .env) changent l'adresse de publication :

VariablePorts concernés
COLLEGUE_PUBLISH_HOSTMCP 4121, health 4122, nginx 8088
COLLEGUE_DASHBOARD_PUBLISH_HOSTdashboard Streamlit 4125 (aucune authentification)
COLLEGUE_KEYCLOAK_PUBLISH_HOSTKeycloak 4123 (start-dev, à ne pas exposer tel quel)

Exposition distante (par ex. COLLEGUE_PUBLISH_HOST=0.0.0.0) : choix explicite, à n'utiliser qu'avec OAUTH_ENABLED=true. Ce n'est pas imposé : sans OAuth, le serveur journalise seulement un avertissement et reste joignable sans authentification. Exposer le MCP n'ouvre ni le dashboard ni Keycloak. Un reverse proxy TLS reste recommandé.

OAuth fail-closed. Avec OAUTH_ENABLED=true, si l'authentification ne peut pas être établie (JWTVerifier absent, constructeur en erreur, ni OAUTH_JWKS_URI ni OAUTH_PUBLIC_KEY, OAUTH_ISSUER ou OAUTH_ALGORITHM vides), le serveur refuse de démarrer et le conteneur sort en code non nul (Compose le relance selon restart: always : lire ses logs). Le mode sans authentification n'existe que via OAUTH_ENABLED=false (défaut), explicite et journalisé. OAUTH_ALGORITHM et OAUTH_REQUIRED_SCOPES sont effectivement appliqués à chaque jeton : un jeton sans les scopes configurés est refusé (vérifier vos jetons avant de mettre à jour). Hors Docker, HOST vaut désormais 127.0.0.1 par défaut.

Configurer votre IDE

Claude Code (CLI)

claude mcp add --transport http collegue http://localhost:4121/mcp/

Windsurf / Cursor / Antigravity

{
  "mcpServers": {
    "collegue": {
      "serverUrl": "http://localhost:4121/mcp/"
    }
  }
}

Claude Desktop

{
  "mcpServers": {
    "collegue": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:4121/mcp/"]
    }
  }
}

Mode stdio (container à la volée)

{
  "mcpServers": {
    "collegue": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MCP_TRANSPORT=stdio",
        "-e", "LLM_API_KEY=votre_clé_gemini",
        "collegue-mcp"
      ]
    }
  }
}

Image à construire localement : docker build -f docker/collegue/Dockerfile -t collegue-mcp .


✨ Les 10 Experts IA

Chaque expert utilise un LLM, itère via une boucle agentique, et peut déléguer à d'autres experts.

ExpertDescription
Code ReviewQualité, naming, complexité, sécurité, DRY, SOLID
Architecture AnalysisPatterns, dépendances, cycles, couplage, dette technique
Performance AnalysisO(n²), I/O bloquant, concat en boucle, hotspots
Code RefactoringRestructure, optimise, valide AST, compare métriques
Test GenerationTests unitaires exécutables (pytest, jest, phpunit)
Code DocumentationDocstrings, documentation technique, couverture
IaC Guardrails ScanSécurité Terraform, Kubernetes, Dockerfile
Impact AnalysisAnalyse prédictive de risques avant changement
Repo Consistency CheckImports inutilisés, code mort, duplication
Smart OrchestratorPlanifie et coordonne plusieurs experts

Outils supplémentaires

CatégorieOutils
StatiquesDependency Guard, Secret Scan, Run Tests
IntégrationsPostgreSQL, GitHub, Sentry, Kubernetes

🤖 Système Multi-Agents

┌─────────────────────────────────────────────────────┐
│                 Collègue MCP Server                   │
│                                                     │
│  Code Review ─── Architecture ─── Performance       │
│       │               │               │             │
│  Refactoring ─── Test Gen ─── Documentation         │
│       │               │               │             │
│  IaC Scan ─── Consistency ─── Impact Analysis       │
│                                                     │
│  ┌───────────────────────────────────────────────┐  │
│  │ Délégation · Mémoire · Monitor · Dashboard   │  │
│  └───────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────┘
ComposantRôle
Boucle AgentiqueExécute → valide → corrige → re-exécute jusqu'à convergence
Délégation14 règles automatiques (ex: code_review → refactoring si score < 0.5)
MémoireStocke les résultats dans .collegue/memory/ pour les sessions futures
MoniteurDétecte les fichiers modifiés et déclenche les experts pertinents
DashboardAgrège les scores de santé du projet

🔑 Configuration

Variables d'environnement (.env)

Aperçu par thème (liste exhaustive et valeurs par défaut dans .env.example) :

Variable(s)DescriptionRequis
LLM_API_KEYClé API du provider LLM (Gemini par défaut)✓
LLM_PROVIDER / LLM_MODELProvider et modèle LLM par défaut
LLM_MODEL_* / LLM_PROVIDER_*Modèle/provider par rôle (CODER, QA, PLANNER, REVIEWER)
LLM_RATE_LIMIT_*Limites d'appels LLM par client (minute / jour)
CACHE_ENABLED / CACHE_TTLCache des réponses d'outils
OAUTH_ENABLED (+ OAUTH_*, Keycloak)Authentification OAuth (off par défaut ; fail-closed si activée : voir « Réseau » plus haut)
COLLEGUE_PUBLISH_HOST / COLLEGUE_DASHBOARD_PUBLISH_HOST / COLLEGUE_KEYCLOAK_PUBLISH_HOSTAdresse de publication des ports Docker (127.0.0.1 par défaut)
GITHUB_TOKEN / GITHUB_OWNER / GITHUB_REPOIntégration GitHub (watchdog, PR)
SENTRY_DSN / SENTRY_ENVIRONMENTObservabilité Sentry
STATE_DATABASE_URLÉtat durable du moteur autonome (Postgres/SQLite)
MAX_COST_USD / MAX_TOKENS_BUDGET / COLLEGUE_RUN_DEADLINE_SECONDSPlafonds du run, appliqués par le registre de budget durable (planification, BUILD, IMPROVE, reprises) ; pause à l'atteinte
BUDGET_MODEstrict (défaut : réservation avant chaque appel émis par le framework, usage inconnu = blocage durable) ou advisory (enregistre sans bloquer, aucune garantie). La garantie porte sur les appels que le framework émet, pas sur un programme du workspace qui disposerait d'une clé : voir w2-budget (transports acceptés et refusés)
COLLEGUE_HOMERacine de persistance (métriques, checkpoints, prompts modifiables ; l'ancien état de prompts d'une installation précédente est repris au premier démarrage, voir w2-installation)
CODER_SUBSCRIPTION (+ CODER_SUBSCRIPTION_MODEL, SANDBOX_SUBSCRIPTION_AUTH_DIR)Codage par abonnement ChatGPT/Codex (coût API $0) au lieu d'une clé
BUILD_AUTO_MERGEMerge-bot de la phase build (auto-merge des PR de tâches ; off par défaut, activation explicite). Ne fusionne que sur preuve de livraison durable, checks requis réussis, base inchangée et protection stricte réellement applicable (w3-merge). Distinct de Phase 5false
GATE_ACCEPTANCE_TESTSOracles pytest générés au plan-time par le rôle QA, scellés avec le plan puis rejoués sans LLM (off par défaut)
SANDBOX_NETWORK / SANDBOX_MEMORY / SANDBOX_CPUS / SANDBOX_TIMEOUTRéseau et ressources du conteneur coder
AUTO_MERGE_ENABLED / AUTO_REVERT_ENABLED / PILOT_TOOL_ENABLEDCapacités autonomes risk-gated (opt-in, off par défaut)

Réglages détaillés du moteur autonome (budget, auto-merge/revert, outil MCP du pilote) : docs/moteur_autonome.md.


🧭 Moteur de développement autonome

Au-delà des experts réactifs, Collègue peut piloter un développement de bout en bout : planifier → coder → tester → ouvrir des PR, sous budget, avec GitHub comme substrat. Étages : planner → pilote → executor → improve, sur un socle d'état durable (Postgres/SQLite) et de sandbox Docker.

Sûr par défaut : un run reste en dry_run (aucune écriture) tant qu'on ne passe pas --execute ; plan draft persiste seulement son brouillon durable ; l'opérateur approuve ensuite le hash affiché, et seul plan sync --execute touche GitHub ; budget durable en mode strict (pause à l'atteinte d'un plafond ou d'un usage inconnu ; les transports non bornables sont refusés plutôt que prétendus). En BUILD réel, un merge-bot (opt-in : BUILD_AUTO_MERGE, off par défaut) peut auto-merger chaque tâche pour construire le MVP, sur preuve de livraison validée ; la phase amélioration laisse ses PR ouvertes pour merge humain (§6) par défaut. L'auto-merge risk-gated Phase 5 est réellement câblé mais reste opt-in : CI complète, SHA stable, resync et santé de main sont obligatoires. Si cette santé régresse et que AUTO_REVERT_ENABLED est actif, un commit qui restaure exactement l'arbre précédent est publié, validé par CI, fusionné sous gardes SHA puis contrôlé une dernière fois. Une transaction durable écrite avant le merge permet de reprendre après un crash sans dupliquer le merge ou le revert. Le rollback utilise un lease CAS entre workers et reste en état recovered jusqu'à acquittement humain (phase5 show/ack), ce qui empêche de reproposer en boucle le même changement. L'ensemble reste désactivé par défaut et fail-closed. Le codeur peut tourner via abonnement ChatGPT/Codex (coût API $0).

# Phase 1 : trois gestes séparés — le processus LLM ne s'auto-approuve jamais
python -m collegue.pilot plan draft --name app --problem "..." --owner org --repo app --base main
python -m collegue.pilot plan approve --project-id 1 --expected-plan-hash SHA256_AFFICHE
python -m collegue.pilot plan sync --project-id 1 --execute

# Build : aperçu (dry_run) puis exécution réelle
python -m collegue.pilot --project-id 1 --repo-source /chemin/clone --owner org --repo app
python -m collegue.pilot ... --execute            # écritures réelles (PR + état)
python -m collegue.pilot ... --execute --improve  # + cycle d'amélioration

--improve enchaîne, une fois le MVP réellement mergé puis resynchronisé sur origin/<base>, la boucle d'amélioration continue (Phase 4) : un objectif de qualité déterministe (couverture − sécu − lint − complexité, sans avis de LLM) ouvre des PR seulement quand le diff progresse sans régression (gate fail-closed) ; les PR sont stackées et s'arrêtent au plateau. Une dernière PR BUILD non mergée ou un resync git en échec bloque Phase 4 au lieu de produire un faux succès completed.

Architecture, boucle d'amélioration, garde-fous, observabilité/audit, reprise après crash et réglages : docs/moteur_autonome.md.


🤖 Agent Watchdog (Self-Healing)

Surveille Sentry et génère des PRs GitHub automatiques pour corriger les erreurs.

Sentry (erreurs) → Watchdog (analyse) → LLM (fix) → GitHub (PR)

Voir docs/watchdog_deployment.md pour le déploiement.


📚 Documentation

DocumentDescription
Guide UtilisateurInstallation, configuration, premiers pas, bonnes pratiques
Guide d'IntégrationIntégration Claude Desktop, Cursor, Windsurf, CI/CD
Référence des ExpertsParamètres, sorties et cas d'usage de chaque expert
Système Multi-AgentsArchitecture technique, délégation, mémoire
Moteur de développement autonomePilote autonome : architecture, amélioration continue (Phase 4), garde-fous, audit, reprise, réglages
Évaluations LLMBenchmarks qualité des sorties LLM
Rate LimitingQuotas et limites

🛠️ Développement

python -m venv .venv && source .venv/bin/activate
pip install --require-hashes --no-deps -r locks/dev.txt   # dépendances verrouillées et hachées (outils de test inclus)
python -m collegue.migrations upgrade                      # schéma de l'état durable (STATE_DATABASE_URL)
python -m collegue.app

pyproject.toml est la source unique des dépendances ; les fichiers locks/*.txt en sont générés (python scripts/locks.py, voir w2-installation). Le paquet embarque ses ressources (skills, graines de prompts, migrations) : il s'exécute aussi installé depuis un wheel, hors du dépôt.

Tests :

python -m pytest --tb=short -q
ruff check collegue tests
↑↓ navigate openesc close