Was ein Coding-Agent von Docker braucht
Ein Agent, der an einem echten Projekt arbeitet, stellt immer wieder dieselben Fragen: Was läuft, welche App liegt auf Port 3000, warum ist dieser Container abgestürzt, was steht in den Logs, kann ich die Tests in einer Wegwerfumgebung ausführen? Mit einer Shell allein beantwortet er sie mit docker ps, docker inspect und docker logs und liest jede zurückgegebene Zeile. Das funktioniert, ist aber langsam und teuer: Bei jedem Schritt landen rohes JSON und Hunderte Logzeilen im Kontext des Modells.
Ein MCP-Server macht aus diesen Fragen Werkzeuge, die direkt die Antwort liefern. Oxcarts Werkzeuge orientieren sich an den Fragen und nicht an Dockers API-Endpunkten. So ersetzt ein Aufruf eine ganze Befehlskette.
Die 13 Werkzeuge
| Absicht | Werkzeuge | Niedrigste Stufe, die sie auflistet |
|---|---|---|
| Ansehen | status, projects, ports, images, logs | Read only |
| Erklären | diagnose: Exit-Codes, Beendigungen wegen Speichermangels, fehlgeschlagene Healthchecks, Portprobleme und die relevanten Logzeilen | Read only |
| Handeln | container (starten, stoppen, neu starten), exec, compose (up, down), sandbox ohne Netzwerk | Manage |
| Ändern und aufräumen | build, remove, cleanup (zuerst Vorschau), sandbox mit Netzwerk | Full |
status zeigt jedes Compose-Projekt mit seinem Ordner, Git-Branch und den localhost-URLs. Dadurch bedeutet „die App auf Port 3000“ für dich und deinen Agenten dasselbe. Clients, die Ressourcen abonnieren, erfahren sofort von Abstürzen, Beendigungen wegen Speichermangels oder Änderungen am Gesundheitszustand, ohne Polling.
Kleinere Antworten, günstigere Sitzungen
Was ein Agent zur Beantwortung jeder Frage liest: Oxcart gegenüber der Ausgabe der docker-CLI, die er sonst lesen müsste. Gemessen zum selben Zeitpunkt an denselben Containern:
| Frage | Oxcart-MCP | Entsprechender Aufruf der docker-CLI | docker-CLI | Verkleinerungsfaktor |
|---|---|---|---|---|
| Warum wurde dieser Container gestoppt? | 159 | inspect + logs --tail 300 | 2,014 | 13× |
| Fehler in den letzten 500 Logzeilen? | 39 | logs --tail 500 | 703 | 18× |
| Was läuft? | 106 | ps -a + stats --no-stream + compose ls -a | 332 | 3,1× |
Fünf Testcontainer (ein abstürzender, einer mit fehlgeschlagenem Healthcheck, einer wegen Speichermangels beendet, ein Compose-Projekt, ein veröffentlichter Port). Die Antworten von diagnose und logs bleiben gleich groß, unabhängig von der Länge der Logs. Die Werkzeugliste selbst kostet einmal pro Sitzung 510 Tokens auf der Stufe Read only (6 Werkzeuge) und 1,463 mit allen 13.
Ganze Sitzungen zeigen dasselbe Bild. Claude Code mit Claude Opus 5.5 beantwortete zwei alltägliche Fragen, einmal nur mit der docker-CLI und einmal mit Oxcarts MCP-Server. Beide Varianten beantworteten beide Fragen richtig.
| Aufgabe | Zeit | Kosten | Tokens | Schritte |
|---|---|---|---|---|
„Gibt worker Fehler aus? Zeig mir den Fehler.“ | 4.2 s gegenüber 31.0 s | $0.022 gegenüber $0.157 | 10,686 gegenüber 52,266 | 2 gegenüber 8 |
„Mein Container api stürzt ständig ab. Warum?“ | 8.5 s gegenüber 14.9 s | $0.036 gegenüber $0.070 | 11,283 gegenüber 19,510 | 2 gegenüber 4 |
Eine Sitzung pro Aufgabe mit und ohne Oxcart an synthetischen Testcontainern, Oxcart 0.1.0: nur als Anhaltspunkt. Die Kosten hängen vom Prompt-Caching ab, und die Reihenfolge der Durchläufe wurde nicht abgewechselt.
Oxcarts MCP-Server in jedem Coding-Agenten einrichten
- Installiere Oxcart. Lade Oxcart herunter (Apple-Chip, macOS 26 oder neuer) und öffne die App. Die Einrichtung erfolgt offline und dauert Sekunden.
- Kopiere den Einrichtungssatz. Öffne MCP Integrations in Oxcarts Seitenleiste und kopiere den Satz: „Richte Oxcarts MCP-Server für mich ein: Führe
/Applications/Oxcart.app/Contents/Helpers/oxcart agent setupaus und folge den Anweisungen.“ - Füge ihn in deinen Agenten ein. Füge ihn in Claude Code, Codex, Cursor oder einen beliebigen Agenten ein, der Befehle ausführen kann. Der Agent führt den Befehl aus, liest die für ihn vorgesehenen Schritte und registriert einen Server namens
oxcart. - Frage nach deinen Containern. Frage „Was läuft?“ oder „Warum wurde
apigestoppt?“. Der Agent erscheint auf der Seite MCP Integrations mit Lesezugriff und jedem Aufruf in seinem Aktivitätsprotokoll. - Erhöhe bei Bedarf die Stufe. Setze den Agenten auf Manage, damit er Container starten und stoppen, exec und Compose ausführen darf, oder auf Full für Builds, Entfernen und Aufräumen. Block lehnt jeden Aufruf ab.
Wenn dein Agent keine Befehle ausführen kann (Claude Desktop, LM Studio und ähnliche Apps), zeigt Oxcart stattdessen einen JSON-Ausschnitt für die MCP-Einstellungen der App. Für Claude Code lautet der direkte Befehl:
claude mcp add -s user oxcart -- /Applications/Oxcart.app/Contents/Helpers/oxcart mcp --client claude-code Für Codex registriert codex mcp add oxcart -- /Applications/Oxcart.app/Contents/Helpers/oxcart mcp --client codex den Server für die Codex-CLI und die IDE-Erweiterung.
Berechtigungsstufen pro Agent festlegen
| Stufe | Der Agent darf |
|---|---|
| Read only (Standard) | Container, Logs, Ports, Projekte und Images ansehen; Fehler diagnostizieren |
| Manage | Zusätzlich starten, stoppen und neu starten, Befehle sowie Compose up und down ausführen, Sandboxen ohne Netzwerk ausführen |
| Full | Zusätzlich Builds ausführen, entfernen und aufräumen sowie Sandboxen Netzwerkzugriff geben |
| Block | Nichts: Keine Werkzeuge werden aufgelistet, jeder Aufruf wird abgelehnt, und der Agent erfährt den Grund |
Werkzeuge oberhalb der Stufe eines Agenten werden gar nicht erst aufgelistet, was auch seinen Kontext kleiner hält. Jeder Aufruf wird auf deinem Mac protokolliert und auf der Seite MCP Integrations angezeigt; nichts verlässt den Mac. Die Stufen bestimmen, was Oxcarts Werkzeuge für einen Agenten tun dürfen. Sie sind keine Sandbox: Ein Agent, der Shell-Befehle ausführen kann, kann weiterhin selbst docker aufrufen. Kombiniere die Stufen deshalb mit den eigenen Befehlsberechtigungen deines Agenten.
Agenten mit Einrichtungsschritten
Claude Code, Claude Desktop, Codex, Cursor, VS Code mit Copilot, Devin Desktop, Zed, Gemini CLI, GitHub Copilot CLI, OpenCode, Cline, Junie, JetBrains AI Assistant, Goose, Kiro, Amp, Warp und LM Studio sowie ein Schritt für jeden anderen MCP-Client. Die Schritte kommen aus deiner installierten Oxcart-Version (oxcart agent setup) mit den tatsächlichen Pfaden deines Macs. Sie funktionieren daher offline und passen zu deiner Version.
Container für Agenten-Workflows über MCP hinaus
- Dev Containers: Führe den Agenten in einem Dev Container aus, damit seine Shell, Werkzeuge und sein Netzwerk im Container des Projekts bleiben. Oxcart führt die Dev-Containers-CLI aus; siehe Dev Containers und Testcontainers auf dem Mac.
- Schnelle Entwicklungszyklen: Agenten starten und entfernen ständig Container. Oxcart erreichte 42 ms für
docker run --rmund 77 ms zum Stoppen und Entfernen von 20 Containern, am schnellsten unter den drei getesteten Laufzeitumgebungen (Vergleiche). - Compose-Stacks: Das Werkzeug
composedes Agenten startet und beendet Projekte auf der Stufe Manage; siehe Docker Compose auf Apple-Chips.
Fragen
Gibt es einen MCP-Server für Docker-Container auf dem Mac?
Ja. Oxcart enthält oxcart mcp, einen lokalen stdio-MCP-Server mit 13 Werkzeugen für Status, Diagnose, Logs, Ports, Images, exec, Compose, Builds, Sandboxen und Aufräumen. Er lauscht auf keinem Netzwerkport und braucht kein Authentifizierungstoken.
Wie verbinde ich Claude Code mit meinen Docker-Containern?
Füge Oxcarts Einrichtungssatz in Claude Code ein oder führe claude mcp add -s user oxcart -- /Applications/Oxcart.app/Contents/Helpers/oxcart mcp --client claude-code aus. Claude Code listet anschließend den Server oxcart auf und kann seine Werkzeuge aufrufen.
Funktioniert es mit Codex, Cursor und VS Code mit Copilot?
Oxcart bietet Einrichtungsschritte für 18 namentlich aufgeführte Clients, darunter Codex, Cursor, VS Code mit Copilot, Claude Desktop, Zed, Gemini CLI, GitHub Copilot CLI, Cline, Goose, Kiro, Amp, Warp und LM Studio, sowie einen allgemeinen Schritt für jeden anderen MCP-Client. Claude Code ist der Client, der durchgängig getestet wurde.
Kann der Agent meine Container oder Volumes löschen?
Standardmäßig nicht. Jeder Agent beginnt mit Lesezugriff. Du kannst jeden Agenten einzeln auf Manage oder Full hochstufen oder mit Block sperren. Auf Full gibt cleanup zunächst eine Vorschau und ein Bestätigungstoken zurück und löscht nur das, was diese Vorschau aufgelistet hat. Die Stufen steuern Oxcarts Werkzeuge; sie sind keine Sandbox. Ein Agent mit Shell-Zugriff kann die docker-CLI daher weiterhin direkt ausführen.
Warum den Agenten nicht einfach docker-Befehle ausführen lassen?
Das funktioniert, aber der Agent liest dabei viel Rohausgabe. Die Frage „Warum wurde dieser Container gestoppt?“ erforderte mit Oxcarts Werkzeug diagnose 159 Tokens, gegenüber 2,014 für docker inspect plus docker logs --tail 300: 13× kleiner. In einer Claude-Code-Sitzung pro Aufgabe (als Anhaltspunkt) dauerte das Finden eines Fehlers in den Logs 4.2 s statt 31.0 s.
Sendet der MCP-Server meine Daten irgendwohin?
Nein. Er kommuniziert nur mit dem lokalen Engine-Socket und baut selbst keine Netzwerkverbindung auf. Jeder Aufruf wird in ein Aktivitätsprotokoll auf deinem Mac geschrieben. Images werden weiterhin aus Registries geladen, wenn ein Werkzeug etwas startet oder baut, das sie benötigt, genau wie bei docker run.
Kann mein Agent Code in einem Wegwerfcontainer ausführen?
Ja, mit dem Werkzeug sandbox: ein Wegwerfcontainer ohne Netzwerk, es sei denn, der Agent hat die Stufe Full und fordert Netzwerkzugriff an. Der Container ist auf 2 GiB Arbeitsspeicher und 1,024 Prozesse begrenzt.
Quellen und Methode
- Antwortgrößen: am 2026-10-10 mit fünf Testcontainern gemessen; Tokens als Zeichen ÷ 4 geschätzt.
- Sitzungen: Claude Code 2.1.296 mit
claude-opus-5-5, Oxcart 0.1.0, ein Durchlauf pro Aufgabe und Variante. - Geschwindigkeitswerte: Oxcart 0.1.2, 2026-10-10, Apple M5 Max, 8 CPUs und 12 GiB; die Vergleichslaufzeitumgebungen wurden früher am selben Tag auf demselben Mac mit demselben Messaufbau und dem docker-Client 29.4 gemessen.