Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

VS Code v1.99のMCP Server機能で、WSL環境で動くgithub-mcp-serverを呼び出してみた

こんにちは、先日花冷えで寒かった日に「ちゃっぷい・・」と呟いたら娘が「どんとぽっちい?」と聞いてきて、一体誰がそんな古いネタを仕込んだのかと吹き出した木村です(ちなみに仕込んだのは妻でした)。

今回は最新の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機能が利用可能になりました。

code.visualstudio.com

また、2025年4月4日にはGitHubの「github-mcp-server」がパブリックプレビューになりました。

github.blog

早速こちらを試してみたのですが、github-mcp-serverをWSLで実行する際にちょっとした工夫が必要でしたので、その点を中心にご紹介します。

基本設定手順

GitHub MCP Serverを利用するには、以下の準備が必要です:

  1. GitHub Personal Access Token (PAT) の作成

    • 今回の検証では特別な権限は必要ないため、デフォルト権限のFine-grainedトークンを使用しました
  2. 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つです。

  • commandwslを指定し、WSLを経由してDockerを実行する
  • argsでbashを起動し、Docker実行コマンドを渡す
  • envWSLENVを設定することで、環境変数GITHUB_PERSONAL_ACCESS_TOKENをWSL内のDockerコンテナに渡す
    • /uフラグは、Windowsの環境変数をUNIX形式に変換することを指示している

動作確認

上記の設定を行い、コマンドパレットからMCP Serverを起動すると、GitHub Copilotのエージェントモードのツールリストに、起動したmcp serverが表示されるようになります。

ツール一覧に起動したmcp serverが表示されている

実際に以下のようなコマンドを使って、GitHubのIssue情報を取得できました:

@mcp get_issue /microsoft/vscode/issues/245826

このコマンドで、VS Code自体のIssue #245826の詳細情報を取得できることを確認しました。

mcp serverのget_issueコマンドを実行した様子

まとめ

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