Aller au contenu

Installation manuelle (sans conteneur)

Cette page installe security-review-mcp tout-en-un sur un seul serveur Linux, sans Docker : le contrôleur, le serveur MCP et leur base SQLite tournent sur la même machine, avec le même utilisateur. Elle convient à un essai, à une petite équipe ou à un serveur où les conteneurs ne sont pas autorisés.

Pour un déploiement d'équipe, préférez Docker Compose ou Kubernetes : PostgreSQL est inclus, et les services redémarrent seuls.

 agents (VS Code, Claude), CI ──▶ serveur MCP  :8000 ──┐
                                                       ├──▶ fichier SQLite
 personnes (navigateur) ────────▶ contrôleur   :8080 ──┘
                    └──────────────── un serveur ───────────────┘

1. Installer le paquet

Python 3.14 ou plus récent, avec uv :

uv venv /opt/security-review-mcp && source /opt/security-review-mcp/bin/activate
uv pip install security-review

2. Choisir la base de données

Les deux processus doivent utiliser la même base : donnez-leur le même SECREVIEW_DATABASE_URL (voir Configuration). En tout-en-un, SQLite suffit : donnez un chemin absolu pour que les deux processus ouvrent le même fichier quel que soit le répertoire d'où ils sont lancés.

sudo install -d -o "$USER" -m 700 /var/lib/secreview
export SECREVIEW_DATABASE_URL=sqlite:////var/lib/secreview/security_reports.db
# ou, avec un PostgreSQL existant (uv pip install "security-review[postgres]") :
# postgresql+psycopg2://secreview:<password>@db.example.internal:5432/secreview

3. Préparer la base et le premier administrateur

security-review-controller db upgrade                       # crée ou migre le schéma
security-review-controller user create admin --group administrators   # mot de passe affiché une fois

Conservez le mot de passe : il ouvre l'interface web. Changez-le ensuite depuis Mon compte.

4. Lancer le contrôleur

security-review-controller serve --host 127.0.0.1 --port 8080
# interface web : http://127.0.0.1:8080/ui/

Connectez-vous avec le compte admin. Le contrôleur est destiné aux personnes et aux pipelines : exposez-le avec TLS (voir Contrôleur).

5. Lancer le serveur MCP

Dans un autre terminal, avec le même SECREVIEW_DATABASE_URL. Sur la machine seule (essai) :

security-review-mcp serve --transport streamable-http --host 127.0.0.1 --port 8000
# endpoint MCP : http://127.0.0.1:8000/mcp

Pour les développeurs et la CI, exposez-le avec TLS, avec un certificat reconnu par leurs postes (voir TLS) :

security-review-mcp serve --transport streamable-http --host 0.0.0.0 --port 8443 \
    --tls-certfile /etc/secreview/tls/cert.pem --tls-keyfile /etc/secreview/tls/key.pem
# endpoint MCP : https://secreview.example.internal:8443/mcp

Le serveur MCP refuse de démarrer tant que le schéma n'est pas migré (étape 3).

6. Donner l'accès aux agents

Le serveur MCP exige un jeton, même tant qu'aucun n'existe en base (il n'accepte alors que les enrôlements). Créez le premier maintenant :

security-review-controller token create --label alice   # jeton mcp, affiché une fois

Serveur ouvert sur localhost

Un serveur qui écoute sur localhost, sans aucun jeton, accepte toutes les requêtes. Ailleurs, seul SECREVIEW_ALLOW_UNAUTHENTICATED=true l'ouvre (voir Jetons Bearer).

Ensuite, deux façons de donner un jeton à chaque développeur et à chaque pipeline :

  • Jeton personnel (avec l'enrôlement, activé par défaut) : le développeur connecte son hôte sans jeton, l'agent demande le projet à la première revue et l'envoie vers l'interface web, où il crée un jeton MCP personnel ; un administrateur valide le projet (écran Projets) et l'ajoute à son groupe. Définissez SECREVIEW_WEB_URL pour que l'agent donne le lien : voir Obtenir un jeton.
  • Créé par l'administrateur : security-review-controller token create --label <nom>, par exemple pour un pipeline, puis remis à son propriétaire.

7. Vérifier et se connecter

curl http://127.0.0.1:8080/healthz   # contrôleur : {"status":"ok"}
curl http://127.0.0.1:8000/healthz   # serveur MCP : {"status":"ok"}

Connectez-vous à l'interface web sur http://127.0.0.1:8080/ui/ avec le compte admin, puis créez un compte pour chaque personne dans l'écran Utilisateurs (voir les comptes utilisateurs).

Étape suivante : connectez l'hôte de chaque développeur au serveur MCP.