3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL上で起動したMCPサーバを、Claude Desktopから利用する

Last updated at Posted at 2025-03-23

注意事項

この記事は下記記事を参考に作成しました。

結論から先にいうと

(zshを使う場合 / bashに置き換えても動くと思います)
claude_desktop_config.json に以下のような内容を書く

{
    "mcpServers": {
        "you_mcp_name": {
			"command": "wsl.exe",
			"args": [
				"zsh",
                "-c",
				"zsh (mcpサーバをwsl内で起動するスクリプトのパス)"
			]
        }
    }
}

前提

MCPサーバを自前で立てたことがある前提で話すため、ライブラリのインストールや環境構築の話はしません。

経緯

下記の記事を参考に、ClaudeDesktopの、MCPサーバを触ってみました。

ざっくり開発者から見たMCPサーバってどんな感じ?

Claude Desktopを前提に話します。

下記のように @mcp.tool() をつけた関数を定義しておくと、関数のコメントで定義されている内容がClaudeに渡ります。

Claude Desktopが、会話に応じて、この渡した関数を呼んでくれます。

from typing import Any
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("hidamari_character")


@mcp.tool()
async def get_users_favorite_hidamari_schetch_caractor(user_name:str) -> str:
    """get users favorite hidamari schetch caractor
        (ユーザー名ごとに、ひだまりスケッチの好きなキャラクターを返す)
        Args:
            user_name: ユーザー名
    """
    # Claudeが上記メソッド定義と、関数についたコメントを読み込んで、いい感じに呼び出してくれる。

    if user_name == "masachaco":
        return "宮ちゃんです"

    return "該当のユーザーの情報は見つかりませんでした"

def main():
    # 標準入力で受け付ける
    mcp.run(transport='stdio')

if __name__ == "__main__":
    # MCPサーバを起動
    main()


Claude Desktopの設定ファイル claude_desktop_config.jsonに上記を呼び出すための、コマンドを記載する必要があります。

コマンドの内容は、上記の場合だとPythonコードを実行する内容を記載すればよいです。
Windows上のPythonで書かれたMCPサーバなら下記のようになるはずです。

{
    "mcpServers": {
        "weather": {
            "command": "python",
            "args": [
                "C:\\mcp_example_dir\\main.py"
            ]
        }
    }
}

そのまんまですね。pythonで main.pyを実行しなさい。という定義になります。
これを指定しておくと、Claude Desktopは自動的に、上記の main.py を実行し、MCPサーバを立ち上げ、定義した関数をいい感じに呼び出せるようになります。

WSL上のMCPサーバを立ち上げるにはどうすればいいの?

それでは、WSL上のMCPサーバを立ち上げるにはどうすればいいんでしょうか。
Dockerを使う手もありますが、今回は、Dockerは使わずWSL上のコードを実行したいです。

答えは、下記のように wsl.exe を指定して、コマンドを実行させればOKでした。
私はzshを使用しているので、zshを指定して実行しています。

{
    "mcpServers": {
        "you_mcp_name": {
			"command": "wsl.exe",
			"args": [
				"zsh",
                "-c",
				"zsh (mcpサーバをwsl内で起動するスクリプトのパス)"
			]
        }
    }
}

mcpサーバをwsl内で起動するスクリプトのパスはWSL上のパスを指定します。

mcpサーバをwsl内で起動するスクリプトは下記のような形にしました。

#!/bin/zsh
cd /(mcp サーバのあるディレクトリへ移動)

# 環境変数など読み込み
source ~/.zshrc

# MCPサーバを実行する
python3 simple_mcp.py

実行結果

※ MCPの定義を読み直させるためには、Claude Desktopを再起動する必要があります。

うまく設定できると、下記のように、右下nツールマークが表示され

image.png

ツールマークをクリックすると、作成したMCPの説明がでます。

image.png

実行してみるとうまく、ツールを使って、私の好みが取得できたようです。

image.png

結論

思ったよりもサーバを実装する手順が簡単すぎてびっくりした

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?