「リモート」から「ローカル」のMCPを使う、ソブリンMCP
こんにちは、fjm2uです。
この記事では、MCP Routerでローカルに立ち上げた MCPサーバーを、Cloudflare Tunnel経由でインターネット越しに公開し、ChatGPTなどのリモートクライアントから利用する手順を紹介します。
はじめに
MCP RouterというローカルのMCP管理アプリを8ヶ月ほど作っています。
今回は、「このソフトウェアをリモートから使いたい」というissueが上がってきた
のですが、既存の実装で既に可能なので、その手順を紹介します。
つまり、「リモート」から「ローカル」のMCPを使えます。
この「自己主権的にMCPを管理し、利用する」考え方をソブリンAIに準えてソブリンMCPといっています。たとえば、
- どの MCP サーバーを有効にするか
- ログや利用履歴をどこに保存するか
をすべて自分のローカル側で完結させたまま、外部のAIサービスにはツールだけを貸し出すイメージです。
ローカルでのMCPサーバの立ち上げ方
本題の前に、ローカルMCP管理アプリの必要性を伝えさせてください。
単純にローカルでMCPサーバを立ち上げるには、MCPを使いたいアプリの中で設定を書きます。
例えばClaude Desktopでは以下です。
{
"mcpServers": {
"everything": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-everything"
]
}
}
}
しかし複数のアプリで多くのMCPを利用する場合、管理が大変になります。なので、ローカルのMCP管理アプリを入れておくと便利です。
MCP Routerでは一度追加するだけで、どこからでも使えてMCP管理(コンテキストの最適化を含む)できます。
ローカルMCP管理アプリの強み
MCP RouterでMCP管理が便利になったのは確かですが、なぜローカルにこだわる必要があるのでしょうか。
つまり、「MCP Routerのユーザは、なぜMCP Routerを使ってローカルで立ち上げたMCPサーバーをリモートから使いたい」のか。その理由には以下があります。
- MCP RouterのUXが良くて、どこからでも使いたいから(開発者が言っててすみません。でもUXは継続的に改善してますし、UXのIssueがあったら最優先で解決するようにしてます)
- CodexがWSL2の利用を推奨しているが、MCP RouterはLinuxに対応しておらず、WSL2からMCP Routerを利用するにはリモートアクセスが必要になるから
- コードに透明性があってローカルで動く場合、不透明なリモートMCPサーバ管理よりも信頼できるから
- ローカルにMCPの利用データを蓄積したいから
- ローカルで立てたMCPサーバはどれだけ使っても無料だから(電気代とか以外)
ローカルMCP管理アプリの(直接的なリモートMCP利用に対する)上記の優位性を考慮したとき、単に「ローカルMCP」というより、「ソブリンMCP」と言うのが適切だと思います。
「リモート」から「ローカル」のMCPを使う

ソブリンMCPのアーキテクチャの一例
MCP Routerでは、他アプリとの通信にローカルのHTTP通信を利用しています。
この通信には、アプリを識別しログを保存するため、Bearer認証を利用しています。このトークン長は十分な強度を持ち、リモートからの利用も可能です。
リモートからの利用では、Cloudflare TunnelかTailscaleが現実的な選択肢になると思います。ChatGPT等のリモートサービスから利用したい場合は前者、WSL2等の個人的な利用では後者が適していると思います。
ここではCloudflare Tunnelを使って進めます。
MCP Routerのセットアップ
- MCP Routerをダウンロードしてインストールします
- MCPサーバーを追加します
- MCPアプリを追加します

MCPサーバを追加した画面

カスタムアプリを追加します。
カード内の「How to use」ボタンを押してトークンを表示して、これをメモしておきます。

mcpr_から始まるトークンをメモします
Cloudflare Tunnelのセットアップ
- Cloudflareにログインします
- Tunnelをセットアップします
- 適当なドメインとhttp://localhost:3282を指定します

Cloudflare Tunnelでlocalhost:3282を指定
これでlocalhost:3282がネットからアクセス可能になりました。
inspectorによる接続確認
-
npx @modelcontextprotocol/inspectorでMCPインスペクタを起動します - TunnelのURLと、MCP Routerアプリ内で発行したトークンを入力して接続します
- MCPのリクエストができます。ログも保存されてます
Transport TypeはStreamable HTTPです。
URLはCloudflare Tunnelで設定したドメイン(ここではmcpr.fjm2u.net)を指定して、パスに/mcpを指定します(ここでは https://mcpr.fjm2u.net/mcp )。
Custom HeadersでAuthorizationキーに先ほどメモしたトークンをBearer <token>形式でセットします。

MCP Routerに接続すると、ツール・リソース・プロンプトが使えます
なお、HTTPヘッダーにx-mcpr-projectをキーとしてプロジェクト名をセットすると、プロジェクトに入れたMCPサーバのみが使えます(コンテキストを制限できる)。
ChatGPTで使う
個人でChatGPTを契約してないので、カスタマイズ・コネクターを追加できず試せません。
試してみたら、以下Discordでこっそり教えてほしいです。英語でも中国語でも、ちゃんと読みます。
おわり
まだダウンロードしてない方は、こちらからダウンロードできます。
本記事の質問・意見等は、DiscordかXまでお願いします。
Discussion