Aller au contenu

Mode local (stdio)

En mode local, l'hôte (VS Code, Claude…) lance lui-même security-review-mcp local sur le poste du développeur et dialogue avec lui par stdin / stdout : pas de réseau, pas de jeton, pas de contrôleur.

flowchart LR
    dev(["Développeur"]) --> agent
    subgraph ws["Poste du développeur"]
        agent["Assistant IA<br/>VS Code, Claude"] -- "stdio" --> mcp["Serveur MCP<br/>security-review-mcp<br/>(processus lancé par l'assistant)"]
        mcp --> sqlite[("Base SQLite<br/>locale")]
    end

Réservé à des cas précis

Les rapports sont enregistrés dans une base SQLite locale que personne d'autre ne voit, il n'y a pas d'interface web pour les trier, et chaque poste garde ses propres règles. Pour une équipe, utilisez plutôt le mode partagé (HTTP). Le mode local sert à essayer les prompts seul, sur un poste hors ligne, ou pour un usage personnel.

Installation

Le serveur est publié sur PyPI sous le nom de paquet security-review (Python 3.14). Il installe la commande security-review-mcp, lancée par l'hôte, et security-review-controller, dont le mode local n'a pas besoin. Installez-le dans un environnement virtuel dédié :

uv venv --python 3.14 /opt/security-review-mcp/venv
uv pip install --python /opt/security-review-mcp/venv security-review

Anciennement security-review-mcp

Jusqu'à la version 2.0.0, le paquet était publié sur PyPI sous le nom security-review-mcp. Les deux paquets installent les mêmes commandes et le même module Python : désinstallez d'abord l'ancien (uv pip uninstall --python /opt/security-review-mcp/venv security-review-mcp), puis installez security-review. Les commandes, les paramètres et la base restent les mêmes.

Sans accès Internet, ou depuis les sources : voir Installation : autres cas.

Lancement

security-review-mcp local   # lancé par l'hôte, pas à la main

Une base SQLite est créée localement (~/.local/share/security-review-mcp/security_reports.db, ou sous $XDG_DATA_HOME quand elle est définie). C'est le seul fichier écrit par le serveur : supprimez-le pour effacer toute trace. local ignore les bases distantes, donc SECREVIEW_DATABASE_URL : un conteneur de développement qui la fait pointer vers PostgreSQL ne change pas la base du mode local.

serve --transport stdio

security-review-mcp serve --transport stdio lance aussi le serveur en stdio, mais il lit SECREVIEW_DATABASE_URL et n'accepte que SQLite : il refuse de démarrer (code 2) quand la variable désigne une autre base (PostgreSQL...). Le mode local n'a pas de jeton, et une base partagée lui permettrait d'écrire dans tous les projets et de migrer le schéma de l'équipe. Pour travailler avec cette base, utilisez le mode partagé (HTTP).

Configuration de l'hôte

En transport stdio, l'hôte (VS Code, Claude…) lance lui-même le processus du serveur. Indiquez le chemin de l'exécutable, la commande local et, si besoin, les variables SECREVIEW_* (voir Configuration).

VS Code, GitHub Copilot et Claude lisent le même fichier .mcp.json à la racine du dépôt :

{
  "mcpServers": {
    "security-review": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from","security-review==4.0.0","security-review-mcp","local"]
    }
  }
}

Pour lancer le serveur depuis un conteneur, voir Docker.