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

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 サーバーへの安全な接続のみを許可し、不正アクセスを防止することができます。
前提条件
始める前に、次のツールがインストールされていることを確認してください。
-
Python 3.10 以降
-
uv(パッケージとプロジェクトの管理については、インストールに関するドキュメントをご覧ください)
-
Google Cloud SDK(
gcloud) -
kubectlコマンドライン ツール
インストール
環境変数を準備します。
サーバーとデプロイのコードを保存するため、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 にコピーして、サーバーを作成します。
この例では、リモート サーバーの推奨プロトコルである streamable-http トランスポートを使用しています。このスクリプトは、スケーラブルな MCP エンドポイントの実行に必要なロジックをカプセル化します。
MCP サーバーをローカルでテストする
MCP サーバーをテストするために接続する test_mcp_server.py スクリプトを作成します。GKE へのデプロイ前に MCP サーバーをテストするのに役立ちます。
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



