MCP 문서 관리

메뉴

문서 정보

최종 수정일:
2025-05-12 20:15

Git MCP 서버

Git

MCP-server-git은 Git 저장소 상호 작용 및 자동화를 위한 Model Context Protocol 서버입니다. 이 서버는 대규모 언어 모델(LLM)을 통해 Git 저장소를 읽고, 검색하고, 조작하는 도구를 제공합니다.

mcp-server-git은 현재 초기 개발 단계에 있으며, 기능과 사용 가능한 도구는 서버를 개발하고 개선함에 따라 변경 및 확장될 수 있습니다.

특징

  • Git 저장소의 상태 및 변경 사항 검사
  • 로컬 저장소의 파일 조작 및 관리
  • 커밋, 브랜치 생성 및 변경 이력 조회
  • 브랜치 전환 및 관리
  • 새 저장소 초기화

API

도구

git_status

작업 트리 상태 표시

  • 입력:
  • repo_path (문자열): Git 저장소 경로

  • 반환: 텍스트 출력으로 작업 디렉토리의 현재 상태

git_diff_unstaged

아직 스테이징되지 않은 작업 디렉토리의 변경 사항 표시

  • 입력:
  • repo_path (문자열): Git 저장소 경로

  • 반환: 스테이징되지 않은 변경 사항의 diff 출력

git_diff_staged

커밋을 위해 스테이징된 변경 사항 표시

  • 입력:
  • repo_path (문자열): Git 저장소 경로

  • 반환: 스테이징된 변경 사항의 diff 출력

git_diff

브랜치 또는 커밋 간의 차이점 표시

  • 입력:
  • repo_path (문자열): Git 저장소 경로
  • target (문자열): 비교할 대상 브랜치 또는 커밋

  • 반환: 현재 상태와 대상을 비교하는 diff 출력

git_commit

저장소에 변경 사항 기록

  • 입력:
  • repo_path (문자열): Git 저장소 경로
  • message (문자열): 커밋 메시지

  • 반환: 새 커밋 해시가 포함된 확인

git_add

스테이징 영역에 파일 내용 추가

  • 입력:
  • repo_path (문자열): Git 저장소 경로
  • files (문자열[]): 스테이징할 파일 경로 배열

  • 반환: 스테이징된 파일 확인

git_reset

모든 스테이징된 변경 사항 되돌리기

  • 입력:
  • repo_path (문자열): Git 저장소 경로

  • 반환: 리셋 작업 확인

git_log

커밋 로그 표시

  • 입력:
  • repo_path (문자열): Git 저장소 경로
  • max_count (숫자, 선택적): 표시할 최대 커밋 수(기본값: 10)

  • 반환: 해시, 작성자, 날짜 및 메시지가 포함된 커밋 항목 배열

git_create_branch

새 브랜치 생성

  • 입력:
  • repo_path (문자열): Git 저장소 경로
  • branch_name (문자열): 새 브랜치 이름
  • start_point (문자열, 선택적): 새 브랜치의 시작점

  • 반환: 브랜치 생성 확인

git_checkout

브랜치 전환

  • 입력:
  • repo_path (문자열): Git 저장소 경로
  • branch_name (문자열): 체크아웃할 브랜치 이름

  • 반환: 브랜치 전환 확인

git_show

커밋 내용 표시

  • 입력:
  • repo_path (문자열): Git 저장소 경로
  • revision (문자열): 표시할 리비전(커밋 해시, 브랜치 이름, 태그)

  • 반환: 지정된 커밋의 내용

git_init

Git 저장소 초기화

  • 입력:
  • repo_path (문자열): Git 저장소를 초기화할 디렉토리 경로

  • 반환: 저장소 초기화 확인

사용 방법

설치

uv 사용(권장)

uv를 사용할 때는 특별한 설치가 필요하지 않습니다. uvx를 사용하여 mcp-server-git을 직접 실행합니다.

PIP 사용

또는 pip를 통해 mcp-server-git을 설치할 수 있습니다:

pip install mcp-server-git

설치 후 스크립트로 실행할 수 있습니다:

python -m mcp_server_git

구성

Claude Desktop에서 사용

claude_desktop_config.json에 다음을 추가하세요:

uvx 사용
"mcpServers": {
  "git": {
    "command": "uvx",
    "args": ["mcp-server-git", "--repository", "path/to/git/repo"]
  }
}
Docker 사용

참고: '/Users/username'을 이 도구가 액세스할 수 있어야 하는 경로로 바꿉니다.

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

pip 설치 사용
"mcpServers": {
  "git": {
    "command": "python",
    "args": ["-m", "mcp_server_git", "--repository", "path/to/git/repo"]
  }
}

VS Code에서 사용

VS Code User Settings(JSON) 파일에 다음 JSON 블록을 추가하세요. Ctrl + Shift + P를 누르고 Preferences: Open Settings (JSON)를 입력하여 이 작업을 수행할 수 있습니다.

선택적으로 작업 공간의 .vscode/mcp.json 파일에 추가할 수 있습니다. 이렇게 하면 다른 사람과 구성을 공유할 수 있습니다.

.vscode/mcp.json 파일에서는 mcp 키가 필요하지 않습니다.

{
  "mcp": {
    "servers": {
      "git": {
        "command": "uvx",
        "args": ["mcp-server-git"]
      }
    }
  }
}

Docker 설치의 경우:

{
  "mcp": {
    "servers": {
      "git": {
        "command": "docker",
        "args": ["run", "--rm", "-i", "--mount", "type=bind,src=${workspaceFolder},dst=/workspace", "mcp/git"]
      }
    }
  }
}

Zed에서 사용

Zed settings.json에 추가하세요:

uvx 사용
"context_servers": [
  "mcp-server-git": {
    "command": {
      "path": "uvx",
      "args": ["mcp-server-git"]
    }
  }
],
pip 설치 사용
"context_servers": {
  "mcp-server-git": {
    "command": {
      "path": "python",
      "args": ["-m", "mcp_server_git"]
    }
  }
},

디버깅

MCP 인스펙터를 사용하여 서버를 디버깅할 수 있습니다. uvx 설치의 경우:

npx @modelcontextprotocol/inspector uvx mcp-server-git

또는 특정 디렉토리에 패키지를 설치했거나 개발 중인 경우:

cd path/to/servers/src/git
npx @modelcontextprotocol/inspector uv run mcp-server-git

tail -n 20 -f ~/Library/Logs/Claude/mcp*.log를 실행하면 서버의 로그가 표시되고 문제를 디버깅하는 데 도움이 될 수 있습니다.

개발

로컬 개발을 하는 경우 변경 사항을 테스트하는 두 가지 방법이 있습니다:

  1. MCP 인스펙터를 실행하여 변경 사항을 테스트합니다. 실행 지침은 '디버깅'을 참조하세요.
  2. Claude 데스크톱 앱을 사용하여 테스트합니다. claude_desktop_config.json에 다음을 추가하세요:

Docker

{
  "mcpServers": {
    "git": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--mount",
        "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
        "--mount",
        "type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
        "--mount",
        "type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
        "mcp/git"
      ]
    }
  }
}

UVX

{
  "mcpServers": {
    "git": {
      "command": "uv",
      "args": [
        "--directory",
        "/<path to mcp-servers>/mcp-servers/src/git",
        "run",
        "mcp-server-git"
      ]
    }
  }
}

빌드

Docker 빌드:

cd src/git
docker build -t mcp/git .

라이선스

이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 이는 MIT 라이선스의 약관 및 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있음을 의미합니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.

연결된 구성 요소