Skip to main content
Glama
CodeGuard
by Skhaaall

CodeGuard

Serveur MCP qui analyse le code TypeScript/Prisma d'un projet, construit un graphe de dependances, et protege contre les modifications dangereuses et les regressions silencieuses.

Ecosysteme : TypeScript, JavaScript, Prisma

Ce que ca fait

Protection en temps reel (hooks automatiques)

  • Guard — avant chaque modification : risques, historique git, fonctions modifiees recemment, couverture tests, hotspot detection

  • Check — apres chaque modification : imports casses, signatures changees, code mort, incoherence de patterns

Analyse du projet

  • Impact analysis — "je modifie ce fichier, qu'est-ce qui casse ?"

  • Health — score de sante global du projet (A-F, scoring adaptatif)

  • Schema check — coherence Prisma ↔ DTOs backend ↔ types frontend

  • Route guard — coherence routes frontend ↔ backend

  • Regression map — quelles pages/routes retester apres un changement

  • Graph — diagramme Mermaid du graphe de dependances

  • Search — "qui utilise cette fonction/type/hook ?"

Detection de problemes

  • Whatsnew — resume des changements depuis le dernier reindex (debut de session)

  • Silent catch — detection des catches silencieux (catch vides, return sans log, setState default)

  • External map — carte des connexions externes (packages npm, variables d'env, appels API sortants)

Related MCP server: RepoMind-MCP

Prerequis

  • Node.js >= 20

  • Claude Code (pour les hooks MCP)

Installation

npm install -g skhaall-codeguard

Les commandes peuvent etre lancees dans un terminal classique ou dans Claude Code avec le prefixe ! (ex: ! npm install -g skhaall-codeguard).

Ou depuis les sources :

git clone https://github.com/Skhaaall/codeguard.git
cd codeguard && npm install && npm run build

Configuration

1. Serveur MCP (connecte CodeGuard a Claude Code)

Ajouter dans le .mcp.json a la racine du projet :

{
  "mcpServers": {
    "codeguard": {
      "command": "node",
      "args": ["/chemin/vers/codeguard/dist/index.js"]
    }
  }
}

2. Hooks automatiques (guard + check a chaque modification)

codeguard-setup setup

Ca installe deux hooks dans ~/.claude/settings.local.json :

  • guard — se lance automatiquement AVANT chaque Edit/Write dans Claude Code

  • check — se lance automatiquement APRES chaque Edit/Write dans Claude Code

Pour les retirer :

codeguard-setup unsetup

3. Indexer le projet

A la racine du projet :

codeguard-cli init

Ca cree un dossier .codeguard/ avec l'index du projet (ajouter .codeguard/ au .gitignore).

Utilisation

CLI

codeguard-cli init [project-root]              # Indexer le projet
codeguard-cli status [project-root]            # Etat de l'index
codeguard-cli health [project-root]            # Score de sante (A-F)
codeguard-cli impact <fichier> [project-root]  # Analyse d'impact
codeguard-cli regression <fichier> [project-root]  # Pages a retester
codeguard-cli graph [fichier] [project-root]   # Diagramme Mermaid
codeguard-cli schema [project-root]            # Coherence Prisma ↔ TS
codeguard-cli routes [project-root]            # Coherence routes F↔B
codeguard-cli whatsnew [since]                 # Changements recents
codeguard-cli silent_catch [severity]          # Catches silencieux
codeguard-cli changelog [project-root]         # Diff depuis le snapshot
codeguard-cli external_map [project-root]      # Carte des connexions externes

Outils MCP (16)

Outil

Description

Quand

impact

Fichiers impactes si on modifie un fichier

Avant modification

guard

Risques, historique git, hotspot, couverture tests, go/no-go

Avant modification

check

Imports casses, signatures changees, code mort, patterns

Apres modification

health

Score A-F, imports casses, cycles, orphelins

A la demande

schema_check

Coherence Prisma ↔ DTOs ↔ types frontend

Apres modif schema

route_guard

Coherence routes frontend ↔ backend

A la demande

search

Recherche fonctions, types, hooks, routes

A la demande

dependencies

Graphe d'un fichier (importe / importe par)

A la demande

reindex

Re-indexer le projet (complet ou incremental)

Debut de session

status

Date, nombre de fichiers, fraicheur de l'index

A la demande

regression_map

Pages et routes a retester apres modification

Avant deploy

graph

Diagramme Mermaid (complet ou focus sur un fichier)

A la demande

whatsnew

Resume des changements depuis le dernier reindex

Debut de session

silent_catch

Detection des catches silencieux dans le projet

Audit / review

changelog

Diff lisible entre ancien et nouvel index

A la demande

external_map

Packages npm, variables d'env, appels API sortants

A la demande

Langages supportes

Langage

Parser

Profondeur

TypeScript/TSX

ts-morph

Complet (types, generics, routes Next.js/NestJS)

JavaScript/JSX

ts-morph

Imports, exports, fonctions, classes

Prisma

Parser custom

Modeles, champs, relations, enums

Path aliases TypeScript (@/ → src/) et barrel exports (from './dir' → dir/index.ts) sont geres automatiquement via la lecture du tsconfig.json.

Stack

  • TypeScript strict

  • ts-morph — parsing profond TypeScript

  • @modelcontextprotocol/sdk — protocole MCP standard (stdio)

  • Index JSON cache dans .codeguard/

  • Zero dependance lourde (pas de Docker, pas de base de donnees)

Securite

  • Path traversal bloque (les chemins doivent rester dans le projet)

  • Validation des inputs MCP a runtime

  • Limites DoS (stdin 1 Mo, index 50 Mo)

  • Liens symboliques ignores

  • CodeGuard lit le code source mais ne le modifie JAMAIS

Licence

MIT

Available Tools

16 tools
changelogA

Diff lisible entre l'ancien et le nouvel index. Montre les fichiers, exports, routes et types ajoutes/supprimes/modifies depuis le dernier reindex.

Inputs: no named parameters.

checkA

Post-change coherence check — re-indexe le fichier modifie, compare avec l'ancien etat, detecte les exports supprimes, imports casses et types incoherents. A appeler APRES chaque modification.

Inputs: filePath (required).

dependenciesB

Graphe de dependances d'un fichier — qui il importe et qui l'importe.

Inputs: filePath (required).

external_mapA

Cartographie les connexions externes du projet : packages npm (utilises, inutilises, critiques), variables d'environnement (process.env), appels API sortants (fetch/axios). A lancer pour comprendre les dependances externes et detecter les risques.

Inputs: no named parameters.

graphA

Genere un diagramme Mermaid du graphe de dependances. Sans filePath = graphe complet, avec filePath = graphe centre sur ce fichier (2 niveaux).

Inputs: filePath.

guardA

Pre-change safety check — "est-ce safe de modifier ce fichier ?" Retourne les risques, les fichiers a verifier apres, et une recommandation go/no-go. A appeler AVANT toute modification.

Inputs: filePath (required).

healthA

Score de sante global du projet — imports casses, fichiers orphelins, dependances circulaires, fichiers a haut risque. Note de A (excellent) a F (critique).

Inputs: no named parameters.

impactA

Analyse d'impact — "je modifie ce fichier, qu'est-ce qui casse ?" Retourne les fichiers impactes, les routes API affectees, et un score de risque.

Inputs: filePath (required).

regression_mapA

Regression map — "je modifie ce fichier, quelles pages/routes retester ?" Liste les pages, routes API et entry points impactes en cascade.

Inputs: filePath (required).

reindexA

Re-indexe le projet. Par defaut complet, avec incremental=true ne re-parse que les fichiers modifies.

Inputs: incremental.

route_guardB

Coherence routes frontend ↔ backend. Detecte les routes backend non appelees, les appels frontend vers des routes inexistantes, et les routes sensibles sans auth.

Inputs: no named parameters.

schema_checkA

Coherence Prisma ↔ DTOs backend ↔ types frontend. Detecte les champs manquants et les enums desynchronises. A lancer apres modification du schema Prisma ou des DTOs.

Inputs: no named parameters.

silent_catchA

Detecte les blocs catch qui avalent les erreurs silencieusement — catch vides, return sans log, .catch(() => default). A lancer lors d'un audit ou apres /review.

Inputs: severity.

statusB

Etat de l'index : date, nombre de fichiers, fraicheur.

Inputs: no named parameters.

whatsnewA

Resume des changements dans le projet depuis le dernier reindex. A lancer en debut de session pour comprendre le contexte. Montre les fichiers modifies, les signatures changees, les nouvelles routes et les fichiers les plus actifs.

Inputs: since.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 16 tools

    Disambiguation2/5

    Plusieurs outils se recouvrent fortement : impact, regression_map et guard répondent tous à la question « que casse si je modifie ce fichier ? » avec des angles légèrement différents. changelog et whatsnew résument aussi tous deux les changements depuis le dernier reindex, et dependencies/graph/search se chevauchent comme outils de requête sur le graphe. Un agent peut facilement choisir le mauvais outil sans lire les descriptions en détail.

    Naming Consistency4/5

    Les noms sont presque tous en minuscules, soit en un mot unique soit en snake_case (schema_check, route_guard, external_map), ce qui donne un style cohérent. Il manque cependant un vrai motif verbe_nom : certains noms sont des noms (dependencies, health, graph) et d'autres des verbes (search, reindex, check), avec whatsnew qui sort de la convention underscore.

    Tool Count3/5

    Avec 16 outilis, le set se situe exactement dans la zone où une collection commence à sembler lourde, surtout que plusieurs outils (impact/regression_map/guard, changelog/whatsnew) pourraient être fusionnés. Ce n'est pas excessive mais le compte semble gonflé plutôt que réellement justifié par 16 responsabilités distinctes.

    Completeness5/5

    Le server couvre un cycle d'analyse cohérent : indexation (status/reindex), recherche et dépendances, impact et régresion, guard/check avant/après modification, santé globale, et vérifications spécialisées schéma/routes/externe. Il n'y a pas de zone morte flagrante pour un outil d'analyse et de sécurisation de code, même si certains opérations se recouvrent.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers