Security Review MCP¶
Serveur MCP pour la revue de code orientée sécurité (failles et mauvaises configurations). Il fournit à l'hôte (VS Code, Copilot, Claude, agent CI/CD) :
- des prompts structurés pour lancer une revue ;
- des outils : checklists, scan rapide par motifs, enregistrement et consultation de rapports ;
- une base de données (SQLite par défaut, PostgreSQL possible) qui stocke les rapports et leurs findings.
Il s'accompagne d'une ligne de commande pour les pipelines : scan du dépôt complet, gate de déploiement, export SARIF, analyse des dépendances et rapport de tendance.
Deux services, deux rôles¶
Le produit se compose de deux programmes, installés par le même paquet. Ils ne s'appellent jamais : ils partagent la même base de données, où sont stockés les rapports, les règles et les jetons.
agents (VS Code, Claude), CI ─────▶ serveur MCP ──┐
├──▶ base de données (SQLite ou PostgreSQL)
personnes (navigateur), admins ──▶ contrôleur ────┘
| Serveur MCP | Contrôleur | |
|---|---|---|
| Commande | security-review-mcp |
security-review-controller |
| Utilisé par | les agents IA et les pipelines CI | les personnes : équipe sécurité, développeurs, administrateurs |
| Ce qu'il fait | fournit à l'agent les prompts de revue, les checklists, le scan par motifs, et enregistre ses rapports | affiche et trie les rapports dans l'interface web (/ui/), sert l'API REST, crée le schéma, gère les jetons et les comptes utilisateurs |
| Exposition | aux agents et à la CI (endpoint /mcp) |
de préférence sur un réseau interne |
En résumé : l'agent parle au serveur MCP, les personnes utilisent le contrôleur. Pour une équipe, on déploie les deux : sans contrôleur, personne ne peut lire les rapports dans un navigateur, décider d'un finding, ni créer les jetons des agents.
Quel mode choisir ?
- Serveur partagé (HTTP), le cas recommandé : le serveur MCP et le contrôleur tournent sur une machine ou dans des conteneurs, chaque développeur et chaque pipeline s'y connecte avec un jeton, et les rapports sont centralisés. Commencez par là.
- Mode local (stdio), réservé à des cas précis : l'hôte (VS Code, Claude) lance
lui-même
security-review-mcpsur le poste du développeur, sans réseau, sans jeton ni contrôleur. Pratique pour essayer les prompts seul ou hors ligne, mais les rapports restent dans une base locale que personne d'autre ne voit. Voir Mode local (stdio).
Démarrage rapide (serveur HTTP)¶
Sur une machine, avec le même utilisateur (les deux processus partagent le fichier SQLite
~/.local/share/security-review-mcp/security_reports.db ; passez à PostgreSQL dès qu'ils
tournent sur des machines différentes) :
pip install security-review-mcp
# 1. Contrôleur : schéma, premier administrateur, jeton de l'agent
security-review-controller db upgrade
security-review-controller user create admin --group administrators # mot de passe affiché une fois
security-review-controller token create --label alice # jeton mcp, affiché une fois
# 2. Lancer les deux services (deux terminaux)
security-review-controller serve --host 127.0.0.1 --port 8080
# interface web : http://127.0.0.1:8080/ui/
security-review-mcp serve --transport streamable-http --host 127.0.0.1 --port 8000
# endpoint MCP : http://127.0.0.1:8000/mcp
Déclarez ensuite le serveur MCP dans votre hôte, par exemple dans VS Code avec
.vscode/mcp.json (le seul fichier où VS Code peut demander le jeton), et collez le jeton
quand VS Code le demande :
{
"servers": {
"security-review": {
"type": "http",
"url": "http://127.0.0.1:8000/mcp",
"headers": { "Authorization": "Bearer ${input:secreview-token}" }
}
},
"inputs": [
{ "id": "secreview-token", "type": "promptString", "description": "Token", "password": true }
]
}
Dans le chat, lancez le prompt security-review (ou codebase-review pour tout le dépôt) :
l'agent lit le code, s'appuie sur les checklists et enregistre son rapport avec
save_security_report. Connectez-vous à l'interface web avec le compte admin pour le
consulter et le trier.
Ce démarrage rapide est un essai sur une machine. Pour ouvrir le serveur à une équipe (TLS, PostgreSQL, Docker Compose, jetons pour chaque développeur), suivez Mise en service du serveur.
Par où continuer¶
La documentation suit l'ordre d'une mise en œuvre. Démarrage et Utilisation contiennent ce qu'il faut pour travailler ; Avancé regroupe les détails et les fonctions facultatives.
| Étape | Page |
|---|---|
| 1. Installer le paquet sur le serveur | Installation |
| 2. Lancer le contrôleur et le serveur MCP, créer les premiers comptes | Mise en service du serveur |
| 3. Connecter VS Code ou Claude, obtenir un jeton | Connexion de l'hôte |
| 4. Lancer une revue | Fonctionnement d'une revue (règles, checklists, AGENTS.md), Prompts et outils |
| 5. Consulter et trier les rapports | Interface web |
| 6. Bloquer un déploiement sur des findings ouverts | Gate |
| Pour aller plus loin (Avancé) | Page |
|---|---|
| Docker, Kubernetes, PostgreSQL | Architecture et déploiement, Docker |
| Jetons restreints à un projet, enrôlement, renouvellement, TLS | Serveur HTTP, authentification et TLS |
| Se connecter avec le fournisseur d'identité de l'entreprise | Connexion OIDC |
| Scanner tout un dépôt, les dépendances, ajouter les règles de mon entreprise | Scan du code complet, Analyse des dépendances, Règles internes |
| SARIF, tendances, journal d'audit, Prometheus | Export SARIF, Rapport de tendance, Journal d'audit et métriques |
Ce n'est pas un SAST
Le scan par motifs produit des pistes et des faux positifs. Il ne remplace ni un SAST, ni une analyse SCA complète, ni une relecture humaine. Voir Sécurité et limites.