Vereinigter Sicherheitsscanner für MCP-Server mit Konfigurations-, Pentest- und Repo-Scan-Modi. Erzeugt SARIF-Berichte für CI/CD-Integration, erkennt Geheimnisse, Schwachstellen und Fehlkonfigurationen mittels Token- und LLM-Analysatoren.
MCP X-Ray ist eine einheitliche Open-Source-Sicherheitsscan- und Penetrationstestlösung für Model Context Protocol (MCP)-Server. Es erzeugt produktionsreife SARIF-Berichte für die nahtlose Integration in Sicherheitstools und CI/CD-Pipelines. Suchergebnisse können optional auf Traceforce Atlas für zentralisiertes Sicherheitsmanagement und -tracking hochgeladen werden. Atlas enthält über 600 MCPs in seiner Registry und bietet eine umfassende Sicherheitsbewertungsdatenbank für das MCP-Ökosystem.

# Repository klonen
git clone https://github.com/traceforce/mcp-xray
cd mcp-xray
# Erforderliche Abhängigkeiten installieren (buf usw.)
make install-dependencies
# Alles bauen (generiert Protobuf-Code und erstellt die Binärdatei)
# Die Binärdatei wird als `mcpxray` im aktuellen Verzeichnis erstellt
make all
Scannen von MCP-Konfigurationen auf Sicherheitsprobleme; vor einem Pentest ausführen, um Ihre Einrichtung zu überprüfen.
# Eine bestimmte MCP-Konfigurationsdatei scannen (verwendet standardmäßig den Token-Analyzer)
./mcpxray config-scan /pfad/zu/mcp/config.json
# Alle bekannten MCP-Konfigurationspfade automatisch für Cursor, Claude und Windsurf scannen.
# Bekannte Konfigurationsspeicherorte (relativ zum Home-Verzeichnis):
# ~/.cursor/mcp.json (Cursor)
# ~/Library/Application Support/Claude/claude_desktop_config.json (Claude Desktop)
# ~/.codeium/windsurf/mcp_config.json (Windsurf)
./mcpxray config-scan --scan-known-configs
# LLM-Analyzer für eine umfassendere und tiefere Analyse verwenden
./mcpxray config-scan /pfad/zu/mcp/config.json --analyzer-type llm --llm-model claude-3-5-sonnet-20241022
# Benutzerdefinierte Ausgabedatei angeben
./mcpxray config-scan /pfad/zu/mcp/config.json --output custom-report.sarif.json
Erkennungsfähigkeiten:
Ausführen von Sicherheitstestplänen durch tatsächliche Tool-Aufrufe gegen MCP-Server. LLMs sind für die Durchführung des Pentests erforderlich. Führen Sie diesen vor dem tatsächlichen Einsatz in der Produktion aus.
# Pentest mit automatisch generiertem Testplan ausführen (erfordert LLM-Modell)
./mcpxray pentest /pfad/zu/mcp/config.json --llm-model claude-sonnet-4-5
# Benutzerdefinierte YAML-Testplandatei verwenden
./mcpxray pentest /pfad/zu/mcp/config.json --test-plan /pfad/zu/testplan.yaml --llm-model claude-sonnet-4-5
Erkennungsfähigkeiten: Codeausführung, SSRF, Path Traversal, Autorisierungsumgehung, Input-Injection, Offenlegung von Informationen und DoS-Schwachstellen
Scannen der Codebasis auf Schwachstellen; verwenden, wenn Sie den Code besitzen oder ändern können.
# Aktuelles Verzeichnis scannen
./mcpxray repo-scan
# Ein bestimmtes Repository scannen
./mcpxray repo-scan /pfad/zu/repository
# Benutzerdefinierte Ausgabedatei angeben
./mcpxray repo-scan --output custom-report.sarif.json
Erkennungsfähigkeiten:
MCP X-Ray erzeugt Berichte im SARIF-Format (Static Analysis Results Interchange Format), das von vielen Sicherheitstools und CI/CD-Plattformen unterstützt wird.
Scannen-Ergebnisse auf Traceforce Atlas hochladen, um zentrales Sicherheitsmanagement, Berichterstellung und Nachverfolgung über die Zeit zu ermöglichen. Fügen Sie das Flag --upload zu einem beliebigen Scan-Befehl hinzu. Verwenden Sie --clean-up, um generierte Dateien nach erfolgreichem Upload zu entfernen.
Erforderliche Umgebungsvariablen:
TRACEFORCE_CLIENT_IDTRACEFORCE_CLIENT_SECRETDiese Zugangsdaten können von der Einstellungsseite der Atlas-Benutzeroberfläche heruntergeladen werden.
# Konfigurationsscan-Ergebnisse hochladen
./mcpxray config-scan /pfad/zu/mcp/config.json --upload
# Mit Bereinigung hochladen
./mcpxray config-scan /pfad/xia-add-registry-imageto/mcp/config.json --upload --clean-up
# Pentest-Ergebnisse hochladen
./mcpxray pentest /pfad/zu/mcp/config.json --llm-model claude-sonnet-4-5 --upload

Beispiel-Scan-Ausgaben sind im Verzeichnis examples/findings/ verfügbar.
Beispiel-MCP-Konfigurationsdateien sind im Verzeichnis examples/mcp_configs/ verfügbar.
Ein Beispiel-MCP-Server ist im Verzeichnis examples/mcp_server/ verfügbar:
mcp_server.py: FastMCP-Server mit streamable-http-Transportmcp.json: Konfigurationsdatei zum Verbinden mit dem ServerREADME.md: Anleitung zum Einrichten und Scannen des ServersMCP X-Ray bietet zwei Methoden zur Analyse der Tool-Sicherheit:
Der Token-Analyzer verwendet regelbasierten Mustervergleich, um schnell Sicherheitsprobleme in Tool-Beschreibungen zu erkennen. Er ist schnell, benötigt keine API-Schlüssel und funktioniert offline. Der Token-Analyzer verwendet zwei Arten von Regeln:
internal/configscan/tokenanalyzer/token_rules.yaml definiert. Jede Regel legt fest:
internal/yararules/unsafe_patterns.yar definiert. Diese Regeln erkennen unsichere Systembefehlsmuster.Verwendung:
mcpxray config-scan --analyzer-type token
Der LLM-Analyzer verwendet große Sprachmodelle für eine tiefgreifende semantische Analyse von Tool-Beschreibungen und liefert umfassendere Sicherheitseinblicke.
Verwendung:
mcpxray config-scan --analyzer-type llm --llm-model <modell-name>
Standardmäßig verwendet das Pentest-Tool ein LLM, um automatisch Testpläne basierend auf den verfügbaren Tools der MCP-Server zu generieren. Testpläne können auch angepasst und als YAML-Dateien bereitgestellt werden. Testpläne sind YAML-Dateien, die Testfälle mit Eingabeargumenten und erwarteten Ausgaben enthalten.
Standardverhalten (LLM-generierter Testplan):
./mcpxray pentest /pfad/zu/mcp/config.json --llm-model claude-sonnet-4-5
Benutzerdefinierter Testplan:
./mcpxray pentest /pfad/zu/mcp/config.json --test-plan /pfad/zu/testplan.yaml --llm-model claude-sonnet-4-5
MCP X-Ray unterstützt die folgenden LLM-Anbieter für Tool-Analysen:
claude-sonnet-4-5ANTHROPIC_API_KEY Umgebungsvariablegpt-5OPENAI_API_KEY Umgebungsvariablearn:aws:bedrock: beginnen und llama enthaltenarn:aws:bedrock:<region>:<account-id>:inference-profile/us.meta.llama3-2-1b-instruct-v1:0Für die LLM-basierte Tool-Analyse konfigurieren Sie Ihre LLM-API-Zugangsdaten:
export ANTHROPIC_API_KEY=ihr-api-schluessel
export OPENAI_API_KEY=ihr-api-schluessel
Jeder Anbieter benötigt seine eigene spezifische Umgebungsvariable. Das Tool erkennt automatisch, welcher Anbieter basierend auf dem Modellnamen verwendet werden soll.
Für AWS-Bedrock-Modelle konfigurieren Sie AWS-Zugangsdaten mit einer der standardmäßigen AWS-SDK-Methoden:
# Option 1: Umgebungsvariablen
export AWS_ACCESS_KEY_ID=ihr-access-key
export AWS_SECRET_ACCESS_KEY=ihr-secret-key
export AWS_REGION=us-east-1
# Option 2: AWS-Zugangsdatendatei (~/.aws/credentials)
# Option 3: IAM-Rolle (bei Ausführung auf EC2/ECS/Lambda)
MCP X-Ray verwendet das AWS SDK, das automatisch Zugangsdaten aus der Umgebung, der Zugangsdatendatei oder der IAM-Rolle lädt.
Beiträge sind willkommen! Bitte stellen Sie sicher, dass: