こんにちは、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 のスライドがとても参考になりますので、ぜひご一読ください。
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 をインストールするボタンも用意されています。
このボタンを押下すると 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」という文字が表示されています。
「▷Start」を選択すると、VS Code で GitHub MCP Server が起動して GitHub の PAT (Personal Access Token) が尋ねられます。
PAT を入力すると GitHub Copilot Agent mode から利用できる状態となります。
GitHub Copilot Agent mode から利用
起動した GitHub MCP Server を GitHub Copilot Agent mode から利用するには、GitHub Copilot Chat のウィンドウで "Agent" を選択します。
すると、画面左上に⚒️のアイコンと数字が出てきます。
これは MCP サーバーから提供されている「ツール」の状態と利用できる数を表しています。
settings.json
で指定した MCP サーバーとうまく連携できていない場合、この⚒️がエラーアイコンになります。
この状態で GitHub Copilot に GitHub に関する質問をすると、GitHub MCP Server 経由で GitHub の情報を使って回答してくれます。
ツールの実行が初めての場合、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 コマンドを呼び出す
前者の方法についてはオルターブースさんから記事が公開されていました。
ここでは後者の方法について説明します。
VS Code の設定を見るといくつかタブが表示されています。
「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 サーバーの作成にもチャレンジしてみたいです。