본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 22. 11:26

IskanderAl/Auto-Review-ClaudeMCP

요약

Claude Desktop을 GitHub Pull Request와 연결하여 AI 기반 코드 리뷰를 지원하는 Python MCP 서버입니다. 바이너리 파일을 제외한 실제 코드 diff만 추출하여 Claude에게 전달함으로써 QA 자동화 효율을 높입니다.

핵심 포인트

  • Claude Desktop과 GitHub PR을 연결하는 MCP 서버 제공
  • 바이너리 및 에셋 파일을 필터링하여 코드 리뷰 정확도 향상
  • OS 키체인을 통한 안전한 GitHub 인증 정보 관리
  • list_open_prs 및 get_pr_diff 도구 제공

개발자 및 AQA (Automated Quality Assurance) 엔지니어를 위한 AI 지원 코드 리뷰 도구

Claude Desktop을 GitHub Pull Requests (PR)에 연결하는 Python MCP (Model Context Protocol) 서버입니다. 이 서버는 PR의 diff를 가져오고, 바이너리 및 에셋 파일(Unity .meta, 이미지, 오디오, 셰이더 등)을 필터링하여 Claude에게 리뷰할 실제 코드만을 제공합니다.

AI를 사용하여 Pull Request 리뷰 속도를 높이기 위한 QA 자동화 도구로 구축되었습니다.

  • Python 3.11+
  • Claude Desktop
git clone https://github.com/<your-username>/pr-review-mcp.git
cd pr-review-mcp
pip install -r requirements.txt

서버는 다음 순서로 인증 정보를 찾습니다:

환경 변수 (Environment variables) (GITHUB_TOKEN, GITHUB_REPO) — Claude Desktop용
OS 키체인 (OS keychain) (keyring을 통해) — Claude Code 및 로컬 개발용
대화형 프롬프트 (Interactive prompt) — 터미널에서의 폴백 (fallback)

OS 키체인에 인증 정보를 저장하려면 서버를 수동으로 한 번 실행하세요:

python server.py

다음 항목을 입력하라는 메시지가 표시됩니다:

GITHUB_TOKENrepo 권한(scope)을 가진 GitHub Personal Access Token (classic). github.com/settings/tokens에서 생성할 수 있습니다.
GITHUB_REPOowner/repo 형식의 저장소 (예: octocat/Hello-World).

두 값 모두 OS 키체인에 안전하게 저장되며 다시 요청되지 않습니다.

MCP 설정에 인증 정보를 직접 전달할 수 있습니다 (아래 예시 참조). 이는 Claude Desktop의 백그라운드 프로세스에서 작동하지 않는 대화형 프롬프트를 피할 수 있게 해줍니다.

Claude Desktop 설정 파일에 다음을 추가하세요:

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
"mcpServers": {
"pr-review": {
...

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
"mcpServers": {
"pr-review": {
...

참고: 이미 키체인에 인증 정보를 저장했다면 (옵션 A), env 블록을 생략할 수 있습니다. 서버가 자동으로 이를 찾아냅니다.

설정을 편집한 후, Claude Desktop을 재시작하세요.

옵션 A — CLI 명령:

claude mcp add pr-review -- python /path/to/pr-review-mcp/server.py

옵션 B — .mcp.json 생성

프로젝트 루트 디렉토리에:

{
"mcpServers": {
"pr-review": {
...

그 다음 Claude Code를 재시작하세요.

설정이 완료되면, Claude Desktop에 두 가지 새로운 도구(tool)가 추가됩니다:

list_open_prs— 설정된 저장소(repository)의 열려 있는 PR(Pull Request) 목록을 나열합니다.
get_pr_diff— 특정 PR 번호에 대한 코드 디프(diff)를 가져오며, 바이너리/에셋 파일은 필터링하여 제외합니다.

Claude Desktop에서의 프롬프트 예시:

  • "List open PRs"
  • "Review PR #42"
  • "What changed in PR #15?"

저장된 자격 증명(credentials)을 삭제하고 다시 입력하려면:

python server.py --reset

그 다음 다시 python server.py를 실행하여 새로운 값을 입력하세요.

오류는 프로젝트 디렉토리 내의 error_report.log에 자동으로 기록됩니다.

상세 디버그 로깅(verbose debug logging)을 활성화하려면, 설정에 MCP_DEBUG를 추가하세요:

"env": {
"GITHUB_TOKEN": "ghp_your_token_here",
"GITHUB_REPO": "owner/repo",
...

또는 수동으로 실행하기 전에 터미널에서 설정할 수 있습니다:

MCP_DEBUG=1 python server.py

일반적인 문제:

latin-1 codec errorGITHUB_TOKEN에 ASCII가 아닌 문자가 포함되어 있습니다. 플레이스홀더가 아닌 실제 토큰을 복사했는지 확인하세요.
서버 시작 시 멈춤(Server hangs on startup) — 자격 증명이 누락되어 서버가 대화형 입력(interactive input)을 기다리고 있습니다. 환경 변수(옵션 B)를 사용하거나, 먼저 python server.py를 수동으로 실행하여 키체인(keychain)에 저장하세요.
401 Unauthorized — 토큰이 유효하지 않거나 만료되었습니다. python server.py --reset을 실행하고 새 토큰을 입력하세요.

Claude Desktop ──MCP──▶ server.py ──REST API──▶ GitHub
│
keyring (OS)
...

Claude AI를 사용하여 풀 리퀘스트(Pull Request) 코드 리뷰를 자동화하기 위한 MCP 서버입니다.

이 도구는 QA 엔지니어를 위한 도구로, Claude Desktop을 GitHub에 연결하여 AI가 풀 리퀘스트의 변경 사항을 분석할 수 있도록 합니다. 서버는 바이너리 파일과 에셋(Unity .meta, 텍스처, 오디오, 셰이더 등)을 자동으로 필터링하여, 리뷰를 위한 코드만을 Claude에게 전달합니다.

list_open_prs— 저장소의 열려 있는 PR 목록 표시
get_pr_diff— 바이너리 파일 필터링을 포함한 특정 PR의 디프(diff) 가져오기

  • QA 과정에서의 코드 리뷰 (Code Review) 프로세스 가속화

  • AI가 전형적인 오류, 보안 문제, 가독성(Readability)을 검사

  • 노이즈 필터링 — 바이너리, Unity 에셋, 이미지는 리뷰 대상에서 제외

  • GitHub 토큰은 시스템 키체인 (Keychain)에 안전하게 저장 (평문으로 저장되지 않음)

  • Python 3.11+

  • Claude Desktop

git clone https://github.com/<your-username>/pr-review-mcp.git
cd pr-review-mcp
pip install -r requirements.txt

서버는 다음 순서로 인증 정보를 찾습니다:

환경 변수 (GITHUB_TOKEN, GITHUB_REPO) — Claude Desktop용
시스템 키체인 (System Keychain) (keyring 사용) — Claude Code 및 로컬 개발용
대화형 입력 (Interactive Input) — 터미널에서 수동으로 실행할 때

토큰과 저장소를 시스템 키체인에 저장하려면 서버를 수동으로 실행하세요:

python server.py

다음 정보를 입력하라는 메시지가 표시됩니다:

GITHUB_TOKENrepo 권한이 있는 Personal Access Token (classic). 여기에서 생성할 수 있습니다: github.com/settings/tokens.
GITHUB_REPOowner/repo 형식의 저장소 (예: octocat/Hello-World).

두 값 모두 시스템 키체인에 저장되며 더 이상 요청되지 않습니다.

MCP 설정에 인증 정보를 직접 전달할 수도 있습니다 (아래 예시 참조). 이 방법은 Claude Desktop의 백그라운드 프로세스에서 작동하지 않는 대화형 입력을 우회할 수 있게 해줍니다.

Claude Desktop 설정에 추가하세요:

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
"mcpServers": {
"pr-review": {
...

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
"mcpServers": {
"pr-review": {
...

참고: 이미 키체인에 토큰을 저장했다면 (옵션 A), env 블록을 명시하지 않아도 서버가 자동으로 데이터를 찾습니다.

설정을 변경한 후에는 Claude Desktop을 재시작하세요.

옵션 A — CLI를 통한 방법:

claude mcp add pr-review -- python /path/to/pr-review-mcp/server.py

옵션 B — 프로젝트 루트에 .mcp.json 생성:

{
"mcpServers": {
"pr-review": {
...

그 다음 Claude Code를 재시작하세요.

Claude Desktop에서 설정을 완료하면 두 가지 도구(tool)가 나타납니다:

list_open_prs— 리포지토리의 열려 있는 PR (Pull Request) 목록
get_pr_diff— 바이너리 파일(binary files)을 필터링한 특정 PR의 diff (차이점)

프롬프트 예시:

  • "열려 있는 PR을 보여줘"
  • "PR #42를 리뷰해줘"
  • "PR #15에서 무엇이 바뀌었어?"

저장된 데이터를 삭제하고 다시 입력하려면:

python server.py --reset

그 다음, 새로운 값을 입력하기 위해 다시 python server.py를 실행하세요.

오류는 프로젝트 폴더 내의 error_report.log에 자동으로 기록됩니다.

상세한 디버그 로깅 (debug logging)을 활성화하려면 설정 파일에 MCP_DEBUG를 추가하세요:

"env": {
"GITHUB_TOKEN": "ghp_your_token_here",
"GITHUB_REPO": "owner/repo",
...

또는 터미널에서 수동으로 실행할 때:

MCP_DEBUG=1 python server.py

자주 발생하는 문제:

오류GITHUB_TOKENlatin-1 코덱의 비-ASCII (non-ASCII) 문자가 포함되었습니다. 플레이스홀더(placeholder)가 아닌 실제 토큰을 복사했는지 확인하세요.
서버가 실행 중 멈춤— 저장된 자격 증명(credentials)이 없어 서버가 입력을 기다리고 있습니다. 환경 변수 (Option B)를 사용하거나, keychain에 저장하기 위해 python server.py를 수동으로 실행하세요.
401 Unauthorized— 토큰이 유효하지 않거나 만료되었습니다. python server.py --reset을 실행하고 새 토큰을 입력하세요.

pr-review-mcp/
├── server.py — MCP 도구 및 엔트리 포인트 (entry point)
├── github_client.py — 인증 및 GitHub API 작업
...

.cs, .json, .xml, .yaml, .yml, .md, .txt, .gradle, .java, .kt, .sh, .py, .meta, .prefab, .unity, .asset, .mat, .fbx, .png, .jpg, .shader, .dll, .mp3, .wav, .anim 및 기타 바이너리 형식.

MIT

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0