こんにちは、先日花冷えで寒かった日に「ちゃっぷい・・」と呟いたら娘が「どんとぽっちい?」と聞いてきて、一体誰がそんな古いネタを仕込んだのかと吹き出した木村です(ちなみに仕込んだのは妻でした)。
今回は最新のVisual Studio Code v1.99で追加されたMCP Server機能と、WSL環境でgithub-mcp-serverを動かして利用する方法についてご紹介します。
MCP Serverとは
MCP Serverとは、Model Context Protocol(モデル コンテキスト プロトコル)に基づく仕組みで、AI(特に大規模言語モデル:LLM)が外部ツールやデータベース、APIなどにアクセスするための標準化されたインターフェースを提供するものです。Model Context ProtocolはAnthropic社が提唱したオープンプロトコルであり、AIと外部リソースをつなぐ「橋渡し役」として機能します。
Visual Studio Code v1.99のアップデートで、エージェントモードにてMCP Server機能が利用可能になりました。
また、2025年4月4日にはGitHubの「github-mcp-server」がパブリックプレビューになりました。
早速こちらを試してみたのですが、github-mcp-serverをWSLで実行する際にちょっとした工夫が必要でしたので、その点を中心にご紹介します。
基本設定手順
GitHub MCP Serverを利用するには、以下の準備が必要です:
GitHub Personal Access Token (PAT) の作成
- 今回の検証では特別な権限は必要ないため、デフォルト権限のFine-grainedトークンを使用しました
VS Codeの
settings.json
でMCP Serverの設定を行う
WSLでの設定のポイント
ドキュメント通りに設定すると、WSL環境では「spawn docker ENOENT
」というエラーが発生します。これはVS CodeがWSL内のDockerコマンドを直接呼び出せないことが原因です。
VS Codeのsettings.json
でのmcpに関する設定を以下のように変更します。
"mcp": { "inputs": [ { "type": "promptString", "id": "github_token", "description": "GitHub Personal Access Token", "password": true } ], "servers": { "github": { "command": "wsl", "args": [ "bash", "-c", "docker run --rm -i -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}", "WSLENV": "GITHUB_PERSONAL_ACCESS_TOKEN/u" } } } },
この変更の重要な点は以下の3つです。
command
にwsl
を指定し、WSLを経由してDockerを実行するargs
でbashを起動し、Docker実行コマンドを渡すenv
のWSLENV
を設定することで、環境変数GITHUB_PERSONAL_ACCESS_TOKEN
をWSL内のDockerコンテナに渡す/u
フラグは、Windowsの環境変数をUNIX形式に変換することを指示している
動作確認
上記の設定を行い、コマンドパレットからMCP Serverを起動すると、GitHub Copilotのエージェントモードのツールリストに、起動したmcp serverが表示されるようになります。
実際に以下のようなコマンドを使って、GitHubのIssue情報を取得できました:
@mcp get_issue /microsoft/vscode/issues/245826
このコマンドで、VS Code自体のIssue #245826の詳細情報を取得できることを確認しました。
まとめ
Visual Studio Code v1.99で導入されたMCP Server機能は、GitHub Copilotの可能性を大きく広げるものです。特にGitHubのMCP Serverを活用することで、GitHubの機能を直接Copilot経由で呼び出すことができるようになります。
WSL環境のdockerでmcp serverを動かす場合は、上記の設定例を参考に、wslコマンド経由で実行することと、環境変数の受け渡しを正しく設定することがポイントです。github-mcp-serverだけでなく、標準入出力で連携をする他のMCP Serverをdockerで動かす場合も同様の設定で実行可能になるかと思います。
皆さんの参考になれば幸いです。
サービス一覧 www.alterbooth.com cloudpointer.tech www.alterbooth.com