Open8

VSCode v1.101から可能になったGitHubリモートMCPサーバーに接続する

Kesin11Kesin11

VSCode v1.101でリモートMCPサーバーへの認証付きのアクセスが可能になり、同時にGitHubのリモートMCPサーバーが公開された(public preview)
https://code.visualstudio.com/updates/v1_101#_mcp-support-for-auth

https://github.blog/changelog/2025-06-12-remote-github-mcp-server-is-now-available-in-public-preview/

自分のVSCodeではもともとGitHubのローカルMCP + PATで認証していたので、この状態から試したらどうなるのかを実験してみた記録です

Kesin11Kesin11

https://github.com/github/github-mcp-server

GitHubのMCPサーバーはREADMEのボタンからインストール可能なので、新しく追加されたRemote GitHub MCP Serverの方のインストールボタンを押す

するとVSCodeの方でこのようなダイアログが表示されるので、Install Serverを選択する

ローカルMCPのときに設定していた github の設定がおそらく自動で書き換えられた。
VSCodeが認証を行うダイアログを表示してくるのでAllowを選択

Kesin11Kesin11

するとブラウザの方でよく見るGitHubの認証画面が立ち上がる。
まずアカウント選択

次にSSOが必要なOrganizationの認証。
自分が所属している会社ではGitHub Enterpriseを利用していてSSOが必須なのでこの画面が出ましたが、そういうところに所属していない人は出ないかもしれない。
今回は会社とは関係のないプライベートなPCで試しているので、むしろ会社の情報は見られない方が良いから何も認証しないでContinueをクリック。

次はこれまたいつものよく見るパーミッションの確認画面。
結構色々なものを要求するな、という気はするけどVSCode + GitHub Copilotなので全面的に信用します。

Kesin11Kesin11

ブラウザでの認証が完了すると、VSCodeのアカウント一覧のところに今回のMCP用の認証が追加された。
このあたりはまだよく分かっていないが、今回は一旦気にしない。

これで認証できているはずなので動作確認。
githubのmeのAPIを呼び出すだけのtoolだが、ちゃんとMCPを使って自分の名前を返してくれたので認証はちゃんとできてそう

Kesin11Kesin11

改めてgithubのMCPサーバーのtool設定を確認すると、全てのtoolにチェックが付いていた。

MCPから利用できる機能を制限したい場合はここでチェックを外したり、これまたVSCode v1.101から追加されたtool setsやcustom chat modeなどでコントロールしてね、という方向なのだろうか?
このあたりはもうちょっと触ってみないと分からない。
https://code.visualstudio.com/updates/v1_101#_chat-tool-sets
https://code.visualstudio.com/updates/v1_101#_custom-chat-modes-preview

Kesin11Kesin11

ちなみにGitHubのローカルMCPであれば実は GITHUB_TOOLSETS="repos,issues,pull_requests,code_security" というように環境変数で使用可能なツールを限定したり、--read-only オプションで読み取りのツールのみに制限するという機能が存在した。
https://github.com/github/github-mcp-server?tab=readme-ov-file#specifying-toolsets
https://github.com/github/github-mcp-server?tab=readme-ov-file#read-only-mode

けどリモートMCPになったことで、おそらくそれらの機能は無くなってしまったと思われる。
というのも、settings.jsonのmcpを手動で書き換えようとした際にリモートMCPだとdevとheaderのキーしか受け付けないように見えるため。

ツール自体がローカルで動いていないから、envもコマンドオプションも渡せないのはそれはそう。

Kesin11Kesin11

追記: 6/18:
READMEではなくdocs/にリモートサーバーの詳細なドキュメントがありました。https://github.com/github/github-mcp-server/blob/main/docs/remote-server.md

これによると GITHUB_TOOLSETS 相当のツールを限定する方法はAPIのURLか、あるいはヘッダーの X-MCP-Toolsets=<toolset>,<toolset>... で実現するようです。

同様に--read-only相当の機能もAPIのURLか、あるいはヘッダーの X-MCP-Readonly=true によって実現できるようです

Kesin11Kesin11

追記: 6/18:
headerで機能制御できるのであればPATによる認証もいけるのでは?と思ってAuthrizationヘッダーを付けてみたらちゃんと認証できました。
ClineでリモートMCPサーバー + PATによる認証 + toolはissueとpull_requestに限定する場合はこういうjsonになります

    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "type": "streamableHttp",
      "headers": {
        "Authorization": "Bearer $YOUR_PAT",
        "X-MCP-Toolsets": "issues,pull_requests"
      }