emahiro/b.log

日々の勉強の記録とか育児の記録とか。

github-mcp-server を試してみる

サマリ

GitHub MCP Server とは

github.blog

GitHub が公式に公開してくれた MCP 対応した remote server 。このエントリを書いてる時点では現在 preview

あと Go 製。リモートサーバーとしての提供を考えると docker でコンテナを立てたりせずに、バイナリポン置きで動作する Go はツール作るのには向いてる言語だなと思います。

試してみた

設定方法はほぼ https://github.com/github/github-mcp-server?tab=readme-ov-file#installation に書いてあるとおりで動きます。

docker をインストールしてるなら設定を追加するだけで動きます。 Github の PAT が必要なので事前に GitHub の設定で作成しておく必要はあります。

Go 製ということもあって、バイナリを go install github.com/github/github-mcp-server/cmd/github-mcp-server@latest でインストールできます。また VSCode では引数に stdio を設定することで PAT を設定ファイルに渡さなくてもよいと言うのは開発者ツールとしてはよく出来てるなと思います。

以下のような設定になります。

  "mcp": {
    "inputs": [
      {
        "description": "GitHub Personal Access Token",
        "id": "github_token",
        "password": true,
        "type": "promptString"
      }
    ],
    "servers": {
      "github": {
        "args": [
          "stdio"
        ],
        "command": "github-mcp-server",
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  },

実際動かしてみましたが、 get_me で認証者の情報を取得できればほぼすべての tool は動きます。
ただ動かしてみたときにプロンプトが難しくて、手元のターミナルで git コマンド叩いちゃったりするなど、工夫が必要なところがありました。

使い所

git コマンドに馴染んでいたり、GitHub の操作に慣れているとそこまであって有用かと言われると難しいラインですが、一つ、Pull Request の一覧を取ってこれるので半期ごとの振り返り等で半年分の Pull Request を取ってきて要約させるとかそういう用途では有用だなと思いました。

Workflow の操作が MCP のツールとしてサポートされるとわざわざ GitHub Actions の結果見ずとも CI が落ちた理由とかわかってそういうユースケースでは便利になりそうだとという予感がありますが、そもそものインプットする情報量が多すぎる場合はまともに動かないことも今現在はあるのでまだまだ発展途上で各方面のエコシステムが揃うのが待ち遠しいです。