Cloud Run MCP

Deploy code, files and container images to Google Cloud Run and inspect the services and their logs

Official · Google Cloud Platform JavaScript Local · stdio Cloud platformsDevOps and monitoring

75 popularity score ★ 637 ↓ 5.5k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add cloud-run -- npx -y @google-cloud/cloud-run-mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "cloud-run": {
      "command": "npx",
      "args": [
        "-y",
        "@google-cloud/cloud-run-mcp"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "cloud-run": {
      "command": "npx",
      "args": [
        "-y",
        "@google-cloud/cloud-run-mcp"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "cloud-run": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@google-cloud/cloud-run-mcp"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.cloud-run]
command = "npx"
args = ["-y", "@google-cloud/cloud-run-mcp"]
Gemini CLITerminal
gemini mcp add --scope user cloud-run npx -- -y @google-cloud/cloud-run-mcp
Local (Docker)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

Claude CodeTerminal
claude mcp add cloud-run -- docker run -i --rm -e GOOGLE_APPLICATION_CREDENTIALS -v '<ABSOLUTE_PATH>:<ABSOLUTE_PATH>' mcp/cloud-run-mcp:latest
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "cloud-run": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GOOGLE_APPLICATION_CREDENTIALS",
        "-v",
        "<ABSOLUTE_PATH>:<ABSOLUTE_PATH>",
        "mcp/cloud-run-mcp:latest"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "cloud-run": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GOOGLE_APPLICATION_CREDENTIALS",
        "-v",
        "<ABSOLUTE_PATH>:<ABSOLUTE_PATH>",
        "mcp/cloud-run-mcp:latest"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "cloud-run": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GOOGLE_APPLICATION_CREDENTIALS",
        "-v",
        "<ABSOLUTE_PATH>:<ABSOLUTE_PATH>",
        "mcp/cloud-run-mcp:latest"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.cloud-run]
command = "docker"
args = ["run", "-i", "--rm", "-e", "GOOGLE_APPLICATION_CREDENTIALS", "-v", "<ABSOLUTE_PATH>:<ABSOLUTE_PATH>", "mcp/cloud-run-mcp:latest"]
Gemini CLITerminal
gemini mcp add --scope user cloud-run docker -- run -i --rm -e GOOGLE_APPLICATION_CREDENTIALS -v '<ABSOLUTE_PATH>:<ABSOLUTE_PATH>' mcp/cloud-run-mcp:latest

Settings 10

GOOGLE_CLOUD_PROJECT Optional: Default project ID for the tools.
GOOGLE_CLOUD_REGION Optional: Default region for services.
DEFAULT_SERVICE_NAME Optional: Default service name; the prompts fall back to the current folder name.
GOOGLE_APPLICATION_CREDENTIALS Optional: Path to an application-default credentials file; needed for the Docker way, where gcloud's own login is not visible.
SKIP_IAM_CHECK Optional: true by default, which makes deployed services public; set false to keep IAM checks.
RUN_INGRESS_POLICY Optional: Ingress for deployed services, e.g. INGRESS_TRAFFIC_INTERNAL_ONLY; not in the README.
GCP_STDIO Optional: Set to false to serve over HTTP instead of stdio.
PORT Optional: HTTP port in non-stdio mode; 3000 by default.
ENABLE_HOST_VALIDATION Optional: Set true to check the Host header against DNS rebinding; off by default.
ALLOWED_HOSTS Optional: Comma-separated allowed Host headers when validation is on; localhost,127.0.0.1,::1 by default.

In a container, a setting goes in with -e NAME=value after docker run.

What it does

Cloud Run MCP is Google Cloud's server for putting applications onto Cloud Run from an assistant. It can ship a folder from your disk, a set of files written in the chat, or an existing container image as a Cloud Run service, and then read back the service list, a service's details and its logs and errors. It can also list your Google Cloud projects and create a new one, attaching it to the first billing account it finds.

It runs on your own machine over stdio with your gcloud application-default credentials, or as an HTTP server (set GCP_STDIO=false, port 3000 by default) that you can host on Cloud Run itself behind IAM, reached through a local `gcloud run services proxy`. An OAuth mode reads its client settings from a .env file. It also ships as a Gemini CLI extension and two prompts, `deploy` and `logs`.

The published 1.11.0 code (tools/register-tools.js) registers eight tools with underscore names such as `deploy_local_folder`, while the README lists seven with hyphenated names and leaves out `deploy_container_image`. The code also reads a `RUN_INGRESS_POLICY` setting (mcp-server.js) that sets the ingress of deployed services and is not in the README's table.

What it needs

RuntimeNode.jsorDocker

Node.js (LTS recommended) for npx, or Docker; the Google Cloud SDK with `gcloud auth login` and `gcloud auth application-default login` done; a Google Cloud account with a project, and billing for deployments. The hosted mode needs the server deployed to Cloud Run and `gcloud run services proxy` running locally.

Limits

`deploy_local_folder`, `list_projects` and `create_project` are only registered in local or stdio mode; when hosted on Cloud Run it offers five tools and deploys only to the project it runs in. Without credentials it still starts but every tool answers with an error. SKIP_IAM_CHECK defaults to true, so deployed services are made public unless set to false. Host header validation against DNS rebinding is off unless ENABLE_HOST_VALIDATION=true. Tool names in the README use hyphens; the 1.11.0 code uses underscores. In the README's Docker example the credentials path must sit inside the mounted folder. Google's Cloud terms of service do not apply to this software, per its README.

Who it suits

Developers already on Google Cloud who want an assistant to deploy prototypes or apps to Cloud Run and check their logs without leaving the editor. It is published by Google and works through your own credentials, so it acts with whatever rights your gcloud account has. It covers only Cloud Run plus project creation; for other Google Cloud products or for Cloud Run jobs, the README points to its Cloud Run skills built on the gcloud CLI instead.

Tools 8

list_projects
Lists the Google Cloud projects your credentials can see (local mode only).
create_project
Creates a project, with an optional ID, and links the first billing account found (local mode only).
list_services
Lists the Cloud Run services in a project.
get_service
Returns the details of one Cloud Run service.
get_service_log
Fetches log lines and errors for one Cloud Run service.
deploy_local_folder
Builds and deploys a folder from an absolute local path as a service (local mode only).
deploy_file_contents
Deploys files whose names and contents are passed in the call.
deploy_container_image
Deploys an existing container image URL as a Cloud Run service.

Similar servers