僕は発展途上技術者

CloudflareにリモートMCPサーバーをデプロイし、各種MCPクライアントからSSEで接続する

Cloudflareにデプロイ

Cloudflareのアカウントを持っており、Cloudflareにアプリケーションをデプロイしたことがあることを前提としています。といっても、デプロイはDeploy to Cloudflareボタンを押すだけなので、アカウントさえ持っていれば以下の手順を追いさえすれば良いだけなのですが。

デプロイは

https://developers.cloudflare.com/agents/guides/remote-mcp-server/

にある冒頭のDeploy to Cloudflareボタンを押すだけです。

Cloudflare のダッシュボード画面にリダイレクトされるので、必要なら自分のGitHubアカウントと連携させてプライベートGitリポジトリを作成しておくと、このあと手を入れて独自のMCPサーバーに育てていけます。

AI Playground から接続

デプロイが終わったら、たとえばMCPクライアントである AI Playgroundから接続してみます。MCP Serversのところに

https://remote-mcp-server-authless..workers.dev/sse

を入力し、Connectを押せば、Available Toolsとしてaddとcalculateが表示され、以下のようにそれらのtoolsを呼び出すことができます。

Claude Desktop から接続

Claude Desktop からは、まだ Pro アカウントだと(Maxだとできるらしい)リモートMCPサーバーに接続できない(stdio方式でローカルで動くMCPサーバーとしか接続できない)ので、mcp-remote というsseをstdioに変換するブリッジを経由しないと接続できませんでした。

ただ、mcp-remote の README などで紹介されている npx mcp-remote を実行させて接続する方法はうまくいかなかったので、mcp-remote のソースを clone しビルドしたのち、claude_desktop_config.json に以下のように設定して接続しました。

{
  "mcpServers": {
    "math": {
      "command": "<nodeのフルパス>",
      "args": [
        "<mcp-remoteをインストールした場所のパス>/dist/proxy.js",
        "https://remote-mcp-server-authless.<cloudflareアカウント名>.workers.dev/sse"
      ]
    }
  }
}

Goose からは接続できない

OSSのMCPクライアントであるGooseからも試してみましたが、 うまく接続できずまだ原因がわかっておらず、Goose の Discord で聞いてみています。もし原因わかったら追記しておきます。

さくらVPSにRails8をKamalでデプロイする

rails8をKamalでデプロイする | FJORD BOOT CAMP(フィヨルドブートキャンプ) を参考にさくらVPSにRails8をKamalでデプロイしました。

手順どおりでほぼ問題なくデプロイできるのですが、さくらVPSは管理ユーザーがubuntuに固定(Kamalはrootを想定)されているので、それに対応するための手順が必要だった。

config/deploy.yml を編集して

ssh:
  user: ubuntu

を追加するのと、サーバー側で、

# root シェルで実行
echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/ubuntu

と実行して、ubuntu ユーザーがパスワードなしで sudo を実行できるようにするのと、

sudo usermod -aG docker ubuntu

を実行して、ubuntu を docker グループに追加する必要がありました。

これによって、

# /etc/ssh/sshd_config:
PermitRootLogin prohibit-password
PubkeyAuthentication yes

と変更する必要はありませんでした。

あと、最初、IPアドレスを host 名に設定したり、テストだからと ssl なしでデプロイしようとしたところはまりまくったので、サブドメインを用意し、ssl ありでデプロイするようにしました。

IPアドレスでもアクセスできるなど、下手に知っているのがあだとなりました。令和ははじめからサブドメイン用意し、ssl は始めからオン、Rails のレールに乗るのが大切ということを思い知りました。

プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

オンラインコンテンツ: 大人のためのScratch

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ