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 및 Chatgpt용 셸 및 코딩 에이전트

로컬 머신에서 채팅 애플리케이션을 코딩, 빌드, 실행할 수 있도록 지원합니다.

  • Claude - 셸과 코드 편집 도구가 긴밀하게 통합된 MCP 서버입니다.
  • Chatgpt - 사용자 정의 gpt가 릴레이 서버를 통해 셸과 통신할 수 있도록 합니다. (wsl에서 linux, mac, windows)

⚠️ 경고: 명령을 검토하지 않고 BashCommand 도구를 허용하지 마세요. 데이터가 손실될 수 있습니다.

데모

업데이트

  • [2025년 3월 24일] sonnet 3.7에 대한 쓰기 및 편집 환경이 개선되었으며 CLAUDE.md가 자동으로 로드됩니다.
  • [2025년 2월 16일] 이제 AI가 사용하는 작동 중인 터미널에 연결할 수 있습니다. 아래 "터미널에 연결" 섹션을 참조하세요.
  • [2025년 1월 15일] 모드가 도입되었습니다: 아키텍트, 코드 작성자, 강력한 wcgw 모드.
  • [2025년 1월 8일] 관련 파일 경로와 설명을 단일 파일에 저장하는 컨텍스트 저장 도구입니다. 작업 체크포인트 또는 지식 전달에 사용할 수 있습니다.
  • [2024년 12월 29일] 파일 쓰기 및 편집 시 구문 검사 기능이 안정화되었습니다. initialize 도구 호출 기능이 더욱 유용해졌습니다. 참조되는 저장소가 있을 경우 스마트 저장소 구조를 Claude로 전송합니다. 대용량 파일 처리 기능도 개선되었습니다.
  • [2024년 12월 9일] Claude 앱에 컨텍스트를 붙여넣는 Vscode 확장 프로그램

🚀 하이라이트

  • 생성, 실행, 반복 : 모든 오류가 수정될 때까지 클로드에게 컴파일러 검사를 계속 실행하도록 요청하거나, 오래 실행되는 명령의 상태를 완료될 때까지 계속 확인하도록 요청합니다.
  • 대용량 파일 편집 : 토큰 제한 문제를 방지하기 위해 대용량 파일 증분 편집을 지원합니다. 필요한 변경 비율(%)에 따라 소규모 편집 또는 대규모 재작성을 수행할 시기를 지능적으로 선택합니다.
  • 편집 내용에 대한 구문 검사 : 편집 내용에 구문 오류가 있는 경우 LLM에 피드백을 보고하여 다시 편집할 수 있도록 합니다.
  • 대화형 명령 처리 : 화살표 키, 인터럽트, ANSI 이스케이프 시퀀스를 사용한 대화형 명령을 지원합니다.
  • 파일 보호 :
    • AI는 파일을 편집하거나 다시 쓰기 전에 최소 한 번은 파일을 읽어야 합니다. 이렇게 하면 실수로 덮어쓰는 것을 방지할 수 있습니다.
    • 매우 큰 파일을 읽을 때 컨텍스트가 채워지는 것을 방지합니다. 파일은 토큰 길이를 기준으로 청크됩니다.
    • 초기화 시 제공된 작업 공간의 디렉토리 구조는 중요한 파일을 선택한 후 반환됩니다(.gitignore 및 통계적 접근 방식 기반).
    • 검색-바꾸기 기반 파일 편집은 이전 검색 블록을 기반으로 여러 일치 항목이 있는 경우 올바른 검색 블록을 찾으려고 시도합니다. 그렇지 않으면 (정확성 검사 결과) 실패합니다.
    • 파일 편집에는 들여쓰기 불일치와 같은 문제에 대한 경고와 함께 공백 허용 일치 기능이 있습니다. 일치하는 항목이 없는 경우, 가장 가까운 일치 항목이 AI에 반환되어 오류를 수정합니다.
    • 도구 호출 기반 검색 및 바꾸기보다 성능이 더 뛰어난 Aider와 유사한 검색 및 바꾸기를 사용합니다.
  • 셸 최적화 :
    • 한 번에 하나의 명령만 실행되도록 허용하여 관리를 간소화하고 악성 프로세스를 방지합니다. 셸 인스턴스는 항상 하나만 존재합니다.
    • AI가 길을 잃는 것을 방지하기 위해 모든 셸 명령 이후에는 항상 현재 작업 디렉토리가 반환됩니다.
    • 명령 폴링은 피드백 지연을 방지하기 위해 빠른 시간 초과 후 종료됩니다. 그러나 상태 확인은 명령의 최신 출력 스트리밍을 기반으로 대기 시간을 허용합니다. 이 두 가지 접근 방식을 결합하면 훌륭한 셸 상호작용 경험을 얻을 수 있습니다.
  • 저장소 컨텍스트를 단일 파일에 저장 : "ContextSave" 도구를 사용하여 작업 체크포인트를 설정하면 자세한 컨텍스트를 단일 파일에 저장합니다. 나중에 " task id 재개"를 요청하는 새 채팅에서 작업을 재개할 수 있습니다. 저장된 파일은 다른 AI의 도움을 받는 등 다른 종류의 지식 전달에 사용할 수 있습니다.
  • 다양한 모드를 쉽게 전환하세요 :
    • 계획 수립을 위해 '아키텍트' 모드로 실행해 보세요. Adier의 아키텍트 모드에서 영감을 받아 Claude와 함께 먼저 계획을 세우세요. 이렇게 하면 정확도가 높아지고 파일 편집이 너무 일찍 일어나는 것을 방지할 수 있습니다.
    • 코드 편집 및 프로젝트 빌드를 위해 '코드 작성자' 모드로 실행하도록 설정하세요. 와일드카드를 사용하여 특정 경로를 지정하면 다른 파일이 편집되는 것을 방지할 수 있습니다.
    • 기본적으로는 제한이 없고 완전한 권한이 있는 'wcgw' 모드에서 실행됩니다.
    • 자세한 내용은 모드 섹션 에서 확인하세요.
  • 멀티플렉스 터미널에서 실행됩니다. AI가 명령을 실행하는 터미널에 연결하려면 screen -x 실행하세요. 실행 기록을 확인하거나 프로세스를 중단하거나 AI가 사용하는 터미널과 상호 작용할 수 있습니다.

주요 사용 사례 예시

  • 파이썬을 사용하여 문제 X를 해결하고, 테스트 케이스를 생성 및 실행하고, 문제가 있으면 수정하세요. 임시 디렉터리에서 실행하세요.
  • 내 저장소에서 X 동작이 있는 코드 인스턴스 찾기
  • 내 홈 디렉토리에 https://github.com/my/repo 를 Git 복제한 다음 프로젝트를 이해하고 환경을 설정하고 빌드합니다.
  • golang htmx tailwind 웹앱을 만든 다음 브라우저를 열어 작동하는지 확인합니다(puppeteer mcp와 함께 사용).
  • 대용량 파일 편집 또는 업데이트
  • 별도의 브랜치에서 기능 Y를 생성한 다음 github cli를 사용하여 원본 브랜치에 PR을 생성합니다.
  • 명령 X가 Y 디렉토리에서 실패하고 있습니다. 실행하여 문제를 해결하세요.
  • X 가상 환경을 사용하여 Y 명령을 실행합니다.
  • CLI 도구를 사용하여 안드로이드 앱을 빌드하고 테스트합니다. 마지막으로 에뮬레이터를 사용하여 실행합니다.
  • X 경로의 내 repo에서 모든 mypy 문제를 해결합니다.
  • 'screen'을 사용하여 서버를 백그라운드에서 실행한 다음, bg에서 다른 API 서버를 실행하고 마지막으로 프런트엔드 빌드를 실행합니다. 세 가지 모두에서 문제가 있는지 로그를 계속 확인합니다.
  • 저장소 전체에 걸쳐 단위 테스트 케이스를 만드세요. 파일을 반복하며 케이스를 생성하세요. 또한 각 업데이트 후에도 테스트를 계속 실행하세요. 원본 코드는 수정하지 마세요.

Claude 설정(mcp 사용)

맥과 리눅스

먼저 homebrew brew install uv install uv 사용하여 uv를 설치합니다.

( 중요: homebrew를 사용하여 uv를 설치하세요. 그렇지 않으면 uv /usr/bin/과 같은 글로벌 위치에 있는지 확인하세요.)

그런 다음 다음 json으로 claude_desktop_config.json (~/Library/Application Support/Claude/claude_desktop_config.json)을 만들거나 업데이트합니다.

지엑스피1

그런 다음 클로드 앱을 다시 시작하세요.

설정에 오류가 있는 경우

  • "uv ENOENT"와 같은 오류가 발생하면 uv 설치되어 있는지 확인하세요. 그런 다음 터미널에서 'which uv'를 실행하고 설정 파일의 "uv" 대신 'which 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에서의 윈도우

이 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" ] } } }

용법

몇 초간 기다려 주세요. 모든 것이 정상적으로 진행되면 이 아이콘이 보일 것입니다.

여기로

그런 다음 클로드에게 셸 명령을 실행하고, 파일을 읽고, 파일을 편집하고, 코드를 실행하는 등의 작업을 요청하세요.

작업 체크포인트 또는 지식 전달

  • "MCP에서 첨부" 버튼을 사용하여 "지식 전송" 프롬프트를 첨부하여 작업 체크포인트나 지식 전송을 수행할 수 있습니다.
  • "KnowledgeTransfer" 프롬프트를 실행하면 "ContextSave" 도구가 호출되어 작업 설명과 모든 파일 내용을 단일 파일에 저장합니다. 작업 ID가 생성됩니다.
  • 새로운 채팅에서 "다시 시작"이라고 말하면 AI가 작업 ID로 "초기화"를 호출하고 거기에서 컨텍스트를 로드합니다.
  • 또는 생성된 파일을 직접 열어 다른 AI와 공유하여 도움을 받을 수 있습니다.

모드

세 가지 기본 모드가 있습니다. Claude에게 "'아키텍트' 모드 사용"과 같은 모드 중 하나로 실행하도록 요청할 수 있습니다.

방법설명허용합니다거부하다프롬프트 호출
건축가클로드와 협력하여 리포지토리를 조사하고 이해할 수 있도록 설계되었습니다.읽기 전용 명령파일 편집 및 쓰기 도구mode='architect'에서 실행
코드 작성자코드 작성 및 개발을 위해편집 또는 쓰기를 위한 지정된 경로 글로브, 지정된 명령지정된 glob과 일치하지 않는 경로에 대한 FileEdit, 지정된 glob과 일치하지 않는 경로에 대한 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 사용하여 화면 세션을 파괴하지 않고 안전하게 분리해야 합니다.

[선택] Vs 코드 확장

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

명령어:

  • 텍스트를 선택하고 cmd+' 누른 후 지침을 입력하세요. 그러면 앱이 Claude로 전환되고 지침, 파일 경로, 작업 공간 디렉터리, 그리고 선택한 텍스트가 포함된 텍스트가 붙여넣어집니다.

Chatgpt 설정

여기에서 읽어보세요: https://github.com/rusiaaman/wcgw/blob/main/openai.md

예시

docker를 통해 mcp 서버 사용

먼저 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_KEYOPENAI_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 (정수, 선택 사항)
    • 매개변수: send_text (문자열) 또는 send_specials (["Enter"|"Key-up"|...]) 또는 send_ascii (int[]), wait_for_seconds (int, 선택 사항)

파일 작업:

  • ReadFiles : 하나 이상의 파일에서 콘텐츠를 읽습니다.
    • 매개변수: file_paths (문자열[])
  • 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