mcpField
🤖
🤖 MCP GitHub PR Reviewer

🤖 MCP GitHub PR Reviewer

ローカル
github.com/riomanikバージョン管理073 週間前に更新

🤖 MCP GitHub PR Reviewer について

MCP GitHub PR Reviewerは、開発チーム向けにGitHubのプルリクエストを初期レビューするNode.jsサービスです。PRの詳細を選択したLLMに送り、結果をHTMLとMarkdownで保存します。

主な機能

  1. 01バグやセキュリティ問題の自動レビュー
  2. 02PRのファイル、差分、説明の取得
  3. 03OpenRouter、Anthropic、OpenAI APIに対応
  4. 04レビュー結果をHTMLとMarkdownで保存
  5. 05HTMLレビューへのURLを提供

活用シーン

  1. 01GitHubのプルリクエストへの初期フィードバック
  2. 02HTMLレビューのチーム内共有
  3. 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 キー)
手順
  1. リポジトリをクローンします:

    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 の場合は、こちらに置き換えてください。)

  2. 依存関係をインストールします:

    npm install
    
  3. 環境変数を設定します: プロジェクトのルートディレクトリ(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-20240307
    
  4. サーバーを起動します:

    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 のエラーの詳細については、サーバーログを確認してください。

🤝 貢献

貢献を歓迎します\!アイデアや改善案がある場合は、次の手順に従ってください:

  1. このリポジトリをフォークします。\
  2. 新しい機能ブランチを作成します(git checkout -b feature/AmazingFeature)。
  3. 変更を加えてコミットします(git commit -m 'Add some AmazingFeature')。
  4. ブランチにプッシュします(git push origin feature/AmazingFeature)。
  5. Pull Request を作成します。

📄 ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルを参照してください。


コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。