MCP Server Semgrep
MCP-Server Semgrep
POWERED BY:
Über das Projekt
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:
Besuchen Sie MCP Server Semgrep auf Smithery.ai
Befolgen Sie die Installationsanweisungen, um ihn zu Ihren MCP-kompatiblen Clients hinzuzufügen
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-semgrepDas 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.gitOption 4: Lokale Entwicklungseinrichtung
Klonen Sie das Repository:
git clone https://github.com/VetCoders/mcp-server-semgrep.git
cd mcp-server-semgrepInstallieren Sie die Abhängigkeiten (unterstützt alle gängigen Paketmanager):
# Using pnpm (recommended)
pnpm install
# Using npm
npm install
# Using yarn
yarn installErstellen Sie das Projekt:
# Using pnpm
pnpm run build
# Using npm
npm run build
# Using yarn
yarn buildHinweis: 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_ROOTSauf 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_TOKENbevorzugen.SEMGREP_APP_TOKENist 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 semgrepPython pip:
pip install semgrepHomebrew (macOS):
brew install semgrepLinux:
sudo apt-get install semgrep # or curl -sSL https://install.semgrep.dev | shWindows:
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)
Besuchen Sie MCP Server Semgrep auf Smithery.ai
Klicken Sie auf "Install in Claude Desktop"
Befolgen Sie die Anweisungen auf dem Bildschirm
Methode 2: Manuelle Konfiguration
Installieren Sie Claude Desktop
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"
}
}
}
}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: WARNINGRegel 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: WARNINGEntwicklung
Testen
pnpm testProjektstruktur
├── 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 testsWeitere 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
bashfinden konnteKlaudiusz - 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
stefanskiasan für die ursprüngliche Inspiration
Anthropic für Claude und das MCP-Protokoll
Semgrep für ihr exzellentes statisches Analysetool
Maintenance
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