mcp-wcgw

Apache 2.0
456
  • Apple
  • Linux

Integrations

  • Supports running the MCP server over Docker with volume mounting capabilities

  • Enables interaction with GitHub through the GitHub CLI to create PRs and work with repositories

  • Allows custom GPT models to communicate with the user's shell via a relay server

Shell- und Coding-Agent für Claude und andere MCP-Clients

Ermöglicht das Codieren, Erstellen und Ausführen von Chat-Anwendungen auf Ihrem lokalen Computer.

wcgw ist ein MCP-Server mit eng integrierten Shell- und Codebearbeitungstools.

⚠️ Warnung: Lassen Sie das BashCommand-Tool nicht zu, ohne den Befehl zu überprüfen, da dies zu Datenverlust führen kann.

Demo

Aktualisierungen

  • [27. April 2025] Unterstützung für GPTs über Relay-Server entfernt. Nur MCP-Server werden in Version >= 5 unterstützt.
  • [24. März 2025] Verbessertes Schreib- und Bearbeitungserlebnis für Sonett 3.7, CLAUDE.md wird automatisch geladen.
  • [16. Februar 2025] Sie können sich nun mit dem von der KI verwendeten Arbeitsterminal verbinden. Siehe den Abschnitt „Mit Terminal verbinden“ weiter unten.
  • [15. Januar 2025] Neue Modi: Architekt, Code-Writer und der leistungsstarke WCGW-Modus.
  • [8. Januar 2025] Kontextspeicher-Tool zum Speichern relevanter Dateipfade zusammen mit einer Beschreibung in einer einzigen Datei. Kann als Aufgabenkontrollpunkt oder zum Wissenstransfer verwendet werden.
  • [29. Dez. 2024] Die Syntaxprüfung beim Schreiben und Bearbeiten von Dateien ist nun stabil. Der Aufruf des initialize ist nun nützlich; die intelligente Repo-Struktur wird an Claude gesendet, wenn auf ein Repo verwiesen wird. Auch die Handhabung großer Dateien wurde verbessert.
  • [9. Dez. 2024] Vscode-Erweiterung zum Einfügen von Kontext in die Claude-App

🚀 Highlights

  • Erstellen, Ausführen, Iterieren : Bitten Sie Claude, die Compilerprüfungen so lange auszuführen, bis alle Fehler behoben sind, oder bitten Sie ihn, den Status eines Befehls mit langer Ausführungsdauer so lange zu prüfen, bis dieser abgeschlossen ist.
  • Große Dateibearbeitung : Unterstützt inkrementelle Bearbeitungen großer Dateien, um Probleme mit dem Token-Limit zu vermeiden. Wählt intelligent aus, wann kleine Bearbeitungen oder große Umschreibungen basierend auf dem Prozentsatz der erforderlichen Änderungen durchgeführt werden sollen.
  • Syntaxprüfung bei Änderungen : Gibt dem LLM Feedback, wenn seine Änderungen Syntaxfehler enthalten, damit er sie wiederholen kann.
  • Interaktive Befehlsverarbeitung : Unterstützt interaktive Befehle mit Pfeiltasten, Interrupts und ANSI-Escape-Sequenzen.
  • Dateischutz :
    • Die KI muss eine Datei mindestens einmal lesen, bevor sie sie bearbeiten oder überschreiben darf. Dies verhindert versehentliches Überschreiben.
    • Verhindert das Auffüllen des Kontexts beim Lesen sehr großer Dateien. Die Dateien werden basierend auf der Tokenlänge in Blöcke aufgeteilt.
    • Bei der Initialisierung wird die Verzeichnisstruktur des bereitgestellten Arbeitsbereichs zurückgegeben, nachdem wichtige Dateien ausgewählt wurden (basierend auf .gitignore sowie einem statistischen Ansatz).
    • Die Dateibearbeitung basierend auf Suchen und Ersetzen versucht, den richtigen Suchblock zu finden, wenn es mehrere Übereinstimmungen basierend auf vorherigen Suchblöcken gibt. Andernfalls schlägt sie fehl (aufgrund der Korrektheit).
    • Die Dateibearbeitung erfolgt mit abstandstoleranter Übereinstimmung und warnt bei Problemen wie nicht übereinstimmenden Einrückungen. Falls keine Übereinstimmung gefunden wird, wird die beste Übereinstimmung an die KI zurückgegeben, um die Fehler zu beheben.
    • Verwenden Sie die Aider-ähnliche Such- und Ersetzungsfunktion, die eine bessere Leistung bietet als die auf Toolaufrufen basierende Such- und Ersetzungsfunktion.
  • Shell-Optimierungen :
    • Es kann immer nur ein Befehl ausgeführt werden. Dies vereinfacht die Verwaltung und vermeidet unerwünschte Prozesse. Es gibt immer nur eine Shell-Instanz.
    • Um zu verhindern, dass AI verloren geht, wird nach jedem Shell-Befehl immer das aktuelle Arbeitsverzeichnis zurückgegeben.
    • Die Befehlsabfrage wird nach einem kurzen Timeout beendet, um langsames Feedback zu vermeiden. Die Statusprüfung verfügt jedoch über eine Wartetoleranz, die auf dem aktuellen Ausgabestream eines Befehls basiert. Beide Ansätze kombiniert sorgen für eine gute Shell-Interaktion.
  • Speichern des Repo-Kontexts in einer einzigen Datei : Das Task-Checkpointing mit dem Tool „ContextSave“ speichert den detaillierten Kontext in einer einzigen Datei. Aufgaben können später in einem neuen Chat mit der Frage „ task id fortsetzen“ fortgesetzt werden. Die gespeicherte Datei kann für andere Arten des Wissenstransfers verwendet werden, z. B. für die Unterstützung einer anderen KI.
  • Einfaches Wechseln zwischen verschiedenen Modi :
    • Lassen Sie es zur Planung im Architektenmodus laufen. Inspiriert von Adiers Architektenmodus, arbeiten Sie zunächst mit Claude zusammen, um einen Plan zu entwickeln. Dies führt zu höherer Genauigkeit und verhindert vorzeitige Dateibearbeitung.
    • Lassen Sie es im Code-Writer-Modus laufen, um Code zu bearbeiten und Projekte zu erstellen. Sie können bestimmte Pfade mit Platzhaltern angeben, um die Bearbeitung anderer Dateien zu verhindern.
    • Standardmäßig läuft es im „wcgw“-Modus, der keine Einschränkungen und volle Autorisierung bietet.
    • Weitere Details im Abschnitt „Modi“
  • Läuft im Multiplex-Terminal. Führen Sie screen -x aus, um eine Verbindung zum Terminal herzustellen, auf dem die KI Befehle ausführt. Sie können den Verlauf einsehen, Prozesse unterbrechen oder mit demselben Terminal interagieren, das die KI verwendet.

Beispiele für die wichtigsten Anwendungsfälle

  • Lösen Sie Problem X mit Python, erstellen und führen Sie Testfälle aus und beheben Sie alle Probleme. Führen Sie dies in einem temporären Verzeichnis aus.
  • Suchen Sie in meinem Repository nach Codeinstanzen mit X-Verhalten
  • Git-Klon https://github.com/my/repo in meinem Home-Verzeichnis, dann verstehen Sie das Projekt, richten Sie die Umgebung ein und bauen Sie
  • Erstellen Sie eine Golang-HTMX-Tailwind-Webanwendung und öffnen Sie dann den Browser, um zu sehen, ob sie funktioniert (mit Puppeteer MCP verwenden).
  • Bearbeiten oder Aktualisieren einer großen Datei
  • Erstellen Sie in einem separaten Zweig die Funktion Y und verwenden Sie dann die GitHub-CLI, um einen PR für den ursprünglichen Zweig zu erstellen
  • Befehl X schlägt im Verzeichnis Y fehl. Bitte führen Sie ihn aus und beheben Sie die Probleme.
  • Führen Sie mithilfe der virtuellen Umgebung X den Befehl Y aus
  • Erstellen, erstellen und testen Sie mithilfe von CLI-Tools eine Android-App. Führen Sie sie anschließend mit einem Emulator aus, damit ich sie verwenden kann.
  • Beheben Sie alle Mypy-Probleme in meinem Repo unter Pfad X.
  • Mit 'screen' führe ich stattdessen meinen Server im Hintergrund aus, dann einen weiteren API-Server in bg und schließlich den Frontend-Build. Überprüfe weiterhin die Protokolle auf Probleme in allen drei
  • Erstellen Sie Repository-weite Unittest-Fälle. Iterieren Sie kontinuierlich durch die Dateien und erstellen Sie Fälle. Führen Sie die Tests auch nach jedem Update weiter aus. Ändern Sie den Originalcode nicht.

Claude-Setup (mit mcp)

Mac und Linux

Installieren Sie uv zunächst mit Homebrew brew install uv

( Wichtig: Verwenden Sie Homebrew, um UV zu installieren. Stellen Sie andernfalls sicher, dass uv an einem globalen Speicherort wie /usr/bin/ vorhanden ist.)

Erstellen oder aktualisieren Sie dann claude_desktop_config.json (~/Library/Application Support/Claude/claude_desktop_config.json) mit folgendem JSON.

{ "mcpServers": { "wcgw": { "command": "uv", "args": [ "tool", "run", "--python", "3.12", "wcgw@latest" ] } } }

Starten Sie dann die Claude-App neu.

Wenn beim Einrichten ein Fehler auftritt

  • Wenn ein Fehler wie „uv ENOENT“ auftritt, stellen Sie sicher, dass uv installiert ist. Führen Sie anschließend „which uv“ im Terminal aus und verwenden Sie dessen Ausgabe anstelle von „uv“ in der Konfiguration.
  • Wenn das Problem weiterhin besteht, überprüfen Sie, ob uv tool run --python 3.12 wcgw@latest in Ihrem Terminal ausgeführt wird. Es sollte keine Ausgabe geben und nicht beendet werden.
  • Versuchen Sie, den Ordner ~/.cache/uv zu entfernen
  • Versuchen Sie es mit uv Version 0.6.0 , für die dieses Tool getestet wurde.
  • Debuggen Sie den MCP-Server mit npx @modelcontextprotocol/inspector@0.1.7 uv tool run --python 3.12 wcgw@latest

Windows auf WSL

Dieser MCP-Server funktioniert nur auf WSL unter Windows.

Um es einzurichten, installieren Sie uv

Fügen Sie dann die Claude-Konfigurationsdatei %APPDATA%\Claude\claude_desktop_config.json hinzu oder aktualisieren Sie sie mit dem folgenden

{ "mcpServers": { "wcgw": { "command": "wsl.exe", "args": [ "uv", "tool", "run", "--python", "3.12", "wcgw@latest" ] } } }

Verwendung

Warten Sie einige Sekunden. Wenn alles richtig läuft, sollte dieses Symbol angezeigt werden.

hier

Bitten Sie Claude dann, Shell-Befehle auszuführen, Dateien zu lesen, Dateien zu bearbeiten, Ihren Code auszuführen usw.

Aufgabenkontrollpunkt oder Wissenstransfer
  • Sie können einen Aufgabenprüfpunkt oder eine Wissensübertragung durchführen, indem Sie die Eingabeaufforderung „KnowledgeTransfer“ mit der Schaltfläche „Von MCP anhängen“ anhängen.
  • Beim Ausführen der Eingabeaufforderung „KnowledgeTransfer“ wird das Tool „ContextSave“ aufgerufen und speichert die Aufgabenbeschreibung und den gesamten Dateiinhalt in einer einzigen Datei. Eine ID für die Aufgabe wird generiert.
  • Sie können in einem neuen Chat „Fortsetzen“ sagen, die KI sollte dann „Initialisieren“ mit der Aufgaben-ID aufrufen und den Kontext von dort laden.
  • Oder Sie können die generierte Datei direkt öffnen und sie zur Hilfe mit einer anderen KI teilen.
Modi

Es gibt drei integrierte Modi. Sie können Claude in einem der Modi ausführen lassen, z. B. „Architektenmodus verwenden“.

ModusBeschreibungErmöglichtVerweigertEingabeaufforderung aufrufen
ArchitektEntwickelt, damit Sie mit Claude zusammenarbeiten können, um Ihr Repo zu untersuchen und zu verstehen.Schreibgeschützte BefehleDateibearbeitungs- und SchreibwerkzeugAusführen im Modus „Architekt“
Code-SchreiberZum Schreiben und Entwickeln von CodeAngegebene Pfad-Globs zum Bearbeiten oder Schreiben, angegebene BefehleFileEdit für Pfade, die nicht mit dem angegebenen Glob übereinstimmen, Write für Pfade, die nicht mit dem angegebenen Glob übereinstimmenIm Code-Writer-Modus ausführen, nur „tests/**“ zulässig, nur UV-Befehl zulässig
**wcgw**Standardmodus mit allem erlaubtAllesNichtsKeine Eingabeaufforderung oder „Im WCGW-Modus ausführen“

Hinweis: Im Code-Writer-Modus sind entweder alle Befehle oder derzeit keine zulässig. Wenn Sie eine Liste zulässiger Befehle angeben, wird Claude angewiesen, nur diese Befehle auszuführen, es findet jedoch keine tatsächliche Überprüfung statt. (In Arbeit)

Zur Untersuchung an das Arbeitsterminal anschließen

Wenn Sie screen -Befehl installiert haben, wird WCGW automatisch auf einer Screen-Instanz ausgeführt. Wenn Sie den WCGW-MCP-Server gestartet haben, können Sie die Screen-Sitzungen auflisten:

screen -ls

Und notieren Sie sich den WCGW-Bildschirmnamen, der etwa 93358.wcgw.235521 lautet, wobei die letzte Zahl im Format Stunde-Minute-Sekunde angegeben ist.

Sie können dann mit screen -x 93358.wcgw.235521 eine Verbindung zur Sitzung herstellen.

Sie können jeden laufenden Befehl sicher unterbrechen.

Sie können mit dem Terminal interagieren. Beachten Sie jedoch, dass die KI möglicherweise parallel läuft und es zu Konflikten mit Ihren Aktivitäten kommen kann. Es wird empfohlen, Ihre Interaktionen auf ein Minimum zu beschränken.

Sie sollten die Sitzung nicht mit exit oder „Strg+d“ beenden. Verwenden Sie stattdessen ctrl+a+d , um die Verbindung sicher zu trennen, ohne die Bildschirmsitzung zu zerstören.

[Optional] Vs-Code-Erweiterung

https://marketplace.visualstudio.com/items?itemName=AmanRusia.wcgw

Befehle:

  • Wählen Sie einen Text aus, drücken Sie cmd+' und geben Sie anschließend Anweisungen ein. Dadurch wechselt die App zu Claude und fügt einen Text mit Ihren Anweisungen, dem Dateipfad, dem Arbeitsbereichsverzeichnis und dem ausgewählten Text ein.

Beispiele

Verwenden des MCP-Servers über Docker

Erstellen Sie zuerst das Docker-Image docker build -t wcgw https://github.com/rusiaaman/wcgw.git

Anschließend können Sie /Users/username/Library/Application Support/Claude/claude_desktop_config.json aktualisieren, um

{ "mcpServers": { "filesystem": { "command": "docker", "args": [ "run", "-i", "--rm", "--mount", "type=bind,src=/Users/username/Desktop,dst=/workspace/Desktop", "wcgw", ] } } }

[Optional] Lokaler Shell-Zugriff mit OpenAI-API-Schlüssel oder Anthropic-API-Schlüssel

Openai

Fügen Sie die Umgebungsvariablen OPENAI_API_KEY und OPENAI_ORG_ID hinzu.

Dann lauf

uvx wcgw@latest wcgw_local --limit 0.1 # Kostenlimit $0.1

Sie können jetzt direkt Nachrichten schreiben oder die Eingabetaste drücken, um Vim zum Einfügen mehrzeiliger Nachrichten und Texte zu öffnen.

Anthropisch

Fügen Sie die Umgebungsvariable ANTHROPIC_API_KEY hinzu.

Dann lauf

uvx wcgw@latest wcgw_local --claude

Sie können jetzt direkt Nachrichten schreiben oder die Eingabetaste drücken, um Vim zum Einfügen mehrzeiliger Nachrichten und Texte zu öffnen.

Werkzeuge

Der Server stellt die folgenden MCP-Tools bereit:

Shell-Operationen:

  • Initialize : Shell zurücksetzen und Arbeitsbereichsumgebung einrichten
    • Parameter: any_workspace_path (Zeichenfolge), initial_files_to_read (Zeichenfolge[]), mode_name ("wcgw"|"architect"|"code_writer"), task_id_to_resume (Zeichenfolge)
  • BashCommand : Führen Sie Shell-Befehle mit Timeout-Steuerung aus
    • Parameter: command (Zeichenfolge), wait_for_seconds (int, optional)
    • Parameter: send_text (Zeichenfolge) oder send_specials (["Eingabe"|"Taste loslassen"|...]) oder send_ascii (int[]), wait_for_seconds (int, optional)

Dateioperationen:

  • ReadFiles : Inhalt aus einer oder mehreren Dateien lesen
    • Parameter: file_paths (Zeichenfolge[])
  • WriteIfEmpty : Neue Dateien erstellen oder in leere Dateien schreiben
    • Parameter: file_path (Zeichenfolge), file_content (Zeichenfolge)
  • FileEdit : Bearbeiten Sie vorhandene Dateien mithilfe von Such-/Ersetzungsblöcken
    • Parameter: file_path (Zeichenfolge), file_edit_using_search_replace_blocks (Zeichenfolge)
  • ReadImage : Bilddateien zur Anzeige/Verarbeitung lesen
    • Parameter: file_path (Zeichenfolge)

Projektmanagement:

  • ContextSave : Speichern Sie Projektkontext und Dateien für den Wissenstransfer oder speichern Sie Task-Checkpoints, um sie später fortzusetzen
    • Parameter: id (Zeichenfolge), project_root_path (Zeichenfolge), description (Zeichenfolge), relevant_file_globs (Zeichenfolge[])

Alle Tools unterstützen absolute Pfade und verfügen über integrierten Schutz vor häufigen Fehlern. Detaillierte Protokollinformationen finden Sie in der MCP-Spezifikation .

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Die Shell- und Dateibearbeitungsfunktionen sind eng miteinander verknüpft, um ein leistungsstarkes Codierungserlebnis zu bieten.

Sie können mit verschiedenen Modi arbeiten: Architekt und Code-Autor für separate Planungs- und Implementierungsphasen.

Sie können es dazu bringen, jeden CLI-Befehl aufzurufen, z. B. Kompilieren, Typprüfung, Linting, GitHub CLI, Python

  1. Demo
    1. Aktualisierungen
      1. 🚀 Highlights
        1. Beispiele für die wichtigsten Anwendungsfälle
          1. Claude-Setup (mit mcp)
            1. Mac und Linux
            2. Windows auf WSL
            3. Verwendung
            4. \[Optional] Vs-Code-Erweiterung
          2. Beispiele
            1. Verwenden des MCP-Servers über Docker
              1. \[Optional] Lokaler Shell-Zugriff mit OpenAI-API-Schlüssel oder Anthropic-API-Schlüssel
                1. Openai
                2. Anthropisch
              2. Werkzeuge

                Related MCP Servers

                • A
                  security
                  A
                  license
                  A
                  quality
                  Leverages Vim's native text editing commands and workflows, which Claude already understands, to create a lightweight code assistance layer.
                  Last updated -
                  8
                  69
                  129
                  TypeScript
                  MIT License
                • A
                  security
                  F
                  license
                  A
                  quality
                  A CLI command execution server that enables running shell commands with structured output, providing detailed execution results including stdout, stderr, exit code, and execution duration.
                  Last updated -
                  2
                  16
                  TypeScript
                  • Apple
                • A
                  security
                  F
                  license
                  A
                  quality
                  A CLI tool that runs a Model Context Protocol server over stdio, enabling interaction with specification documents like business requirements, product requirements, and user stories for the Specif-ai platform.
                  Last updated -
                  9
                  0
                  TypeScript
                • A
                  security
                  A
                  license
                  A
                  quality
                  Allows Claude desktop app to execute terminal commands and edit files on your computer through MCP, with features including command execution, process management, and diff-based file editing.
                  Last updated -
                  19
                  15,956
                  2,540
                  JavaScript
                  MIT License
                  • Apple

                View all related MCP servers

                ID: owi938czgc