💪
Cursor MCPをWSL2で使いたい!
はじめに
Cursor MCPをWSLのnodeを使って動かしたい。
でも、どうやら皆さん苦戦を強いられている様子。
フォーラムでも盛り上がっている。
Redditでも盛り上がっている。
最適解!とはとても言えないですが、一応今時点での解決策を残してます。
結論
シェルスクリプトで何とかします。
node (nvm管理) の場合
/home/{wsl_user}/git/run_mcp.sh
(どこでもよいです)
#!/bin/bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
node "$HOME/.nvm/versions/node/v22.11.0/lib/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js" "/mnt/c/Users/{user}/Documents"
実行権限つける
chmod +x /home/{wsl_user}/git/run_mcp.sh
MCP Serverに登録
Cursor Settings > MCP Servers
wsl.exe -e bash -c /home/{wsl_user}/git/run_mcp.sh
コマンドプロンプトが立ち上がるので、そのままにしておいてください。
うまくいっているっぽい。
わーい。動いた。
コマンドプロンプトを落とすと、接続切れるので注意。
Python (pyenv管理) の場合
一癖あります。
#!/bin/bash
/home/{wsl_user}/.pyenv/shims/python -m mcp_server_git --repository ~/git/rag
簡単な解説
Cursor自体はWindowsにインストールされているので、WSLにあるnodeを呼び出すためにはwsl.exeでコマンド実行してあげる必要があります。
ここに罠があって、nodeコマンド実行しようとするとそのあとのファイルなどを読んでくれず、コマンドプロンプトでnodeが立ち上がって止まるんですよね。Claude MCPと同じ方法でやろうとして詰まる方ものすごく多いんじゃないかな。
内部実装はわからないですが
「Cursorはwsl.exe -e bash -c
の後、1つのコマンドまでしか実行してくれないのでは?」
という仮説を立てたとき、
「じゃあシェル動かせばええやん」
という結論に至り、やってみたらうまくいったという話です。
Windows環境ってやはり汚したくないし、なるべくWSLに寄せていきたいですよね。
誰かの救いになれば嬉しいです。
Discussion