So prüfen Sie MCP-Server auf versteckte Bedrohungen und Backdoors
Das Verbinden von Drittanbieter-Erweiterungen mit KI-Assistenten ist schnell zur Normalität geworden. Wir fügen Cursor, Windsurf oder Claude Desktop bedenkenlos neue MCP-Server hinzu, damit das Modell Dokumentation lesen, Datenbanken abfragen oder Skripte ausführen kann. Doch nur wenige Menschen lesen tatsächlich den Quellcode dieser Tools, bevor sie sie ausführen. Ein großer Fehler.
Jedes externe Tool erhält direkten Zugriff auf den Kontext des Modells und Ihr System. Wenn ein Werkzeug eine subtile Anweisung enthält (Prompt Injection) oder ein Paket heimlich Umgebungsvariablen an einen externen Server sendet, ist es schwierig, den Trick manuell zu erkennen. Das Team von Cisco AI Defense hat das Open-Source-Projekt mcp-scanner veröffentlicht — ein Kommandozeilen-Tool und eine Python-Bibliothek, die speziell für das Audit von MCP-Servern entwickelt wurde.

Was der Scanner leisten kann
Das Tool prüft vier MCP-Protokollentitäten gleichzeitig: Funktionsbeschreibungen (Tools), vorkonfigurierte Prompts, statische Ressourcen und Server-Systemanweisungen.
Intern arbeitet es mit einem hybriden Analysesystem. Der Scanner beschränkt sich nicht auf Signaturabgleich — er kombiniert mehrere Ansätze:
- YARA-Signaturanalyse. Prüft Code und Schemata auf typische Angriffsmuster, Shell-Befehlsaufrufe und Sandbox-Escape-Versuche. Läuft lokal und schnell, keine API-Schlüssel erforderlich.
- LLM-as-a-Judge semantische Verifikation. Sendet Tool-Schemata und System-Prompts an ein Modell (unterstützt OpenAI, Bedrock, Azure oder lokales Ollama), um versteckte Injections und Diskrepanzen zwischen der Funktionsbeschreibung und dem tatsächlichen Verhalten zu erkennen.
- Quellcode-Verhaltensaudit. Ein statischer Analysator vergleicht Docstrings mit Funktionskörpern in Python, TypeScript, Go, Rust, Java und fünf weiteren Sprachen. Wenn eine Funktion einen Taschenrechner verspricht, aber intern HTTP-Anfragen initiiert, löst der Scanner einen Alarm aus.
- PyPI- und npm-Paket-Sandboxing. Das Tool kann Pakete herunterladen und in einem isolierten Docker-Container ausführen, um bösartigen Code zu identifizieren, bevor Sie ihn auf Ihrem System installieren.
Ein interessantes Detail: Das Repository enthält einen Readiness Analyzer. Er enthält 20 Heuristiken und sucht nach rein technischen Problemen: vergessene Timeouts, fehlende Retry-Logik bei Netzwerkfehlern und schlechtes Fehlerhandling.
Schnellstart im Terminal
Der einfachste Weg, das Tool zu installieren, ist über uv:
uv tool install --python 3.13 cisco-ai-mcp-scanner
Wenn Sie nur prüfen möchten, was bereits in Ihren Editoren konfiguriert ist, führen Sie einen Scan der bekannten Konfigurationen aus:
mcp-scanner --scan-known-configs --analyzers yara --format summary
Der Befehl findet Claude Desktop-, Cursor- und Windsurf-Konfigurationsdateien auf Ihrem Rechner, verbindet sich mit den konfigurierten Servern und führt grundlegende YARA-Regeln aus.
Um einen lokalen Server zu prüfen, der über stdio läuft, übergeben Sie den Startbefehl:
mcp-scanner --analyzers yara,prompt_defense --format table \
stdio --stdio-command uvx --stdio-arg mcp-server-fetch
Wenn Sie einen Remote-Endpunkt haben, beginnt die Prüfung auf die gleiche Weise:
mcp-scanner --server-url https://mcp.deepwiki.com/mcp --analyzers yara --format summary
Das Tool gibt eine Zusammenfassung für jedes Tool mit seinem Sicherheitsstatus und einer Liste erkannter Bedrohungen aus.
=== MCP Scanner Results Table ===
Scan Target: http://127.0.0.1:8002/sse
Scan Target Tool Name Status API YARA LLM Severity
-----------------------------------------------------------------------------------------
http://127.0.0.1:8002/sse exec_secrets UNSAFE HIGH HIGH HIGH HIGH
http://127.0.0.1:8002/sse safe_command SAFE SAFE SAFE SAFE SAFE
Verwendung im Code und CI/CD
Das Projekt ist nicht nur als CLI konzipiert, sondern auch als eigenständiges SDK. Es lässt sich bequem in Backend-Gateways oder Tool-Validierungspipelines einbetten, bevor die Veröffentlichung im internen Registry Ihres Unternehmens erfolgt.
import asyncio
import logging
from mcpscanner import Config, Scanner, set_log_level
from mcpscanner.core.models import AnalyzerEnum
async def main():
set_log_level(logging.ERROR)
config = Config(
llm_provider_api_key="your_llm_api_key"
)
scanner = Scanner(config)
# Проверяем удаленный сервер
results = await scanner.scan_remote_server_tools(
"http://127.0.0.1:8000/mcp",
analyzers=[AnalyzerEnum.YARA, AnalyzerEnum.LLM]
)
for res in results:
status = "OK" if res.is_safe else "ВНИМАНИЕ"
print(f"Инструмент: {res.tool_name} -> {status}")
asyncio.run(main())
Für geschlossene Pipelines gibt es einen static-Modus. Sie können Tool-Schemata vorab als JSON exportieren und sie offline scannen, ohne Server zu starten und Netzwerkanfragen zu senden:
mcp-scanner --analyzers yara static --tools ./output/tools-list.json
Worauf Sie achten sollten
Das Projekt ist unter der Apache-2.0-Lizenz Open Source. Grundlegende Analysatoren (YARA, pip-audit, Prompt Defense und Readiness-Checks) laufen vollständig autonom und kostenlos.
Für tiefe semantische Analysen benötigen Sie entweder einen API-Schlüssel für ein LLM über LiteLLM oder ein lokal laufendes Modell über Ollama. Die Cisco AI Defense Inspect API-Engine wird optional angebunden, wenn Sie bereits ein Abonnement für ihre Enterprise-Sicherheitsdienste haben.
Das Tool ist nützlich für Entwickler, die eigene MCP-Server erstellen und vor der Veröffentlichung selbst prüfen möchten, sowie für Teams, die KI-Agenten in interne Unternehmensworkflows integrieren.
Ähnliche Projekte