🤖 MCP GitHub PR Reviewer について
MCP GitHub PR Reviewerは、開発チーム向けにGitHubのプルリクエストを初期レビューするNode.jsサービスです。PRの詳細を選択したLLMに送り、結果をHTMLとMarkdownで保存します。
主な機能
- 01バグやセキュリティ問題の自動レビュー
- 02PRのファイル、差分、説明の取得
- 03OpenRouter、Anthropic、OpenAI APIに対応
- 04レビュー結果をHTMLとMarkdownで保存
- 05HTMLレビューへのURLを提供
活用シーン
- 01GitHubのプルリクエストへの初期フィードバック
- 02HTMLレビューのチーム内共有
- 03レビュー結果の保存と後からの確認
MCP 対応
MCPの一部を実装し、HTTPエンドポイントでレビュー要求を受け付けます。READMEでは、MCPクライアントや他のアプリケーションに統合できるバックエンドとして説明されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🤖 MCP GitHub PR レビュアー
📄 プロジェクトの説明
MCP GitHub PR Reviewer は、Model Context Protocol (MCP) の一部を実装した Node.js サーバーで、GitHub のプルリクエスト(PR)のコードレビューを自動化します。このサーバーはブリッジとして機能し、GitHub から PR の詳細を取得して、選択した大規模言語モデル(LLM)(OpenRouter.ai 経由、または Anthropic/OpenAI API へ直接)に送信してレビューを行い、その結果を整った HTML および Markdown 形式で保存します。
このプロジェクトの主な目的は、コードレビューを迅速化し、一貫性のある初期フィードバックを提供することで、開発チームがより複雑な議論やアーキテクチャ設計に集中できるようにすることです。
✨ 主な機能
- コードの自動レビュー: LLM から、潜在的なバグ、セキュリティ上の脆弱性、コード品質、ベストプラクティスについて詳細なフィードバックを得られます。
- GitHub 連携: GitHub API からプルリクエストの詳細(変更されたファイル、差分、説明)を直接取得します。
- LLM の柔軟な選択: OpenRouter.ai 経由でさまざまな人気の LLM(Claude、GPT、Mixtral など)と連携するか、Anthropic/OpenAI API に直接接続できます。
- わかりやすい出力: レビュー結果は見やすい HTML 形式(基本的な CSS を含む)で表示され、Markdown ファイルとしても保存されます。
- 公開リンクの自動生成: HTML レビューファイルには、サーバーによって生成された公開 URL からアクセスできます(共有やログ記録に便利です)。
- モジュール式プロジェクト構成: 任意のクライアント(Discord ボット、ウェブアプリ、その他の AI エージェントなど)と連携できるバックエンドサーバーとして設計されています。
🚀 インストール
以下の手順に従って、プロジェクトをローカル環境にセットアップして実行してください。
前提条件
- Node.js(バージョン 18.x 以降を推奨)
- Git
- GitHub アカウント(Personal Access Token 用)
- OpenRouter.ai アカウント(OpenRouter を使用する場合は API キー)、または Anthropic/OpenAI アカウント(プロバイダーの API を直接使用する場合は API キー)
手順
-
リポジトリをクローンします:
git clone https://github.com/username/mcp-github-pr-reviewer.git cd mcp-github-pr-reviewer(
https://github.com/username/mcp-github-pr-reviewer.gitがご自身のプロジェクトのリポジトリ URL の場合は、こちらに置き換えてください。) -
依存関係をインストールします:
npm install -
環境変数を設定します: プロジェクトのルートディレクトリ(
mcp-github-pr-reviewer/)に.envファイルを作成し、次の変数を追加します:PORT=3000 GITHUB_TOKEN=YOUR_GITHUB_PERSONAL_ACCESS_TOKEN_HERE # --- 以下の AI API オプションから 1 つを選択してください --- # オプション 1:OpenRouter.ai を使用する場合(柔軟性が高いため推奨) OPENROUTER_API_KEY=YOUR_OPENROUTER_API_KEY OPENROUTER_MODEL=anthropic/claude-3-sonnet # モデルの例:anthropic/claude-3-opus、openai/gpt-4o、mistralai/mistral-7b-instruct-v0.2 # オプション 2:Anthropic を直接使用する場合(このオプションを選択する場合は、以下の行のコメントを解除してください) # ANTHROPIC_API_KEY=YOUR_ANTHROPIC_API_KEY_HERE # ANTHROPIC_MODEL=claude-3-sonnet-20240229 # モデルの例:claude-3-opus-20240229、claude-3-haiku-20240307GITHUB_TOKEN:Pull Request の詳細を読み取れるよう、scoperepoを指定してGitHub Personal Access Tokenを作成します。OPENROUTER_API_KEY:OpenRouter.ai ダッシュボードから取得します。ANTHROPIC_API_KEY:Anthropic ダッシュボードから取得します。
-
サーバーを起動します:
npm startサーバーは
http://localhost:3000で実行されます。
💻 使い方
このサーバーは、コードレビューを開始するための主要な POST エンドポイントを 1 つ公開します。
エンドポイント
- URL:
http://localhost:3000/review-pull-request - メソッド:
POST - ヘッダー:
Content-Type: application/json
リクエストボディ(JSON)
{
"prLink": "https://github.com/owner/repo/pull/123"
}
prLink:レビューする GitHub Pull Request の完全な URL です。
curl リクエストの例
サーバーが起動したら、新しいターミナルを開き、次の curl コマンドを実行します:
curl -X POST \
http://localhost:3000/review-pull-request \
-H 'Content-Type: application/json' \
-d '{
"prLink": "https://github.com/octocat/Spoon-Knife/pull/1"
}'
(レビューする有効な GitHub PR のリンクに合わせて、https://github.com/octocat/Spoon-Knife/pull/1 を置き換えてください。)
レスポンスの例(JSON)
{
"status": "success",
"pull_request_url": "https://github.com/octocat/Spoon-Knife/pull/1",
"ai_review_markdown": "# Code Review: Feat/pusat resolusi PR PR#167\n\n...",
"ai_review_html_url": "http://localhost:3000/reviews/pr-review-octocat-Spoon-Knife-1-2025-06-03T10-15-00-000Z.html",
"output_files": {
"html": "./reviews/pr-review-octocat-Spoon-Knife-1-2025-06-03T10-15-00-000Z.html",
"markdown": "./reviews/pr-review-octocat-Spoon-Knife-1-2025-06-03T10-15-00-000Z.md"
}
}
ai_review_html_url:この URL をコピーして ブラウザー に貼り付けると、見やすい HTML 形式でコードレビューの結果を確認できます。- HTML ファイルと Markdown ファイルは、プロジェクトのルートにある
reviews/ディレクトリにもローカル保存されます。
⚙️ 詳細設定
AI モデルの変更
.env ファイルの OPENROUTER_MODEL(または Direct Anthropic を使用する場合は ANTHROPIC_MODEL)の値を変更することで、使用する AI モデルを簡単に切り替えられます。選択したモデルが、使用する API と互換性があることを確認してください。
AI プロンプトのカスタマイズ
AI レビューの焦点や形式を変更する場合は、server.js の getAIReview 関数内にある systemPrompt 変数と userPrompt 変数を編集します。ここが プロンプトエンジニアリングを行う主な場所です。
HTML 出力のスタイル設定
server.js の finalHtmlOutput 変数内にある <style> ブロックを編集して、出力 HTML ファイルの表示をカスタマイズできます。
⚠️ 一般的なエラーへの対処
ERR_REQUIRE_ESM:server.jsとpackage.jsonが ES Module として設定されていることを確認してください(「インストール」セクションを参照)。fs is not defined:import fs from 'fs/promises';がserver.jsの先頭にあることを確認してください。Pull Request またはリポジトリが見つかりません(404):指定した PR のリンクを再確認し、有効であること、リポジトリが公開されていること、または適切なアクセス権があることを確認してください。GitHub API へのアクセスが拒否されました(403):GITHUB_TOKENが有効で、リポジトリの読み取りに十分なrepo権限(スコープ)を持っていることを確認してください。AI レビューの取得に失敗しました(500):OPENROUTER_API_KEY(またはANTHROPIC_API_KEY)とOPENROUTER_MODEL(またはANTHROPIC_MODEL)を確認し、使用している AI API プロバイダーに十分な残高があることを確認してください。AI API のエラーの詳細については、サーバーログを確認してください。
🤝 貢献
貢献を歓迎します\!アイデアや改善案がある場合は、次の手順に従ってください:
- このリポジトリをフォークします。\
- 新しい機能ブランチを作成します(
git checkout -b feature/AmazingFeature)。 - 変更を加えてコミットします(
git commit -m 'Add some AmazingFeature')。 - ブランチにプッシュします(
git push origin feature/AmazingFeature)。 - Pull Request を作成します。
📄 ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。