MCP Server for GitHub Pull Request Automation について
GitHubのWebhookイベントに応じてPRの作成とマージを自動化するGo製サーバーです。ブランチやイベントを条件にPRを処理したいリポジトリ管理者向けです。
主な機能
- 01`feature/` ブランチからPRを作成
- 02merge、squash、rebaseでPRをマージ
- 03pushとPRのWebhookに対応
活用シーン
- 01`feature/` ブランチのpush時にPRを作成
- 02PRのマージ方式を選択
- 03WebhookによるPR処理の確認
MCP 対応
MCPサーバーとして記載されていますが、READMEはGitHub WebhookによるPR自動化を説明しており、MCPクライアントに公開するツールやリソースは明記していません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GitHub プルリクエスト自動化用 MCP サーバー
MCP(Merge and Create Pull Request)サーバーは、GitHub のプルリクエスト(PR)を自動化するために設計された Go ベースのアプリケーションです。GitHub の Webhook イベント(プッシュや PR イベントなど)をリッスンし、特定の条件に基づいてプルリクエストを自動的に作成またはマージします。
機能
- PR 作成の自動化:
feature/という命名規則に従うブランチのプルリクエストを自動的に作成します。 - プルリクエストのマージ: 選択した戦略(
merge、squash、またはrebase)でプルリクエストをマージします。 - Webhook の処理: GitHub の Webhook イベントをリッスンし、プッシュまたはプルリクエストのイベントに応じてアクションを実行します。
要件
- Go 1.18+(サーバーのビルドおよび実行用)
- リポジトリにアクセスできる GitHub アカウント
- Ngrok(ローカルサーバーを公開 URL にトンネリングするために使用します。GitHub Webhook のテストに必要です)
セットアップ手順
1. リポジトリをクローンする
このリポジトリをローカルマシンにクローンします。
git clone https://github.com/your-username/github_mcp.git
cd github_mcp
2. 依存関係をインストールする
go get を使用して必要な依存関係をインストールします。
go mod tidy
3. 環境変数を設定する
認証情報を記載した Env Variables ファイルを作成します。
GITHUB_TOKEN=your_github_personal_access_token
OWNER=your_github_username
REPO=your_github_repository
BASE_BRANCH=main
4. Ngrok をインストールする
GitHub Webhook をローカルでテストする場合は、Ngrok を使用してローカルサーバーをインターネットに公開できます。
https://ngrok.com/download から Ngrok をダウンロードしてインストールします。
Ngrok のインストール後、ポート 8080 で実行します。
ngrok http 8080
これにより、GitHub リポジトリで Webhook を設定するために使用できる公開 URL が取得できます。(アプリを公開するより良い方法があれば、それを使用してください。)
5. サーバーを実行する
次のコマンドを使用してサーバーを実行します。
go run main.go
これにより、サーバーが http://localhost:8080 で起動します。
6. GitHub Webhook を設定する
- GitHub リポジトリに移動します。
- Settings > Webhooks > Add webhook に移動します。
- Payload URL フィールドに、Ngrok の URL またはローカルサーバーの URL を入力します:
http://<ngrok-url>/webhook(例:http://1234.ngrok.io/webhook)。 - Content type を
application/jsonに設定します。 - Webhook をトリガーするイベントを選択します。通常は Push と Pull request です。
- Webhook を保存します。
7. テストする
feature/で始まるブランチにプッシュします(例:feature/new-feature)。- サーバーは、そのブランチからベースブランチへのプルリクエストを自動的に作成します。
- プルリクエストがクローズされてマージされると、その内容がログに記録され、ステータスが更新されます。
コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
このプロジェクトはオープンソースで、MIT License の下で公開されています。 `
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。