In this article
MCP-Server mit Docker ausführen
MCP-Server sind Integrationen, die heutzutage eine Verbindung zu vielen MCP-Hosts herstellen – ganz gleich, ob Sie Cursor, Claude Desktop oder andere verwenden. Die Einrichtung der meisten dieser MCP-Integrationen setzt jedoch voraus, dass Endnutzer den MCP-Server lokal installieren und starten. Hier kommt Docker ins Spiel.
Bevor wir uns Docker widmen, sehen wir uns einige Beispiele an, die zeigen, wie verbreitet die Anweisung ist, MCP-Server über lokale Prozesse mithilfe der STDIO-Schnittstelle anzubinden.
Hier ein Beispiel aus der Referenz zur MCP-Server-Integration von VS Code über die eigens dafür vorgesehene Datei .vscode/mcp.json:
{
"servers": {
"Perplexity": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-perplexity-ask"],
"env": {
"PERPLEXITY_API_KEY": "${input:perplexity-key}"
}
}
}
}
Hier ein weiteres Beispiel mit der Datei .cursor/mcp.json von Cursor:
{
"mcpServers": {
"npm-package-info": {
"command": "node",
"args": ["/Users/lirantal/projects/repos/mcp-server-npm"]
},
}
}Diese Beispiele folgen gängigen Nutzungsmustern für MCP-Server, bei denen sie lokal gestartet werden, indem Systemprozesse – vereinfacht gesagt „Befehle“ – ausgeführt werden.
MCP-Server über Befehle auszuführen, ist nicht immer ideal. Gibt es also eine Alternative?
Sicherheitsrisiken und Herausforderungen beim lokalen Ausführen von MCP-Servern
MCP-Server lokal auszuführen, kann manchmal lästig sein. Außerdem sind damit verschiedene Sicherheitsbedenken verbunden. Hinzu kommen die bekannten Anforderungen an KI-Sicherheitsleitplanken, die Entwickler und Sicherheitsteams beachten müssen.
Zu den Herausforderungen, auf die Entwickler und Sicherheitsteams beim erforderlichen lokalen Ausführen von MCP-Servern stoßen können, gehören:
Einrichtung der lokalen Umgebung — Wenn ich zum Beispiel nicht mit Python entwickle, der MCP-Server, mit dem ich mich verbinden möchte, aber in Python geschrieben ist und Upstream-Abhängigkeiten benötigt, um das Projekt zu erstellen und auszuführen, erschwert das die Einrichtung zusätzlich.
Abhängigkeit vom Betriebssystem — Ein weiteres häufiges Problem bei der Fehlerbehebung: Befehle müssen je nach Betriebssystem anders angegeben und zusammengesetzt werden – je nachdem, ob Sie Windows, macOS oder Linux verwenden.
Schädliche MCP-Server — Wäre der Code des MCP-Servers schädlich, hätte er sofort Zugriff auf alles in meiner Entwicklungsumgebung.
MCP-Server mit Docker ausführen
Eine Möglichkeit, diese Probleme zu umgehen, ist eine bewährte Methode: Anwendungsartefakte in Docker zu verpacken.
Docker wurde beliebt, weil Entwickler Artefakte wie Backend-Dienste standardisiert und wiederholbar erstellen und in der Cloud bereitstellen mussten. Mit der Docker-Compose-Datei vereinfachte Docker außerdem lokale Tests und die reproduzierbare Ausführung von Microservice-Architekturen.
Nun hilft uns Docker auch dabei, MCP-Server in Docker-Containern zu starten. Sehen wir uns einige Beispiele an.
GitHub-MCP-Server in Docker zu Qodo Gen hinzufügen
Der MCP-Server von GitHub ist eine Integration, die Ihnen Zugriff auf Ihr GitHub-Konto gibt. Damit können Sie Repository-Daten abfragen und Aktionen ausführen, etwa Issues erstellen oder andere Vorgänge über die GitHub-API anstoßen.
Um den GitHub-MCP-Server über Docker zu starten, würden wir normalerweise einen Befehl wie diesen ausführen:
docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN=1234 ghcr.io/github/github-mcp-serverDamit der Befehl erfolgreich ausgeführt werden kann, müssen Sie:
Docker installiert haben, damit Sie den `docker-Befehl ausführen können
Sicherstellen, dass die Docker-Anwendung läuft
Ein persönliches Zugriffstoken (PAT) für Ihr GitHub-Konto erstellen (vorzugsweise mit möglichst wenigen Berechtigungen)
Bei Ausführung des Befehls wird das Image `github-mcp-server aus der GitHub Container Registry heruntergeladen und das PAT als Umgebungsvariable übergeben.
Wir müssen diesen Docker-Befehl jedoch nicht spontan über die CLI ausführen. Stattdessen können wir ihn als MCP-Server-Konfiguration angeben, die über den STDIO-Transporttyp für Prozesse läuft.
Ich zeige Ihnen das anhand von VS Code und dem agentischen KI-Coding-Tool Qodo Gen.
{
"docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "github_pat_1234"
}
}
}Klicken Sie in der Qodo-Gen-Erweiterungsansicht auf Tools und anschließend oben links auf Add New MCP,. Daraufhin wird die Ansicht New Agentic Tool angezeigt. Fügen Sie dort den JSON-Code ein und klicken Sie auf Save.

Warten Sie nun ein bis zwei Minuten, bis der Container das aktuelle Docker-Image des GitHub-MCP-Servers aus dem Netzwerk heruntergeladen und gestartet hat. Währenddessen wird Folgendes angezeigt:

Nach dem Laden sehen Sie alle verfügbaren Tools:

Nun können wir direkt im Chat Fragen zum Code-Repository stellen:

Sicherheit von MCP-Servern: weitere Informationen
Wenn Sie sich in den Schwierigkeiten bei der Einrichtung von MCP-Servern und den Sicherheitsbedenken aus diesem Beitrag wiedererkennen, empfehle ich Ihnen dringend, sich mit den folgenden Artikeln zur KI-Sicherheit auf den Erfolg vorzubereiten:
Informieren Sie sich über Prompt-Injection und weitere KI-Angriffe
Wenn Sie sich mit RAG (Retrieval Augmented Generation) beschäftigen, empfehle ich Ihnen diesen Artikel: So sichern Sie RAG
Möchten Sie KI sicher einsetzen?
Laden Sie unseren Leitfaden für Käufer zur Code-Sicherheit bei generativer KI herunter und nutzen Sie generative KI-Coding-Tools wie GitHub Copilot, Google Gemini und Amazon CodeWhisperer ohne Risiko.