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.
[!NOTE] Sie möchten die Fähigkeiten von KI-Agenten absichern? Sehen Sie sich Skill X-Ray an, einen quelloffenen statischen Sicherheitsscanner, der Skill-Pakete vor der Installation auf bösartiges oder riskantes Verhalten analysiert, ohne sie auszuführen.
MCP X-Ray ist eine einheitliche quelloffene Lösung für Sicherheitsscans und Penetrationstests für Model Context Protocol (MCP)-Server. Es erzeugt produktionsreife SARIF-Berichte für die nahtlose Integration in Sicherheitswerkzeuge und CI/CD-Pipelines. Scan-Ergebnisse können optional in Traceforce Atlas hochgeladen werden, um Sicherheit zentral zu verwalten und zu verfolgen. Atlas enthält über 600 MCPs in seinem Verzeichnis und bietet eine umfassende Datenbank für Sicherheitsbewertungen im MCP-Ökosystem.
# Clone the repository
git clone https://github.com/traceforce/mcp-xray
cd mcp-xray
# Install required dependencies (buf, etc.)
make install-dependencies
# Build everything (generates protobuf code and builds the binary)
# The binary will be created as `mcpxray` in the current directory
make all
Scannt MCP-Konfigurationen auf Sicherheitsprobleme; vor dem Pentest ausführen, um eine Baseline für das eigene Setup zu erstellen.
# Scan a specific MCP config file (uses token analyzer by default)
./mcpxray config-scan /path/to/mcp/config.json
# Scan all known MCP config paths automatically for Cursor, Claude and Windsurf.
# Known config locations (relative to home directory):
# ~/.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
# Use LLM analyzer for more extensive and deepr analysis
./mcpxray config-scan /path/to/mcp/config.json --analyzer-type llm --llm-model claude-3-5-sonnet-20241022
# Specify custom output file
./mcpxray config-scan /path/to/mcp/config.json --output custom-report.sarif.json
Erkennungsfunktionen:
Führt Sicherheitstestpläne aus, indem tatsächliche Tool-Aufrufe gegen MCP-Server durchgeführt werden. LLMs sind erforderlich, um den Pentest auszuführen. Führen Sie dies vor dem tatsächlichen Deployment in der Produktion aus.
# Run pentest with auto-generated test plan (requires LLM model)
./mcpxray pentest /path/to/mcp/config.json --llm-model claude-sonnet-4-5
# Use a custom test plan YAML file
./mcpxray pentest /path/to/mcp/config.json --test-plan /path/to/test-plan.yaml --llm-model claude-sonnet-4-5
Erkennungsfunktionen: Codeausführung, SSRF, Path Traversal, Autorisierungsumgehung, Input-Injection, Informationsoffenlegung und DoS-Schwachstellen
Durchsucht die Codebasis nach Schwachstellen; verwenden Sie dies, wenn Sie Eigentümer des Codes sind oder ihn ändern können.
# Scan current directory
./mcpxray repo-scan
# Scan a specific repository
./mcpxray repo-scan /path/to/repository
# Specify custom output file
./mcpxray repo-scan --output custom-report.sarif.json
Erkennungsfunktionen:
Das Taint-SAST verwendet die OpenGrep-Engine. Installieren Sie
die gepinnte, SHA-verifizierte Binärdatei mit make install-opengrep (Linux x86_64/arm64, macOS
arm64/x86_64). Auf anderen Plattformen installieren Sie opengrep selbst und setzen Sie
MCPXRAY_OPENGREP_BIN. Die Taint-Analyse wird durch die Installation aktiviert: repo-scan führt sie
aus, wann immer die gepinnte Engine auflösbar ist, und wenn die Engine fehlt, überspringt sie Taint
und führt dennoch SCA, Secrets und die Regeln für unsichere Befehle aus.
Für dateiübergreifendes, interprozedurales Taint bei Go und TypeScript (und Python) installieren Sie die CodeQL- Engine. Sie wird ebenfalls durch die Installation aktiviert, und ihre Ergebnisse werden mit denen von OpenGrep zusammengeführt:
make install-codeql # pinned CodeQL bundle (Linux x86_64, macOS, Windows)
./mcpxray repo-scan <repo> # every installed engine runs; results merged
CodeQL erstellt eine Datenbank pro Sprache, sodass ein Scan merklich länger dauert, sobald das Bundle installiert ist; dieser Aufwand ist der Preis für die sprachübergreifende Analyse. Um zum schnellen sprachinternen Durchlauf zurückzukehren, deinstallieren Sie die Engine so, wie Sie sie installiert haben: Entfernen Sie das Bundle aus make install-codeql (es liegt neben der Binärdatei), oder heben Sie MCPXRAY_CODEQL_BIN auf, wenn Sie es darauf verwiesen haben. Python und TypeScript extrahieren ohne Build (das Ziel wird nie ausgeführt). Go hat keinen buildfreien Modus, daher kompiliert CodeQL das Ziel; dieser Schritt läuft nur mit --codeql-allow-build und wird andernfalls mit einer Warnung übersprungen; der Scan blockiert nie an einer Eingabeaufforderung.
Jede Sprache erhält ein Zeitbudget, das database create plus analyze abdeckt — standardmäßig 600s. Ein Ziel, das dieses überschreitet, trägt nichts bei, daher erhöhen Sie es für große Repositories mit --codeql-timeout <seconds> (oder MCPXRAY_CODEQL_TIMEOUT); das Flag hat Vorrang, wenn beide gesetzt sind. Das Überschreiten des Budgets wird als timed out after Ns gemeldet, nie als saubere Null.
MCP X-Ray generiert Berichte im SARIF (Static Analysis Results Interchange Format)-Format, das von Sicherheitstools und CI/CD-Plattformen weitgehend unterstützt wird.
Laden Sie Scan-Ergebnisse zu Traceforce Atlas hoch für zentralisierte Sicherheitsverwaltung, Berichterstattung und Nachverfolgung über die Zeit. Fügen Sie das Flag --upload zu jedem Scan-Befehl hinzu. Verwenden Sie --clean-up, um generierte Dateien nach erfolgreichem Upload zu entfernen.
Erforderliche Umgebungsvariablen:
TRACEFORCE_CLIENT_IDTRACEFORCE_CLIENT_SECRETDiese Anmeldedaten können von der Einstellungsseite in der Atlas-UI heruntergeladen werden.
# Upload config scan results
./mcpxray config-scan /path/to/mcp/config.json --upload
# Upload with cleanup
./mcpxray config-scan /path/xia-add-registry-imageto/mcp/config.json --upload --clean-up
# Upload pentest results
./mcpxray pentest /path/to/mcp/config.json --llm-model claude-sonnet-4-5 --upload

Beispielausgaben des Scans sind in examples/findings/ verfügbar.
Beispielkonfigurationsdateien für MCP sind im Verzeichnis examples/mcp_configs/ verfügbar.