🐔

Windows の Claude Desktop から WSL2 の Claude Code を mcp server として使う

に公開

はじめに

Claude 君(って言うか生成 AI 君?)凄いよね。ちょっとお金はかかるけどコーディング速度が驚異的。特にオレなんか JavaScript/TypeScript ガチ初心者なので最初に何から手を付けていいのか分からないんだけど、Claude 君にかかればプロジェクトの雛形から取っ掛かりの実装まであって言う間に整えてくれる。もう彼無しではコーディングできないの!(地雷系ジジイ

で、mizchi さんの記事 とかに影響されてしばらく Roo Code 使ってたんだけど、ちょっと気を抜くとソースに JJJJJJJJJJJJJJ とか入っちゃってるし、最近 Claude Desktop と Claude Code の組み合わせの記事をいくつか見かけたっていうのもあって、縁起ものなのでこちらも試してみることにした。(ミーハージジイ

が、今まで見た記事のヤツだとちょっとウチの環境ではうまく動かなかったので、もう何番煎じなのかも分からないが、自分向け備忘録を兼ねて設定をメモ。

条件としては、以下の通り。

  • Windows 11 に Claude Desktop をインストールしている
  • WSL2 に fnm で Node.js をインストールしている
  • fnm でインストールした Node.js に Claude Code をグローバルインストールしている。

設定ファイル

%APPDATA%\Claude\claude_desktop_config.json を以下のように編集して Claude Desktop を再起動する。

{
  "mcpServers": {
    "claude_code": {
      "command": "wsl",
      "args": [
        "--distribution",
        "Claude Code を動かしたいディストリビューション名",
        "--shell-type",
        "login",
        "--cd",
        "Claude Code に読み書きして欲しい最上位ディレクトリ",
        "--",
        "fnm",
        "exec",
        "--using",
        "使う Node.js のバージョン",
        "claude",
        "mcp",
        "serve"
      ]
    }
  }
}

ポイントは以下の通り。

  1. --shell-type login でログインスクリプトを処理させる。そうしないと fnm が動かない。
  2. --cd ディレクトリ で Claude Code の処理対象ディレクトリを指定する。そうしないと、Windows 側のカレントディレクトリ(試したら今は %LOCALAPPDATA%\AnthropicClaude\app-0.9.1 だった)で Claude Code が動いてしまうので、WSL2 側のファイルが読み書きできない。
    Claude Code はセキュリティ上の理由でカレントディレクトリ配下のファイルしか編集を許されていないっぽいので。
  3. fnm exec で Claude Code を起動する。これによって Claude Code のインストールパスを気にする必要が無くなる。
    fnm 使うと Claude Code のパスは起動するたび(って言うか fnm use とかするたび)に変わってしまうので、フルパスを設定ファイルに書くことはできない。

ちなみに、--distribution ディストリビューション名 は、デフォルトのディストリビューションで動かす場合は不要だし、--using Node.js のバージョンは、--cd で指定したディレクトリに .node-version があれば不要。

Claude Desktop の設定ファイルの場所を開く

上記の通り設定ファイルは %APPDATA%\Claude\claude_desktop_config.json なのだが、Claude Desktop で設定ファイルの場所をエクスプローラで開くこともできるので、忘れてしまっても大丈夫。

  1. Claude Desktop のアプリを表示する。
  2. 左上の🍔メニューから「ファイル」⇒「設定」で設定画面を開く。
  3. 左の「開発者」を選んでから真ん中下あたりの「構成を編集」をクリックする。
  4. エクスプローラでフォルダが開いて claude_desktop_config.json が選択されているハズ。

余談

ところで、Claude Desktop から Claude Code を mcp サーバとして使ってると、Anthropic コンソールのログには Claude Code からのアクセスがいっぱいいるんだけど(3.5 haiku だけど)、今のところ課金された様子が無いのはどんなナゾの力が働いているんだろう?
教えて!エロい人!

おわりに

内容うっすいな!

それでは、皆さんよい Claude ライフを!

Discussion