APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

WSL2 の VS Code で GitHub MCP Server (github-mcp-server) を動かしてみた

こんにちは、ACS 事業部の埜下です。
猫も杓子も「MCP」な今日このごろですが、いかがお過ごしでしょうか。

先月、VS Code の Insider 版でしか使えなかった GitHub Copilot Agent mode が March 2025 のアップデート (version 1.99) で Stable 版でも利用できるようになりましたね!

そしてなんと!GitHub 公式からも GitHub MCP Server が登場しました!

そんな状況で思わず「きたか!(ガタッ」となり、ついに私も MCP デビューしました。

そこで今回は、Windows の WSL2 にリモート接続した VS Code で GitHub MCP Server を動かす方法を紹介します。
また、WSL2 を使った環境でのハマりポイントも記載しています。

MCP とは

まずは MCP (Model Context Protocol) について共通の理解が必要です。

公式ドキュメントでは以下のように説明されています。

MCP は、アプリケーションが LLM にコンテキストを提供する方法を標準化するオープン プロトコルです。
MCP は、AI アプリケーション用の USB-C ポートのようなものです。

また、「みのるん」さんこと、KDDIアジャイル開発センター株式会社の御田さんが公開している MCP のスライドがとても参考になりますので、ぜひご一読ください。

speakerdeck.com

GitHub MCP Server とは

上記スライド内で登場した GitHub 用「MCP サーバー」が GitHub MCP Server です。 抽象化して説明すると「自然言語で GitHub を操作するためのツール」です。

以下のような場面で使うことができます。

  • GitHub ワークフローとプロセスの自動化
  • GitHub リポジトリからデータを抽出して分析
  • GitHub のエコシステムとやり取りする AI 搭載のツールとアプリケーションを構築

今回は VS Code から利用していますが、Claude Desktop などでも利用できます。

GitHub MCP Server の使い方

前提条件

GitHub Copilot Agent mode から GitHub MCP Server を使う場合、いくつか前提条件があります。

1 つ目は、GitHub Copilot Agent mode を使えるようにすることです。 VS Code をバージョン 1.99 以上にアップデートしてください。

2 つ目は、WSL2 で docker コマンドを実行できる状態にすることです。 GitHub MCP Server は Docker コンテナを VS Code から起動して MCP サーバーとして利用するので、docker コマンドが必要になります。 コンテナが起動するのであれば Podman など他のツールを使うこともできると思いますが、今回は Docker のみ検証しています。

3 つ目は、GitHub の PAT (Personal Access Token) を用意することです。 こちらのドキュメント などを参考に PAT を発行してください。

インストール

GitHub MCP Server 公式リポジトリ の README には VS Code へ簡単に GitHub MCP Server をインストールするボタンも用意されています。

README にあるインストール ボタン

このボタンを押下すると VS Code の設定ファイル settings.json に GitHub MCP Server の設定が追加されます。

{
  "mcp": {
    "inputs": [
        {
            "type": "promptString",
            "id": "github_token",
            "description": "GitHub Personal Access Token",
            "password": true
        }
    ],
    "servers": {
      "github": {
        "command": "docker",
        "args": [
            "run",
            "-i",
            "--rm",
            "-e",
            "GITHUB_PERSONAL_ACCESS_TOKEN",
            "ghcr.io/github/github-mcp-server"
        ],
        "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  }
}

画像のように、settings.json に追加された GitHub MCP Server の設定に「▷Start」という文字が表示されています。

GitHub MCP Server の起動

「▷Start」を選択すると、VS Code で GitHub MCP Server が起動して GitHub の PAT (Personal Access Token) が尋ねられます。

GitHub の PAT を入力する

PAT を入力すると GitHub Copilot Agent mode から利用できる状態となります。

GitHub Copilot Agent mode から利用

起動した GitHub MCP Server を GitHub Copilot Agent mode から利用するには、GitHub Copilot Chat のウィンドウで "Agent" を選択します。

GitHub Copilot Chat で "Agent" を選択

すると、画面左上に⚒️のアイコンと数字が出てきます。 これは MCP サーバーから提供されている「ツール」の状態と利用できる数を表しています。 settings.json で指定した MCP サーバーとうまく連携できていない場合、この⚒️がエラーアイコンになります。

この状態で GitHub Copilot に GitHub に関する質問をすると、GitHub MCP Server 経由で GitHub の情報を使って回答してくれます。

GitHub MCP Server 経由でアカウント情報を取得

ツールの実行が初めての場合、GitHub Copilot Agent mode から MCP に問い合わせていいか確認が出ます。 想定したツールであることが確認できたら Continue してツールを実行してもらいます。

ツールの実行確認

WSL2 環境でのハマりポイント

Connection state: Error spawn docker ENOENT

WSL2 の環境の場合、公式リポジトリの README にあるインストール ボタンで追加された設定では [info] Connection state: Error spawn docker ENOENT というエラーとなり GitHub MCP Server が動かないことがあるかと思います。 これは、インストールボタンで追加された設定により VS Code が WSL2 の docker コマンドを参照できていないためです。

この問題を解決する方法として以下の 2 通りが考えられます。

  • WSL2 経由で docker コマンドを呼び出す
  • WSL2 上の VS Code Server から docker コマンドを呼び出す

前者の方法についてはオルターブースさんから記事が公開されていました。

aadojo.alterbooth.com

ここでは後者の方法について説明します。

VS Code の設定を見るといくつかタブが表示されています。

リモートの settings.json

「Remote [WSL: Ubuntu]」タブを開いて、settings.json に GitHub MCP Server の設定を記述します。

この「Remote [WSL: Ubuntu]」の settings.json は WSL2 上の VS Code Server 向けの設定になります。 そのため、WSL2 に接続している VS Code から docker コマンドを参照でき、GitHub MCP Server のコンテナが起動されます。

Error response from daemon: container create: unable to find network configuration for default: network not found

GitHub MCP Server で設定した docker コマンドを実行できても、[warning] [server stderr] docker: Error response from daemon: container create: unable to find network configuration for default: network not found というエラーとなり GitHub MCP Server が動かない場合があります。 これは WSL2 にインストールした Docker の bridge ネットワークが一般ユーザから利用できないことで起きています。

そこで、settings.json に追加した GitHub MCP Server の設定に --network bridge を追加します。

{
  "mcp": {
    "inputs": [
        {
            "type": "promptString",
            "id": "github_token",
            "description": "GitHub Personal Access Token",
            "password": true
        }
    ],
    "servers": {
      "github": {
        "command": "docker",
        "args": [
            "run",
            "-i",
            "--rm",
            "--network",    <- 追加
            "bridge",         <- 追加
            "-e",
            "GITHUB_PERSONAL_ACCESS_TOKEN",
            "ghcr.io/github/github-mcp-server"
        ],
        "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  }
}

こうすることで、GitHub MCP Server のコンテナを起動する際に bridge ネットワークを参照することができ、エラーが解消しました。

そもそもですが、私の環境では Podman などの Docker 以外のツールを入れたり設定変更したりしていたため、それが bridge ネットワークが見れなくなっていた原因かもしれません。

$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
2f259bab93aa   podman    bridge    local

$ sudo docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
3e03198b3f95   bridge    bridge    local
58beeb45237a   host      host      local
7411f26d7350   none      null      local

まとめ

今回は GitHub MCP Server を WSL2 に接続した VS Code から利用してみました。

  • GitHub が MCP サーバーを公開
  • VS Code の GitHub Copilot Agent ode から GitHub MCP Server を利用可能
  • WSL2 環境の場合はいくつかハマりポイントあり

今度は MCP サーバーの作成にもチャレンジしてみたいです。