云运行MCP服务器和Gemini CLI扩展

一个用于将MCP兼容的AI代理应用部署到Cloud Run的工具,支持从Gemini CLI、AI IDE和AI助手应用等多种方式部署。

  • by GoogleCloudPlatform
  • JavaScript
  • 本地部署
  • 634 星标
  • 更新于
在 GitHub 查看 GoogleCloudPlatform/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部署,如 谷歌人工智能SDK 或 代理开发工具包.

[!注意]
这是MCP服务器的存储库,用于将代码部署到Cloud Run,了解如何 主机 MCP服务器在云端运行, 访问Cloud Run文档.

工具

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

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

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

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

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

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

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

*仅在本地运行时可用

提示

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

  • deploy:将当前工作目录部署到Cloud Run。如果未提供服务名称,它将使用 DEFAULT_SERVICE_NAME 环境变量或当前工作目录的名称。
  • logs:获取云运行服务的日志。如果未提供服务名称,它将使用 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 防止 DNS 重绑定 通过验证Host标头进行攻击。默认情况下,这是禁用的。
ALLOWED_HOSTS 允许的主机标头的逗号分隔列表(如果启用了主机验证)。默认值为 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服务器。如果你使用的是人工智能辅助IDE(如Cursor)或桌面人工智能应用程序(如Claude),这是最好的。

  1. 安装 谷歌云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. 安装 码头工人

  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服务器

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

在Cloud Run上运行Cloud Run MCP服务器本身,并通过IAM验证本地计算机的连接。 使用此选项,您只能将代码部署到与MCP服务器运行的位置相同的Google Cloud项目。

  1. 安装 谷歌云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遥控器:

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

将MCP服务器与OAuth结合使用

Cloud Run MCP服务器支持OAuth作为身份验证机制。为了使用OAuth,请创建OAuth客户端,并配置 .env 文件中包含与OAuth客户端相关的适当值。A. .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 CLI中使用以下JSON在OAuth模式下设置MCP服务器 ~/.gemini/settings.json 文件:

{
  "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服务器将准备就绪。

谷歌云平台服务条款(可在https://cloud.google.com/terms/)以及数据处理和安全条款(可在https://cloud.google.com/terms/data-processing-terms)不适用于Cloud Run MCP Server软件的任何组件。

云跑技能

我们引入Cloud Run技能,使AI代理能够在Cloud Run上执行操作。您可以将这些技能与Gemini CLI和其他代理AI工具一起使用。这些技能可在以下网址获得 云跑技能.

Cloud Run技能基于gcloud cli for Cloud Run,使代理能够使用gcloud在Cloud Run上执行所有操作,GCP用户也可以使用gcloud-cli执行这些操作。

要使用Cloud Run技能:

  1. 确保你有 gcloud CLI已安装并通过身份验证 gcloud auth login 和 gcloud 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上执行操作。以下是一些入门提示:
  • 列出区域us-west1中项目测试gcp项目中的Cloud Run服务。

  • 将/home/username/workspace/helloworld文件夹部署为云运行服务helloworld到区域us-west1中的项目test-gcp项目。

  • 描述欧洲西部地区项目测试gcp项目中的Cloud Run作业hello作业1。