mcp-wcgw

by rusiaaman
Verified

local-only server

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

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

クロードとチャットグプトのシェルとコーディングエージェント

チャット アプリケーションをローカル マシン上でコーディング、ビルド、実行できるようにします。

  • Claude - シェルとコード編集ツールが緊密に統合された MCP サーバー。
  • Chatgpt - カスタム gpt がリレー サーバーを介してシェルと通信できるようにします。(Linux、Mac、Windows on WSL)

⚠️ 警告: コマンドを確認せずに BashCommand ツールを許可しないでください。データが失われる可能性があります。

デモ

アップデート

  • [2025年3月24日] sonnet 3.7の書き込みと編集エクスペリエンスが改善され、CLAUDE.mdが自動的に読み込まれるようになりました。
  • [2025年2月16日] AIが使用する動作中のターミナルにアタッチできるようになりました。詳細は下記の「ターミナルへのアタッチ」セクションをご覧ください。
  • [2025 年 1 月 15 日] 導入されたモード: アーキテクト、コード ライター、および全能の wcgw モード。
  • [2025年1月8日] 関連するファイルパスと説明を1つのファイルに保存できるコンテキスト保存ツール。タスクのチェックポイントや知識移転に使用できます。
  • [2024年12月29日] ファイルの書き込みと編集における構文チェックが安定しました。initializeツールの呼び出しが便利になりました。 initializeが参照されている場合、スマートリポジトリ構造をclaudeに送信するようになりました。大容量ファイルの処理も改善されました。
  • [2024年12月9日] Claudeアプリにコンテキストを貼り付けるためのVScode拡張機能

🚀ハイライト

  • 作成、実行、反復: すべてのエラーが修正されるまでコンパイラ チェックを実行し続けるように claude に指示するか、長時間実行コマンドのステータスを、完了するまでチェックし続けるように指示します。
  • 大規模ファイルの編集:トークン制限の問題を回避するため、大規模ファイルの増分編集をサポートします。必要な変更の割合に基づいて、小さな編集と大規模な書き換えのタイミングをスマートに選択します。
  • 編集時の構文チェック: 編集に構文エラーがある場合は LLM にフィードバックを報告し、やり直せるようにします。
  • 対話型コマンド処理: 矢印キー、割り込み、ANSI エスケープ シーケンスを使用した対話型コマンドをサポートします。
  • ファイル保護:
    • AIは、ファイルを編集または書き換える前に、少なくとも1回はファイルを読み込む必要があります。これにより、誤って上書きしてしまうのを防ぎます。
    • 非常に大きなファイルの読み取り中にコンテキストがいっぱいになるのを防ぎます。ファイルはトークンの長さに基づいてチャンクに分割されます。
    • 初期化時に、重要なファイルを選択した後、提供されたワークスペースのディレクトリ構造が返されます(.gitignore と統計的アプローチに基づいて)。
    • 検索置換に基づくファイル編集では、以前の検索ブロックに基づいて複数の一致がある場合、正しい検索ブロックを検索しようとします。一致しない場合は失敗します(正確性のため)。
    • ファイル編集では、スペースを許容するマッチング機能があり、インデントの不一致などの問題については警告が表示されます。一致するものがない場合は、最も近い一致がAIに返され、AIの間違いが修正されます。
    • ツール呼び出しベースの検索と置換よりもパフォーマンスが優れた、Aider のような検索と置換を使用します。
  • シェルの最適化:
    • 一度に実行できるコマンドは1つだけなので、管理が簡素化され、不正なプロセスの実行を回避できます。シェルインスタンスは常に1つだけです。
    • AI が失われるのを防ぐために、シェル コマンドの後には必ず現在の作業ディレクトリが返されます。
    • コマンドポーリングは、フィードバックの遅延を回避するため、短いタイムアウト後に終了します。ただし、ステータスチェックは、コマンドからの最新の出力ストリーミングに基づいて待機許容範囲を持ちます。これら2つのアプローチを組み合わせることで、優れたシェル操作エクスペリエンスが実現します。
  • リポジトリのコンテキストを単一ファイルに保存:「ContextSave」ツールを用いたタスクのチェックポイント作成では、詳細なコンテキストが単一ファイルに保存されます。タスクは後から「 task idを再開」という新しいチャットで再開できます。保存されたファイルは、他のAIからの支援を受けるなど、他の種類の知識移転にも使用できます。
  • さまざまなモードを簡単に切り替えることができます
    • 計画を立てるために「アーキテクト」モードで実行するように指示します。adierのアーキテクトモードを参考に、Claudeと協力してまず計画を立てましょう。これにより精度が向上し、ファイルの編集が不完全な状態になるのを防ぎます。
    • コード編集とプロジェクトのビルドを行うには、「コードライター」モードで実行するように指示してください。ワイルドカードを使用して特定のパスを指定することで、他のファイルの編集を防ぐことができます。
    • デフォルトでは、制限がなく完全な権限を持つ「wcgw」モードで実行されます。
    • 詳細はモードセクションをご覧ください
  • マルチプレックスターミナルで実行screen -xを実行すると、AIがコマンドを実行するターミナルに接続します。履歴を確認したり、プロセスを中断したり、AIが使用する同じターミナルと対話したりできます。

主なユースケースの例

  • Pythonを使って問題Xを解き、テストケースを作成して実行し、問題を修正してください。この作業は一時ディレクトリで行ってください。
  • リポジトリ内で X の動作を持つコードのインスタンスを検索する
  • Git clone https://github.com/my/repoをホームディレクトリにコピーし、プロジェクトを理解して環境を構築しビルドします。
  • Golang htmx tailwind ウェブアプリを作成し、ブラウザを開いて動作するかどうかを確認します (puppeteer mcp で使用)
  • 大きなファイルを編集または更新する
  • 別のブランチで機能Yを作成し、github cliを使用して元のブランチにPRを作成します。
  • コマンドXはYディレクトリで失敗しています。実行して問題を修正してください。
  • X仮想環境を使用してYコマンドを実行する
  • CLIツールを使用してAndroidアプリを作成し、ビルドしてテストします。最後にエミュレータで実行して、使用できるようにします。
  • X パスのリポジトリ内のすべての mypy 問題を修正します。
  • 代わりに「screen」を使ってサーバーをバックグラウンドで実行し、次に別のAPIサーバーをバックグラウンドで実行し、最後にフロントエンドビルドを実行します。3つすべてで問題が発生していないか、ログを確認してください。
  • リポジトリ全体にユニットテストケースを作成します。ファイルを反復処理してケースを作成し続けます。また、更新のたびにテストを実行し続けます。元のコードは変更しないでください。

Claude のセットアップ (mcp を使用)

MacとLinux

まずhomebrew brew install uv install uvを使ってuvをインストールします

(重要: uv をインストールするには homebrew を使用してください。それ以外の場合は、 uvが /usr/bin/ などのグローバルな場所に存在することを確認してください)

次に、次の json を使用してclaude_desktop_config.json (~/Library/Application Support/Claude/claude_desktop_config.json) を作成または更新します。

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

次に、claude アプリを再起動します。

設定中にエラーが発生した場合

  • 「uv ENOENT」のようなエラーが表示された場合は、 uvがインストールされていることを確認してください。ターミナルで「which uv」を実行し、その出力を設定ファイルの「uv」の代わりに使用してください。
  • それでも問題が解決しない場合は、ターミナルでuv tool run --from wcgw@latest --python 3.12 wcgw_mcpが実行されていることを確認してください。出力はなく、終了もしないはずです。
  • ~/.cache/uvフォルダを削除してみてください
  • このツールがテストされたuvバージョン0.6.0を使用してみてください。
  • npx @modelcontextprotocol/inspector@0.1.7 uv tool run --from wcgw@latest --python 3.12 wcgw_mcpを使用して mcp サーバーをデバッグします。

WSL 上の Windows

この MCP サーバーは Windows 上の WSL でのみ動作します。

設定するには、 uvをインストールしてください

次に、claude 構成ファイル%APPDATA%\Claude\claude_desktop_config.jsonに次の内容を追加または更新します。

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

使用法

数秒お待ちください。すべてが正常に完了すると、このアイコンが表示されるはずです。

こちら

次に、claude にシェル コマンドの実行、ファイルの読み取り、ファイルの編集、コードの実行などを依頼します。

タスクチェックポイントまたは知識移転

  • 「MCP から添付」ボタンを使用して「KnowledgeTransfer」プロンプトを添付することで、タスク チェックポイントまたは知識転送を実行できます。
  • 「KnowledgeTransfer」プロンプトを実行すると、「ContextSave」ツールが呼び出され、タスクの説明とすべてのファイルコンテンツが1つのファイルに保存されます。タスクのIDが生成されます。
  • 新しいチャットで「再開」と言うと、AI はタスク ID を使用して「初期化」を呼び出し、そこからコンテキストをロードします。
  • または、生成されたファイルを直接開いて、別の AI と共有して支援を受けることもできます。

モード

3つの組み込みモードがあります。「「アーキテクト」モードを使用する」のように、いずれかのモードでClaudeを実行するように指示できます。

モード説明許可する否定するプロンプトを呼び出す
建築家Claude と協力してリポジトリを調査し、理解できるように設計されています。読み取り専用コマンドファイル編集および書き込みツールmode='architect' で実行
コードライターコード作成と開発用編集または書き込み用の指定されたパスグロブ、指定されたコマンド指定されたグロブに一致しないパスの場合はFileEdit、指定されたグロブに一致しないパスの場合はWriteコード ライター モードで実行します。'tests/**' のみが許可され、uv コマンドのみが許可されます。
**wcgw**すべてが許可されるデフォルトモードすべて何もないプロンプトなし、または「wcgw モードで実行」

注: コードライターモードでは、現時点ではすべてのコマンドが許可されるか、全く許可されないかのどちらかです。許可されたコマンドのリストを指定した場合、Claude はそれらのコマンドのみを実行するように指示されますが、実際のチェックは行われません。(WIP)

調査のために作業端末に接続します

screenコマンドがインストールされている場合、wcgwはscreenインスタンス上で自動的に実行されます。wcgw mcpサーバーを起動している場合は、screenセッションを一覧表示できます。

screen -ls

wcgw のスクリーン名を書き留めておきます。これは93358.wcgw.235521のようなもので、最後の数字は時分秒の形式になります。

その後、 screen -x 93358.wcgw.235521を使用してセッションに接続できます。

実行中のコマンドを安全に中断することができます。

ターミナルを操作することは可能ですが、AIが並行して動作し、プレイヤーの作業と競合する可能性があることに注意してください。操作は最小限に抑えることをお勧めします。

exitまたは Ctrl-d を使用してセッションを終了しないでください。代わりに、 ctrl+a+dを使用して、screen セッションを破棄せずに安全にデタッチする必要があります。

[オプション] Vscode拡張機能

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

コマンド:

  • テキストを選択し、 cmd+'を押して指示を入力します。これにより、アプリが Claude に切り替わり、指示、ファイルパス、ワークスペースディレクトリ、選択したテキストを含むテキストが貼り付けられます。

チャットポイントの設定

こちらをご覧ください: https://github.com/rusiaaman/wcgw/blob/main/openai.md

Docker 経由で MCP サーバーを使用する

まず、docker イメージをビルドします。docker docker build -t wcgw https://github.com/rusiaaman/wcgw.git

次に、 /Users/username/Library/Application Support/Claude/claude_desktop_config.jsonを更新して、

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

[オプション] OpenAI APIキーまたはAnthropic APIキーによるローカルシェルアクセス

オープンアイ

OPENAI_API_KEYおよびOPENAI_ORG_ID環境変数を追加します。

そして実行する

uvx --from wcgw@latest wcgw_local --limit 0.1 # コスト制限 $0.1

メッセージを直接書き込んだり、Enter キーを押して vim を開き、複数行のメッセージやテキストを貼り付けたりできるようになりました。

人類学的

ANTHROPIC_API_KEY環境変数を追加します。

そして実行する

uvx --from wcgw@latest wcgw_local --claude

メッセージを直接書き込んだり、Enter キーを押して vim を開き、複数行のメッセージやテキストを貼り付けたりできるようになりました。

ツール

サーバーは次の MCP ツールを提供します。

シェル操作:

  • Initialize : シェルをリセットし、ワークスペース環境を設定します
    • パラメータ: any_workspace_path (文字列)、 initial_files_to_read (文字列[])、 mode_name ("wcgw"|"architect"|"code_writer")、 task_id_to_resume (文字列)
  • BashCommand : タイムアウト制御付きでシェルコマンドを実行する
    • パラメータ: command (文字列)、 wait_for_seconds (int、オプション)
    • パラメータ: send_text (文字列) またはsend_specials (["Enter"|"Key-up"|...]) またはsend_ascii (int[])、 wait_for_seconds (int、オプション)

ファイル操作:

  • ReadFiles : 1 つ以上のファイルからコンテンツを読み取る
    • パラメータ: file_paths (string[])
  • WriteIfEmpty : 新しいファイルを作成するか、空のファイルに書き込む
    • パラメータ: file_path (文字列)、 file_content (文字列)
  • FileEdit : 検索/置換ブロックを使用して既存のファイルを編集する
    • パラメータ: file_path (文字列)、 file_edit_using_search_replace_blocks (文字列)
  • ReadImage : 表示/処理のために画像ファイルを読み込む
    • パラメータ: file_path (文字列)

プロジェクト管理:

  • ContextSave : 知識移転のためにプロジェクトのコンテキストとファイルを保存したり、後で再開できるようにタスクのチェックポイントを保存したりします。
    • パラメータ: id (文字列)、 project_root_path (文字列)、 description (文字列)、 relevant_file_globs (文字列[])

すべてのツールは絶対パスをサポートし、一般的なエラーに対する保護機能が組み込まれています。詳細なプロトコル情報については、 MCP仕様をご覧ください。

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

シェルとファイル編集機能が緊密に連携し、強力なコーディング エクスペリエンスを提供します。

計画フェーズと実装フェーズを別々に、アーキテクトとコードライターの異なるモードで作業できます。

コンパイル、型チェック、リンティング、github cli、python など、任意の cli コマンドを呼び出すことができます。

  1. Demo
    1. Updates
      1. 🚀 Highlights
        1. Top use cases examples
          1. Claude setup (using mcp)
            1. Mac and linux
            2. Windows on wsl
            3. Usage
            4. [Optional] Vs code extension
          2. Chatgpt Setup
            1. Examples
              1. Using mcp server over docker
                1. [Optional] Local shell access with openai API key or anthropic API key
                  1. Openai
                  2. Anthropic
                2. Tools
                  ID: owi938czgc