MCP

MCP Git Ingest: GitHub 저장소 디렉터리 트리와 중요 파일 읽기

MCP 클라이언트에서 먼저 GitHub 저장소 디렉터리를 보고 지정한 중요 파일을 뽑으려는 사람을 위한 것이다. 다만 조회마다 저장소 URL에 따라 이 기기 임시 디렉터리로 복제한다.

Official source · MCP Git Ingest

Install

uvx --from git+https://github.com/adhikasp/mcp-git-ingest mcp-git-ingest

누구에게 맞나

MCP 클라이언트가 어떤 GitHub 저장소의 디렉터리 트리를 먼저 보고 그중 중요 파일을 읽게 하고 싶고, 손수 복제한 뒤 디렉터리를 뒤지고 싶지 않다면 이 서비스가 맞다. 도구 두 개를 노출한다. github_directory_structure는 트리 디렉터리를 반환하고, github_read_important_files는 지정한 파일 내용을 읽는다. 구현은 GitPython으로 저장소 URL 해시에서 결정적 임시 디렉터리를 만든다. 이미 복제되어 있으면 재사용하고, 아니면 clone을 실행한다. 공개 저장소의 구조 파악과 핵심 파일 대조에 맞다. 권한 없이 비공개 저장소를 당기는 것에는 맞지 않고, 완전한 git 작업 영역으로 쓰는 것에도 맞지 않는다. 복제와 파일 읽기는 이 기기에서 일어난다. 이것은 「네트워크 없음, 로컬 읽기 없음, 프라이버시 경계 없음」이 아니다.

3분 만에 첫 시도

공식 주 경로는 uvx로 Git 저장소에서 바로 실행하는 것이다. 런타임은 Python 3.8+가 필요하고 fastmcp와 gitpython에 의존한다. 클라이언트에서 명령을 이렇게 쓴다:

uvx --from git+https://github.com/adhikasp/mcp-git-ingest  mcp-git-ingest

접속 후 낮은 위험 호출을 한 번 한다. 공식 저장소 자체에 github_directory_structure를 쓰고 저장소 주소는 https://github.com/adhikasp/mcp-git-ingest 증거는 이 도구가 트리 디렉터리를 반환한다고 쓰지만 매개변수 이름은 없다. 클라이언트가 repo_url을 요구하면 위에 이미 나온 주소를 넣고 브랜치나 token 매개변수를 만들지 마라. 성공 신호는 디렉터리 트리를 보는 것이며 파일이 고쳐진 것이 아니다. 이번은 GitHub에 닿고 해시 이름 임시 디렉터리에 복제를 남긴다. 요약은 처리 후 정리한다고 하지만 증거는 정리 시점과 실패 잔여를 쓰지 않았다. 임시 디렉터리를 있을 수 있는 부작용으로 본다. 읽기 전용 도구가 위험이 0이라는 뜻은 아니다.

사용 사례

사례 1: 먼저 디렉터리 트리를 본다. 익숙하지 않은 공개 저장소에는 먼저 github_directory_structure를 호출한다. 증거는 트리 표현을 반환한다는 것만 보장한다. 깊이 제한, 무시 규칙, 서브모듈 동작은 쓰지 않았다. 없으면 전체 트리 또는 클라이언트 잘림을 받아들이고 .gitignore 매개변수를 만들지 마라.

사례 2: 그다음 중요 파일을 읽는다. 경로를 알게 된 뒤 github_read_important_files로 지정 파일을 읽는다. 같은 복제 논리를 다시 쓴다. 증거는 「중요」의 기본 목록을 쓰지 않았고 경로는 당신이 줘야 한다. 먼저 README 또는 짧은 텍스트를 고르고 알 수 없는 파일을 한꺼번에 지정하지 마라. 크기 상한이나 인코딩 처리는 쓰지 않았다. 아주 큰 파일이 완전히 반환되는지는 기존 설명이 덮지 못한다.

사용 한계

이것은 로컬 stdio 서비스이며 호스티드 읽기 전용 게이트웨이가 아니다. Git 조작 능력(GitPython)이 없으면 복제할 수 없다. 비공개 저장소 인증 방법은 증거가 쓰지 않았다. 설명되지 않은 token 환경 변수를 이미 지원한다고 보지 마라. clone_repo는 구현 설명에 나오며 URL 해시로 임시 디렉터리에 떨어진다. 디스크에 사본이 남지 않는다고 가정하지 마라. 두 도구 밖의 git 쓰기 작업은 범위 밖이다. 프로젝트 페이지: https://github.com/adhikasp/mcp-git-ingest 첫 시도는 공식 uvx --from git+... 명령만 쓰고, 성공 신호를 공식 저장소의 디렉터리 트리를 보는 것으로 둔다.