コンテンツに移動
デベロッパー

30 分でリモート MCP サーバーの構築と GKE へのデプロイを実行

2026年7月2日
https://storage.googleapis.com/gweb-cloudblog-publish/images/Gemini_Generated_Image_33hpsi33hpsi33hp.max-2600x2600.png
Abdelfettah Sghiouar

Cloud Developer Advocate, Google Cloud

※この投稿は米国時間 2026 年 6 月 17 日に、Google Cloud blog に投稿されたものの抄訳です。

30 分でリモート MCP サーバーを構築して GKE にデプロイする

ツールやデータソースのコンテキストを LLM に統合するのは簡単なことではなく、この点が AI エージェントの開発を難しくしています。この課題に対処するために、Anthropic は Model Context Protocol(MCP)を発表しました。これは、アプリケーションが LLM にコンテキストを提供する方法を標準化するプロトコルです。デベロッパーは、自分たちが開発した API をコンテキストとして他のデベロッパーのアプリケーションで利用してもらえるよう、専用の MCP サーバーを構築したいと考えることがよくあります。Google Kubernetes Engine(GKE)は、これらのリモート MCP サーバーをデプロイするためのスケーラブルで信頼性が高く安全な環境を提供します。

このガイドでは、GKE で安全なリモート MCP サーバーを簡単に設定する手順を示します。

MCP トランスポート

Model Context Protocol は、クライアント / サーバー アーキテクチャを採用しています。当初は、stdio トランスポートを使用したローカルでのサーバー実行のみをサポートしていました。その後の進化により、リモート アクセス トランスポート、具体的には Streamable HTTP をサポートするようになりました。

Streamable HTTP を使用すると、サーバーは複数のクライアント接続を処理できる独立したプロセスとして動作します。このトランスポートは、HTTP の POST リクエストと GET リクエストを使用します。サーバーは、POST メソッドと GET メソッドの両方をサポートする単一の HTTP エンドポイント パス(https://example.com/mcp など)を提供する必要があります。トランスポートについて詳しくは、公式ドキュメントをご覧ください。

GKE で MCP サーバーを実行するメリット

GKE 上に構築した MCP サーバーをリモートで実行することには、次のようなアーキテクチャ上のメリットがあります。

  • スケーラビリティ: GKE Autopilot は、変動の大きいトラフィックを処理できるように構築されています。MCP サーバーのステートレスな性質から、GKE は水平スケーリングによって需要の急増に効率的に対応できます。

  • 一元化されたアクセス: チームは一元化された MCP サーバーへのアクセスを共有できます。ローカルマシン、エージェント、またはパイプラインからサーバーに接続できるため、冗長化したローカル サーバーを実行する必要がなくなります。中央サーバーが更新されると、即座にすべてのユーザーに共有されます。

  • セキュリティの強化: Kubernetes Gateway API と SSL 証明書を組み合わせることで、トラフィックの安全な暗号化を簡単に強制できます。これにより、MCP サーバーへの安全な接続のみを許可し、不正アクセスを防止することができます。

前提条件

始める前に、次のツールがインストールされていることを確認してください。

インストール

環境変数を準備します。

読み込んでいます...

サーバーとデプロイのコードを保存するため、mcp-on-gke という名称のフォルダを作成します。

読み込んでいます...

次に、Google Cloud の認証情報を構成し、アクティブなプロジェクトを設定します。

読み込んでいます...

GKE Autopilot クラスタの作成をバックグラウンドで開始します。このプロセスには数分かかるため、この段階で開始することで、残りの設定を完了させる間にクラスタをプロビジョニングできます。高速自動スケーリングに対してコスト最適化コンピューティング(CCOP)が有効になっている Autopilot バージョンを使用してください。

 

読み込んでいます...

uv を使用してプロジェクトを作成します。これにより、pyproject.toml ファイルが生成されます。

読み込んでいます...

次に、必要な追加ファイルとして、server.py(MCP サーバーコード用)、test_server.py(テスト用)、Dockerfile(コンテナのデプロイ用)を作成します。

数学 MCP サーバー

大規模言語モデルは、テキストの生成、アイデアの要約、コンセプトの推論など、非決定的なタスクに優れている一方、数学演算のような決定的なタスクでは信頼性に欠けるという欠点があります。これを解決するために、デベロッパーは重要なコンテキストを提供するツールを作成できます。Python で MCP サーバーを構築するためのフレームワークである FastMCP を使用すると、加算と減算の 2 つのツールを備えた単純な数学サーバーを作成できます。

まず、FastMCP を依存関係として追加します。

読み込んでいます...

次のコードを server.py にコピーして、サーバーを作成します。

lang-py
読み込んでいます...

この例では、リモート サーバーの推奨プロトコルである streamable-http トランスポートを使用しています。このスクリプトは、スケーラブルな MCP エンドポイントの実行に必要なロジックをカプセル化します。

MCP サーバーをローカルでテストする

MCP サーバーをテストするために接続する test_mcp_server.py スクリプトを作成します。GKE へのデプロイ前に MCP サーバーをテストするのに役立ちます。

lang-py
読み込んでいます...

MCP サーバーをローカルで実行して接続をテストする:

読み込んでいます...

次に、新しいターミナルでテスト スクリプトを実行して、接続を確認します。

読み込んでいます...

出力には利用可能なツールおよび add ツールと subtract ツールを呼び出した結果が表示され、MCP サーバーが機能しているかを確認できます。

コンテナ イメージのビルド

デプロイ プロセスを高速化するために、クラスタの作成中にコンテナ イメージをビルドします。

まず、Dockerfile を準備します。

読み込んでいます...

次に、Artifact Registry を設定し、コンテナ イメージをビルドします。

Artifact Registry を設定する

読み込んでいます...

イメージのビルドと push を並列で実行する

読み込んでいます...

イメージのビルドが完了したら、クラスタが準備できていることを確認し、認証情報を取得します。クラスタの出力が「RUNNING」でない場合は、準備が整うまで待ちます。

読み込んでいます...

Gateway API と SSL を使用して GKE にデプロイする

次のステップでは、サーバー ワークロードをデプロイし、従来の Ingress ではなく Kubernetes Gateway API を使用して安全に公開します。これにより、SSL 証明書を介した安全な暗号化トラフィックが担保されます。

Kubernetes Deployment と Kubernetes Service を定義する deployment.yaml ファイルを作成します。プレースホルダを実際のプロジェクト ID とリージョンに置き換えます。

読み込んでいます...

この構成をクラスタに適用します。

読み込んでいます...

Pod が稼働していることを確認します。

読み込んでいます...

リモート MCP サーバーにアクセスできることを確認するために、ポート転送でサーバーにアクセスします。

読み込んでいます...

テスト スクリプトを実行して接続を確認します。テスト スクリプトの MCP サーバー URL を http://localhost:8080/mcp に編集してください。

読み込んでいます...

次に、接続を保護します。これを行うには、Google マネージド SSL 証明書を Gateway API リソースにアタッチします。まず、ロードバランサ用の静的 IP アドレスを予約します。

読み込んでいます...

ドメインの DNS A レコードを $MCP_SERVER_IP に向けます。例: mcp.yourdomain.com

Google マネージド証明書を作成します。mcp.yourdomain.com は実際のドメインに置き換えてください。

読み込んでいます...

gateway.yaml ファイルを作成してロードバランサをプロビジョニングし、Transport Layer Security(TLS)の終端を構成します。

読み込んでいます...

この構成をデプロイすると、外部トラフィックを MCP サーバーに安全にルーティングするのに必要なインフラストラクチャが作成されます。

読み込んでいます...

ロードバランサがアクティブになり、証明書がプロビジョニングされるまで数分待ちます。kubectl get gateway mcp-gateway を使用してステータスを確認できます。

リモート MCP サーバーにアクセスしてみます。テスト スクリプトを実行して接続を確認します。テスト スクリプトの MCP サーバー URL を https://mcp.yourdomain.com/mcp に編集してください。

読み込んでいます...

Cleanup

読み込んでいます...

関連情報

Model Context Protocol サーバーを Kubernetes にデプロイすることで、統合エージェントと AI ワークフローの新しいユースケースが可能になります。これらの機能について詳しくは、以下のリソースをご覧ください。

- Google Cloud クラウド デベロッパー アドボケイト Abdelfettah Sghiouar

投稿先