Authenticated MCP SSE Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports containerization of the MCP server for deployment to Google Cloud Run, with the deployment script handling Docker container building and pushing to Google Container Registry.

  • Enables hosting an MCP server on Google Cloud Run with IAM authentication, allowing teams to securely access the server over the internet using Cloud SDK for authentication and proxy connections.

Google Cloud Run で MCP SSE サーバーをホストする

現時点では(2024年3月4日)、MCPは認証と認可の対応に取り組んでいます。2025年上半期には完了する予定です。問題は、今すぐにでもMCPサーバーをチームと共有したいということです。それで、今の状況です。CursorなどでSSE MCPサーバーを使用する唯一の即効性のある解決策は、ネットワーク層ベースのソリューション(例:プロキシ)です。Basic認証やAPIキーは諦めましょう。

GCP Cloud Run とユーザーベースの IAM 認証を利用して、クライアントがインターネット経由でカスタム MCP サーバーにアクセスできるようにするシンプルで安全な方法を作成しました。

MCPロードマップ

仕組み

MCPサーバーはGoogle Cloud Runでホストされています。Cloud Run IAM認証を利用することで、Google Cloud SDKを使用してプロキシ接続を作成し、インターネットから安全にサーバーに接続できます。

TLDR README

すでに docker と gcloud CLI がローカルにセットアップされている場合は、最小限の設定ですぐに使用できるはずです

**ステップ 1:**プロジェクト ID、サービス アカウントのメールなどを使用してdeploy.sh更新します。

**ステップ 2:**デプロイが成功したら、提供されたクラウド実行 URL を取得し、プロジェクト ID とともにmcp_proxy.tsに追加します。

**ステップ3:**プロキシnpx ts-node mcp_proxy.tsを実行する

ステップ 3: http://localhost:3030を使用して MCP サーバーにアクセスします - [設定] > [機能] > [MCP サーバー] の下にあるカーソルに追加します (コマンドではなく SSE を選択してください)

長くて退屈なREADME

展開手順

  1. リポジトリをクローンする
  2. npm install実行して依存関係をインストールします
  3. npm run devを実行してローカルでサーバーを起動します。

Google Cloud Runへのデプロイ

MCP サーバーを Google Cloud Run にデプロイするには:

  1. Google Cloud SDKがインストールされていることを確認してください
  2. プロジェクトの詳細でdeploy.shスクリプトを更新します。
    • PROJECT_ID : Google Cloud プロジェクト ID
    • REGION : ご希望の GCP リージョン
    • SERVICE_ACCOUNT_EMAIL : 適切な権限を持つサービスアカウントのメールアドレス
  3. デプロイメント スクリプトを実行します。
    chmod +x deploy.sh ./deploy.sh

デプロイメント スクリプトは次の処理を実行します。

  • MCPサーバー用のDockerコンテナを構築する
  • Google Container Registry にプッシュする
  • 認証を有効にして Cloud Run にデプロイする

デプロイされたMCPサーバーに接続する

デプロイされた MCP サーバーに接続するには:

  1. MCP プロキシをローカルで実行します。
    npx ts-node mcp_proxy.ts
  2. プロキシは次のことを行います。
    • Google Cloud で認証されているか確認する
    • 認証トークンを自動的に取得する
    • ローカルプロキシサーバーを作成します(デフォルト: http://localhost:3030
    • 認証されたリクエストを Cloud Run サービスに転送する
  3. MCPクライアントをローカルプロキシURLに接続するように設定する

カーソルでMCPサーバーを使用する

  1. まず、プロキシを実行して、ローカルマシンと Google Cloud Run でホストされている MCP サーバー間の接続を確立します。
npx ts-node mcp_proxy.ts
  1. 次に、MCP サーバー セクションの [設定] > [機能] タブ内で、ローカル プロキシ サーバーをカーソルに追加します。

  1. さあ、準備完了です!新しいコンポーザーを起動し(エージェントモードになっていることを確認してください)、特定の場所の天気を調べてみましょう。プロキシが接続されているターミナルの出力とコンポーザーの出力を合わせると、以下のようになります。

安全

この設定により、セキュリティ上の利点がいくつか得られます。

  • MCP サーバーは認証なしでは公開できません
  • すべての接続はGoogle Cloud IAMで保護されています
  • チームメンバーが接続するにはGoogle Cloud SDKへのアクセスが必要です

接続の問題

  • mcp_proxy.tsの Cloud Run URL がデプロイされたサービスと一致していることを確認します。
  • Cloud Run ログでサーバー側のエラーがないか確認する

貢献

貢献を歓迎します!お気軽に問題やプルリクエストを送信してください。

ライセンス

マサチューセッツ工科大学

-
security - not tested
A
license - permissive license
-
quality - not tested

Google Cloud Run でホストされる安全な MCP (Model Context Protocol) サーバー。Google Cloud IAM 経由で認証されたアクセスを提供することでチームのコラボレーションを可能にし、公式の MCP 認証が実装される前にチームがインターネット経由でカスタム MCP サーバーを共有できるようにします。

  1. How it works
    1. TLDR README
      1. LONG BORING README
        1. Deployment Steps
        2. Deployment to Google Cloud Run
        3. Connecting to your deployed MCP server
        4. Use the MCP server in Cursor
        5. Security
        6. Contributing
        7. License
      ID: vpk7fxri26