Back to Guides

AnythingMCP auf Google Cloud Run bereitstellen

Stellen Sie AnythingMCP als serverlosen Container auf Google Cloud Run mit Cloud SQL für PostgreSQL bereit. Skalierbares, nutzungsbasiertes MCP-Gateway.

Warum Google Cloud Run?

Cloud Run ermöglicht es Ihnen, Container ohne Serververwaltung auszuführen. In Kombination mit Cloud SQL für PostgreSQL bietet es eine skalierbare, nutzungsbasierte Bereitstellung. HTTPS wird automatisch gehandhabt — kein Reverse-Proxy erforderlich.

Dies ist fortgeschrittener als VM-basierte Bereitstellungen. Sie können setup.sh auf Cloud Run nicht ausführen, daher müssen Sie das Image erstellen, pushen und Umgebungsvariablen manuell konfigurieren.

Voraussetzungen

  • Ein GCP-Konto mit aktivierter Abrechnung
  • gcloud CLI installiert und authentifiziert
  • Docker lokal installiert
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 einrichten

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

Notieren Sie sich den Instanz-Verbindungsnamen (z.B. project-id:europe-west1:anythingmcp-db).

Image erstellen und pushen

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

# Option A: Lokal erstellen
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

# Option B: Mit Cloud Build erstellen
gcloud builds submit --tag europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest

Geheimnisse generieren

Da setup.sh auf Cloud Run nicht ausgeführt werden kann, generieren Sie Geheimnisse manuell:

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

Auf Cloud Run bereitstellen

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 vermeidet Kaltstarts. Der Cloud-SQL-Proxy verwendet einen Unix-Socket, daher funktioniert localhost in der DATABASE_URL.

Benutzerdefinierte Domain (Optional)

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

Folgen Sie den DNS-Anweisungen in der Ausgabe. SSL wird automatisch bereitgestellt.

Einschränkungen

  • Zustandslos — Cloud-Run-Instanzen sind flüchtig. Alle Daten müssen in Cloud SQL gespeichert werden.
  • Kaltstarts — Verwenden Sie --min-instances=1 zur Abmilderung (geringe Kosten).
  • Kein setup.sh — Alle Konfiguration erfolgt über Umgebungsvariablen bei der Bereitstellung.
  • Kosten — Cloud Run berechnet pro Anfrage + vCPU-Zeit. Cloud SQL hat monatliche Fixkosten.

Aktualisierung

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

Bestehende Umgebungsvariablen und Cloud-SQL-Verbindungen bleiben bei erneuten Bereitstellungen erhalten.