pr-agent-mcp
English | 中文
PR-Agent MCP サーバー
pr-agent CLI コマンドを MCP ツールとして公開する MCP (Model Context Protocol) サーバーです。オプションで Gitea の Webhook 統合による自動 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 Webhook: Gitea で新しい PR が開かれたときに、review、describe、improve アクションを自動的にトリガーします。
HMAC 署名検証: セキュリティのためのオプションの Webhook 署名検証。
設定の注入:
~/.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 インスタンス (Webhook 統合用、オプション)
プロバイダーの認証情報を含む
~/.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 の両方のトランスポートでサーバーを起動します。
コンテナは単一の
.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. (オプション) Webhook シークレットの設定
server.py の WEBHOOK_SECRET を、Gitea Webhook 設定で構成したものと同じシークレットに設定します。空のままにすると署名検証が無効になります (本番環境では推奨しません)。
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 Webhook レシーバー |
MCP ツール
ツール | 説明 |
| PR をレビュー: 概要と具体的な提案 |
| PR のタイトルと説明を生成または更新 |
| PR コメントとしてコード改善を提案 |
| PR について質問する |
| PR 作成者に PR に関する質問をする |
| PR の内容に基づいて変更履歴を更新 |
| PR のラベルを生成する |
Gitea Webhook のセットアップ
Gitea リポジトリで、設定 → Webhook → Webhook を追加 に移動します。
ターゲット URL を
http://<your-server>:9000/webhookに設定します。HTTP メソッドを
POST、コンテンツタイプをapplication/jsonに設定します。必要に応じてシークレットを設定します (
server.pyのWEBHOOK_SECRETと一致させる必要があります)。プルリクエスト イベントで、アクション Opened を選択します。
PR が開かれると、サーバーは自動的に review、describe、improve アクションを実行し、結果を PR コメントとして投稿します。
テスト
同梱の test.http ファイルを VS Code REST Client または同様の HTTP クライアントで使用して、Webhook エンドポイントを手動でテストできます。
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