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