Herramienta: run_gcloud_command
Ejecuta un solo comando de gcloud CLI dentro del proyecto de Google Cloud del usuario.
ADVERTENCIA DE SEGURIDAD CRÍTICA (POTENCIALMENTE DESTRUCTIVA): Esta herramienta puede crear, actualizar o borrar recursos de GCP (p.ej., gcloud compute instances delete). NO se limita a los comandos de solo lectura. Úsala con extrema precaución.
COMANDOS PROHIBIDOS: Un agente NO DEBE ejecutar los siguientes comandos de gcloud (incluidas sus variantes alfa/beta): app deploy, app instances ssh, auth, billing, components, config, docker, feedback, info, init, meta y survey.
REGLAS DE EJECUCIÓN ESTRICTAS:
- Debes proporcionar el parámetro "project" (es decir, project="projects/PROJECT_ID") cuando uses esta herramienta (se usa para la verificación de habilitación de la API de Cloud CLI Execution, la facturación, la cuota, etcétera). NO es lo mismo que la marca --project en los comandos de gcloud que se usan para especificar el proyecto en el que opera gcloud.
- Formato de marcas: SIEMPRE debes usar un signo "=" para separar las claves de las marcas de sus valores para todas las opciones largas. Correcto:
--zone=us-central1-ao--project=my-project. Incorrecto:--zone us-central1-ao--project my-project. - Proyecto de facturación: No puedes asumir ninguna configuración de proyecto o facturación preconfigurada en el entorno de ejecución. Para los comandos que no están dentro del alcance del proyecto (p.ej., a nivel de la organización o la carpeta) o situaciones específicas como Cloud Storage Requester Pays, DEBES pasar la marca
--billing-project=PROJECT. Para los comandos dentro del alcance del proyecto, TAMBIÉN puedes especificar--billing-project=PROJECTpara anular el proyecto de cuota, que entrará en vigencia para las APIs de GCP que no admiten la anulación de resource-project. - Alcance del proyecto: SIEMPRE debes pasar la marca
--project=PROJECT_IDpara los comandos dentro del alcance del proyecto. No la uses para comandos a nivel de la organización o la carpeta. Si no proporcionas una--project flagpara un comando dentro del alcance del proyecto, el proyecto de recursos se establecerá de forma predeterminada en el proyecto establecido en la marca--billing-project. - Si especificas la marca
--billing-projecten el comando de gcloud, asegúrate de que el valor sea un ID del proyecto o un número de proyecto. El valor NO DEBE ser un valor especial (es decir, LEGACY, CURRENT_PROJECT, CURRENT_PROJECT_WITH_FALLBACK). - Se DEBE especificar al menos uno de
--projecto--billing-projecten la cadena de comandos. - Operaciones asíncronas: Para las operaciones síncronas de larga duración (p.ej., crear una VM o una base de datos), SIEMPRE debes pasar la marca
--asyncpara evitar los tiempos de espera del agente. - Limitación de la tasa de registros: Cuando uses
gcloud logging read, SIEMPRE debes incluir una marca--limit(p.ej.,--limit=100) para evitar los tiempos de espera de las credenciales y la conexión. - Autocorrección: Si un comando muestra un error, analiza stderr, corrige la sintaxis o las marcas y vuelve a intentarlo en la siguiente iteración.
- input_files: (Opcional) Es una lista de archivos que se crearán en el entorno antes de ejecutar el comando. Cada archivo debe tener una "ruta de acceso" (relativa al directorio actual) y "contenido". El "contenido" debe ser texto simple que represente el contenido del archivo. Esto es útil para los comandos que leen archivos (p.ej.,
gcloud builds submit --config=cloudbuild.yaml --async --project=PROJECT_ID).
Ejemplos de comandos o patrones de gcloud:
- Lee los registros de instancias de GCE con gravedad>=ERROR:
gcloud logging read "severity>=ERROR AND resource.type='gce_instance'" --limit=10 --order=DESC --project=PROJECT_ID- Ten en cuenta el uso de comillas para la expresión de filtro.
- Enumera todos los extremos de PSC:
gcloud compute forwarding-rules list --project=PROJECT_ID - Describe un extremo de PSC:
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region=REGION --project=PROJECT_ID- Ten en cuenta el uso de "=" para la marca --region.
- Enumera todos los clústeres:
gcloud container clusters list --project=PROJECT_ID - Describe un clúster:
gcloud container clusters describe CLUSTER_NAME --region=REGION --project=PROJECT_ID - Enumera las instancias de procesamiento:
gcloud compute instances list --project=PROJECT_ID - Obtén la política de IAM para un proyecto:
gcloud projects get-iam-policy PROJECT_ID --project=PROJECT_ID
Las cadenas de respuesta se formatean para la salida de la terminal de forma predeterminada (stdout o stderr). Usa la marca --format para cambiar el formato.
En la siguiente muestra de código, se muestra cómo usar curl para llamar a la herramienta MCP run_gcloud_command.
| Solicitud de curl |
|---|
curl --location 'https://cloudcli.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "run_gcloud_command", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Esquema de entrada
Mensaje de solicitud para RunGcloud.
RunGcloudRequest
| Representación JSON |
|---|
{
"project": string,
"command": string,
"inputFiles": [
{
object ( |
| Campos | |
|---|---|
project |
Obligatorio. Proyecto para la habilitación de la API y el consumo de cuotas para la API de Cloud CLI Execution. El formato debe ser projects/ |
command |
Obligatorio. La línea de comandos completa de gcloud para ejecutar como una sola cadena. Ejemplo: "gcloud compute instances create my-vm --zone=us-central1-a" Se les indica a los LLM que usen la marca |
inputFiles[] |
Es opcional. Archivos que se pondrán a disposición del comando de gcloud para su ejecución. |
Archivo
| Representación JSON |
|---|
{ "path": string, "contents": string } |
| Campos | |
|---|---|
path |
Obligatorio. Ruta de acceso al archivo relativa al directorio principal. No debe contener el recorrido del directorio superior (..) ni las expansiones de shell. |
contents |
Obligatorio. Contenido del archivo. |
Esquema de salida
Mensaje de respuesta para RunGcloud.
RunGcloudResponse
| Representación JSON |
|---|
{ "response": { object ( |
| Campos | |
|---|---|
response |
La respuesta de la ejecución de la herramienta de CLI, que contiene stdout, stderr y un código de salida independientes. |
outputFiles[] |
Archivos generados por el comando de gcloud a partir de su ejecución. |
CliExecutionResponse
| Representación JSON |
|---|
{ "stdout": string, "stderr": string, "exitCode": string } |
| Campos | |
|---|---|
stdout |
El flujo stdout de la ejecución de la herramienta de CLI. |
stderr |
El flujo stderr de la ejecución de la herramienta de CLI. |
exitCode |
El código de salida de la ejecución de la herramienta de CLI. |
Archivo
| Representación JSON |
|---|
{ "path": string, "contents": string } |
| Campos | |
|---|---|
path |
Obligatorio. Ruta de acceso al archivo relativa al directorio principal. No debe contener el recorrido del directorio superior (..) ni las expansiones de shell. |
contents |
Obligatorio. Contenido del archivo. |
Anotaciones de herramientas
Sugerencia destructiva: ✅ | Sugerencia idempotente: ❌ | Sugerencia de solo lectura: ❌ | Sugerencia de mundo abierto: ❌