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.
Структура проекта
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 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