mcpField
L
LocalCloud MCP

LocalCloud MCP

本地服务
local.cloud云与基础设施11 周前更新

关于 LocalCloud MCP

LocalCloud 为开发者和 AI 编码 Agent 提供本地环境,用于构建、测试和调试 Google Cloud 应用。其 CLI 管理基于 Docker 的运行时及兼容 Google Cloud 的服务,并通过环境变量让现有 Google 客户端库连接本地端点。

主要功能

  1. 01在本地运行兼容 Google Cloud 的服务
  2. 02通过 CLI 管理运行时和项目上下文
  3. 03通过环境变量配置 SDK 端点
  4. 04在 Docker 卷中持久保存数据
  5. 05检查就绪状态和诊断信息
  6. 06通过 MCP 连接编码 Agent

适用场景

  1. 01在本地构建和测试 Google Cloud 应用
  2. 02为编码 Agent 提供可创建和检查的本地云状态
  3. 03无需支付真实云服务费用即可进行实验
  4. 04在运行时重启后保留测试数据

MCP 相关

LocalCloud 为编码 Agent 提供 MCP 桥接,可通过 stdio 上的 `lc mcp` 或 HTTP 上的 `:5380/mcp` 使用。Agent 可创建、填充、检查和重置本地项目状态。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpblocalcloud-mcp-0.1.12.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

LocalCloud CLI

面向开发者和 AI 编码 Agent 的免费本地云环境。

通过终端或编码 Agent 构建、测试和调试 Google Cloud 应用。 MCP 可将 Agent 连接到本地服务、SDK 配置、测试数据、就绪状态和诊断信息。

无需支付 Google Cloud 服务费用,即可运行本地服务工作流;一条命令即可启动, 还可根据机器容量,为实验和测试套件创建本地项目。

网站 · MCP 指南 · Claude 和 Codex 市场设置

版本 CLI 运行时 协议 Python 许可证

安装 · 快速入门 · 工作原理 · 服务 · 命令 · AI Agent 和 MCP · 故障排除


localcloud(别名为 lc)是 LocalCloud 的官方主机 CLI。它负责管理 容器运行时生命周期、多项目上下文、SDK 环境变量、持久化 Docker 卷以及模型上下文协议桥接, 让你的应用代码继续调用现有的 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 项服务,一个容器。 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 命令。
  • 原生支持 Agent。 一流的 MCP 桥接让 AI 编码 Agent 能在自身工作循环中配置、填充、检查和重置 符合 GCP 形态的真实状态,而不必依赖需要人工点击操作的 UI。
  • 不会触及线上云环境。 CLI 会验证所有生成的端点均为本地回环地址,并拒绝输出真实的 googleapis.com 地址。绝不会静默回退到生产环境。
对比
LocalCloudgcloud beta emulatorsTestcontainers真实 GCP 开发项目
服务27~5(Bigtable、Datastore/Firestore、Pub/Sub、Spanner)封装相同的模拟器全部
设置一条 CLI 命令每项服务一个进程在测试代码中编写项目、账单、IAM
SDK 接入eval "$(lc env)"每个模拟器单独手动配置在代码中为每个容器单独配置ADC + 真实凭据
Web 控制台内置——有
Terraform / OpenTofulc env --format terraform——有
Agent 控制(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 上,请使用 VZ 和 Rosetta 运行 Docker 虚拟机,而不要使用 QEMU:前者速度更快,而且 QEMU 存在已知的 LocalCloud 兼容问题(BigQuery 模拟器在其上可能无法运行)。lc doctor 会报告 Docker 应用、虚拟机类型和 Rosetta 状态;lc doctor --fix 可协助切换 Colima 或 Rancher Desktop。

LocalCloud 的镜像也提供 eStargz 构建版本,可通过 lc start --estargz 运行。将 Stargz Snapshotter 用作 Docker 的存储驱动程序后,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:0.1.11 是最后一个提供 Intel macOS 压缩包的版本。

Windows 用户可以直接运行容器——请参阅 Docker 设置说明。

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

发行版构建会嵌入确切的源代码提交和发布日期,因此始终可以追溯二进制文件的来源。

快速入门

只需五分钟,即可从零开始创建一个可用的 Cloud Storage 存储桶。

1. 检查你的机器
lc doctor

此命令会确认 Docker 连接状态、报告 Docker 应用及其虚拟机配置,并显示解析后的 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 秒。 使用 lc start --local-only 可将已发布的端口绑定到 127.0.0.1。 后续执行 start、restart 和 reset 命令时,传入 --local-only 可保持该绑定。 在运行中的运行时上再次执行 start 是安全的。

3. 配置 shell
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 编码 Agent 的提示: 跳过手动 shell 配置!前往 AI Agent 与 MCP,只需一条命令(lc mcp install)即可配置 Cursor、Claude Code 或 Windsurf。

工作原理

  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 会直接与容器通信。

三种刻意区分的身份

这是最值得理解的一个概念,因为每个标志都由此而来:

维度标志选择内容范围
数据卷--data-volume持久化运行时身份——挂载到 /var/lib/localcloud 的具名 Docker 卷。两个卷代表两个独立的 LocalCloud。Docker
项目--project-id单个运行时中的一个逻辑 Google Cloud 项目。多个项目可共用一个卷。若项目不存在,start 和 MCP 启动过程会创建该项目。请求
用户--user发送到 LocalCloud 服务的调用方身份;当需要主体时,会规范化为 <name>@localcloud.invalid。请求

项目和用户属于请求上下文:切换它们即时生效,且不会触及 Docker。默认值分别为 localcloud-data、local-gcp-project 和 local-developer。MCP 桥接程序则会为每个 Git 仓库分配一个独立项目,并以仓库名称命名;除非通过 --project-id 或仓库的 localcloud.yaml 指定项目名称。

端口

新运行时优先使用标准端口范围 5380–5405(以及 DNS 5410/udp)。启用 Cloud SQL MySQL 后,端口集合还会包含 5406,该端口由 LocalCloud 的 MySQL 配套容器发布。如果无法使用完整端口集合,CLI 会依次提议从 5508–5539、5821–5840、5322–5342 中选择一个连续的替代范围,并在创建容器前征求确认。此类运行时只会发布其已启用服务使用的端口,因此可与使用标准端口的运行时并行运行四个。若要自行指定主机端口,可设置 host.port_range: 6000-6099,或传入 --port-range 6000-6099。CLI 不会扫描操作系统通用的临时端口范围;lc env 始终会输出实际使用的端口。

服务

27 项兼容 Google Cloud 的服务,其中 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
安全与身份Cloud IAM、Secret Manager、Cloud KMS
管理与账单Resource Manager、Service Usage、Cloud Billing
可观测性Cloud Logging、Cloud Monitoring
AI 与效率工具Vertex AI、Google Sheets
完整目录 — 服务 ID 与默认状态

使用 ID 配合 --services 或 localcloud.yaml 中的 services.enabled。

IDGoogle Cloud 服务默认状态
gcsCloud Storage● 开启
pubsubPub/Sub● 开启
firestoreFirestore○ 关闭
bigtableBigtable● 开启
spannerSpanner● 开启
bigqueryBigQuery● 开启
sheetsGoogle Sheets● 开启
secretmanagerSecret Manager● 开启
cloudtasksCloud Tasks● 开启
cloudschedulerCloud Scheduler● 开启
cloudfunctionsCloud Functions(第 2 代)● 开启
alloydbAlloyDB● 开启
dataprocDataproc● 开启
cloudiamCloud IAM● 开启
cloudresourcemanagerCloud Resource Manager● 开启
serviceusageService Usage● 开启
cloudbillingCloud Billing● 开启
loggingCloud Logging● 开启
monitoringCloud Monitoring● 开启
gkeGKE○ 关闭
computeCompute Engine○ 关闭
cloudrunCloud Run○ 关闭
memorystoreMemorystore(Redis/Valkey)● 开启
workflowsCloud Workflows● 开启
vertexaiVertex AI○ 关闭
kmsCloud KMS● 开启
cloudsqlCloud SQL● 开启

未设置 services.enabled 时,● 开启 的服务会自动启动;○ 关闭 的服务可用,但必须显式选择。

启动时选择一组明确的服务,或重置为内置默认值:

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

命令

在所有示例中,lc 和 localcloud 可以互换使用。

命令用途
lc update通过脚本安装程序或 Homebrew 更新 CLI
lc doctor检查 Docker 访问权限、VM 引擎和主机设置;--fix 可交互式解决问题
lc start启动运行时;支持 --services、--local-only 和自动创建项目
lc status显示运行时健康状况、所有权、端点和 Docker 详情
lc env生成 SDK、Terraform 或 Docker Compose 配置;--identity 会启动本地身份会话
lc console打开所选项目和用户对应的 Web 控制台
lc logs输出最近的运行时日志
lc restart使用本地镜像重新创建容器(默认:--no-pull;使用 --pull 检查注册表)
lc reset重置所选项目(--all-projects 会输出手动重新创建步骤)
lc stop停止运行时,但不删除持久化数据
lc cleanup移除格式错误的 Docker 资源、过期的运行时状态和旧文件
lc guide输出权威的编码 Agent 指南
lc mcp运行 stdio MCP 桥接程序;lc mcp install 用于配置 AI 编码 Agent

运行 lc COMMAND --help 可查看特定命令的标志和有效的 --fields 路径。

输出模式

每条命令都会通过同一份结果同时向用户和脚本提供信息:

标志效果
(none)简洁的终端摘要;在交互式 shell 中显示旋转指示器和耗时
--verbose在 stdout 上输出完整的结构化 JSON 结果
--fields PATH[,PATH…]将指定的 JSON 路径附加到简洁摘要中
--dry-run验证并打印所有计划执行的 Docker 和 LocalCloud 变更,但不做任何更改
--debug在 stderr 上输出诊断信息,包括可复制的等效 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
130命令被 Ctrl-C 中断

用法示例

为每个测试套件创建隔离环境。 第二个卷就是一个完全独立的 LocalCloud。

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

在同一个运行时上运行多个项目。 切换项目只需更改请求上下文,无需重启。

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 变量——请将其求值到 shell 中,不要将其重定向到 .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'

供主机进程使用的本地签名身份。 应用默认凭据会通过 127.0.0.1 上持续 12 小时的元数据中继,为服务账号获取由 LocalCloud 签名的 ID 和访问令牌。如果 GOOGLE_APPLICATION_CREDENTIALS 或 gcloud 的应用默认凭据会优先生效,命令会发出警告,但不会做任何更改;此外,如果已配置 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

变更前先预览。 生命周期 dry run 严格只读,且绝不会拉取镜像。

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

使用本地镜像重启,而非拉取镜像。 默认情况下,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

重置一个项目,同时保留其他项目。

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 Agent 与 MCP

LocalCloud 原生集成了 Model Context Protocol(MCP),为 AI 编码 Agent 提供本地云环境,让它们可以使用标准 SDK 构建、测试和调试 Google Cloud 应用,并且本地工作流不会产生 Google Cloud 服务费用。

请参阅面向 Claude、Codex、Cursor 和其他客户端的本地设置指南,了解安装、GitHub 插件、连接检查以及首次测试提示词。本地设置不依赖 Directory 官方批准。

为什么 Agent 使用 LocalCloud MCP 的效果最好
  • 按需自动启动:Agent 发起调用或初始化时,MCP 桥接程序会检查并在后台自动启动 LocalCloud(通过文件锁防止竞态条件)。如果希望手动控制运行时,请传入 --no-start。
  • 共享默认环境:使用默认 localcloud-data 卷的会话会复用其运行时。需要单独的 Docker 环境时,请有意选择其他数据卷。
  • 安全的本地测试:Agent 会生成模拟器环境变量(eval "$(lc env)")、查询本地数据库(BigQuery、Spanner、Cloud SQL)、发布和拉取 Pub/Sub 消息,并直接通过 loopback 测试 Cloud Storage 存储桶。
  • 项目上下文:使用 --project-id 区分不同的应用和测试。项目共享所选运行时,不构成安全边界。
一条命令完成设置:lc mcp install

只需一条命令,即可为 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 应用可以顺畅运行,不受 shell PATH 问题影响。
  • 自定义覆盖:传入 --command-path <CMD> 以指定自定义可执行文件(例如 lc 或 /opt/homebrew/bin/lc),或者传入 --bare 以强制使用裸 localcloud 命令。
指导你的 Agent

提示 Agent 使用 LocalCloud 模拟器:

你可以使用 localcloud MCP 服务。请遵循其 use-localcloud-instead-of-gcp 提示词。运行 localcloud guide 或使用 localcloud_get_env,将所有 Google Cloud 客户端库和 Terraform 指向本地 loopback 模拟器。

你也可以在终端中运行 lc guide:它会打印权威且可直接复制粘贴的工作流指导,这些内容由运行时自身的服务目录生成,因此始终与镜像实际包含的内容一致。

Agent 可以做什么

MCP 桥接程序会公开运行时的工具、资源和提示词。请查看其目录,了解你的环境中可用的功能:

能力工具和资源Agent 的操作
服务发现与健康检查localcloud_list_services
localcloud_check_readiness
发现运行中的服务及分配的 loopback 端口,并在发送请求前验证模拟器是否已就绪。
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
初始化测试数据场景、创建项目状态检查点,并比较状态变更。
可复现的云工作流

运行三个可复现的云工作流,查看完整的 Agent 提示词,以及 Cloud Storage、Pub/Sub 和 BigQuery 的 Python/SDK 测试运行:

LocalCloud MCP 演示

(观看录制的演示,或查看完整的 MCP 架构与指南。)

手动配置客户端

如果你更愿意手动配置 MCP 客户端:

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

(在 macOS 桌面应用中,从 Dock/Finder 启动时,建议使用 /opt/homebrew/bin/localcloud 这样的绝对路径;从已配置 PATH 的终端 Shell 启动时,使用不带路径的 "localcloud"。)

对于直接通过 HTTP 通信的客户端,请使用 http://127.0.0.1:5380/mcp,并附带 X-LocalCloud-Project 和 X-LocalCloud-User 请求头。

配置

示例数据由容器启动流程和控制台的 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 会报错,而不会静默回退。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]标准端口已被占用,且 shell 为非交互式释放端口,或使用 --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 s 内未就绪运行 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、服务目录、卷、项目、身份
集成Python、Node、Go、Terraform/OpenTofu 和 MCP 客户端配置
MCP 指南与架构自动启动、项目隔离、工具目录和客户端安装程序
MCP 可复现工作流Storage、Pub/Sub、BigQuery 的分步 Agent 测试场景
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 上,请将 --basetemp 设置为主目录下的路径,以便 Docker 可以绑定挂载配置):

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 可免费用于文档中说明的本地开发工作流。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。