Semgrep MCP Server

Semgrep MCP Server

Le serveur Semgrep MCP intègre les puissantes capacités d'analyse de code statique de Semgrep dans l'écosystème du Modèle de Contexte de Protocole, permettant aux LLM, agents et IDE de scanner, comprendre et interagir avec le code pour des vulnérabilités de sécurité et des informations sur le code via une interface standardisée.

Author: semgrep


Voir le Protocole

Qu'est-ce que le serveur Semgrep MCP ?

Le serveur Semgrep MCP est un serveur MCP dédié qui expose les outils d'analyse statique de Semgrep comme des actions appelables (outils) accessibles aux LLM, agents et applications respectant la norme MCP. Il permet un scan de sécurité de code, une compréhension et une gestion des règles automatisés et sans effort directement depuis des environnements comme les IDE (Cursor, VS Code), les chatbots (ChatGPT) et les frameworks d'agents.

Comment configurer le serveur Semgrep MCP

  • Installez le paquet Python :
    Utilisez pipx ou votre outil Python préféré :
    pipx install semgrep-mcp
  • Configurez le serveur :
    Exécutez via CLI avec uvx semgrep-mcp ou comme conteneur Docker :
    docker run -i --rm ghcr.io/semgrep/mcp -t stdio
  • Intégrez à votre environnement :
    • Pour des IDE comme Cursor ou VS Code, éditez le fichier de configuration MCP (e.g., .cursor/mcp.json, .vscode/mcp.json) en ajoutant
      {
        "mcpServers": {
          "semgrep": {
            "command": "uvx",
            "args": ["semgrep-mcp"]
          }
        }
      }
      
    • Pour des connexions hébergées (cloud), définissez l'URL du serveur MCP sur https://mcp.semgrep.ai/mcp ou utilisez SSE à https://mcp.semgrep.ai/sse pour la compatibilité descendante.
    • Intégration de la plateforme AppSec :
      Générez un jeton API Semgrep AppSec, puis ajoutez-le comme variable d'environnement :
      export SEMGREP_APP_TOKEN=<token>
      Pour Docker, ajoutez avec -e SEMGREP_APP_TOKEN=<token>.

Comment utiliser le serveur Semgrep MCP

  1. Démarrez le serveur en utilisant votre transport préféré (stdio, streamable-http ou SSE).
  2. Connectez-vous via votre IDE ou votre framework LLM qui prend en charge MCP, en vous assurant qu'il est configuré pour atteindre votre instance de serveur locale ou distante.
  3. Appelez des outils tels que l'analyse de code ou la génération d'AST directement depuis l'interface connectée (par exemple, demandez à votre LLM : “Scannez ce code pour des vulnérabilités de sécurité en utilisant Semgrep”).
  4. Recevez des résultats exploitables—LLMs, agents et utilisateurs reçoivent des résultats détaillés sur les problèmes de code, les constatations ou les informations, intégrés sans effort dans votre flux de développement.

Fonctionnalités Clés

  • Analyse instantanée des vulnérabilités de code utilisant Semgrep directement depuis les LLM ou les outils.
  • Multiples options de déploiement : CLI locale, Docker et points de terminaison cloud hébergés.
  • Intégration étendue : Plug and play avec des IDE (Cursor, VS Code, Claude Desktop), des chatbots (ChatGPT) et des SDK d'agents.
  • Découverte et exécution d'outils : Liste et appel dynamiques des outils Semgrep via les points de terminaison MCP.
  • Accès aux informations de code : Extraction des arbres de syntaxe abstraite, des listes de langages pris en charge et des schémas de règles.
  • Utilisation de règles personnalisées : Analysez le code avec des règles Semgrep personnalisées pour des cas d'utilisation avancés.
  • Authentification sécurisée et intégration de la plateforme AppSec pour des environnements d'entreprise gérés.

Cas d'Utilisation

  • Révision de code automatisée : Intégrez l'analyse Semgrep en temps réel dans des agents AI participant à la révision de demandes de tirage, à la génération de code ou aux suggestions dans les IDE.
  • Automatisation des audits de sécurité : Activez des flux de travail de sécurité où les LLM/agents analysent automatiquement ou à la demande des fichiers de projet pour détecter des vulnérabilités.
  • Rédaction de règles augmentée par LLM : Utilisez les LLM pour aider à rédiger, valider et appliquer des règles Semgrep personnalisées aux bases de code.
  • Augmentation de la pipeline DevSecOps : Ajoutez des scans Semgrep alimentés par MCP aux environnements CI/CD ou de développeurs pour un retour d'information immédiat et exploitable.
  • Apprentissage et explication interactifs : Utilisez l'arbre de syntaxe abstraite et les outils de prompt pour enseigner ou expliquer la sémantique du code dans des outils éducatifs ou des chatbots.

FAQ

Q1 : Quels langages de programmation le serveur Semgrep MCP prend-il en charge ?
Le serveur prend en charge tous les langages disponibles dans Semgrep en amont, tels que Python, JavaScript, Go, Java, etc. Utilisez l'outil supported_languages pour obtenir la liste actuelle.

Q2 : Puis-je utiliser le serveur Semgrep MCP sans compte cloud ou jeton ?
Oui, les outils principaux d'analyse et de compréhension du code fonctionnent localement sans authentification. Pour des fonctionnalités avancées liées à la plateforme Semgrep AppSec (comme les constatations cloud), un jeton API est requis.

Q3 : Quels protocoles de communication sont pris en charge ?
Le serveur Semgrep MCP prend en charge stdio (pour CLI/local), HTTP streamable (recommandé pour les nouvelles intégrations) et les événements envoyés par le serveur (compatibilité héritée).

Q4 : Comment connecter le serveur Semgrep MCP à ChatGPT ou VS Code ?
Définissez l'URL du serveur MCP dans les paramètres de votre connecteur ou éditeur (par exemple, https://mcp.semgrep.ai/sse pour ChatGPT, ou mettez à jour .vscode/mcp.json pour VS Code).

Q5 : Les LLM peuvent-ils créer et utiliser des règles Semgrep personnalisées automatiquement ?
Oui, en utilisant les outils fournis tels que semgrep_scan_with_custom_rule et les générateurs de prompt, les LLM/agents peuvent écrire et appliquer de nouvelles règles dynamiquement.