Google Cloud Run

官方

用于部署到 Google Cloud Run 的官方 MCP 服务器。

文档

Cloud Run MCP 服务器与 Gemini CLI 扩展

让兼容 MCP 的 AI 代理能够将应用部署到 Cloud Run。

"mcpServers":{
  "cloud-run": {
    "command": "npx",
    "args": ["-y", "@google-cloud/cloud-run-mcp"]
  }
}

从 Gemini CLI 和其他 AI 驱动的 CLI 代理进行部署:

从 AI 驱动的 IDE 进行部署:

从 AI 助手应用进行部署:

从代理 SDK 进行部署,例如 Google Gen AI SDKAgent Development Kit

[!NOTE]
这是用于将代码部署到 Cloud Run 的 MCP 服务器仓库,要了解如何在 Cloud Run 上托管 MCP 服务器,请访问 Cloud Run 文档

工具

  • deploy-file-contents:通过直接提供文件内容将文件部署到 Cloud Run。

  • list-services:列出给定项目和区域中的 Cloud Run 服务。

  • get-service:获取特定 Cloud Run 服务的详细信息。

  • get-service-log:获取特定 Cloud Run 服务的日志和错误消息。

  • deploy-local-folder*:将本地文件夹部署到 Google Cloud Run 服务。

  • list-projects*:列出可用的 GCP 项目。

  • create-project*:创建一个新的 GCP 项目并将其附加到第一个可用的结算账户。可以选择指定项目 ID。

* 仅在本地运行时可用

提示词

提示词是可用于执行常见任务的自然语言命令。它们是执行带有预填参数的工具调用的快捷方式。

  • deploy:将当前工作目录部署到 Cloud Run。如果未提供服务名称,将使用 DEFAULT_SERVICE_NAME 环境变量或当前工作目录的名称。
  • logs:获取 Cloud Run 服务的日志。如果未提供服务名称,将使用 DEFAULT_SERVICE_NAME 环境变量或当前工作目录的名称。

环境变量

Cloud Run MCP 服务器可以使用以下环境变量进行配置:

变量描述
GOOGLE_CLOUD_PROJECT用于 Cloud Run 服务的默认项目 ID。
GOOGLE_CLOUD_REGION用于 Cloud Run 服务的默认区域。
DEFAULT_SERVICE_NAME用于 Cloud Run 服务的默认服务名称。
SKIP_IAM_CHECK控制是否检查 Cloud Run 服务的 IAM 权限。设置为 false 以启用检查。默认值为 true,这是使服务公开的推荐方式。
ENABLE_HOST_VALIDATION通过验证 Host 头来防止 DNS 重绑定 攻击。默认情况下禁用。
ALLOWED_HOSTS允许的 Host 头列表(如果启用了主机验证),以逗号分隔。默认值为 localhost,127.0.0.1,::1

作为 Gemini CLI 扩展使用

要将其安装为 Gemini CLI 扩展,请运行以下命令:

  1. 安装扩展:

    gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
    
  2. 使用以下命令登录您的 Google Cloud 账户:

    gcloud auth login
    
  3. 使用以下命令设置应用凭据:

    gcloud auth application-default login
    

在 MCP 客户端中使用

了解如何配置您的 MCP 客户端

大多数 MCP 客户端需要创建或修改配置文件以添加 MCP 服务器。

配置文件的语法可能因客户端而异。请参考以下链接了解最新的预期语法:

确定如何配置您的 MCP 客户端后,选择以下两个选项之一来设置 MCP 服务器。 我们建议使用 Node.js 设置为本地 MCP 服务器。

设置为本地 MCP 服务器

在本地机器上使用本地 Google Cloud 凭据运行 Cloud Run MCP 服务器。如果您使用的是 AI 辅助 IDE(例如 Cursor)或桌面 AI 应用程序(例如 Claude),这是最佳选择。

  1. 安装 Google Cloud SDK 并使用您的 Google 账户进行身份验证。

  2. 使用以下命令登录您的 Google Cloud 账户:

    gcloud auth login
    
  3. 使用以下命令设置应用凭据:

    gcloud auth application-default login
    

然后使用 Node.js 或 Docker 配置 MCP 服务器:

使用 Node.js

  1. 安装 Node.js(推荐 LTS 版本)。

  2. 使用以下内容更新您的 MCP 客户端的 MCP 配置文件:

       "cloud-run": {
         "command": "npx",
         "args": ["-y", "@google-cloud/cloud-run-mcp"]
       }
    
  3. [可选] 添加默认配置

       "cloud-run": {
          "command": "npx",
          "args": ["-y", "@google-cloud/cloud-run-mcp"],
          "env": {
                "GOOGLE_CLOUD_PROJECT": "PROJECT_NAME",
                "GOOGLE_CLOUD_REGION": "PROJECT_REGION",
                "DEFAULT_SERVICE_NAME": "SERVICE_NAME"
          }
       }
    

使用 Docker

请参阅 Docker 的 MCP 目录,或使用以下手动说明:

  1. 安装 Docker

  2. 使用以下内容更新您的 MCP 客户端的 MCP 配置文件:

       "cloud-run": {
         "command": "docker",
         "args": [
           "run",
           "-i",
           "--rm",
           "-e",
           "GOOGLE_APPLICATION_CREDENTIALS",
           "-v",
           "/local-directory:/local-directory",
           "mcp/cloud-run-mcp:latest"
         ],
         "env": {
           "GOOGLE_APPLICATION_CREDENTIALS": "/Users/slim/.config/gcloud/application_default-credentials.json",
           "DEFAULT_SERVICE_NAME": "SERVICE_NAME"
         }
       }
    

设置为远程 MCP 服务器

[!WARNING]
请勿在没有身份验证的情况下使用远程 MCP 服务器。在以下说明中,我们将使用 IAM 身份验证来保护从本地机器到 MCP 服务器的连接。这对于防止未经授权访问您的 Google Cloud 资源非常重要。

将 Cloud Run MCP 服务器本身运行在 Cloud Run 上,并通过 IAM 对来自本地机器的连接进行身份验证。 使用此选项,您只能将代码部署到与 MCP 服务器运行所在的同一个 Google Cloud 项目。

  1. 安装 Google Cloud SDK 并使用您的 Google 账户进行身份验证。

  2. 使用以下命令登录您的 Google Cloud 账户:

    gcloud auth login
    
  3. 使用以下命令设置您的 Google Cloud 项目 ID:

    gcloud config set project YOUR_PROJECT_ID
    
  4. 将 Cloud Run MCP 服务器部署到 Cloud Run:

    gcloud run deploy cloud-run-mcp --image us-docker.pkg.dev/cloudrun/container/mcp --no-allow-unauthenticated
    

    出现提示时,选择一个区域,例如 europe-west1

    请注意,MCP 服务器_不_公开访问,它需要通过 IAM 进行身份验证。

  5. [可选] 添加默认配置

    gcloud run services update cloud-run-mcp --region=REGION --update-env-vars GOOGLE_CLOUD_PROJECT=PROJECT_NAME,GOOGLE_CLOUD_REGION=PROJECT_REGION,DEFAULT_SERVICE_NAME=SERVICE_NAME,SKIP_IAM_CHECK=false
    
  6. 在本地机器上运行 Cloud Run 代理,以使用您的身份安全连接到运行在 Cloud Run 上的远程 MCP 服务器:

    gcloud run services proxy cloud-run-mcp --port=3000 --region=REGION --project=PROJECT_ID
    

    这将在端口 3000 上创建一个本地代理,将请求转发到远程 MCP 服务器并注入您的身份。

  7. 使用以下内容更新您的 MCP 客户端的 MCP 配置文件:

       "cloud-run": {
         "url": "http://localhost:3000/sse"
       }
    
    

    如果您的 MCP 客户端不支持 url 属性,您可以使用 mcp-remote

       "cloud-run": {
         "command": "npx",
         "args": ["-y", "mcp-remote", "http://localhost:3000/sse"]
       }
    

使用 MCP 服务器与 OAuth

Cloud Run MCP 服务器支持 OAuth 作为身份验证机制。要使用 OAuth,请创建 OAuth 客户端,并配置一个 .env 文件,其中包含与您的 OAuth 客户端相关的适当值。提供了一个 .env.example 供参考。

Cloud Run MCP 服务器与 Google Cloud SDK OAuth 客户端无缝协作。要利用 Google Cloud SDK OAuth 客户端,您可以按如下方式使用 .env.gcloud-sdk-oauth 文件作为您的 .env 文件:

cp .env.gcloud-sdk-oauth .env
node mcp-server.js

在 Gemini CLI 上配置 MCP 服务器以使用 OAuth

当 Cloud Run MCP 服务器以 OAuth 模式启动时,MCP 客户端也应配置为使用 OAuth。您可以通过在 ~/.gemini/settings.json 文件中使用以下 JSON,在 Gemini CLI 中以 OAuth 模式设置 MCP 服务器:

{
  "mcpServers": {
    "cloud-run": {
      "httpUrl": "http://localhost:3000/mcp",
      "oauth": {
        "enabled": true,
        "clientId": "<OAUTH_CLIENT_ID>",
        "clientSecret": "<OAUTH_CLIENT_SECRET>"
      }
    }
  }
}

完成上述配置更改后,启动 Gemini CLI。您应该在 Gemini CLI 中使用以下提示词对 Cloud Run MCP 服务器进行身份验证:

/mcp auth cloud-run

这将带您进入浏览器上的身份验证页面,您需要使用适当的 Gmail ID 登录并接受条款和条件。身份验证成功后,您可以返回 Gemini CLI,Cloud Run MCP 服务器将准备就绪,可供使用。

Google Cloud Platform 服务条款(可在 https://cloud.google.com/terms/ 获取)和数据处理与安全条款(可在 https://cloud.google.com/terms/data-processing-terms 获取)不适用于 Cloud Run MCP 服务器软件的任何组件。

Cloud Run 技能

我们引入了 Cloud Run 技能,使 AI 代理能够对 Cloud Run 执行操作。您可以将这些技能与 Gemini CLI 和其他代理 AI 工具一起使用。这些技能可在 Cloud Run Skills 获取。

Cloud Run 技能基于 gcloud CLI for Cloud Run,使代理能够使用 gcloud 对 Cloud Run 执行所有操作,就像 GCP 用户使用 gcloud CLI 可以执行的操作一样。

要使用 Cloud Run 技能:

  1. 确保您已安装 gcloud CLI 并使用 gcloud auth logingcloud auth application-default login 进行身份验证。
  2. 使用 gcloud config set project [PROJECT_ID] 设置您的项目。
  3. 在您的代理 AI 工具上启用技能。例如,您可以在终端上使用以下命令为 Gemini CLI 启用技能:
gemini skills install https://github.com/GoogleCloudPlatform/cloud-run-mcp.git --path skills/cloud-run
  1. 启用技能后,您可以使用它们对 Cloud Run 执行操作。以下是一些供您入门的提示词:
  • 列出项目 test-gcp-project 中区域 us-west1 的 Cloud Run 服务。

  • 将文件夹 /home/username/workspace/hello-world 作为 Cloud Run 服务 hello-world 部署到项目 test-gcp-project 的区域 us-west1。

  • 描述项目 test-gcp-project 中区域 europe-west1 的 Cloud Run 作业 hello-job。