👌

WSL2環境で「Gemini Code Asist」をMCPクライアントにした時の話

に公開

はじめに

WSL2環境に、自作のMCPサーバーを置いてた時に、
Claude Code Desktopで、そのMCPサーバーを取り込めないものがあった。

Claude Code Desktopは、Windowsアプリだから

\\wsl.localhost\Ubuntu-24.04\なにがし

のようなパスを

\\\\wsl.localhost\\Ubuntu-24.04\\なにがし

のように指定してたが
MCPサーバーの内部実装によっては、これがうまく動かないものがあった
( うまくいくものもある、内部実装による )

そこで、
VSコードのプラグインの「Gemini Code Assist」をMCPのクライアントにしてみることにした。
( Windows環境にもっていけばいいんだが、
個人的には、WSL2でやるには!!
というところ、こだわって、ノウハウを蓄積するのを目的にしてるため。 )

WSL2環境で、VSコードを起動し、
VSコードのプラグインの「Gemini Code Assist」のチャット欄を通じて
該当のMCPサーバーを起動すれば、
LinuxのパスでMCPサーバーの設定をするので、上記の問題は解決できた

( 「 Gemini CLI 」について、近々、調査する予定だが、まだ、調査してないので、
一旦、VSコードのプラグインの「 Gemini Code Assist 」で行うことにした。 )

ただし、その途中過程で、
「Gemini Code Assist」が、実行したと嘘ついて、実際には実行していない
現象が発生した。

そうでなく、本当にちゃんと、自作のMCPサーバーを
チャット欄のプロンプトを通じて実行してもらうためには、

それなりの設定が必要だったので、そのことについて、当記事で記述することにした。

必要なもの、その1 「~/.gemini/settings.json」に設定が必要

{
    "mcpServers": {
        ・
        ・
      <中略>
        ・
        ・
        "image-editor": {
            "command": "node",
            "args": [
                "/myDev/mcp/image-editor-mcp/build/index.js",
                "/myDev/mcp/image-editor-mcp/image"
            ]
        }
        ・
        ・
      <中略>
        ・
        ・
    }
}

のようなものを、
~/.gemini/settings.json
に書く

各々のVSコードを開くワークスペースフォルダの直下の
.gemini/settings.json
でもいいらしい。

ただ、WSL2から起動した「Gemini Code Assist」を利用すると
~/.gemini/
の配下に他にもいろいろファイルが勝手にできるので、
それらとセットで、置いとくという意味で
~/.gemini/settings.json
でよろしいのではないか。

そのほうが管理がしやすい。

★ 追記 2025/08/02 ★
★ Gemini CLIを調査中だが、「 ~/.gemini/settings.json 」に書いてる
★ MCPサーバーがデフォルトで認識される動きになるようだ。

必要なもの、その2 「.vscode/settings.json」に設定が必要

VSコードを開く、ワークスペースフォルダの直下の
.vscode/settings.json

{
    "geminicodeassist.updateChannel": "Insiders"
}

を書いておく必要がある

必要なもの、その3 「Gemini Code Assist」でAgentを有効にしておく

.vscode/settings.json
に、
"geminicodeassist.agentMode.enabled": true
と書いておくことで、Agentを有効にするやり方もあるとのこと

必要なもの、その4 「GEMINI.md」をワークスペース直下に置いてuseを書いておく

ワークスペース直下に、
GEMINI.md
を作って useを書いて保存しておく

#use image-editor

「~/.gemini/settings.json」に設定を書いたのと名前を合わせる

この設定は、必須ではないが、
もし、設定してなかったら、
VSコードを起動しなおすと、
毎度、「Gemini Code Assist」で初回に
#use image-editor
と打ち込んだ後でないと
該当のMCPサーバーが使えないとのこと

常に、VSコード起動後、いきなり使える状況にするために、
GEMINI.md
に、該当のMCPサーバーの#useを書いておけばよいとのこと。

そうしておきたいMCPサーバーの分だけ
ワークスペース直下に、GEMINI.md
にuseを書いておけばよい。

上記までしたらVSコードを再起動

「Gemini Code Assist」で /mcpと打ち込んだときに出てきたらOK

「Gemini Code Assist」のチャット欄で
/mcpを打ち込んだときに、
認識しているMCPサーバーについて一覧が出てくる

( /まで打ち込むと、/mcp他、クイックピックでコマンドが出てくる
そのクイックピックが出てこないのは、Agentモードにしてないのではないか
 それだと、ただ単に、チャットの会話で/mcpと発言しただけで
 /mcpというコマンドとして認識してくれない。
Agentモードを有効にしてから、/でクィックピックでコマンド一覧が出てくることを確認してから
/mcp を打ち込むと、コマンドとして認識してもらえる )

そこに、自分が使いたいものがでてくるか

今回の場合は、image-editor

それをクリックして、展開した時に
内部実装されていれる toolsなどが出てくるか
を確認する。

チャットから指示を入力したとき、承認を求められたらAccept押す

.vscode/settings.json
に、
"geminicodeassist.agentYoloMode": true
を書いておけば、すべて自動承認するような動きになるとのことだが、
ちょっと怖いので、その設定はしなかった。
"geminicodeassist.agentYoloMode": true
を書くと、2025/08/01時点
VSコードのエディタ上は不明と表示されるが、エディタ上の検証が追いついてないだけ
らしく実際には、書いておけば、それが機能するらしい。

MCPサーバーの実装をTypescriptでした場合

package.jsonの
"scripts": {
が、

  "scripts": {
    "build": "tsc",
    "start": "node build/index.js ./sample-image",
    "dev": "nodemon --watch src --ext ts --exec \"ts-node src/index.ts ./sample-image\""
  },

npm i -D nodemon ts-node
などをしている前提

のようになっていたとき、

開発中は、npm run devで javscriptコードにホットリロードさせながら
動作確認すればよいが

MCPクライアントとしてのLLMからの実行してもらう際には
npm run startなどでのサービス起動はしていなくてもよい

npm run buid
などで、javascriptなどでコンパイル済みの
build/index.js
が置いてあればよい。

「~/.gemini/settings.json」で設定値を書く時に、
build/index.js
のパスを書いておけばよい

そしたら、MCPクライアントとしてのLLMを通じて、
自動起動されて動く仕組みになってるとのこと。

npm run buid
で、
build/index.js
を作り直したらVSコードを再起動すれば、
「Gemini Code Asist」がそれを認識するが

再起動しなくても、
/mcp restart image-editor
で「Gemini Code Asist」は認識するとのこと。
( /mcp restart image-editor を試してみたが、反映されなかったVSコード再起動が確実 )

Discussion