googleapis/gcloud-mcp
Project Overview
gcloud MCP Server
Model Context Protocol servers that let AI assistants execute Google Cloud operations via the gcloud CLI and GCP APIs.
True Intent (AI Assessment)
Provide official Google Cloud MCP servers so AI assistants can safely execute gcloud commands and GCP API calls via natural language.
README Accuracy
Notes
Code matches README claims. Maintained under the official googleapis GitHub organization, uses standard Google OSS boilerplate (Apache-2.0, CODEOWNERS, SECURITY.md), and implements explicit safety controls (command denylist for gcloud, access-level filtering for backupdr) that are consistent with the stated goal of safe cloud automation.
This is an official Google-maintained monorepo containing four Model Context Protocol (MCP) servers that expose Google Cloud Platform functionality to AI assistants like Gemini CLI, Claude Desktop, Cursor, and VS Code. The packages are gcloud-mcp (wrapping the gcloud CLI), observability-mcp (logs, metrics, traces, alerts), storage-mcp (GCS bucket and object operations), and backupdr-mcp (Google Cloud Backup and Disaster Recovery). Each is published to npm under the @google-cloud scope and runs as a stdio-based MCP server.
The problem it solves is the friction between conversational AI agents and cloud infrastructure. gcloud has hundreds of subcommands with complex flags, and each GCP service has its own SDK. This project provides a stable, permission-aware bridge so that an LLM can describe an intent (e.g., 'list my running Compute instances') and the server translates it into safe, structured gcloud/API calls, returning results the model can reason about.
The primary users are developers and cloud operators who work inside AI-assisted coding or chat environments. Installation is via `npx @google-cloud/<package> init --agent=gemini-cli` or by adding an npx-based entry to any MCP client's JSON config. Once wired up, the user talks to their assistant in natural language and the assistant invokes tools like `run_gcloud_command`, `list_log_entries`, `list_objects`, or `create_backup_plan` on their behalf.
Under the hood, each package is a TypeScript module built with esbuild that instantiates an McpServer from @modelcontextprotocol/sdk and connects it via StdioServerTransport. gcloud-mcp shells out to the locally installed gcloud CLI, filtered through an access control list with a hardcoded default denylist blocking interactive/SSH commands (compute ssh, start-iap-tunnel, cloud-shell ssh, interactive shells, etc.). The other packages call GCP client libraries (@google-cloud/storage, @google-cloud/backupdr, googleapis) using google-auth-library. backupdr-mcp adds an AccessLevel enum (READ_ONLY, UPSERT, ALL) that gates tool registration by name pattern.
The codebase shows strong production hygiene: strict TypeScript config (@tsconfig/strictest), Vitest with coverage, ESLint with a license-header plugin, Prettier, turbo-driven monorepo builds, release-please automation, CODEOWNERS, Go-based end-to-end integration tests that shell out to the actual `gemini` CLI, and a documented denylist policy. Apache-2.0 licensed, published under the official googleapis GitHub org.
| Languages | TypeScript, JavaScript, Go (integration tests) |
| Runtime | Node.js 20+ |
| Framework | Model Context Protocol SDK (@modelcontextprotocol/sdk) |
| Database | None (GCP services accessed via APIs) |
| Package Manager | npm 11 (workspaces + Turborepo) |
| Key Dependencies | @modelcontextprotocol/sdk, @google-cloud/storage, @google-cloud/backupdr, googleapis, google-auth-library, yargs, zod |
| Build Tool | esbuild + tsc (orchestrated by Turbo) |
| Test Framework | Vitest (unit + integration) with @vitest/coverage-v8; Go SDK for E2E |