Deployment guide1-minute readEN · DE · IT

在 Google Cloud Run 上部署 AnythingMCP

在 Google Cloud Run 上将 AnythingMCP 部署为无服务器容器,并使用 Cloud SQL for PostgreSQL。可扩展的按需付费 MCP 网关。

HCBy HelpCode teamUpdated 1 min read Open source on GitHub

No credit card · 7-day trial · Self-host alternative available

  • 7-day free trial
    No credit card required
  • GDPR & SOC 2 ready
    EU data residency, audit logs
  • Open-source on GitHub
    Open source AGPL-3.0
  • Works with ChatGPT, Claude, Gemini
    Any MCP-compatible client

Summary

在 Google Cloud Run 上将 AnythingMCP 部署为无服务器容器,并使用 Cloud SQL for PostgreSQL。可扩展的按需付费 MCP 网关。

为什么选择 Google Cloud Run?

Cloud Run 让你可以运行容器而无需管理服务器。结合 Cloud SQL for PostgreSQL,它提供了可扩展的按需付费部署。HTTPS 自动处理 — 无需反向代理。

这比基于虚拟机的部署更高级。你无法在 Cloud Run 上运行 setup.sh,因此必须手动构建镜像、推送并配置环境变量。

先决条件

  • 启用计费的 GCP 账户
  • 安装并认证的 gcloud CLI
  • 本地安装 Docker
gcloud config set project YOUR_PROJECT_ID
gcloud config set run/region europe-west1

gcloud services enable \
  run.googleapis.com \
  sqladmin.googleapis.com \
  artifactregistry.googleapis.com \
  cloudbuild.googleapis.com

设置 Cloud SQL

gcloud sql instances create anythingmcp-db \
  --database-version=POSTGRES_16 \
  --tier=db-f1-micro \
  --region=europe-west1

gcloud sql databases create anythingmcp --instance=anythingmcp-db

gcloud sql users create amcp \
  --instance=anythingmcp-db \
  --password=YOUR_DB_PASSWORD

请注意实例连接名称(例如 project-id:europe-west1:anythingmcp-db)。

构建并推送镜像

git clone https://github.com/HelpCode-ai/anythingmcp.git
cd anythingmcp

# 选项 A:本地构建
docker build -t europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest .
docker push europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest

# 选项 B:使用 Cloud Build 构建
gcloud builds submit --tag europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest

生成密钥

由于 setup.sh 无法在 Cloud Run 上运行,请手动生成密钥:

JWT_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 16)
NEXTAUTH_SECRET=$(openssl rand -hex 32)

部署到 Cloud Run

gcloud run deploy anythingmcp \
  --image=europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest \
  --allow-unauthenticated \
  --port=4000 \
  --min-instances=1 \
  --max-instances=5 \
  --memory=512Mi \
  --cpu=1 \
  --set-env-vars="NODE_ENV=production" \
  --set-env-vars="DATABASE_URL=postgresql://amcp:YOUR_DB_PASSWORD@localhost:5432/anythingmcp" \
  --set-env-vars="JWT_SECRET=$JWT_SECRET" \
  --set-env-vars="ENCRYPTION_KEY=$ENCRYPTION_KEY" \
  --set-env-vars="NEXTAUTH_SECRET=$NEXTAUTH_SECRET" \
  --set-env-vars="MCP_AUTH_MODE=oauth2" \
  --add-cloudsql-instances=YOUR_PROJECT_ID:europe-west1:anythingmcp-db

--min-instances=1 可以避免冷启动。Cloud SQL 代理使用 Unix 套接字,因此在 DATABASE_URL 中 localhost 是有效的。

自定义域名(可选)

gcloud run domain-mappings create \
  --service=anythingmcp \
  --domain=mcp.example.com \
  --region=europe-west1

按照输出中的 DNS 指示进行操作。SSL 会自动配置。

限制

  • 无状态 — Cloud Run 实例是短暂的。所有数据必须存储在 Cloud SQL 中。
  • 冷启动 — 使用 --min-instances=1 来缓解(小成本)。
  • 无 setup.sh — 所有配置在部署时通过环境变量进行。
  • 费用 — Cloud Run 按请求 + vCPU 时间收费。Cloud SQL 有固定的月费。

更新

git pull
docker build -t europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest .
docker push europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest
gcloud run deploy anythingmcp \
  --image=europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest \
  --region=europe-west1

现有的环境变量和 Cloud SQL 连接在重新部署时会被保留。

这份指南对你有帮助吗?

Ready to ship

Ship MCP to your stack in 60 seconds.

Spin up AnythingMCP on managed Cloud or self-host it on your infrastructure. Free for 7 days, no credit card.

相关指南