MCPのデプロイ:ホスティングの真のコスト

ほとんどのチュートリアルは、ローカルでMCPサーバーを構築する方法を教えてくれます。エンドポイントや認証についても教えてくれます。しかし、サーバーを24時間365日稼働させ続ける方法については教えてくれません。

私は個人のナレッジベース用にMCPサーバーを構築することに3ヶ月を費やしました。その過程で、デプロイこそが本当の苦労の始まりであることを身をもって学びました。

AIアシスタントをモバイル、ウェブ、またはクラウドクライアントから利用したい場合、localhostに頼ることはできません。パブリックなホストにデプロイする必要があります。

実際のプロダクション環境でのテストに基づいた、ホスティングオプションの分析は以下の通りです。

  • Heroku

    • メリット:デプロイが簡単で、HTTPSが自動適用される。
    • デメリット:無料プランは30分後にスリープします。これにより10〜30秒の遅延が発生します。この間、MCPクライアントはタイムアウトして失敗することがよくあります。
    • 判定:3/10。テストには良いが、日常的な利用には向かない。
  • Fly.io

    • メリット:デプロイが速く、グローバルネットワークに対応している。ファイルの永続ボリュームをサポートしている。
    • デメリット:無料プランのアプリは、1週間の非アクティブ期間の後に停止します。稼働させ続けるにはcronジョブが必要です。
    • 判定:6/10。ほとんどのユーザーにとって堅実な選択肢。
  • Serverless (例: Tencent Cloud SCF)

    • メリット:低トラフィックであれば極めて安価。中国などの特定の地域であれば、レイテンシが非常に低い。
    • デメリット:コールドスタートに数秒かかる。ステートレスなアーキテクチャを設計する必要がある。
    • 判定:7.5/10。使用頻度の低い個人のサイドプロジェクトに最適。
  • VPS (Virtual Private Server)

    • メリット:完全なコントロールが可能で、サーバーがスリープすることもない。月額コストが予測しやすい。
    • デメリット:セキュリティ、アップデート、SSLを自分で管理する必要がある。
    • 判定:マルチユーザーや高トラフィックに最適。

デバッグの時間を大幅に短縮するための3つの教訓:

  • タイムアウトを設定する:MCPクライアントはせっかちです。検索に10秒以上かかると、クライアントは接続を切断してしまいます。サーバー設定で厳格な接続タイムアウトを設定してください。

  • ヘルスチェックを追加する:クラウドプロバイダーは、アプリが稼働していることを確認する方法を必要とします。シンプルな /health エンドポイントを作成してください。

  • CORSを修正する:認証によってCORSのプリフライトリクエストが失敗することがよくあります。設定で、認証なしの OPTIONS リクエストを許可するようにしてください。

私のワークフロー:

  1. ローカルで構築する。
  2. ngrokを使用してリモートクライアントでテストする。
  3. 安定したらFly.ioまたはVPSにデプロイする。

デプロイは華やかな作業ではありませんが、不可欠です。AIクライアントが接続できなければ、完璧なサーバーも役に立ちません。

あなたはMCPサーバーのホスティングに何を使っていますか?コメントで教えてください。

Source: https://dev.to/kevinten10/mcp-deployment-what-they-dont-tell-you-about-hosting-your-mcp-server-from-3-months-of-production-nb8

Optional learning community: https://t.me/GyaanSetuAi