mcpField
L
LocalCloud MCP

LocalCloud MCP

ローカル
local.cloudクラウド・インフラ11 週間前に更新

LocalCloud MCP について

LocalCloud は、開発者や AI コーディングエージェントが Google Cloud アプリをローカルで構築、テスト、デバッグするための環境です。CLI が Docker ベースのランタイムと Google Cloud 互換サービスを管理し、環境変数を通じて既存の Google クライアントライブラリをローカルに接続します。

主な機能

  1. 01Google Cloud 互換サービスのローカル実行
  2. 02CLI によるランタイムとプロジェクト管理
  3. 03環境変数による SDK エンドポイント設定
  4. 04Docker ボリュームへのデータ永続化
  5. 05準備状況と診断情報の確認
  6. 06MCP によるコーディングエージェント接続

活用シーン

  1. 01Google Cloud アプリのローカル構築とテスト
  2. 02エージェントが操作・確認できるローカルクラウド状態の提供
  3. 03実際のクラウド料金なしでの実験
  4. 04ランタイム再起動後のテストデータ保持

MCP 対応

LocalCloud はコーディングエージェント向けの MCP ブリッジを備え、stdio の `lc mcp` または HTTP の `:5380/mcp` で利用できます。エージェントはローカルのプロジェクト状態を作成、投入、確認、リセットできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpblocalcloud-mcp-0.1.12.mcpb

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

LocalCloud CLI

開発者と AI コーディングエージェントのための、無料のローカルクラウド環境です。

ターミナルまたはコーディングエージェントから、Google Cloud アプリケーションのビルド、テスト、デバッグを行えます。 MCP によって、エージェントをローカルサービス、SDK 設定、テストデータ、準備状況、診断に接続できます。

Google Cloud のサービス料金をかけずにローカルサービスのワークフローを実行し、1 つのコマンドですぐに始められます。 マシンの容量に合わせて、実験やテストスイート用のローカルプロジェクトを作成できます。

ウェブサイト · MCP ガイド · Claude と Codex のマーケットプレイス設定

バージョン CLI ランタイム プロトコル Python ライセンス

インストール · クイックスタート · 仕組み · サービス · コマンド · AI エージェントと MCP · トラブルシューティング


localcloud(別名 lc)は、LocalCloud の公式ホスト CLI です。コンテナランタイムのライフサイクル、複数プロジェクトのコンテキスト、SDK 環境変数、永続 Docker ボリューム、Model Context Protocol ブリッジを管理します。これにより、アプリケーションコードは、ループバックを指すようにするだけで、これまでどおり同じ Google Cloud クライアントライブラリを呼び出せます。

$ lc doctor
╭── LocalCloud v0.1.12 ───────────────────────────────────────────────────────────────────────╮
│                            │ Top commands                                                   │
│ Checking LocalCloud setup  │  localcloud (or lc)    status | start | stop | restart         │
│                            │  eval $(lc env)        Exports env vars that redirect cloud se…│
│           ╭────╮           │────────────────────────────────────────────────────────────────│
│        ╭──╯    ╰──╮        │ Context                                                        │
│       ╭─╯        ╰─╮       │  Data Volume: localcloud-data        Project: local-gcp-project│
│      ╭╯            ╰╮      │  User: local-developer                                         │
│      ╰──────────────╯      │  Config: built-in defaults (overridable by ./localcloud.yaml)  │
│                            │                                                                │
├────────────────────────────┴────────────────────────────────────────────────────────────────┤
│ Supported Services (● 22 enabled · ○ 5 disabled)                                            │
│  ● Storage      ● Pub/Sub      ○ Firestore    ● Bigtable     ● Spanner      ● BigQuery      │
│  ● Cloud SQL    ● AlloyDB      ● Memorystore  ● Dataproc     ● Tasks        ● Scheduler     │
│  ● Functions    ○ Cloud Run    ○ Compute      ○ GKE          ● Workflows    ○ Vertex AI     │
│  ● Sheets       ● KMS          ● Secrets      ● IAM          ● Logging      ● Monitoring    │
│  ● Resource Mgr ● Service Usage ● Billing                                                   │
╰─────────────────────────────────────────────────────────────────────────────────────────────╯
 Tip: Run localcloud guide for AI agent workflows, or lc for the fast alias.

Docker  29.8.1 (/opt/homebrew/bin/docker) · Colima 0.10.1 (VZ, Rosetta on)
Image   agentcloud/localcloud:latest (ID: 6c619bcf17c5)
Ports   5380-5406 (in use by localcloud)
[OK] LocalCloud is ready to start  0.5s

LocalCloud を選ぶ理由

  • 27 のサービスを 1 つのコンテナで。 Storage、Pub/Sub、BigQuery、Spanner、Bigtable、Firestore、IAM、KMS、 Dataproc、Cloud Run などがまとめて起動します。手作業で接続する多数のエミュレーターは必要ありません。
  • SDK のコードを変更する必要はありません。 eval "$(lc env)" を実行すると、公式の Google クライアントライブラリがすでに参照しているエミュレーター変数がエクスポートされます。同じ呼び出し、同じオブジェクト、ループバックエンドポイントを使えます。
  • 分離され、データが保持される環境。 名前付き Docker ボリュームがランタイムの識別子です。普段使いの環境と並行して CI 用の一時環境を実行し、再起動後もデータを保持できます。
  • 人にも 自動化にも 適しています。 すべてのコマンドは、読みやすいターミナルの概要を表示します。また、--verbose を指定すると、同じ結果を完全な JSON で出力します。--dry-run で変更内容を事前に確認でき、--debug で同等の docker run コマンドを表示できます。
  • エージェントを前提に設計されています。 ファーストクラスの MCP ブリッジにより、AI コーディングエージェントは、人が UI を操作することなく、自身のループの中で GCP に近い実際の状態をプロビジョニング、シード、検査、リセットできます。
  • ライブクラウドへの影響はゼロです。 CLI は生成されるすべてのエンドポイントがループバックであることを検証し、実際の googleapis.com アドレスの出力を拒否します。本番環境への暗黙のフォールバックはありません。
比較
LocalCloudgcloud beta emulatorsTestcontainers実際の GCP 開発プロジェクト
サービス27約5(Bigtable、Datastore/Firestore、Pub/Sub、Spanner)同じエミュレーターをラップすべて
セットアップCLI コマンド1つサービスごとにプロセス1つテストコードに記述プロジェクト、課金、IAM
SDK の接続設定eval "$(lc env)"エミュレーターごとに手動コンテナーごとにコード内で設定ADC + 実際の認証情報
ウェブコンソール内蔵——あり
Terraform / OpenTofulc env --format terraform——あり
エージェント制御(MCP)内蔵———
データの永続性Docker ボリューム。再起動後も維持プロセスの実行中テストの実行中永続的
コスト / 認証情報なしなしなし課金対象、実際のキー

サービスの幅広さは、呼び出し可能なサービスレベルの統合機能の利用可能性を指します。操作レベルの互換性はサービスごとに異なり、LocalCloud の互換性マトリックスにサービスごとに記録されています。

インストール

前提条件

Docker Desktop、Colima、OrbStack、Rancher Desktop、または Docker Engine がインストールされ、実行されている必要があります。安定した動作のため、LocalCloud にはコンテナーで少なくとも 4 GiB のメモリが使用可能である必要があります。

まだ Docker をお使いでない場合、Homebrew を使っている macOS では、lc doctor --fix(またはターミナルでの lc start)を実行すると、無料で軽量な Docker エンジンである Colima のインストールが提案され、4 CPU と 8 GiB のメモリで起動されます。

Apple Silicon では、Docker VM は QEMU ではなく VZ と Rosetta を使って実行してください。こちらのほうが高速で、QEMU には LocalCloud で既知の問題があります(BigQuery エミュレーターが動作しない場合があります)。lc doctor は Docker アプリ、VM の種類、Rosetta の状態を報告し、lc doctor --fix は Colima または Rancher Desktop の切り替えを提案します。

LocalCloud のイメージには eStargz ビルドもあり、lc start --estargz で実行できます。Docker のストレージドライバーとして Stargz Snapshotter を使用すると、Docker はイメージを遅延取得するため、ダウンロードサイズが小さくなり、起動が速くなります。Snapshotter がなくても LocalCloud は同様に動作しますが、Docker はイメージ全体をダウンロードします。lc doctor は Lazy pulling の状態と、有効化する手順を報告します。

macOS と Linux
curl -fsSL https://local.cloud/install.sh | sh

インストーラーは、利用可能な場合は localcloud と、より短いエイリアス lc を追加します。

Homebrew
brew install LocalGCloud/tap/localcloud

brew upgrade localcloud     # upgrade
brew uninstall localcloud   # remove
アップグレード

CLI を最新リリースに更新します。

lc update

lc update は LocalCloud のインストール方法(スクリプトインストーラーまたは Homebrew)を検出し、CLI をその場でアップグレードします。Homebrew の場合は、brew upgrade localcloud も使用できます。

スタンドアロンバイナリ

Sigstore 検証バンドル付きの署名済みリリースアーカイブが公開されています。

プラットフォームアーキテクチャ最小要件
macOSApple SiliconmacOS 13 以降
Linuxx86_64、aarch64glibc 2.35 以降(Ubuntu 22.04 以降)

Intel Mac はサポートされていません。Intel 版 macOS アーカイブが提供されたのは 0.1.11 が最後のリリースです。

Windows ユーザーはコンテナーを直接実行できます。Docker のセットアップ手順をご覧ください。

検証
$ lc --version
localcloud 0.1.12 (commit 6e45b85cad86, released 2026-10-13)

リリースビルドには正確なソースコミットとリリース日が埋め込まれているため、バイナリの出所をいつでも特定できます。

クイックスタート

何もない状態から、動作する Cloud Storage バケットを5分で作成します。

1. マシンを確認する
lc doctor

Docker への接続を確認し、Docker アプリと VM の設定を報告して、解決された LocalCloud コンテキストを表示します。最後の行が [OK] で始まっていれば続行できます。LocalCloud の状態は一切作成しないため、最初にいつでも安全に実行できます。 Setup に関する問題が表示された場合、lc doctor --fix を実行すると、変更のたびに確認を求めたうえで修正を提案します。

2. ランタイムを起動する
lc start
Config        built-in defaults (overridable by ./localcloud.yaml)
Data volume   localcloud-data
Origin        managed
Project       local-gcp-project
User          local-developer
Image         agentcloud/localcloud:latest
Image status  Available locally
URL           http://127.0.0.1:5380
Ports         5380-5406
Services      alloydb, bigquery, bigtable, cloudbilling, cloudfunctions, cloudiam,
              cloudresourcemanager, cloudscheduler, cloudsql, cloudtasks, dataproc, gcs,
              kms, logging, memorystore, monitoring, pubsub, secretmanager, serviceusage,
              sheets, spanner, workflows
[OK] LocalCloud is ready  8.4s

start はデフォルトでレジストリを確認して新しいイメージがあれば取得し(スキップするには --no-pull を指定)、ホストのすべてのインターフェースで標準ポートを公開し、サービスの準備完了を待ってから、5 秒間ログを表示します。 公開ポートを 127.0.0.1 にバインドするには、lc start --local-only を使用します。 そのバインドを維持するには、以降の start、restart、reset コマンドにも --local-only を指定してください。 稼働中のランタイムに対して start を再度実行しても問題ありません。

3. シェルを設定する
eval "$(lc env)"

これにより、Google の公式クライアントライブラリがすでに読み込む環境変数が設定されます。

export STORAGE_EMULATOR_HOST="http://127.0.0.1:5382"
export BIGQUERY_EMULATOR_HOST="http://127.0.0.1:5388"
export SPANNER_EMULATOR_HOST="127.0.0.1:5386"
export BIGTABLE_EMULATOR_HOST="127.0.0.1:5385"
export GOOGLE_CLOUD_PROJECT="local-gcp-project"
export CLOUDSDK_CORE_PROJECT="local-gcp-project"
export CLOUDSDK_API_ENDPOINT_OVERRIDES_STORAGE="http://127.0.0.1:5382/"
# …one entry per enabled service, plus gcloud endpoint overrides and a local access token
4. コードから呼び出す

LocalCloud 専用のクライアントは不要です。エンドポイント引数も不要です。環境変数が処理します。

Python

from google.cloud import storage

client = storage.Client()
bucket = client.create_bucket("my-bucket")
bucket.blob("hello.txt").upload_from_string(
    "Hello from LocalCloud!"
)

Node.js / TypeScript

import { Storage } from "@google-cloud/storage";

const storage = new Storage();
const [bucket] = await storage.createBucket("my-bucket");
await bucket.file("hello.txt")
  .save("Hello from LocalCloud!");

Go

ctx := context.Background()
client, _ := storage.NewClient(ctx)
defer client.Close()

bucket := client.Bucket("my-bucket")
_ = bucket.Create(ctx, "local-gcp-project", nil)

gcloud CLI

gcloud storage buckets create gs://my-bucket
gcloud storage ls
5. 確認してから停止する
lc console   # open the web console for the selected project
lc status    # runtime health, endpoints, and ownership
lc logs      # recent runtime logs
lc restart   # recreate runtime with current local image (--pull to check registry)
lc stop      # stop the container; the data volume is untouched

データは stop や restart の後も保持されます。lc start を実行すれば、まったく同じ状態で再開します。

AI コーディングエージェント向けのヒント: シェルの手動設定は不要です!AI エージェントと MCP に進み、Cursor、Claude Code、または Windsurf を 1 つのコマンド(lc mcp install)で設定してください。

仕組み

  your code ──► google-cloud-* SDK ──► 127.0.0.1:5380-5406 ─────────┐
  terraform ──► GOOGLE_*_CUSTOM_ENDPOINT ───────────────────────────┤
  AI agent  ──► lc mcp (stdio) / :5380/mcp (HTTP) ──────────────────┤
                                                                    │
                      ┌─────────────────────────────────────────────┘
          ┌───────────▼─────────────────────────────────────────────┐
          │  Docker container  ·  agentcloud/localcloud             │
          │                                                         │
          │   :5380  gateway · console · admin API · MCP · facades  │
          │   :5382  Cloud Storage      :5386-87  Spanner           │
          │   :5383  Pub/Sub            :5388-89  BigQuery          │
          │   :5384  Firestore          :5390     Memorystore       │
          │   :5385  Bigtable           :5391     PostgreSQL        │
          └───────────────────┬─────────────────────────────────────┘
                              │
              Docker volume:  localcloud-data
              mounted at   :  /var/lib/localcloud

CLI はプロキシにはなりません。設定と監視を行います。lc start が終了すると、SDK はコンテナと直接通信します。

明確に分離された 3 つの ID

これは覚えておく価値のある唯一の概念です。すべてのフラグはここから導かれます。

軸フラグ選択するものスコープ
データボリューム--data-volume永続的なランタイム ID。/var/lib/localcloud にマウントされる名前付き Docker ボリュームです。2 つのボリュームは、互いに独立した 2 つの LocalCloud です。Docker
プロジェクト--project-id1 つのランタイム内の論理的な Google Cloud プロジェクトです。複数のプロジェクトで 1 つのボリュームを共有できます。start と MCP の起動時に、存在しないプロジェクトが作成されます。リクエスト
ユーザー--userLocalCloud サービスに送信される呼び出し元として記録されるユーザーです。プリンシパルが必要な場合は <name>@localcloud.invalid に正規化されます。リクエスト

プロジェクトとユーザーはリクエストコンテキストです。これらを切り替えても即時に反映され、Docker には影響しません。デフォルトはそれぞれ localcloud-data、local-gcp-project、local-developer です。一方、MCP ブリッジでは、--project-id またはリポジトリの localcloud.yaml で指定されていない限り、各 Git リポジトリにリポジトリ名を付けた個別のプロジェクトが割り当てられます。

ポート

新しいランタイムでは、標準のポート範囲 5380–5405(および DNS の 5410/udp)が優先されます。Cloud SQL MySQL を有効にすると、LocalCloud の MySQL コンパニオンコンテナが公開する 5406 も含まれます。このポート一式を確保できない場合、CLI は 5508–5539、次に 5821–5840、次に 5322–5342 から連続した代替範囲を提示し、コンテナの作成前に確認を求めます。このランタイムでは、有効なサービスが使用するポートのみを公開するため、標準のランタイムと並行して 4 つ起動できます。ホストポートを自分で選ぶには、host.port_range: 6000-6099 を設定するか、--port-range 6000-6099 を渡してください。CLI がオペレーティングシステムの一般的なエフェメラルポート範囲をスキャンすることはありません。また、lc env は常に実際に使用中のポートを出力します。

サービス

Google Cloud 互換サービスは27種類で、そのうち22種類がデフォルトで有効です。

グループサービス
ストレージとデータベースCloud Storage, Firestore, Bigtable, Spanner, BigQuery, AlloyDB, Cloud SQL, Memorystore
メッセージングとオーケストレーションPub/Sub, Cloud Tasks, Cloud Scheduler, Cloud Workflows
コンピューティングとサーバーレスCloud Functions, Cloud Run, Compute Engine, GKE, Dataproc
セキュリティと ID 管理Cloud IAM, Secret Manager, Cloud KMS
管理と請求Resource Manager, Service Usage, Cloud Billing
オブザーバビリティCloud Logging, Cloud Monitoring
AI と生産性Vertex AI, Google Sheets
全サービス一覧 — サービス ID とデフォルト設定

--services または localcloud.yaml の services.enabled では、ID を指定してください。

IDGoogle Cloud サービスデフォルト
gcsCloud Storage● on
pubsubPub/Sub● on
firestoreFirestore○ off
bigtableBigtable● on
spannerSpanner● on
bigqueryBigQuery● on
sheetsGoogle Sheets● on
secretmanagerSecret Manager● on
cloudtasksCloud Tasks● on
cloudschedulerCloud Scheduler● on
cloudfunctionsCloud Functions (2nd Gen)● on
alloydbAlloyDB● on
dataprocDataproc● on
cloudiamCloud IAM● on
cloudresourcemanagerCloud Resource Manager● on
serviceusageService Usage● on
cloudbillingCloud Billing● on
loggingCloud Logging● on
monitoringCloud Monitoring● on
gkeGKE○ off
computeCompute Engine○ off
cloudrunCloud Run○ off
memorystoreMemorystore (Redis/Valkey)● on
workflowsCloud Workflows● on
vertexaiVertex AI○ off
kmsCloud KMS● on
cloudsqlCloud SQL● on

● on のサービスは、services.enabled が未設定の場合に自動で起動します。○ off のサービスは利用できますが、明示的に選択する必要があります。

起動時にサービスを明示的に指定するか、組み込みのデフォルト設定に戻してください。

lc start --services gcs,pubsub,bigquery,firestore
lc start --services default

コマンド

すべての例で、lc と localcloud は同じように使用できます。

コマンド用途
lc updateスクリプトインストーラーまたは Homebrew で CLI を更新します
lc doctorDocker へのアクセス、VM エンジン、ホストの設定を確認します。--fix を指定すると、対話形式で問題を解決します
lc startランタイムを起動します。--services、--local-only、プロジェクトの自動作成をサポートします
lc statusランタイムの状態、所有者、エンドポイント、Docker の詳細を表示します
lc envSDK、Terraform、または Docker Compose の設定を生成します。--identity を指定すると、ローカル ID セッションを開始します
lc console選択したプロジェクトとユーザーのウェブコンソールを開きます
lc logsランタイムの最近のログを表示します
lc restartローカルイメージでコンテナを再作成します(デフォルトは --no-pull。レジストリを確認する場合は --pull を指定します)
lc reset選択したプロジェクトをリセットします(--all-projects を指定すると、手動で再作成する手順を表示します)
lc stop永続データを削除せずにランタイムを停止します
lc cleanup形式が不正な Docker リソース、古いランタイム状態、レガシーファイルを削除します
lc guideコーディングエージェント向けの正式なガイダンスを表示します
lc mcpstdio MCP ブリッジを実行します。lc mcp install は AI コーディングエージェントを設定します

コマンド固有のフラグと有効な --fields のパスについては、lc COMMAND --help を実行してください。

出力モード

すべてのコマンドは、同じ結果からユーザーとスクリプトの両方に情報を伝えます。

フラグ動作
(なし)簡潔なターミナル概要を表示します。インタラクティブシェルではスピナーと経過時間も表示します
--verbose構造化された完全な結果を JSON として標準出力に表示します
--fields PATH[,PATH…]指定した JSON パスを簡潔な概要に追加します
--dry-run予定されている Docker および LocalCloud の変更をすべて検証して表示します。変更は行いません
--debugコピーして使える同等の docker run コマンドを含む診断情報を標準エラー出力に表示します
lc status --verbose | jq '.container.url'
lc start  --fields mcp.direct_url,container.name
lc start  --dry-run                    # preview before mutating anything
NO_COLOR=1 lc doctor                   # symbols still carry status without color

サービスの選択状態は色に加えて ●(オン)と ○(オフ)でも示されるため、NO_COLOR が設定されている場合や、機能の限られたターミナルでも判読できます。

終了コード
コード意味
0成功
1失敗を伴って完了(たとえば cleanup の一部失敗)、または予期しない内部エラー
2LocalCloud エラー — 入力が無効、Docker の問題、または操作の失敗。Error [code] message の形式で表示されます
130Ctrl-C によるコマンドの中断

レシピ

テストスイートごとに独立した環境を用意する。 2つ目のボリュームは、完全に独立した2つ目の LocalCloud です。

lc start  --data-volume ci-e2e --project-id pr-1421
lc status --data-volume ci-e2e
lc stop   --data-volume ci-e2e

1つのランタイムで複数のプロジェクトを運用する。 切り替えは再起動ではなく、リクエストコンテキストの変更です。

lc start --project-id payments-dev
eval "$(lc env --project-id payments-dev)"

lc start --project-id analytics-dev
eval "$(lc env --project-id analytics-dev)"

Terraform と OpenTofu。 --format terraform は、Google プロバイダーが読み取る GOOGLE_*_CUSTOM_ENDPOINT 変数を出力します。シェルで評価し、.tf ファイルにリダイレクトしないでください。

$ eval "$(lc env --format terraform)"
$ env | grep GOOGLE_ | head -4
GOOGLE_STORAGE_CUSTOM_ENDPOINT=http://127.0.0.1:5382/storage/v1/
GOOGLE_BIGQUERY_CUSTOM_ENDPOINT=http://127.0.0.1:5388/
GOOGLE_PROJECT=local-gcp-project
GOOGLE_OAUTH_ACCESS_TOKEN=localcloud-user.bG9jYWwtZGV2ZWxvcGVy…

$ terraform apply

Docker Compose サービス。 Compose ですぐに使える環境エントリとして、同じエンドポイントを出力します。

lc env --format docker-compose

スクリプト用の JSON ペイロード。

lc env --format json | jq '.STORAGE_EMULATOR_HOST'

ホストプロセス用の署名済みローカル ID。 Application Default Credentials は、127.0.0.1 上の12時間有効なメタデータリレーから、サービスアカウント用の LocalCloud 署名済み ID トークンとアクセス トークンを取得します。GOOGLE_APPLICATION_CREDENTIALS または gcloud の Application Default Credentials が優先される場合は、何も変更せずに警告します。また、設定済みの HTTP(S)_PROXY をリレーが経由しないようにします。詳しくは env --identity を参照してください。

eval "$(lc env --identity --account [email protected])"
python my_app.py          # google.auth.default() now returns the runner account
eval "$(lc env --identity --stop)"

CI で使用する。 再現性を確保するためにレジストリチェックをスキップし、ログの追跡を無効にして、エラーを明確に報告するようにします。

lc start --data-volume ci-$GITHUB_RUN_ID --no-pull --tail 0 --verbose
# …run tests…
lc stop  --data-volume ci-$GITHUB_RUN_ID

変更前にプレビューする。 ライフサイクルのドライランは厳密に読み取り専用で、イメージの pull も行いません。

lc start --dry-run          # every planned Docker and LocalCloud mutation, in order
lc restart --dry-run

ローカルイメージを使って再起動するか、pull する。 デフォルトでは、lc restart はリモートレジストリを確認せず、現在利用可能なローカル Docker イメージを使ってコンテナーを再作成します。--pull を指定すると、リモートの新しいイメージを確認して取得します。

lc restart                  # fast restart with current local image (e.g. after building locally)
lc restart --pull           # check registry, pull newest image if available, then recreate

ほかのプロジェクトを失わずに、1つのプロジェクトをリセットする。

lc reset                    # clears the selected project; reseed from the Console
lc reset --all-projects     # prints manual recreate steps; deletes nothing

lc reset --all-projects は、意図的に何も変更しません。すべてのプロジェクトを再作成するにはデータボリュームの削除が必要ですが、LocalCloud が docker volume rm を実行することはありません。手順を表示してゼロ以外の終了コードで終了するため、誤ってデータが破壊されることはありません。

AI エージェントと MCP

LocalCloud はネイティブの Model Context Protocol (MCP) 統合を提供します。これにより、AI コーディングエージェントはローカルのワークフローで Google Cloud の料金をかけずに、標準 SDK を使用して Google Cloud アプリケーションを構築、テスト、デバッグできるローカルクラウド環境を利用できます。

インストール、GitHub プラグイン、接続確認、最初のテスト用プロンプトについては、Claude、Codex、Cursor、その他のクライアント向けローカルセットアップガイドに従ってください。ローカルセットアップは、Directory による公式承認に依存しません。

エージェントが LocalCloud MCP を最大限に活用できる理由
  • オンデマンドの自動起動:エージェントが呼び出しを行うか初期化すると、MCP ブリッジがチェックを行い、ファイルロックによって競合状態を防ぎながら、バックグラウンドで LocalCloud を自動的に起動します。ランタイムを手動で制御したい場合は、--no-start を渡してください。
  • 共有のデフォルト環境:デフォルトの localcloud-data ボリュームを使用するセッションは、そのランタイムを共有します。別の Docker 環境が必要な場合は、意図的に別のデータボリュームを選択してください。
  • 安全なローカルテスト:エージェントは実際のエミュレーター環境変数(eval "$(lc env)")を生成し、ローカルデータベース(BigQuery、Spanner、Cloud SQL)にクエリを実行し、Pub/Sub メッセージをパブリッシュ/プルし、Cloud Storage バケットをループバックに対して直接テストできます。
  • プロジェクトコンテキスト:アプリケーションやテストごとに --project-id を使用します。プロジェクトは選択したランタイムを共有し、セキュリティ境界にはなりません。
1 コマンドでセットアップ:lc mcp install

1 コマンドで、AI コーディングクライアント向けに LocalCloud を設定します。

# Install for Cursor (user-level in ~/.cursor/mcp.json)
lc mcp install --client cursor

# Install for Claude Code (user scope via claude CLI)
lc mcp install --client claude-code

# Install for Claude Desktop (claude_desktop_config.json)
lc mcp install --client claude-desktop

# Register directly in Codex (CLI and local desktop sessions)
codex mcp add localcloud -- "$(command -v localcloud)" mcp

# Install for Gemini CLI (~/.gemini/settings.json)
lc mcp install --client gemini

# Install for Antigravity (~/.gemini/config/mcp_config.json)
lc mcp install --client antigravity

# Install for Windsurf (~/.codeium/windsurf/mcp_config.json)
lc mcp install --client windsurf

# Configure every supported client installed on this machine
lc mcp install --client all

Claude Code では claude-code を明示的に使用してください。claude は Claude Desktop のエイリアスです。--client all は検出できたクライアントのみを設定し、該当するクライアントが見つからない場合は失敗します。Codex では独自の登録コマンドを使用します。--client cline は Cline の共有設定ファイルに書き込みます。手動で編集する方法については、Cline を参照してください。ツールの重複を避けるため、クライアントごとに直接接続または GitHub プラグインのいずれかを選択してください。

  • デフォルトでグローバル:ユーザーレベルの設定にインストールします(--global)。リポジトリスコープに対応するクライアント(Cursor、Claude Code、Gemini CLI、Antigravity)では、--project を使用してください。Claude Desktop、Windsurf、Cline は常にユーザー設定を使用します。GUI クライアントにプロジェクト単位でインストールする場合は、絶対実行ファイルパスを保持するために --command-path "$(command -v localcloud)" を追加してください。
  • デスクトップの PATH の安定性:macOS では、永続的なシステムバイナリ(/opt/homebrew/bin/localcloud または /usr/local/bin/localcloud)を自動的に解決するため、Dock や Finder から起動した GUI アプリケーションも、シェルの PATH に関する問題なくスムーズに動作します。
  • カスタム上書き:カスタム実行ファイル(例:lc や /opt/homebrew/bin/lc)を指定するには --command-path <CMD> を渡すか、基本の localcloud コマンドを強制するには --bare を渡してください。
エージェントへの指示

エージェントに LocalCloud エミュレーターを使うようプロンプトで指示してください。

localcloud MCP サーバーを利用できます。use-localcloud-instead-of-gcp プロンプトに従ってください。localcloud guide を実行するか、localcloud_get_env を使用して、すべての Google Cloud クライアントライブラリと Terraform をローカルのループバックエミュレーターに接続してください。

ターミナルで lc guide を実行することもできます。ランタイム独自のサービスカタログから生成された、信頼できるコピー&ペースト可能なワークフローガイダンスが表示されるため、イメージに実際に含まれる内容と食い違うことはありません。

エージェントにできること

MCP ブリッジは、実行中のランタイムのツール、リソース、プロンプトを公開します。カタログを調べて、環境で利用可能な機能を確認してください。

機能ツールとリソースエージェントが行うこと
サービスの検出とヘルスチェックlocalcloud_list_services
localcloud_check_readiness
実行中のサービスと割り当て済みのループバックポートを検出し、リクエストを送信する前にエミュレーターの準備状態を確認します。
API カタログとスキーマlocalcloud_get_api_catalog
localcloud_browse_resources
Google Cloud REST OpenAPI スキーマ全体とメソッドのパラメーターを調べ、バケット、テーブル、トピックを参照します。
データクエリと SQLlocalcloud_query_dataクライアント SDK を必要とせずに、ローカルの BigQuery、Cloud Spanner、Cloud SQL データベースに対して実際の SQL クエリを実行します。
SDK と Terraform の接続設定localcloud_get_env
localcloud_generate_terraform_env
環境変数をエクスポートするコマンド(STORAGE_EMULATOR_HOST など)と、Terraform プロバイダーの上書きを生成します。
テストとシナリオlocalcloud_list_recipes
localcloud_export_state
テストデータのシナリオをシードし、プロジェクト状態のチェックポイントを作成し、状態の変更を比較します。
再現可能なクラウドワークフロー

Cloud Storage、Pub/Sub、BigQuery のエージェントプロンプト一式と Python/SDK のテスト実行について、3 つの再現可能なクラウドワークフローを実行してください。

LocalCloud MCP のデモ

(録画デモを見るか、MCP のアーキテクチャとガイドをご覧ください。)

クライアントの手動設定

MCP クライアントを手動で設定する場合:

{
  "mcpServers": {
    "localcloud": {
      "command": "/opt/homebrew/bin/localcloud",
      "args": ["mcp"]
    }
  }
}

(macOS のデスクトップアプリでは、Dock/Finder から起動する場合、/opt/homebrew/bin/localcloud のような絶対パスを推奨します。PATH を設定したターミナルシェルから起動する場合は、"localcloud" をそのまま使用してください。)

HTTP を直接使用するクライアントでは、X-LocalCloud-Project および X-LocalCloud-User ヘッダーとともに http://127.0.0.1:5380/mcp を使用してください。

設定

サンプルデータは、コンテナーの起動時および Console の Re-seed Data アクションによって管理されます。 CLI はシードファイルを検出、マウント、適用しません。既存の host.seed 設定は無視されます。コンテナーのブートストラップを無効にするには、server.auto_seed: false を使用してください。 古い CLI シードマウントを持つ管理対象コンテナーは、既存のデータボリュームを保持したまま、起動/再起動時に再作成されます。

上記はすべて、設定なしで動作します。バージョン管理された共有設定を使う場合は、 プロジェクトの隣に localcloud.yaml を配置してください。

version: 1
context:
  project: payments-dev
  user: local-developer
host:
  data_volume: payments-data
  memory: 8g
  data: persistent
  docker_socket: auto
services:
  enabled:
    - gcs
    - pubsub
    - bigquery
    - firestore

このファイルは、パッケージに含まれるデフォルト設定への再帰的な部分オーバーレイです。省略された値は継承され、マッピングのメンバーに null を設定すると削除されます。CLI は次の順序で解決します。

  1. 明示的な位置引数のパス — lc start ./custom.yaml
  2. LOCALCLOUD_CONFIG
  3. ./localcloud.yaml
  4. ランタイムに記憶された設定
  5. ~/.local/share/localcloud/localcloud.yaml、または LOCALCLOUD_HOME が設定されている場合は $LOCALCLOUD_HOME/localcloud.yaml
  6. 組み込みのデフォルト設定

明示的に指定したパス、環境変数で指定したパス、または記憶されたパスが存在しないか読み込めない場合は、暗黙にフォールバックせず失敗します。CLI フラグは、対応する host の値を上書きします。

host.docker_socket: auto(デフォルト)は、有効なサービスが必要とする場合に限り、ホストの Docker ソケットをマウントします。対象は Compute Engine、Cloud Run、GKE、Dataproc です。常にマウントするには true を、完全に無効にするには false を設定してください。

start、restart、reset、stop は、匿名の起動エラーイベントと毎時の利用状況イベントを送信します。無効にするには、LOCALCLOUD_TELEMETRY=false または DO_NOT_TRACK=1 を設定してください。送信される内容の詳細は、テレメトリーをご覧ください。

→ 設定の完全なリファレンス

トラブルシューティング

症状意味対処方法
Error [docker_unavailable]Docker がインストールされていない、起動していない、接続できない、またはアクセスが拒否されています(details.reason)メッセージに従ってください。lc doctor --fix を実行すると、Colima がインストールされるか、Docker アプリが起動します
Error [fix_confirmation_required]lc doctor --fix がターミナルなしで実行されたか(または --verbose が指定されました)対話型ターミナルで実行してください。修正ごとに確認を求められます
Apple Silicon で BigQuery または別のサービスが start の直後に停止するDocker VM が QEMU 上で実行されていますlc doctor を実行し、続けて lc doctor --fix を実行して、Rosetta を使用する VZ に切り替えてください
Error [docker_socket_unavailable]サービスに必要な Docker ソケットが見つからないか、アクセスがブロックされていますソケットのパスを確認するか、host.docker_socket: false を設定して Docker を利用するサービスを無効にしてください
Error [health_timeout] / runtime_readiness_timeoutコンテナは起動しましたが、サービスが制限時間内に準備完了になりませんでしたlc logs --tail 200 を実行してください。4 GiB 以上が利用可能であることを確認するか、--memory 8g で増やしてください
Error [port_mapping_confirmation_required]標準ポートが使用中で、シェルが非対話型ですポートを解放するか、--accept-dynamic-ports を指定して再実行してください
Error [data_volume_collision]互換性のあるコンテナが複数、同じボリュームを使用していますlc cleanup --dry-run で確認してから、lc cleanup を実行してください
Error [ownership_mismatch] / ownership_forbiddenDocker リソースが CLI によって管理されていませんCLI は所有していないリソースを削除しません。手動で削除するか、別の --data-volume を使用してください
Error [unknown_project]このランタイムにプロジェクトが存在しませんプロジェクトを作成するのは start だけです。lc start --project-id NAME を実行してください
Error [mcp_connection_timeout]/mcp エンドポイントが 10 秒以内に準備完了になりませんでしたlc status でランタイムが起動していることを確認してから、lc mcp --connect-timeout 30 を実行してください
Error [dry_run_pull_conflict]--dry-run と --pull が同時に指定されましたプレビューは完全な読み取り専用です。イメージがローカルに存在する状態で、--dry-run --no-pull を使用してください
Error [removed_flat_config]localcloud.yaml で 1.0 より前のフラットキーが使用されていますメッセージに置き換え先のパスが表示されます。設定を参照してください
古いコンテナ、ネットワーク、またはロックが残っている中断された実行によってリソースが残っていますlc cleanup --dry-run を実行してから、lc cleanup を実行してください

解決しない場合は、lc doctor --verbose と lc status --verbose を実行すると、機械可読形式の完全な状態が出力されます。 また、--debug を指定すると、CLI が使用する正確な docker run コマンドが表示されます。

ドキュメント

ガイド内容
CLI リファレンスすべてのコマンド、フラグ、出力モード、フィールドパス
設定localcloud.yaml、サービスカタログ、ボリューム、プロジェクト、ID
インテグレーションPython、Node、Go、Terraform/OpenTofu、および MCP クライアントのセットアップ
MCP ガイドとアーキテクチャ自動起動、プロジェクトの分離、ツールカタログ、クライアントインストーラー
MCP の再現可能なワークフローStorage、Pub/Sub、BigQuery のエージェントテストシナリオを順を追って解説
MCP の掲載と投稿マーケットプレイス、ディレクトリ、awesome-list、告知のリンク、ステータス、フォローアップ
ライフサイクルテストコンテナのライフサイクルをエンドツーエンドでテストする手順と検証
local.cloud/docs製品ドキュメント、サービスの互換性、コンソール

開発

LocalCloud CLI は Python 3.11 以降を対象としており、uv を使用します。

uv sync --extra test                                      # install dependencies

uv run --extra test python -m pytest -q                   # full suite
uv run --extra test python -m pytest -q -m "not docker"   # no Docker required

uv run lc --help                                          # run from source

コンテナーのライフサイクルを実環境で適格性確認するには、ライフサイクルテストの手順書に従ってください。

実行中の Docker エンジンが必要なテストには docker マーカーが付いています。-m "not docker" を指定して除外してください。

lc env --identity は、LocalCloud の型付きアイデンティティーセッション契約を使用します。 tests/fixtures/identity/ 内のフィクスチャは、 tests/fixtures/identity/localcloud-contract.json に同梱されている契約に照らして検証されます。このファイルには、契約の取得元である LocalCloud のリビジョンが記録されています。python3 scripts/sync-identity-contract.py --localcloud <checkout> で更新し、チェックアウトとの照合も行うには LOCALCLOUD_SOURCE=<checkout> を設定してください。エンドツーエンドのセッションテストでは、イメージに対して実際の lc start と lc env --identity を実行します(Colima では、Docker が設定をバインドマウントできるように、ホームディレクトリ配下の --basetemp を使用してください)。

LOCALCLOUD_RUN_IDENTITY_E2E=1 LOCALCLOUD_IMAGE=localcloud:<tag> \
  uv run --frozen --extra test python -m pytest -m docker \
  tests/integration/test_identity_session_acceptance.py

ライセンスとサポート

LocalCloud は、LocalCloud Public Preview License に基づくプロプライエタリーソフトウェアです。LocalCloud MCP は、文書化されているローカル開発ワークフローでは無料で利用できます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。