Github MCP で Pull Request のレビュー依頼をする

## はじめに
最近、いろんな MCP を試しては「おぉ〜」と感動しているフロントエンジニアです。
今回は Github MCP を用いて、Pull Request のレビューコメントをしてもう方法を簡単に紹介しようと思います。

## 背景
Pull Request レビューに関して、AI が前から流行っています。
代表的なのでは CodeRabbit や PR Agent があります。最近では Copilot レビューというのも公開され、みなさんプロンプトを作成していたりするのではないでしょうか？
私の現場では無料の PR Agent を使用していますが、精度が本当に良くなく、レビューコメントがノイズになることが多々あります。
CodeRabbit は精度がすごくいいと聞くのですが、有料でもあり導入に時間がかかって今も社内で導入が進んでなかったり・・・
Copilot レビューは CodeRabbit よりも精度は低いそうで、イマイチかな〜と感じてたりしました。
そんな中で現れたのが MCP サーバです。
MCP サーバでレビューコメントをしてもらえるようになれば、Claude でソースのレビューをしてもらえるので、少しでも精度も高くなる＋無料で試せるという（上限はありますが）メリットがあるため、試してみようと思った感じです。

## Github MCP
Github MCP では、MCP サーバが普及してきた後に公開された下記の MCP サーバ

https://github.com/modelcontextprotocol

ではなく、直近で見つけた [github-mcp-server](https://github.com/github/github-mcp-server) を使用して試すことにします。
というより、Pull Request に対して何かしらのアクションをできるのが、この github-mcp-server になる感じです。
実際のリポジトリを確認すると下記のようにあります。

![スクリーンショット 2025-04-07 0.52.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341734/0a9816a3-cea0-4a09-8cf6-8f8e800b0ec9.png)

何やら、Pull Request に対して色んなアクションができそうですね。

## 実際に試してみる
今回は最近リリースされた VSCode v1.99 を用いて MCP サーバを構築していきます。

### 設定
Claude Desktop の MCP サーバを使用している場合は、そちらに設定を追加すると VSCode にも反映されるようになりますので、Claude Desktop 使用の方は、そちらの設定ファイルに追加します。

```json:claude_desktop_config.json
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}
```

or

```json:.vscode/settings.json
{
  "mcp": {
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
        }
      }
    }
  }
}
```

Github のトークン取得に関しては[こちら](https://docs.github.com/ja/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)をご確認ください。
公式を確認してもわからない場合は、ググるとたくさん取得方法が出てきますので、そちらをご確認していただければです。

### いざ！試してみる！
試す際は実際の PR が必要になるので、個人開発しているものがあれば、そちらから適当なソース修正をして PR を提出します。
VSCode 側では、チャットを Agent モードに変更するのを忘れないようにしてください。

![スクリーンショット 2025-04-07 1.11.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341734/8dfdfe6a-b861-4fc5-a829-695dbfa7e5b9.png)

MCP サーバが起動できていることを確認します。（下記の添付画像ではサーバ名が「github-ghcr」となっています。上記の設定通りにやっていただいた場合は「github」となるのでそこは誤認識のないように🙏）

![スクリーンショット 2025-04-07 1.14.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341734/4059d47f-83cf-4797-8d28-bb4e04ab1b25.png)

![スクリーンショット 2025-04-07 1.12.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341734/811cd111-067f-4903-8a12-9812cb9f78ab.png)


VSCode に下記のプロンプトを流してみます。

```
https://github.com/{repository}/pull/{pull request ID}
上記の PR の最新の diff を取得し、レビューをしてください。また、そのレビューを PR のコメントに残してください。
```

そうした際の結果がこちらです。

![スクリーンショット 2025-04-07 1.16.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341734/66ea55fd-1706-4d93-a3f5-a18768cbdef5.png)

画像で見る感じ、完璧に動いてそうです！！
その後、PR を確認すると下記のようにコメントが届いてました！

![スクリーンショット 2025-04-07 1.17.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341734/27ba3cea-b828-4e21-89a6-a6aa732ea10d.png)

diff の行数に対して、コメントすることもプロンプトを工夫すればいけるかも？と思ったりしますが、一旦はここまでとします。
このコメントが来てから、そのコメントに対して VSCode の Agent モードで修正もしてもらえば、もう人の手はいらないですね。
そしたらコメントも残さなくていいのでは？とも思いましたがエビデンスとして残すでいいのかなと自己解決しました。

## まとめ
Github MCP を試してみて、今回は Pull Request のコメントのみ試しましたが、他にも issue 作成などもできるとあるので、幅広く操作が可能となりそうです。

自身のアウトプットのため、殴り書きで書きました。
ちょっと分かりずらいなと思う箇所があればコメントください。
それでは、最後までご愛読いただきありがとうございました！