Skip to main content
Glama

mcp-pilotage

🇫🇷 Français · 🇬🇧 English

License: MIT Node.js MCP

Serveur MCP en lecture seule qui cartographie tous les dépôts git présents sur la machine. Un agent IA branché dans n'importe lequel d'entre eux découvre seul l'écosystème complet : inventaire, pile technique, état git en direct, fichiers de contexte et recherche transverse, sans explication préalable.

Node / TypeScript, SDK MCP officiel, transport stdio, strictement en lecture seule. Les descriptions des outils et les réponses sont rédigées en français.

Ce qu'il résout

Quand une quinzaine de dépôts vivent côte à côte, un agent qui démarre dans l'un d'eux ne sait rien des autres. Ce serveur lui donne, en un appel, la liste des projets, leur rôle, leur pile technique, leur état git en direct, et de quoi fouiller tous les projets d'un coup.

L'inventaire vient d'un scan du disque à chaque appel (avec un cache court), pas d'un fichier de configuration. Il ne peut donc pas devenir faux quand un projet est créé, renommé ou supprimé.

Related MCP server: AI Developer Workspace MCP Server

Les outils exposés

Outil

À quoi il sert

apercu_ecosysteme

Briefing de démarrage à froid. Synthèse markdown de tout l'écosystème, groupée par famille, avec rôle, pile, branche et fraîcheur git de chaque projet. C'est l'appel à faire en premier.

lister_projets

Inventaire brut et filtrable : nom, chemin absolu, versionné ou non, pile, rôle résumé, documents de contexte disponibles. Filtres par terme libre et par famille.

decrire_projet

Fiche complète d'un seul projet : dépôt distant, dépendances marquantes, état git détaillé, derniers commits, branches, documents de contexte, arborescence de surface.

lire_cerveau

Contenu des fichiers de contexte d'un projet : CLAUDE.md, .claude/CLAUDE.md, AGENTS.md, .claude/AGENTS.md, README.md, ARCHITECTURE.md, CONTEXTE.md, ETAT-DES-LIEUX.md, ou n'importe quel markdown de ses dossiers docs, doc, notes, références, references, .claude. Troncature réglable, mode liste sans contenu.

etat_git

État git lu au moment de l'appel : branche, dernier commit, fichiers non commités, avance et retard sur la branche distante suivie, niveau d'activité. Sans argument, tableau de bord de tous les dépôts trié du plus récemment touché au plus ancien. Avec un projet, détail et historique.

chercher_partout

Recherche de texte ou d'expression régulière dans le contenu de tous les dépôts à la fois, résultats groupés par projet avec fichier et numéro de ligne.

trouver_fichiers

Recherche de fichiers par nom ou par motif glob à travers tous les dépôts. Complémentaire du précédent : localiser plutôt que fouiller.

diagnostic_pilotage

Configuration effective du serveur : racines scannées, exclusions, moteur de recherche détecté, durée du scan complet. À appeler quand un résultat surprend.

usage_ia_claude

Tokens consommés et factures de l'API Claude, lus depuis un dossier local (voir plus bas). Totaux, détail mois par mois, classement par projet et par modèle. Utile pour sourcer un article avec des chiffres réels.

suivi_agents

Où en est chaque agent de code actif (Codex, Claude Code, Mistral Vibe) : modèle, dossier, branche, dernière activité, dernières commandes résumées, fichiers modifiés, sous-agents. Section Processus : charge du processeur, suites de tests orphelines ou en doublon par clone. Paramètres fenetre_minutes, session, detail.

Garanties de sécurité

Le serveur est en lecture seule par construction :

  • aucun outil n'écrit, ne crée, ne supprime ni ne renomme de fichier ;

  • aucune commande git modifiante n'est utilisée, ni add, ni commit, ni push, ni checkout, ni fetch, ni reset. Seuls rev-parse, log, status, branch, rev-list et config --get sont appelés ;

  • aucun accès réseau ;

  • suivi_agents ne lit que la fin des journaux de session (jamais le fichier entier, jamais un message complet restitué) et interroge la liste des processus et la charge du processeur par Get-CimInstance (Win32_Process, Win32_Processor) : il ne tue aucun processus, ne change aucune priorité, n'écrit rien ;

  • les lectures restent confinées aux racines configurées, et un garde-fou refuse tout chemin qui sortirait du projet ciblé ;

  • les fichiers de secrets (.env, .env.*, *.env, *.pem, *.key, *.p12, *.pfx, id_rsa*, id_ed25519*) ne sont jamais fouillés par chercher_partout, y compris dans les dossiers hors git et sans ripgrep. Avec ripgrep, les .gitignore sont en plus respectés.

Prérequis

  • Node.js 18 ou plus

  • git dans le PATH

  • ripgrep facultatif : détecté dans le PATH, puis dans l'installation de VS Code. Sans lui, la recherche bascule sur un repli en Node, plus lent.

  • Windows pour la section Processus de suivi_agents (elle passe par PowerShell). Sur les autres systèmes, cette section renvoie un message d'indisponibilité, le reste fonctionne.

Installation

git clone https://github.com/fmenguy/mcp-pilotage.git
cd mcp-pilotage
npm install
npm run build

Le point d'entrée compilé est dist/index.js. Le plus simple est de cloner ce dépôt à côté des autres (par exemple dans D:\git) : sans réglage, le serveur scanne le dossier qui le contient.

Brancher le serveur

Dans Claude Code, pour l'avoir dans tous les projets d'un coup :

claude mcp add pilotage --scope user -- node D:/git/mcp-pilotage/dist/index.js

Ou dépôt par dépôt, avec --scope project, ce qui revient à créer un .mcp.json à la racine du dépôt :

{
  "mcpServers": {
    "pilotage": {
      "command": "node",
      "args": ["D:/git/mcp-pilotage/dist/index.js"]
    }
  }
}

Adapter le chemin à l'endroit où le dépôt a été cloné. N'importe quel client MCP en stdio fonctionne de la même façon.

Configuration facultative

Tout est pilotable par variables d'environnement, dans le bloc env du .mcp.json ou avec -e sur claude mcp add. Aucune n'est obligatoire.

Variable

Défaut

Rôle

PILOTAGE_RACINES

le dossier qui contient ce dépôt

Dossiers parents à scanner, séparés par des points-virgules.

PILOTAGE_PROFONDEUR

2

Profondeur de descente pour trouver un .git. La descente s'arrête dès qu'un dépôt est trouvé.

PILOTAGE_EXCLUSIONS

(vide)

Noms de dossiers à ignorer en plus de la liste par défaut, séparés par des points-virgules.

PILOTAGE_CACHE_MS

60000

Durée de vie du cache de scan. Le paramètre rafraichir des outils le contourne.

PILOTAGE_RIPGREP

(auto)

Chemin forcé vers rg. Sinon détecté dans le PATH, puis dans l'installation de VS Code.

PILOTAGE_TIMEOUT_GIT_MS

15000

Délai maximal d'une commande git.

PILOTAGE_TAILLE_MAX_FICHIER

1048576

Taille maximale d'un fichier lu ou fouillé, en octets.

PILOTAGE_DOSSIER_USAGE

usage/ dans ce dépôt

Dossier lu par usage_ia_claude (voir ci-dessous).

PILOTAGE_DOSSIER_CODEX

~/.codex/sessions

Journaux de session Codex lus par suivi_agents.

PILOTAGE_DOSSIER_CLAUDE

~/.claude/projects

Journaux de session Claude Code lus par suivi_agents.

PILOTAGE_DOSSIER_VIBE

~/.vibe/logs/session/unified

Sessions Mistral Vibe lues par suivi_agents.

PILOTAGE_DOSSIER_PILOTE

strates-fmenguy/.claude dans la première racine

Dossier où suivi_agents regarde agent.lock et recaps/. Sans ce dossier, agent.lock est simplement signalé absent.

Exemple avec plusieurs racines :

claude mcp add pilotage --scope user -e "PILOTAGE_RACINES=D:/git;E:/autres-projets" -- node D:/git/mcp-pilotage/dist/index.js

Le dossier d'usage de l'API Claude

usage_ia_claude lit deux sortes de fichiers, déposés à la main, et ne les modifie jamais :

  • un export CSV des tokens par mois, nommé claude_api_tokens_AAAA_MM.csv (export de la console Claude) ;

  • un fichier factures.csv, tenu à la main, car les factures mélangent abonnement et usage mesuré et ne se déduisent pas des tokens.

Le dossier usage/ de ce dépôt est ignoré par git : on peut y déposer ses fichiers sans risque de les publier, ou pointer ailleurs avec PILOTAGE_DOSSIER_USAGE. Sans fichier, l'outil répond qu'il n'a trouvé aucun export et indique le dossier attendu.

Conventions d'écriture

Deux registres cohabitent volontairement dans le code et dans les réponses :

  • Les identifiants restent en ASCII : noms d'outils (apercu_ecosysteme), noms de paramètres (rafraichir, seulement_modifies), clés JSON des résultats (depots_git, resultat_tronque). C'est une convention de sérialisation stable, sur laquelle un appelant peut s'appuyer sans se soucier des accents.

  • Tout ce qui se lit est écrit en français correct, entièrement accentué : descriptions des outils, descriptions des paramètres, titres et en-têtes du markdown généré, messages d'état et d'erreur, valeurs de repli.

Les filtres textuels (filtre, famille) comparent sans tenir compte des accents ni de la casse : Ecriture et romans et Écriture et romans donnent le même résultat, mais la valeur renvoyée reste toujours la forme correcte.

Le contenu extrait des fichiers des projets (rôles déduits d'un CLAUDE.md ou d'un README) est restitué tel quel, sans retouche.

Performances observées

Mesures relevées sur une machine Windows avec 20 projets (17 dépôts git et 3 dossiers hors git) :

Appel

Durée

Scan complet du disque, cache vide

100 à 260 ms

lister_projets avec cache chaud

1 ms

apercu_ecosysteme avec état git de tous les dépôts

1,4 s

etat_git sur tous les dépôts

1,4 s

decrire_projet sur un projet

150 ms

chercher_partout avec ripgrep

50 à 150 ms

chercher_partout sans ripgrep (repli Node)

1,1 s

trouver_fichiers sur tous les dépôts

160 ms

Les dossiers node_modules, .git, dist, build, .astro, venv, __pycache__ et une vingtaine d'autres ne sont jamais parcourus.

Développement

npm run dev                     # exécution directe des sources via tsx
npm run build                   # compilation TypeScript vers dist/
npm test                        # client MCP stdio qui appelle chaque outil et chronomètre (nécessite npm run build)
node tests/suivi-agents.mjs [minutes] [filtre] [detail]   # appelle seulement suivi_agents sur les vrais journaux
node tests/verif-accents.mjs    # contrôle de l'accentuation et de l'encodage UTF-8

tests/client-test.mjs démarre le serveur compilé, liste les outils et exerce chaque outil avec des paramètres réels sur ce dépôt lui-même, y compris un cas d'erreur (projet inexistant). C'est le moyen le plus rapide de vérifier une modification.

tests/verif-accents.mjs affiche les descriptions complètes telles qu'un modèle les reçoit, compte les caractères accentués, contrôle les points de code du markdown généré et vérifie que les fichiers source sont en UTF-8 sans BOM.

Organisation du code

src/
  index.ts            point d'entrée, transport stdio, enregistrement des outils
  config.ts           configuration, variables d'environnement, motifs de secrets
  core/
    fichiers.ts       parcours et lectures tolérantes aux erreurs, glob maison
    depots.ts         scan des racines, cache, résolution d'un projet par nom
    stack.ts          détection de la pile technique et de la famille
    cerveau.ts        repérage et lecture des documents de contexte
    git.ts            état git en lecture seule
    recherche.ts      recherche transverse, ripgrep avec repli Node
    usage.ts          lecture et agrégation des exports de tokens et des factures
    agents.ts         journaux Codex, Claude Code et Vibe (fin de fichier seulement), processus vivants
  outils/             définition des outils MCP exposés
  utils/reponse.ts    formatage des réponses et garde-fou anti-plantage
tests/                client de test MCP, essai de suivi_agents, contrôle des accents

Licence

MIT, voir LICENSE.

Auteur : François Menguy, fmenguy.fr.


mcp-pilotage (English)

🇬🇧 English · 🇫🇷 Français

A read-only MCP server that maps every git repository on your machine. An AI agent opened in any one of them can discover the whole ecosystem on its own: inventory, tech stack, live git status, context files and cross-repository search, with no briefing needed.

Node / TypeScript, official MCP SDK, stdio transport, strictly read only. Tool descriptions and answers are written in French; tool and parameter names are ASCII identifiers.

The problem it solves

With fifteen or so repositories side by side, an agent that starts in one of them knows nothing about the others. This server gives it, in a single call, the list of projects, their purpose, their tech stack, their live git status, and a way to search all of them at once.

The inventory comes from a disk scan on every call (with a short cache), not from a configuration file. It cannot go stale when a project is created, renamed or deleted.

Tools

Tool

What it does

apercu_ecosysteme

Cold-start briefing. A markdown summary of the whole ecosystem, grouped by family, with each project's purpose, stack, branch and git freshness. This is the first call to make.

lister_projets

Raw, filterable inventory: name, absolute path, versioned or not, stack, short purpose, available context documents. Filters by free text and by family.

decrire_projet

Full profile of one project: remote, notable dependencies, detailed git status, recent commits, branches, context documents, top-level tree.

lire_cerveau

Contents of a project's context files: CLAUDE.md, .claude/CLAUDE.md, AGENTS.md, .claude/AGENTS.md, README.md, ARCHITECTURE.md, CONTEXTE.md, ETAT-DES-LIEUX.md, or any markdown file in its docs, doc, notes, références, references or .claude folders. Adjustable truncation, list-only mode.

etat_git

Git status read at call time: branch, last commit, uncommitted files, ahead/behind counts against the tracked remote branch, activity level. With no argument, a dashboard of every repository sorted from most to least recently touched. With a project, details and history.

chercher_partout

Text or regular expression search across the contents of every repository at once, results grouped by project with file and line number.

trouver_fichiers

File search by name or glob pattern across every repository. The counterpart of the previous tool: locate rather than grep.

diagnostic_pilotage

The server's effective configuration: scanned roots, exclusions, detected search engine, full scan duration. Call it when a result looks wrong.

usage_ia_claude

Tokens consumed and invoices for the Claude API, read from a local folder (see below). Totals, month-by-month breakdown, ranking by project and by model. Handy for backing a blog post with real figures.

suivi_agents

Status of each active coding agent (Codex, Claude Code, Mistral Vibe): model, folder, branch, last activity, summarized recent commands, modified files, subagents. A Processes section adds CPU load and flags orphaned or duplicate test runs per clone. Parameters fenetre_minutes, session, detail.

Safety guarantees

The server is read only by design:

  • no tool writes, creates, deletes or renames a file;

  • no git command that changes anything is used: no add, commit, push, checkout, fetch or reset. Only rev-parse, log, status, branch, rev-list and config --get are called;

  • no network access;

  • suivi_agents only reads the tail of session logs (never the whole file, never a full message returned) and queries the process list and CPU load through Get-CimInstance (Win32_Process, Win32_Processor): it kills no process, changes no priority, writes nothing;

  • reads stay inside the configured roots, and a guard rejects any path that would escape the target project;

  • secret files (.env, .env.*, *.env, *.pem, *.key, *.p12, *.pfx, id_rsa*, id_ed25519*) are never searched by chercher_partout, including in non-git folders and without ripgrep. With ripgrep, .gitignore files are honored as well.

Prerequisites

  • Node.js 18 or later

  • git on the PATH

  • ripgrep, optional: looked up on the PATH, then in the VS Code installation. Without it, search falls back to a slower Node implementation.

  • Windows for the Processes section of suivi_agents (it goes through PowerShell). On other systems that section reports it is unavailable; everything else works.

Installation

git clone https://github.com/fmenguy/mcp-pilotage.git
cd mcp-pilotage
npm install
npm run build

The compiled entry point is dist/index.js. The simplest setup is to clone this repository next to your other ones (for example in D:\git): with no configuration, the server scans the folder that contains it.

Hooking it up

In Claude Code, to get it in every project at once:

claude mcp add pilotage --scope user -- node D:/git/mcp-pilotage/dist/index.js

Or per repository with --scope project, which amounts to a .mcp.json at the repository root:

{
  "mcpServers": {
    "pilotage": {
      "command": "node",
      "args": ["D:/git/mcp-pilotage/dist/index.js"]
    }
  }
}

Adjust the path to wherever you cloned the repository. Any stdio MCP client works the same way.

Optional configuration

Everything is driven by environment variables, in the env block of .mcp.json or with -e on claude mcp add. None is required.

Variable

Default

Purpose

PILOTAGE_RACINES

the folder that contains this repository

Parent folders to scan, separated by semicolons.

PILOTAGE_PROFONDEUR

2

How deep to look for a .git folder. Descent stops as soon as a repository is found.

PILOTAGE_EXCLUSIONS

(empty)

Extra folder names to skip on top of the default list, separated by semicolons.

PILOTAGE_CACHE_MS

60000

Scan cache lifetime. The tools' rafraichir parameter bypasses it.

PILOTAGE_RIPGREP

(auto)

Forced path to rg. Otherwise looked up on the PATH, then in the VS Code installation.

PILOTAGE_TIMEOUT_GIT_MS

15000

Maximum duration of a git command.

PILOTAGE_TAILLE_MAX_FICHIER

1048576

Maximum size of a file read or searched, in bytes.

PILOTAGE_DOSSIER_USAGE

usage/ in this repository

Folder read by usage_ia_claude (see below).

PILOTAGE_DOSSIER_CODEX

~/.codex/sessions

Codex session logs read by suivi_agents.

PILOTAGE_DOSSIER_CLAUDE

~/.claude/projects

Claude Code session logs read by suivi_agents.

PILOTAGE_DOSSIER_VIBE

~/.vibe/logs/session/unified

Mistral Vibe sessions read by suivi_agents.

PILOTAGE_DOSSIER_PILOTE

strates-fmenguy/.claude under the first root

Folder where suivi_agents looks for agent.lock and recaps/. If it does not exist, agent.lock is simply reported as absent.

Example with several roots:

claude mcp add pilotage --scope user -e "PILOTAGE_RACINES=D:/git;E:/other-projects" -- node D:/git/mcp-pilotage/dist/index.js

The Claude API usage folder

usage_ia_claude reads two kinds of files, dropped in by hand, and never modifies them:

  • a monthly CSV export of tokens, named claude_api_tokens_YYYY_MM.csv (exported from the Claude console);

  • a factures.csv file (invoices), kept by hand, because invoices mix subscription and metered usage and cannot be derived from token counts.

This repository's usage/ folder is ignored by git, so you can drop your files there without any risk of publishing them, or point elsewhere with PILOTAGE_DOSSIER_USAGE. With no files, the tool replies that it found no export and gives the expected folder.

Writing conventions

Two registers coexist on purpose in the code and in the answers:

  • Identifiers stay ASCII: tool names (apercu_ecosysteme), parameter names (rafraichir, seulement_modifies), JSON result keys (depots_git, resultat_tronque). It is a stable serialization convention callers can rely on without worrying about accents.

  • Everything meant to be read is proper, fully accented French: tool descriptions, parameter descriptions, titles and headers of the generated markdown, status and error messages, fallback values.

Text filters (filtre, famille) ignore accents and case: Ecriture et romans and Écriture et romans give the same result, but the returned value always keeps the correct spelling.

Content extracted from project files (purposes taken from a CLAUDE.md or a README) is returned as is, untouched.

Observed performance

Measured on a Windows machine with 20 projects (17 git repositories and 3 non-git folders):

Call

Duration

Full disk scan, cold cache

100 to 260 ms

lister_projets with warm cache

1 ms

apercu_ecosysteme with git status of every repository

1.4 s

etat_git on every repository

1.4 s

decrire_projet on one project

150 ms

chercher_partout with ripgrep

50 to 150 ms

chercher_partout without ripgrep (Node fallback)

1.1 s

trouver_fichiers across every repository

160 ms

node_modules, .git, dist, build, .astro, venv, __pycache__ and about twenty other folders are never walked.

Development

npm run dev                     # runs the sources directly via tsx
npm run build                   # compiles TypeScript to dist/
npm test                        # stdio MCP client that calls every tool and times it (needs npm run build first)
node tests/suivi-agents.mjs [minutes] [filter] [detail]   # calls only suivi_agents on the real logs
node tests/verif-accents.mjs    # checks accents and UTF-8 encoding

tests/client-test.mjs starts the compiled server, lists the tools and exercises each one with real parameters against this repository itself, including an error case (unknown project). It is the quickest way to check a change.

tests/verif-accents.mjs prints the full descriptions as a model receives them, counts accented characters, checks the code points of the generated markdown and verifies that source files are UTF-8 without BOM.

Code layout

src/
  index.ts            entry point, stdio transport, tool registration
  config.ts           configuration, environment variables, secret file patterns
  core/
    fichiers.ts       error-tolerant traversal and reads, home-made glob
    depots.ts         root scanning, cache, project lookup by name
    stack.ts          tech stack and family detection
    cerveau.ts        locating and reading context documents
    git.ts            read-only git status
    recherche.ts      cross-repository search, ripgrep with Node fallback
    usage.ts          reading and aggregating token exports and invoices
    agents.ts         Codex, Claude Code and Vibe logs (tail only), live processes
  outils/             MCP tool definitions
  utils/reponse.ts    response formatting and crash guard
tests/                MCP test client, suivi_agents probe, accent check

License

MIT, see LICENSE.

Author: François Menguy, fmenguy.fr.

Available Tools

9 tools
apercu_ecosystemeA

Briefing de démarrage à froid : une synthèse markdown compacte de tout l'écosystème de François, projets regroupés par famille, avec pour chacun son rôle, sa pile, sa branche courante et sa dernière activité git. C'est l'outil à appeler au tout début d'une session quand tu arrives dans un dépôt sans contexte et que tu veux comprendre en un seul appel ce que François fabrique, combien de projets il a, lesquels sont vivants et lesquels dorment. Plus dense que lister_projets et déjà mis en forme. Si tu as besoin des données brutes pour les filtrer toi-même, utilise plutôt lister_projets.

Inputs: rafraichir, inclure_git.

chercher_partoutA

Cherche un texte ou une expression régulière dans le CONTENU des fichiers de tous les projets à la fois, et renvoie les correspondances groupées par projet avec le fichier et le numéro de ligne. C'est l'outil qui répond aux questions du type : où est-ce que j'ai déjà écrit ce personnage, dans quel projet se trouve cette clé d'API, quels dépôts utilisent cette dépendance, où ai-je documenté cette décision. Utilise ripgrep quand il est installé sur la machine, sinon un parcours interne équivalent. Les dossiers lourds (node_modules, dist, build, .astro, venv, pycache, .git) sont toujours exclus. Restreins la recherche avec « projets » et « filtre_fichiers » dès que tu peux : c'est plus rapide et le résultat est plus lisible.

Inputs: motif (required), regex, projets, max_resultats, +3 more.

decrire_projetA

Fiche complète d'UN projet : chemin, dépôt distant, pile technique et dépendances marquantes, rôle déduit, état git détaillé, derniers commits, branches, documents de contexte disponibles et arborescence de surface. Utilise cet outil quand tu sais déjà de quel projet tu parles et que tu veux tout savoir dessus d'un coup, avant d'aller lire ses fichiers ou de conseiller François sur ce projet. Pour lire vraiment le contenu de son CLAUDE.md ou de son README, enchaîne avec lire_cerveau.

Inputs: projet (required), nb_commits, inclure_arborescence.

diagnostic_pilotageA

Renvoie la configuration effective du serveur Pilotage : racines scannées, dossiers exclus, profondeur de scan, présence de ripgrep, durée du cache, et rappel des garanties de sécurité. Appelle cet outil quand un résultat te surprend (un projet manquant, une recherche vide, une lenteur) pour comprendre ce que le serveur voit réellement du disque avant de conclure.

Inputs: no named parameters.

etat_gitA

État git en direct, lu au moment de l'appel : branche courante, dernier commit avec sa date et son auteur, nombre de fichiers modifiés non commités, avance et retard sur le dépôt distant, et niveau d'activité du projet (actif si moins de 30 jours, ralenti jusqu'à 120 jours, dormant au delà). Sans paramètre « projet », renvoie le tableau de bord de TOUS les dépôts d'un coup, trié du plus récemment touché au plus ancien : c'est la façon la plus rapide de savoir sur quoi François travaille en ce moment et ce qu'il a laissé en chantier. Avec un « projet », se concentre dessus et peut remonter l'historique des derniers commits. Strictement en lecture : cet outil n'exécute aucune commande git qui modifie quoi que ce soit, ni add, ni commit, ni push, ni checkout, ni fetch.

Inputs: projet, nb_commits, seulement_modifies.

lire_cerveauA

Lit le contenu des documents de contexte d'un projet : son CLAUDE.md, son .claude/CLAUDE.md, son AGENTS.md, son README, son ARCHITECTURE.md, et sur demande n'importe quel autre markdown de ses dossiers docs, notes, références ou .claude. C'est ainsi que tu apprends comment François pense un projet donné : ses conventions, sa pile, ses règles d'écriture, ses pièges connus, sans qu'il ait à te les redire. Par défaut, seuls les documents prioritaires sont retournés, tronqués pour ne pas saturer ton contexte. Pour un document précis, passe son chemin relatif dans « fichier ». Pour connaître les documents disponibles sans les lire, mets « lister_seulement » à true. Lecture seule : cet outil n'écrit jamais dans les dépôts.

Inputs: projet (required), fichier, max_caracteres, lister_seulement.

lister_projetsA

Inventaire de TOUS les projets de François présents sur cette machine, obtenu par un scan du disque en direct (aucun fichier de configuration, donc jamais périmé). Renvoie pour chaque projet : son nom, son chemin absolu, s'il est versionné sous git, sa pile technique détectée, son rôle résumé en une phrase (extrait de son CLAUDE.md, sinon de son README) et la liste de ses documents de contexte. Appelle cet outil en premier dès que tu as besoin de savoir ce qui existe en dehors du dépôt courant : l'utilisateur mentionne un projet que tu ne connais pas, tu cherches où vit une fonctionnalité, tu veux vérifier qu'un projet existe encore. N'inclut volontairement ni l'état git (voir etat_git) ni le contenu des documents (voir lire_cerveau), pour rester léger.

Inputs: filtre, famille, rafraichir, inclure_non_versionnes.

trouver_fichiersA

Cherche des fichiers par leur NOM ou leur chemin à travers tous les projets, via un motif glob. Complémentaire de chercher_partout qui fouille le contenu : ici tu réponds à des questions de localisation, par exemple où sont tous les CLAUDE.md, quels projets ont un fichier .mcp.json, où vivent les chapitres du roman, quels dépôts contiennent un Dockerfile. Les dossiers lourds (node_modules, dist, build, .astro, venv, pycache, .git) sont toujours ignorés.

Inputs: motif (required), projets, profondeur, max_resultats.

usage_ia_claudeA

Usage de l'API Claude de l'utilisateur : tokens consommés et factures, lus en direct depuis le dossier usage/ (réglable par PILOTAGE_DOSSIER_USAGE). Source des tokens : un export CSV par mois (un token compte pour de l'entrée, cache compris, ou de la sortie), déposé à la main par l'utilisateur. Source des factures : un tableau tenu à la main, indépendant des exports de tokens (il mélange abonnement et usage mesuré, les montants ne se déduisent pas des tokens). Sans paramètre, renvoie la période complète : totaux, détail mois par mois avec répartition par projet et par modèle, classement des projets et des modèles sur toute la période, et la liste des factures. Avec « mois », se concentre sur un seul mois (répartition par projet et par modèle de ce mois-là uniquement) ; les factures restent toujours renvoyées en entier car leurs dates ne correspondent pas forcément au mois d'usage. Utile pour écrire un article de blog transparent sur le coût ou l'usage de l'IA : les chiffres sont prêts à citer, avec leurs libellés en clair. Strictement en lecture : ne modifie jamais les fichiers du dossier usage/.

Inputs: mois.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 9 tools

    Disambiguation4/5

    The core tools target distinct resources: project inventory (lister_projets), single-project deep dive (decrire_projet), document content (lire_cerveau), git state (etat_git), content search (chercher_partout), filename search (trouver_fichiers). The only real overlap zone is the overview trio (apercu_ecosysteme, lister_projets, etat_git without a project), but descriptions explicitly delimit them ('plus dense que lister_projets', 'n'inclut volontairement ni l'état git') and even prescribe the ordering, so an agent can pick correctly.

    Naming Consistency3/5

    Casing and language are perfectly uniform (all snake_case, French), but the convention is mixed: five tools use a verb-led pattern (lister_projets, decrire_projet, lire_cerveau, chercher_partout, trouver_fichiers) while four are noun phrases (apercu_ecosysteme, etat_git, diagnostic_pilotage, usage_ia_claude). Still highly readable and predictable in tone, but not a single consistent verb_noun scheme.

    Tool Count5/5

    Nine tools is right in the sweet spot for a machine-wide observability server, and each covers a distinct axis (inventory, detail, docs, git, content search, path search, diagnostics, cost usage). No filler tools and no obviously missing companion tool.

    Completeness4/5

    The read-only 'pilotage' domain is well covered end to end: discovery, per-project detail, context docs, git status, two complementary search modes, self-diagnostics, and API cost tracking. The notable gap is generic file reading — trouver_fichiers and chercher_partout can locate a file but there is no tool to read arbitrary file contents (lire_cerveau is limited to markdown context docs), and there is no diff/history inspection beyond etat_git's commit list.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI coding agents to search indexed local Git repositories for compatible existing projects and modules, evaluate their technical and structural fit, and copy reusable source bytes into a new target instead of regenerating them. It exposes six scoped MCP tools that return plans and safe file operations, so the agent only implements the remaining delta.
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Provides local, read-only MCP tools that expose a specified workspace's directory listing, file contents, text search, git status, and git diff to AI clients.
      1
      Apache 2.0