Search

24. MCP를 활용한 코드리뷰 에이전트 생성하기

섹션
7. Agent: GitHub 코드 리뷰 에이전트

MCP를 활용한 코드리뷰 에이전트 생성하기

n8n의 MCP 지원 문제

현재 상황

GitHub에 풀 리퀘스트 올라올 때 코드를 리뷰하는 에이전트 구현 목표
n8n의 MCP 클라이언트 툴이 SSE 엔드포인트 요구
SSE는 deprecated되어 streamable HTTP 사용해야 함
n8n이 아직 streamable HTTP 미지원

대안 및 향후 계획

이번에는 LangGraph로 작업
n8n이 streamable HTTP 지원 시 추가 영상 촬영 예정

회사에서 사용 중인 에이전트 시스템

코딩 에이전트

리팩토링과 디버깅 테스트 담당
실제 비즈니스 로직은 엔지니어가 구현
코딩 에이전트가 나머지 작업 담당

매니저 에이전트

Notion MCP와 연결
JIRA 대신 Notion으로 스크럼 관리
등록된 태스크를 스크래핑하여 코딩 에이전트에게 전달

리뷰 에이전트

PR 업로드 시 트리거됨
코드 리뷰 후 PR에 댓글 작성
완료 가능한 수준 도달 시 Slack에서 멘션

MCP 설정

환경 변수 및 MCP 어댑터

환경 변수 호출
LangChain의 MCP 어댑터 선언 (multi-server client)
GitHub과 Slack MCP 동시 사용 가능

GitHub MCP 설정

GitHub에서 서버를 올려서 지원
VS Code 예시 대신 직접 구현 방식 사용
헤더 인증 문제 해결 필요
Authorization 헤더에 토큰 입력 필요
Transport 추가로 401 unauthorized 오류 해결

Slack MCP 설정

공식 제공하지만 서버가 없어 직접 작성 필요
Docker 사용 권장
필요한 값: Team ID, Channel ID, Token

Slack 앱 설정

OAuth 권한 설정

이벤트 구독이 아닌 단순 호출 방식
OAuth Permission에서 chat:write 권한만 필요
에이전트가 메시지 전송할 수 있도록 설정

ID 값 획득

Team ID: Slack 주소에서 T로 시작하는 값 복사
Channel ID: C로 시작하는 값 복사
Personal ID: 멤버 ID 복사하여 멘션 기능 활용

에이전트 구현

Create React Agent 사용

기존 경험한 방식 활용
툴 리스트를 tools에 입력
프롬프트에 간단히 툴 사용 명시

스트리밍 처리

패키지 업데이트로 인한 Cursor 오류 발생
await에서 툴 호출 방식 변경
async operation 문제로 stream 사용 필요
헬퍼 함수로 스트리밍 결과 확인 (암기 불필요)

실제 테스트

PR 생성 및 리뷰

사이드 프로젝트에서 코드 개선
Cursor로 코드 작성 후 PR 생성
PR 주소를 에이전트에게 제공
Private repo지만 GitHub 액세스 토큰으로 접근 가능

리뷰 결과

툴 호출하여 리뷰 시작
PR 정보 가져와서 코드 리뷰 수행
Slack에 리뷰 결과 전송
프롬프트 개선 필요성 확인

최적화 방안

툴 선별 문제

GitHub에서 가져온 툴이 너무 많음
PR 리뷰에 불필요한 툴 (notifications, issues, forks 등) 포함

STDIO 방식 활용

Slack처럼 로컬에서 실행
환경 변수로 툴셋 지정 가능
PR 관련 툴만 선별하여 사용
토큰 절약 효과

인프라 vs 토큰 트레이드오프

STDIO 방식: 툴 제한으로 토큰 절약
GitHub 인프라 방식: 토큰 사용량 증가하지만 인프라 부담 감소
사용 사례에 따라 선택 가능

향후 계획

추가로 전달할 내용 발견 시 강의 업데이트 예정