pr-agent-mcp
English | 中文
PR-Agent MCP 서버
pr-agent CLI 명령어를 MCP 도구로 노출시키는 MCP (Model Context Protocol) 서버이며, 선택적으로 Gitea 웹훅 통합을 통한 자동 PR 리뷰를 지원합니다. SSE 및 StreamableHTTP 전송 방식을 모두 지원하며, 로컬 또는 Docker에서 실행할 수 있습니다.
기능
MCP 도구: pr-agent 명령어(
review,describe,improve,ask,reflect,update_changelog,generate_labels)를 MCP 도구로 노출.전송 방식: SSE (
/sse) 및 StreamableHTTP (/mcp),--transport sse|streamable-http|both로 선택 가능.Gitea 웹훅: Gitea에서 새 PR이 열릴 때 자동으로 review, describe, improve 작업을 트리거.
HMAC 서명 검증: 선택적 웹훅 서명 검증으로 보안 강화.
설정 주입:
~/.secrets.toml에서 자격 증명을 자동으로 로드하여 pr-agent 서브프로세스 환경에 주입.
프로젝트 구조
pr-agent-mcp/
├── server.py # Main MCP server and webhook handler
├── run.ps1 # PowerShell startup script (local run)
├── requirements.txt # Python dependencies
├── Dockerfile # Multi-stage Docker image definition
├── docker-compose.yml # Docker Compose service definition
├── push.ps1 # Build & push image to registry
├── .dockerignore # Exclude files from Docker build context
├── buggy_samples.py # Intentional bug samples for pr-agent testing
├── test.http # HTTP test requests (VS Code REST Client / similar)
├── README.md
├── README.zh-CN.md
└── .gitignore사전 요구 사항
Docker와 Docker Compose (권장) 또는 Python 3.11+ (
tomllib사용)Gitea 인스턴스 (웹훅 통합 시 선택사항)
~/.secrets.toml파일 (공급자 자격 증명 포함, 아래 참조)
자격 증명 구성
사용자 홈 디렉토리에 ~/.secrets.toml을 생성하여 공급자 및 LLM 자격 증명을 입력하세요:
[gitea]
url = "http://your-gitea-instance:3000"
token = "your-gitea-personal-access-token"
[openai]
key = "sk-your-openai-api-key"
SECRETS_TOML_PATH환경 변수는 기본 위치(~/.secrets.toml)를 재정의합니다. Docker 이미지에서 바인드 마운트된 파일을 찾는 데 사용됩니다.
Docker 배포 (권장)
1. 로컬에서 빌드 및 시작
docker compose up -d --build이 명령은 다음을 수행합니다:
이미지 빌드 (멀티 스테이지: venv에
pr-agent및mcp의존성 설치, 런타임에git설치).홈 디렉토리를 읽기 전용으로 컨테이너의
/host-home에 마운트하여~/.secrets.toml을 읽을 수 있도록 함.호스트 포트
9000을 컨테이너 포트9000에 매핑.SSE 및 StreamableHTTP 전송 방식을 모두 사용하여 서버 시작.
컨테이너는 단일
.secrets.toml파일 대신${USERPROFILE}(전체 홈 디렉토리)를 마운트합니다. 존재하지 않는 호스트 파일을 마운트하면 Docker가 디렉토리를 생성하여IsADirectoryError가 발생하므로, 상위 디렉토리를 마운트하면 이 문제를 피할 수 있습니다.
2. 프라이빗 레지스트리에 이미지 푸시
# Build + tag + push to the default registry (10.10.11.194:1000/pr-agent-mcp:latest)
.\push.ps1
# Push to another registry / with a version tag / skip rebuild
.\push.ps1 -Registry "192.168.1.100:5000" -Tag "v1.0.0" -NoBuild3. 다른 머신에서 실행 (예: 테스트 서버)
docker-compose.yml을 대상 머신에 복사하고 build: .를 image: 10.10.11.194:1000/pr-agent-mcp:latest로 변경한 후:
docker pull 10.10.11.194:1000/pr-agent-mcp:latest
docker compose up -d또는 compose 파일 없이 직접 실행:
docker run -d \
--name pr-agent-mcp \
-p 9000:9000 \
-v $env:USERPROFILE:/host-home:ro \
-e SECRETS_TOML_PATH=/host-home/.secrets.toml \
--restart unless-stopped \
10.10.11.194:1000/pr-agent-mcp:latest컨테이너 관리
# View logs
docker compose logs -f
# Stop & remove
docker compose down
# Restart
docker compose restart로컬 실행 (Docker 없이)
1. 의존성 설치
python -m venv mcp_env
mcp_env\Scripts\activate
pip install -r requirements.txt
requirements.txt에는mcp(MCP 프레임워크)만 포함되어 있습니다. pr-agent는 이 서버의 Python 의존성이 아닙니다 —server.py에 설정된 경로 (또는PR_AGENT_EXE환경 변수)를 통해 서브프로세스로 호출됩니다. 머신에 pr-agent가 이미 설치되어 있는지 확인하세요.
2. (선택사항) 웹훅 시크릿 구성
server.py에서 WEBHOOK_SECRET을 Gitea 웹훅 설정에 구성된 것과 동일한 시크릿으로 설정하세요. 비워두면 서명 검증이 비활성화됩니다 (프로덕션 환경에서는 권장하지 않음).
3. 서버 시작
.\run.ps1또는 직접:
python server.py
python server.py --transport sse # SSE only
python server.py --transport streamable-http # StreamableHTTP only엔드포인트
엔드포인트 | 메서드 | 설명 |
| GET | AI 클라이언트용 MCP SSE 연결 엔드포인트 |
| POST | MCP StreamableHTTP 엔드포인트 |
| POST | MCP 메시지 전송 (SSE 모드) |
| POST | 자동 PR 리뷰를 위한 Gitea 웹훅 수신기 |
MCP 도구
도구 | 설명 |
| PR 리뷰: 요약 및 구체적인 제안 |
| PR 제목 및 설명 생성 또는 업데이트 |
| PR 댓글로 코드 개선 제안 |
| PR에 관한 질문하기 |
| PR 작성자에게 PR에 관한 질문하기 |
| PR 내용을 기반으로 변경 로그 업데이트 |
| PR에 대한 레이블 생성 |
Gitea 웹훅 설정
Gitea 저장소에서 설정 → 웹훅 → 웹훅 추가로 이동합니다.
대상 URL을
http://<your-server>:9000/webhook로 설정합니다.HTTP 메서드를
POST, 콘텐츠 유형을application/json으로 설정합니다.선택적으로 시크릿을 설정합니다 (
server.py의WEBHOOK_SECRET과 일치해야 함).Pull Request 이벤트를 선택하고 Opened 작업을 선택합니다.
PR이 열리면 서버가 자동으로 review, describe, improve 작업을 실행하고 결과를 PR 댓글로 게시합니다.
테스트
포함된 test.http 파일을 VS Code REST 클라이언트 또는 유사한 HTTP 클라이언트와 함께 사용하여 웹훅 엔드포인트를 수동으로 테스트할 수 있습니다.
buggy_samples.py에는 보안, 로직, 동시성, 오류 처리 등 여러 범주에 걸친 의도적인 버그가 포함되어 있어 pr-agent의 코드 리뷰 감지 기능을 테스트할 수 있습니다.
라이선스
비공개 — 내부 전용.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A Model Context Protocol (MCP) application for automated GitHub PR analysis and issue management.…
Package intelligence MCP for AI agents — 22 tools, 19 ecosystems, AGPL SDK, free.
Repo intel for AI coding agents: overview, PRs, contributors, hot files, CI, deps. Remote MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kkmeteor/pr-agent-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server