最近 Minisforum MS-S1 Max というミニ PC を買いました。Ryzen AI MAX+ 395 & メモリ 128GB 搭載で、要するに「デカめのローカル LLM をそこそこの速度で動かせる」マシンです。 (EVO-X2 みたいなやつです)
これの上で LM Studio + tailscale を動かして、無料 LLM ホームサーバーとして運用しています。
ただ、その LLM サーバーを叩くクライアント何にするか問題があるのですが、 LM Studio Plugin を使うことで、LM Studio が LLM クライアントとしても使えるようにできるので、今回は LM Studio が LM Studio Plugin を使って別の LM Studio を叩けるようにするまでの設定方法を紹介します。 (文章がややこしい)
サーバー側の設定
まずは接続される側の設定をします。結構多くの記事で解説されているので lmstudio サーバー とかで検索書けると色々わかりやすいと思います。
Qiita だと↓も参考になります。
LM Studio のサーバー起動
https://lmstudio.ai/ から LM Studio をインストールして起動します。(ユーザーの種類について聞かれたら PowerUser or Developer と答えると良いです)
サイドバーのターミナルっぽいアイコンをクリックし、サーバーの設定を行います。
Stutus を Running に変更して起動し、サーバーの設定は、
- Serve on Local Network を有効
- Just-in-Time Model Loading を有効
に設定します。
合わせて使いたい LLM も選びましょう。サイドバーの虫眼鏡アイコンをクリックすると、 Model の検索ページが出ます。
ここから使いたい LLM のモデルをダウンロードします。
この記事では OpenAI gpt-oss 20B を選びますが別のモデルでも OK です。右下の Download を選択すると、ダウンロードされ、使用可能になります。
(任意) Tailscale の設定
必須ではないのですが、Tailscale も入れておくと便利です。Tailscale は簡単に VPN を構築するツールで、これをホームサーバーと接続したい PC に入れておけば、別のネットワークにいても接続できるのでホームサーバー用途としてめっちゃ便利です。
基本的には
- Tailscale を接続したい PC、サーバーにインストール
- 初回だけアカウントのセットアップ (種類は Free で OK)
- 後は Tailscale を起動していれば互いに接続できるようになる
という感じで完了です。起動した Tailscale で表示されている IP アドレスは後に接続先として使います。
クライアント側の設定
今度は接続する側です。同様に LM Studio (+ Tailscale) をインストールします。
LM Studio Plugin のインストール
LM Studio Plugin は LM Studio の拡張の仕組みで、ツールの追加、RAG などの前処理の追加、LLM バックエンドの追加…など色々できます。詳しくは↓のドキュメントを見てください。(TypeScript で書けるのもあって結構理解するのは簡単です)
今回はサンプルとして作られている lmstudio/remote-lmstudio と lmstudio/openai-compat-endpoin の両方を試したのですが、最終的に fork した tomoasleep/openai-compat-endpoint を使いました。
lmstudio/remote-lmstudio を試す (1) (動作が怪しい)
はじめに lmstudio/remote-lmstudio を試します。説明を見る限りでは今回の用途にぴったりですね。
Web 上でのプラグインのページから Run in LM Studio をクリックすると LM Studio にインストールできます。
Download するか聞かれるので Download を選びます。
すると利用可能になるので、あとは画面右側のパネルを Generator に切り替えて
- Model key: 利用するモデル ID
- Remote LM Studio Base URL:
ws://(サーバーのIPアドレス):1234
を設定します。
モデル ID の調べ方
と、ここで「モデル ID is 何」となると思うのですが、 curl で http://(サーバーのIPアドレス):1234/v1/models と叩くと、利用可能なモデルのリストが返ってくるので、これの id を入力すれば OK です。
curl http://xxx.xx.xx.xx:1234/v1/models
{
"data": [
{
"id": "text-embedding-nomic-embed-text-v1.5",
"object": "model",
"owned_by": "organization_owner"
},
{
"id": "llama-3.2-1b-instruct",
"object": "model",
"owned_by": "organization_owner"
},
{
"id": "qwen/qwen3-vl-8b",
"object": "model",
"owned_by": "organization_owner"
},
{
"id": "google/gemma-3-12b",
"object": "model",
"owned_by": "organization_owner"
},
{
"id": "openai/gpt-oss-20b",
"object": "model",
"owned_by": "organization_owner"
}
],
"object": "list"
lmstudio/remote-lmstudio を試す (2) が、動作が怪しい
という感じで、別の PC の LM Studio に接続できるようになるのですが、自分が試した感じは挙動がちょっと怪しいです。
モデル側の区切り文字が入っていたり
読み込み中に謎の文字を返したりします。
ということで繋がるが今のところ挙動が怪しいのでもう片方も試します。
tomoasleep/openai-compat-endpoint を試す
ということで、 lmstudio/openai-compat-endpoint の方を見ます。
こちらは OpenAI 互換の API を叩ける Plugin で LM Studio も OpenAI 互換の API を持っている (https://lmstudio.ai/docs/developer/openai-compat) のでいけそう…なのですが、何故か Model の指定が選択肢式で別のモデルが選べません。
ということで fork して任意のモデルが設定できるよう改善したので、今回はこれを使います。
これの設定は以下の通りです。
- Model: 利用したい model ID を入力
- Override Base URL:
http://(サーバーのIPアドレス):1234/v1を指定- ※ OpenAI 互換なら使えるので ollama の URL を指定することも可能です
- Token: なしで OK
設定すると無事疎通してサーバー側が推論したものを返してくれます。
Tool や MCP の利用も可能で、例えば Context7 を指定してドキュメントを調べて返してくれる…みたいなことも可能です。
最後に
という感じで、 LM Studio から別の LM Studio に接続する方法を紹介しました。
もちろんこれを使わなくてもサーバー側で Open WebUI 立てるとか色々方法はあるのですが、ホームサーバー用途だと管理するもの増やしたくないというのがあるのと、LM Studio がリモートも叩けるというのはインストールするツールを増やさずに済むので便利そうです。
LM Studio Plugin も TypeScript 使えることもあり思ったより敷居が低く、ツールやバックエンドの拡張ができるので、試しに触ってみるのも面白いかもしれません。














