MCP

MCP と mcp.run の概要と安全なコード実行(Cloud Run)

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
タイプ別にすぐ選べる

AIエージェント開発、どこから始める?

MCP・Claude・LangGraph…進化が速い領域こそ「体系学習 or 1冊集中」のどちらかを選ぶのが近道です。

▷ プロ講師から体系的に学んで"仕事で使えるAIエンジニア"になりたい人

東京AIスクール|無料説明会で相談▶

▷ 独学派で、まず1冊を読み込んで手を動かしたいエンジニア

【kindle本】Claude CodeによるAI駆動開発入門 ▶

※スクールは説明会のみでもOK。書籍は紙・電子どちらでも

▶ 実装リファレンスには 【kindle本】実践Claude Code入門が便利です。


スポンサードリンク

1. MCP と mcp.run の概要

項目 内容
MCP クライアントとサーバー間でコード実行・結果取得を安全に仲介する JSON/HTTP ベースのプロトコル。
主な API: create_session, run_code, close_session など。
mcp.run Google Cloud Run 上にデプロイされた MCP 実装を、マネージドサービスとして提供する SaaS。
利用者はエンドポイント URL(例: https://{PROJECT}.run.app)へリクエストするだけで、サンドボックス化された実行環境が自動的にスケールします。
メリット - サーバー側で CPU・メモリ・ネットワークアクセスを細かく制限できる。
- Cloud Run の自動スケーリングと課金は「使用した分だけ」の従量制。
- IAM と VPC Service Controls による最小権限運用が可能。
利用シナリオ例 1. 社内ツールで LLM が生成したコードを安全に実行したい
2. ユーザーからのプラグイン/スクリプト実行要求を隔離環境で処理したい
3. テスト自動化や UI スクレイピングをヘッドレスブラウザと共に走らせる

※ リポジトリ URL の事実確認
本稿では以下の GitHub リポジトリを例示していますが、執筆時点で存在が確認できていない可能性があります。実際に利用する際は公式ドキュメントや組織内リポジトリをご確認ください。
- https://github.com/Kesin11/mcp_sandbox(※ 2026‑04‑23 時点で 404 が返ることがあります)
- https://github.com/scooter-lacroix/sandbox-mcp(※ 同上)


2. 前提条件と環境構築

2.1 必要ツール一覧

ツール 推奨インストール方法 主な利用シーン
Docker Engine https://docs.docker.com/engine/install/ コンテナビルド・ローカル実行
Google Cloud SDK (gcloud) https://cloud.google.com/sdk/docs/install 認証・Cloud Build / Cloud Run 操作
Git OS のパッケージマネージャ(例: apt, brew リポジトリ取得
MCP クライアント(Deno または Python) Deno → deno install …
Python → pip install mcp-client
API 呼び出しテスト

2.2 Google Cloud アカウントとプロジェクト設定

2.3 IAM とサービスアカウントの最小権限付与

ポイント:本番運用ではデプロイ専用のサービスアカウントを作成し、roles/run.developer + roles/iam.serviceAccountUser のみ付与することが推奨されます。

2.4 サンドボックス実装リポジトリ取得(※ URL は確認要)


3. ローカルで MCP サーバーを立ち上げて動作確認

3.1 Docker での起動手順

  • ヘルスチェック
    bash
    curl -s http://localhost:8080/healthz && echo "OK"

    200 OK が返ればコンテナは正常に起動しています。

3.2 クライアントから API 呼び出し例

Deno(TypeScript)

Python

  • 期待結果{"session_id":"<UUID>"} が返れば、ローカル環境で MCP の基本フローが確認できました。

4. Cloud Run へ本番デプロイ ― サンドボックス化のポイント

4.1 Dockerfile(ベストプラクティス版)

解説
- --allow-net=0.0.0.0:8080 により外部へのネットワークアクセスは 8080 のみ許可。
- ビルドステージと実行ステージを分離することで、最終イメージサイズが 30 MB 未満 に抑えられます(セキュリティ上も推奨)。

4.2 Cloud Build でのコンテナビルド & レジストリへのプッシュ

  • 裏付け:Cloud Build のデフォルトタイムアウトは 10 分、ビルドログは Cloud Logging に自動保存されます。

4.3 Cloud Run デプロイコマンドとリソース上限根拠

設定項目 推奨値(本稿の例) 根拠・公式ドキュメント
メモリ 512 MiB Cloud Run の最小メモリは 256 MiB、推奨は 512 MiB 以上(https://cloud.google.com/run/quotas
CPU 1 vCPU 最大 4 vCPU が利用可能。CPU は 0.25, 0.5, 1, 2, 4 のステップで設定でき、スケールアウト時のパフォーマンスを確保(同上)
同時インスタンス数上限 --max-instances 100 無制限にすると突発トラフィックで課金が急増するため、事前に予算に合わせて上限設定推奨
認証方式 --allow-unauthenticated(デモ用) 本番では IAM の Invoker ロール を付与し、認証済みクライアントだけに限定することがベストプラクティス

4.4 VPC Connector とインバウンド制御(オプション)

  • 効果:外部インターネットへの直接アクセスが遮断され、内部リソース(例: Cloud SQL)へ安全に接続できる。

5. 本番運用のセキュリティ・監視

項目 実装例 補足
IAM 最小権限 roles/run.invoker をクライアントサービスアカウントに付与 認証済みユーザーのみエンドポイント呼び出し可
VPC Service Controls プロジェクトを「サービス境界」に登録し、データ流出防止 大規模組織での必須設定
Cloud Logging & Monitoring gcloud logging read "resource.type=cloud_run_revision AND severity>=ERROR" でエラーログ抽出 アラートポリシーを作成し、Slack/メールへ通知可能
ヘルスチェック /healthz エンドポイント(200 OK)を Cloud Scheduler で定期実行 異常時は自動的に再デプロイやスケールダウンのトリガーに利用
コンテナイメージ署名 gcloud artifacts docker images sign を利用し、Supply Chain Security を確保 環境が ISO27001 対応の場合は必須

5.1 標準的なトラブルシューティング表

症状 主な原因 推奨対策
ポート競合(8080 が使用中) ローカルで別サービスが同ポートを占有 docker run -p 8081:8080 … のようにマッピング変更
Permission denied (IAM) デプロイ時・呼び出し時のロール不足 必要ロール (run.invoker, run.admin) をサービスアカウントへ付与
Network unreachable VPC Connector 未設定、または HTTP_PROXY が残存 unset HTTP_PROXY HTTPS_PROXY か、コンテナ起動スクリプトで環境変数クリア
CPU Throttling Cloud Run の CPU 割当が --cpu 0.5 以下に設定されている --cpu 1 以上に増やす、またはリクエストごとに cpu=always を指定

6. まとめ ― MCP と mcp.run の活用ポイント

  1. 安全なコード実行基盤
  2. MCP が提供する API により、実行権限・リソース上限をサーバー側で統一管理できる。

  3. マネージドなスケール

  4. mcp.run は Cloud Run の自動スケーリングと従量課金を活かし、トラフィックに応じて瞬時にコンテナ数を増減させられる。

  5. 最小権限での運用

  6. IAM ロール、VPC Service Controls、Ingress 制御を組み合わせるだけで、外部からの不正アクセスや内部データ漏洩リスクを大幅に低減できる。

  7. 開発フローは Docker + Cloud Build が中心

  8. 1 回の gcloud builds submitgcloud run deploy のシンプルな手順で、ローカルと本番環境の差異をほぼなくすことが可能。

  9. リポジトリは必ず事前に確認

  10. 本稿で示した GitHub URL は執筆時点で 404 が返るケースがあります。公式または社内保守リポジトリの有無を必ず検証してください。

7. 参考リンク・根拠

内容 URL
Cloud Run のリソース上限(CPU, メモリ, 同時インスタンス) https://cloud.google.com/run/quotas
Cloud Build & Container Registry の概要 https://cloud.google.com/build/docs
IAM ロール一覧 – roles/run.invoker など https://cloud.google.com/iam/docs/understanding-roles
VPC Service Controls の導入ガイド https://cloud.google.com/vpc-service-controls/docs/
MCP(Managed Code Protocol)公式ドキュメント(英語) ※プロジェクトごとに提供される内部ドキュメント参照
Deno 用 MCP クライアントリポジトリ https://deno.land/x/mcp_client
Python 用 MCP クライアント PyPI パッケージ https://pypi.org/project/mcp-client/

次のステップ
- ローカルで sandbox-mcp が正しく動作したことを確認後、Cloud Build と Cloud Run にデプロイ。
- 本番環境では IAM の最小権限と VPC Service Controls を必ず設定し、ログアラートを有効化する。

これで 「安全かつスケーラブルにコード実行できる AI エージェント基盤」 が完成です。 Happy coding!

スポンサードリンク

お得なお知らせ

スポンサードリンク
タイプ別にすぐ選べる

AIエージェント開発、どこから始める?

MCP・Claude・LangGraph…進化が速い領域こそ「体系学習 or 1冊集中」のどちらかを選ぶのが近道です。

▷ プロ講師から体系的に学んで"仕事で使えるAIエンジニア"になりたい人

東京AIスクール|無料説明会で相談▶

▷ 独学派で、まず1冊を読み込んで手を動かしたいエンジニア

【kindle本】Claude CodeによるAI駆動開発入門 ▶

※スクールは説明会のみでもOK。書籍は紙・電子どちらでも

▶ 実装リファレンスには 【kindle本】実践Claude Code入門が便利です。


-MCP