pr-agent-mcp
English | 中文
PR-Agent MCP Server
Сервер MCP (Model Context Protocol), который предоставляет команды CLI pr-agent в качестве инструментов MCP, с дополнительной интеграцией вебхуков 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: Автоматический запуск действий review, describe и improve при открытии нового PR в Gitea.
Проверка подписи HMAC: Опциональная валидация подписи вебхука для безопасности.
Внедрение конфигурации: Автоматически загружает учетные данные из
~/.secrets.tomlи внедряет их в окружение подпроцесса pr-agent.
Related MCP server: gitea-mcp
Структура проекта
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Это:
Соберет образ (многоступенчатая сборка: установка зависимостей
pr-agentиmcpв venv, установкаgitво время выполнения).Смонтирует ваш домашний каталог только для чтения в контейнер по пути
/host-home, чтобы он мог прочитать~/.secrets.toml.Сопоставит порт хоста
9000с портом контейнера9000.Запустит сервер с обоими транспортами SSE и StreamableHTTP.
Контейнер монтирует
${USERPROFILE}(весь домашний каталог), а не один файл.secrets.toml. Монтирование несуществующего файла хоста заставляет 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. (Необязательно) Настройка секрета вебхука
Установите WEBHOOK_SECRET в server.py на тот же секрет, который настроен в параметрах вебхука вашего Gitea. Оставьте пустым для отключения проверки подписи (не рекомендуется для продакшена).
3. Запуск сервера
.\run.ps1Или напрямую:
python server.py
python server.py --transport sse # SSE only
python server.py --transport streamable-http # StreamableHTTP onlyКонечные точки
Конечная точка | Метод | Описание |
| GET | Конечная точка SSE для подключения MCP клиентов ИИ |
| POST | Конечная точка StreamableHTTP MCP |
| POST | Транспорт сообщений MCP (режим SSE) |
| POST | Приемник вебхука Gitea для авторевью PR |
Инструменты MCP
Инструмент | Описание |
| Ревью PR: сводка и конкретные предложения |
| Создание или обновление заголовка и описания PR |
| Предложение улучшений кода в виде комментариев PR |
| Задать вопрос о PR |
| Задать автору PR вопросы о PR |
| Обновление журнала изменений на основе содержимого PR |
| Генерация меток для PR |
Настройка вебхука Gitea
В вашем репозитории Gitea перейдите в Settings → Webhooks → Add Webhook.
Установите целевой URL на
http://<your-server>:9000/webhook.Установите HTTP-метод на
POSTи тип содержимого наapplication/json.При необходимости установите секрет (должен совпадать с
WEBHOOK_SECRETвserver.py).Выберите событие Pull Request с действием Opened.
Когда PR открыт, сервер автоматически запустит действия review, describe и improve и опубликует результаты в виде комментариев PR.
Тестирование
Используйте прилагаемый файл test.http с VS Code REST Client или аналогичным HTTP-клиентом для ручного тестирования конечной точки вебхука.
buggy_samples.py содержит преднамеренные ошибки в нескольких категориях (безопасность, логика, параллелизм, обработка ошибок) для тестирования возможностей обнаружения ошибок pr-agent.
Лицензия
Частная — только для внутреннего использования.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
A Model Context Protocol (MCP) application for automated GitHub PR analysis and issue management.…
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceA GitHub integration tool that enables MCP clients to manage pull requests through tools for creating, updating, and listing PRs with automated descriptions. It also includes a webhook server for real-time PR updates and a customizable CLI with distinct personality modes.-
- AlicenseAqualityAmaintenanceAn MCP server providing comprehensive Gitea API coverage with 186 tools for managing repositories, issues, pull requests, and CI/CD workflows. It enables autonomous AI agents to perform complex development and administrative tasks directly through a Gitea instance.7MIT
- AlicenseBqualityCmaintenanceMCP server that exposes GitHub operations as tools for AI agents, enabling code search, issue management, and PR review.1228 PyPIMIT
- AlicenseAqualityCmaintenanceProvides GitHub PR review capabilities to LLMs, enabling automated PR analysis, review submission, and inline commenting via MCP.145 npm1MIT