使用 Resource Manager 远程 MCP 服务器

所需的角色

如需获得启用 Resource Manager MCP 服务器所需的权限,请让您的管理员为您授予您要启用 Resource Manager MCP 服务器的项目的 Service Usage Admin (roles/serviceusage.serviceUsageAdmin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含启用 Resource Manager MCP 服务器所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需启用 Resource Manager MCP 服务器,您需要具有以下权限:

  • serviceusage.mcppolicy.get
  • serviceusage.mcppolicy.update

您也可以使用自定义角色或其他预定义角色来获取这些权限。

启用或停用 Resource Manager MCP 服务器

您可以使用 gcloud beta services mcp enable 命令在项目中启用或停用 Resource Manager MCP 服务器。如需了解详情,请参阅以下部分。

在项目中启用 Resource Manager MCP 服务器

如果您使用不同的项目来存储客户端凭证(例如服务账号密钥、OAuth 客户端 ID 或 API 密钥)和托管资源,则必须在两个项目中都启用 Resource Manager 服务和 Resource Manager 远程 MCP 服务器。

如需在Google Cloud 项目中启用 Resource Manager MCP 服务器,请运行以下命令:

gcloud beta services mcp enable SERVICE \
    --project=PROJECT_ID

替换以下内容:

  • PROJECT_ID: Google Cloud 项目 ID。
  • SERVICE:Resource Manager 的全局或区域服务名称。例如,cloudresourcemanager.googleapis.comcloudresourcemanager.us-central1.rep.googleapis.com。如需了解可用区域,请参阅 Resource Manager MCP 参考

Resource Manager 远程 MCP 服务器已启用,可在 Google Cloud 项目中使用。如果没有为Google Cloud 项目启用 Resource Manager 服务,系统会提示您先启用该服务,然后再启用 Resource Manager 远程 MCP 服务器。

作为安全性最佳实践,我们建议您仅为 AI 应用正常运行所需的服务启用 MCP 服务器。

在项目中停用 Resource Manager MCP 服务器

如需在Google Cloud 项目中停用 Resource Manager MCP 服务器,请运行以下命令:

gcloud beta services mcp disable SERVICE \
    --project=PROJECT_ID

Resource Manager MCP 服务器已停用,无法在 Google Cloud 项目中使用。

身份验证和授权

Resource Manager MCP 服务器使用 OAuth 2.0 协议和 Identity and Access Management (IAM) 进行身份验证和授权。支持所有 Google Cloud 身份用于向 MCP 服务器进行身份验证。

我们建议使用 MCP 工具为代理创建单独的身份,以便控制和监控对资源的访问。如需详细了解身份验证,请参阅向 MCP 服务器进行身份验证

Resource Manager MCP OAuth 范围

OAuth 2.0 使用范围和凭证来确定经过身份验证的主账号是否有权对资源执行特定操作。如需详细了解 Google 的 OAuth 2.0 范围,请参阅使用 OAuth 2.0 访问 Google API

Resource Manager 具有以下 MCP 工具 OAuth 范围:

gcloud CLI 的范围 URI 说明
https://www.googleapis.com/auth/cloudresourcemanager.read-only 仅允许读取数据。
https://www.googleapis.com/auth/cloudresourcemanager.read-write 允许访问以读取和修改数据。

在工具调用期间访问的资源可能需要额外的范围。如需查看 Resource Manager 所需的范围列表,请参阅 Resource Manager API

配置 MCP 客户端以使用 Resource Manager MCP 服务器

Claude 或 Gemini CLI 等 AI 应用和代理可以实例化连接到单个 MCP 服务器的 MCP 客户端。一个 AI 应用可以有多个连接到不同 MCP 服务器的客户端。如需连接到远程 MCP 服务器,MCP 客户端必须至少知道远程 MCP 服务器的网址。

在 AI 应用中,寻找连接到远程 MCP 服务器的方式。系统会提示您输入服务器的详细信息,例如其名称和网址。

对于 Resource Manager MCP 服务器,请根据需要输入以下内容:

  • 服务器名称:Resource Manager MCP 服务器
  • 服务器网址端点:cloudresourcemanager.googleapis.com/mcp
  • 传输:HTTP
  • 身份验证详细信息:您可以根据所需的身份验证方式,输入 Google Cloud 凭证、OAuth 客户端 ID 和密钥,或代理身份和凭证。如需详细了解身份验证,请参阅向 MCP 服务器进行身份验证
  • OAuth 范围:您在连接到 Resource Manager MCP 服务器时要使用的 OAuth 2.0 范围

如需查看特定于主机的指导,请参阅以下内容:

如需更一般的指导,请参阅以下资源:

可用的工具

只读 MCP 工具的 MCP 属性 mcp.tool.isReadOnly 设置为 true。您可能希望通过组织政策仅允许在特定环境中使用只读工具。

如需查看 Resource Manager MCP 服务器的可用 MCP 工具的详细信息及其说明,请参阅 Resource Manager MCP 参考文档

列出工具

使用 MCP 检查器列出工具,或直接向 Resource Manager 远程 MCP 服务器发送 tools/list HTTP 请求。tools/list 方法不需要进行身份验证。

POST /mcp HTTP/1.1
Host: cloudresourcemanager.googleapis.com
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "method": "tools/list",
}

示例应用场景

资源管理器远程 MCP 服务器中的 search_projects 工具可让 AI 代理动态发现并识别您拥有必要权限来访问的所有 Google Cloud 项目,以便它们可以在其他工具中执行命令。

该工具会返回一个结构化列表,其中包含项目 ID、项目编号和项目的生命周期状态。以下是 Resource Manager MCP 服务器的示例用例:

  • 资源清单和可访问性审核:列出并总结您可以访问的有效云项目。

    用户提示:List all my active Google Cloud projects.

    智能体操作:智能体向 MCP 服务器发送搜索查询,以检索并显示您的凭据下的所有有效项目的摘要列表。

  • 基于父级的定向搜索:检索位于特定文件夹或组织内的项目,以缩小请求的范围。

    用户提示:Find all projects under Folder 223.

    智能体操作:智能体执行包含查询 parent:folders/223 的工具调用,以返回相应行政边界内的项目列表。

  • 隐式上下文解析:当您请求有关资源的信息但未提供具体的项目 ID 时,代理可以自动解析上下文。

    用户提示:Check the status of my 'payment-processor' service.

    代理操作:代理识别到 Cloud Run 工具缺少 project_id。它使用 search_projects 工具查找名称中包含 payment 的项目,识别可能的项目(例如 payment-prod-123),并在继续之前要求您确认。

  • 特定于环境的发现:您无需离开聊天界面,即可查找按特定环境或组织结构过滤的项目。

    用户提示:Which projects do I have access to in the staging environment?

    代理操作:代理会搜索您有权查看的所有标记为或命名为 staging 的项目,并返回具体的项目 ID。

自定义 LLM 行为

search_projects 工具用途广泛,但 LLM 可能并不总是知道何时查询您的 Google Cloud 层次结构。如需在特定场景中调用该工具,请在 Markdown 文件(例如 ~/.gemini/GEMINI.md 或项目级 AGENTS.md)中提供自定义上下文。

后续步骤