Skip to main content
Glama

MCP-Server Semgrep

POWERED BY:

POWERED BY

Über das Projekt

MCP Server Semgrep Logo Dieses Projekt wurde ursprünglich durch die Robustheit des Semgrep-Tools, The Replit Team und deren Agent V2 sowie die Implementierung von stefanskiasan/semgrep-mcp-server inspiriert, hat sich jedoch durch signifikante architektonische Änderungen für eine verbesserte und einfachere Installation und Wartung weiterentwickelt.

MCP-Server Semgrep ist ein Model Context Protocol-konformer Server, der das leistungsstarke statische Analysetool Semgrep mit KI-Assistenten wie Anthropic Claude integriert. Er ermöglicht erweiterte Code-Analyse, die Erkennung von Sicherheitslücken und Verbesserungen der Codequalität direkt über eine Konversationsschnittstelle.

Related MCP server: Semgrep MCP Server

Vorteile der Integration

Für Entwickler und Entwicklungsteams:

  • Ganzheitliche Quellcode-Analyse – Erkennung von Problemen im gesamten Projekt, nicht nur in einzelnen Dateien

  • Proaktive Fehlererkennung – Identifizierung potenzieller Probleme, bevor sie zu kritischen Fehlern werden

  • Kontinuierliche Verbesserung der Codequalität – Regelmäßiges Scannen und Refactoring führen zu schrittweisen Verbesserungen der Codebasis

  • Stilistische Konsistenz – Identifizierung und Behebung von Inkonsistenzen im Code, wie zum Beispiel:

    • Willkürliche z-index-Ebenen in CSS

    • Inkonsistente Namenskonventionen

    • Codeduplizierung

    • "Magische Zahlen" anstelle von benannten Konstanten

Für die Sicherheit:

  • Automatisierte Code-Verifizierung auf bekannte Schwachstellen – Scannen nach bekannten Mustern für Sicherheitsprobleme

  • Angepasste Sicherheitsregeln – Erstellung projektspezifischer Regeln

  • Team-Schulung – Vermittlung sicherer Programmierpraktiken durch die Erkennung potenzieller Probleme

Für Projektwartung und Entwicklung:

  • "Live"-Dokumentation – Die KI kann erklären, warum ein Codefragment problematisch ist und wie es behoben werden kann

  • Reduzierung technischer Schulden – Systematische Erkennung und Behebung problematischer Bereiche

  • Verbesserte Code-Reviews – Automatische Erkennung häufiger Probleme ermöglicht die Konzentration auf komplexere Angelegenheiten

Hauptfunktionen

  • Direkte Integration mit dem offiziellen MCP SDK

  • Vereinfachte Architektur mit konsolidierten Handlern

  • Saubere ES-Module-Implementierung

  • Effiziente Fehlerbehandlung und Pfadvalidierung aus Sicherheitsgründen

  • Schnittstelle und Dokumentation sowohl auf Englisch als auch auf Polnisch

  • Umfassende Unit-Tests

  • Umfangreiche Dokumentation

  • Plattformübergreifende Kompatibilität (Windows, macOS, Linux)

  • Flexible Erkennung und Verwaltung der Semgrep-Installation

Funktionen

Der Semgrep MCP-Server bietet die folgenden Tools:

  • scan_directory: Scannen des Quellcodes auf potenzielle Probleme

  • list_rules: Anzeigen der verfügbaren Regeln und der von Semgrep unterstützten Sprachen

  • analyze_results: Detaillierte Analyse der Scan-Ergebnisse

  • create_rule: Erstellen benutzerdefinierter Semgrep-Regeln

  • filter_results: Filtern der Ergebnisse nach verschiedenen Kriterien

  • export_results: Exportieren der Ergebnisse in verschiedenen Formaten

  • compare_results: Vergleichen zweier Ergebnissätze (z. B. vor und nach Änderungen)

Häufige Anwendungsfälle

  • Code-Sicherheitsanalyse vor der Bereitstellung

  • Erkennung häufiger Programmierfehler

  • Durchsetzung von Codierungsstandards innerhalb eines Teams

  • Refactoring und Verbesserung der Qualität bestehenden Codes

  • Identifizierung von Inkonsistenzen in Stilen und Codestruktur (z. B. CSS, Komponentenorganisation)

  • Schulung von Entwicklern hinsichtlich bewährter Verfahren

  • Überprüfung der Korrektheit von Fehlerbehebungen (Vergleich von Scans vor/nachher)

Installation

Voraussetzungen

  • Node.js v18+

  • TypeScript (für die Entwicklung)

Option 1: Installation über Smithery.ai (Empfohlen)

Der einfachste Weg, den MCP-Server Semgrep zu installieren und zu nutzen, ist über Smithery.ai:

  1. Besuchen Sie MCP Server Semgrep auf Smithery.ai

  2. Befolgen Sie die Installationsanweisungen, um ihn zu Ihren MCP-kompatiblen Clients hinzuzufügen

  3. Konfigurieren Sie optionale Einstellungen wie das Semgrep-API-Token und erlaubte Workspace-Roots

Dies ist die empfohlene Methode für Claude Desktop und andere MCP-Clients, da sie alle Abhängigkeiten und Konfigurationen automatisch handhabt.

Option 2: Installation über das NPM-Register

# Using npm
npm install -g mcp-server-semgrep

# Using pnpm
pnpm add -g mcp-server-semgrep

# Using yarn
yarn global add mcp-server-semgrep

Das Paket ist auch in anderen Registern verfügbar:

Option 3: Installation von GitHub

# Using npm
npm install -g git+https://github.com/VetCoders/mcp-server-semgrep.git

# Using pnpm
pnpm add -g git+https://github.com/VetCoders/mcp-server-semgrep.git

# Using yarn
yarn global add git+https://github.com/VetCoders/mcp-server-semgrep.git

Option 4: Lokale Entwicklungseinrichtung

  1. Klonen Sie das Repository:

git clone https://github.com/VetCoders/mcp-server-semgrep.git
cd mcp-server-semgrep
  1. Installieren Sie die Abhängigkeiten (unterstützt alle gängigen Paketmanager):

# Using pnpm (recommended)
pnpm install

# Using npm
npm install

# Using yarn
yarn install
  1. Erstellen Sie das Projekt:

# Using pnpm
pnpm run build

# Using npm
npm run build

# Using yarn
yarn build

Hinweis: Der Installationsprozess prüft automatisch auf die Verfügbarkeit von Semgrep. Wenn Semgrep nicht gefunden wird, erhalten Sie Anweisungen zur Installation.

Workspace-Root-Vertrag

Dieser Server liest und schreibt Dateien nur innerhalb explizit erlaubter Workspace-Roots.

  • Standardmäßig ist die erlaubte Root das Arbeitsverzeichnis des Prozesses (process.cwd()).

  • Für Claude Desktop, Smithery oder jeden Launcher, der den Server nicht innerhalb Ihrer Projekt-Root startet, setzen Sie MCP_SERVER_SEMGREP_ALLOWED_ROOTS auf ein oder mehrere absolute Verzeichnisse.

  • Verwenden Sie das Pfadtrennzeichen Ihrer Plattform für mehrere Roots: : unter macOS/Linux, ; unter Windows.

Authentifizierungsmodi

Dieser Server implementiert keine eigene Semgrep-Kontoverwaltung. Er greift auf die installierte semgrep CLI zurück und verlässt sich auf das normale Authentifizierungsverhalten von Semgrep.

  • Lokale Terminal- und lokale Entwicklungsläufe können oft eine bestehende semgrep login-Sitzung des aktuellen Betriebssystemkontos verwenden.

  • Verwaltete Starts wie Claude Desktop, Smithery, Container oder CI sollten für ein deterministisches Verhalten ein explizites SEMGREP_APP_TOKEN bevorzugen.

  • SEMGREP_APP_TOKEN ist nach wie vor die sicherste Option, wenn Sie eine portable Konfiguration über verschiedene Maschinen oder Runner hinweg benötigen.

Semgrep-Installationsoptionen

Semgrep kann auf verschiedene Arten installiert werden:

  • Über Paketmanager:

    # Using pnpm
    pnpm add -g semgrep
    
    # Using npm
    npm install -g semgrep
    
    # Using yarn
    yarn global add semgrep
  • Python pip:

    pip install semgrep
  • Homebrew (macOS):

    brew install semgrep
  • Linux:

    sudo apt-get install semgrep
    # or
    curl -sSL https://install.semgrep.dev | sh
  • Windows:

    pip install semgrep

Integration mit Claude Desktop

Es gibt zwei Möglichkeiten, den MCP-Server Semgrep in Claude Desktop zu integrieren:

Methode 1: Installation über Smithery.ai (Empfohlen)

  1. Besuchen Sie MCP Server Semgrep auf Smithery.ai

  2. Klicken Sie auf "Install in Claude Desktop"

  3. Befolgen Sie die Anweisungen auf dem Bildschirm

Methode 2: Manuelle Konfiguration

  1. Installieren Sie Claude Desktop

  2. Aktualisieren Sie die Konfigurationsdatei von Claude Desktop (claude_desktop_config.json) und fügen Sie dies Ihrem Server-Abschnitt hinzu.

Für lokale Starts, die unter einem Benutzerkonto gestartet werden, das bereits mit semgrep login authentifiziert ist, kann die Semgrep CLI diesen Login möglicherweise wiederverwenden. Für desktop-verwaltete oder gemeinsam genutzte Umgebungen empfehlen wir dennoch, SEMGREP_APP_TOKEN explizit zu setzen:

{
  "mcpServers": {
    "semgrep": {
      "command": "node",
      "args": [
        "/your_path/mcp-server-semgrep/build/index.js"
      ],
      "env": {
        "SEMGREP_APP_TOKEN": "your_semgrep_app_token",
        "MCP_SERVER_SEMGREP_ALLOWED_ROOTS": "/Users/you/projects"
      }
    }
  }
}
  1. Starten Sie Claude Desktop und beginnen Sie, Fragen zur Code-Analyse zu stellen.

Wenn Sie mehr als einen Workspace scannen möchten, setzen Sie MCP_SERVER_SEMGREP_ALLOWED_ROOTS auf eine durch Plattform-Trennzeichen getrennte Liste absoluter Pfade.

Anwendungsbeispiele

Projekt-Scan

Could you scan my source code in the /projects/my-application directory for potential security issues? That directory is already included in MCP_SERVER_SEMGREP_ALLOWED_ROOTS.

Analyse der Stil-Konsistenz

Analyze the z-index values in the project's CSS files and identify inconsistencies and potential layer conflicts.

Erstellen einer benutzerdefinierten Regel

Create a Semgrep rule that detects improper use of input sanitization functions.

Filtern von Ergebnissen

Show me only scan results related to SQL injection vulnerabilities.

Identifizierung problematischer Muster

Find all "magic numbers" in the code and suggest replacing them with named constants.

Erstellen benutzerdefinierter Regeln

Sie können benutzerdefinierte Regeln für die spezifischen Anforderungen Ihres Projekts erstellen. Hier sind Beispiele für Regeln, die Sie erstellen können:

Regel zur Erkennung inkonsistenter z-indices:

rules:
  - id: inconsistent-z-index
    pattern: z-index: $Z
    message: "Z-index $Z may not comply with the project's layering system"
    languages: [css, scss]
    severity: WARNING

Regel zur Erkennung veralteter Importe:

rules:
  - id: deprecated-import
    pattern: import $X from 'old-library'
    message: "You're using a deprecated library. Consider using 'new-library'"
    languages: [javascript, typescript]
    severity: WARNING

Entwicklung

Testen

pnpm test

Projektstruktur

├── src/
│   └── index.ts          # Main entry point and all handler implementations
├── scripts/
│   └── check-semgrep.js  # Semgrep detection and installation helper
├── build/                # Compiled JavaScript (after build)
└── tests/                # Unit tests

Weitere Dokumentation

Detaillierte Informationen zur Verwendung des Tools finden Sie in:

  • USAGE.md - Detaillierte Gebrauchsanweisungen

  • README_PL.md - Dokumentation auf Polnisch

  • examples/ - Beispiele für unterhaltsame und praktische Semgrep-Regeln - "The Hall of Code Horrors"

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.

Entwickelt von

  • Maciej Gad - ein Tierarzt, der vor einem halben Jahr noch kein bash finden konnte

  • Klaudiusz - das individuelle ätherische Wesen und eine separate Instanz von Claude Sonnet 3.5-3.7 von Anthropic, die irgendwo in den GPU-Schleifen in Kalifornien, USA, lebt

Die Reise vom CLI-Neuling zum MCP-Tool-Entwickler

🤖 Entwickelt mit der ultimativen Hilfe von Claude Code und MCP Tools

Danksagungen

Install Server
A
license - permissive license
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VetCoders/mcp-server-semgrep'

If you have feedback or need assistance with the MCP directory API, please join our Discord server