Google Compute Engine MCP server

Endpoint: https://compute.googleapis.com/mcp · Authentication: Sign in with OAuth

Creates, starts, stops, and lists Compute Engine VM instances, instance groups, disks, and reservations. Requires Google Cloud credentials through OAuth.

How do I authenticate?

Add the endpoint in your client, start Connect or Sign in, approve the requested scopes, and return to the client. OAuth discovery finds the authorization server; client registration requirements vary by provider. Follow the provider guidance and client setup below.

Authentication and connection guide

Connection specification

Remote endpoint
https://compute.googleapis.com/mcp
Browser access
Not yet measured
Declared MCP transport
Streamable HTTP
Live-validated MCP transport
Streamable HTTP — Observed by the latest catalog validation
Declared authentication
OAuth 2.1
Detected authentication
OAuth 2.1 detected or retained from publisher evidence
Protocol lifecycle
Stateful MCP · 2025-11-25
Authorization server
https://accounts.google.com/
Category
Cloud

Product documentation · Official listing documentation

Provider guidance

  • Initialization and tool listing succeeded without credentials in the 2026-10-20 audit; tool calls require Google Cloud credentials. Google OAuth clients are pre-registered in a Google Cloud project; the server does not advertise Dynamic Client Registration.

More Cloud MCP servers · Browse all MCP servers · Test this endpoint in the MCP Playground

Authorization setup

Registration requirements not verified

The OAuth authorization and app-registration requirements for this exact endpoint have not been verified. A compatible client will request authorization, but follow the publisher documentation and do not guess client credentials or callbacks.

Publisher evidence reviewed .

Publisher documentation

Connect it

Live-validated endpoint: https://compute.googleapis.com/mcp · Streamable HTTP. Registration requirements not verified: The OAuth authorization and app-registration requirements for this exact endpoint have not been verified. A compatible client will request authorization, but follow the publisher documentation and do not guess client credentials or callbacks.

Agent prompt for Claude Code or Codex
Add the Google Compute Engine MCP server to my MCP client configuration and verify that it works.

What it is: Creates, starts, stops, and lists Compute Engine VM instances, instance groups, disks, and reservations. Requires Google Cloud credentials through OAuth.
Server URL: https://compute.googleapis.com/mcp
Transport: Streamable HTTP (remote MCP server, no local install).
Authentication: OAuth 2.1. Registration requirements not verified: The OAuth authorization and app-registration requirements for this exact endpoint have not been verified. A compatible client will request authorization, but follow the publisher documentation and do not guess client credentials or callbacks.
Tools (first 25 of 29, as last observed by mcptest): create_instance, delete_instance, get_commitment_basic_info, get_disk_basic_info, get_disk_performance_config, get_instance_basic_info, get_instance_group_manager_basic_info, get_instance_template_basic_info, get_instance_template_properties, get_reservation_basic_info, get_reservation_details, get_zone_operation, list_accelerator_types, list_commitment_reservations, list_commitments, list_disks, list_images, list_instance_attached_disks, list_instance_group_managers, list_instance_templates, list_instances, list_machine_types, list_managed_instances, list_reservations, list_snapshots.
Reference: https://mcptest.io/servers/google-compute-engine/

Steps:
1. Work out which MCP client I use (Claude Code, Codex, Cursor, VS Code or another) and add the server under the name "google-compute-engine" in that client's MCP configuration, user scope unless I ask otherwise.
   Claude Code: claude mcp add --transport http --scope user 'google-compute-engine' 'https://compute.googleapis.com/mcp'
   Other clients: use the setup for that client on the reference page.
2. Never write a credential value into a file that could be committed; reference an environment variable or the client's secret store, and ask me for any value you need.
3. Verify: connect to the server and call tools/list. Confirm the tools above are listed, and report any sign-in step I still have to complete.
MCP client

Claude Code setup

Run in a terminal. This user-scoped entry is available across projects.

claude mcp add --transport http --scope user 'google-compute-engine' 'https://compute.googleapis.com/mcp'
  • After adding the server, open Claude Code, run /mcp, select the server, and follow the browser flow to authenticate.

Codex CLI setup

Run in a terminal; Codex stores the entry in ~/.codex/config.toml.

codex mcp add 'google-compute-engine' --url 'https://compute.googleapis.com/mcp'
codex mcp login 'google-compute-engine'

Cursor setup

Add to .cursor/mcp.json for this project, or ~/.cursor/mcp.json for all projects.

{
  "mcpServers": {
    "google-compute-engine": {
      "url": "https://compute.googleapis.com/mcp"
    }
  }
}

VS Code setup

Add to .vscode/mcp.json, or run “MCP: Open User Configuration” for a private user-level entry.

{
  "servers": {
    "google-compute-engine": {
      "type": "http",
      "url": "https://compute.googleapis.com/mcp"
    }
  }
}

Claude setup

Add the endpoint above in Claude:

  • Customize > Connectors > Add custom connector
  • Team/Enterprise: Organization settings > Connectors > Add > Custom > Web

Claude Desktop setup

Add the endpoint above in Claude Desktop:

  • Remote: Customize > Connectors (same as claude.ai)
  • Local: Settings > Developer > Edit Config, or Settings > Extensions for .mcpb files
  • ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), local servers only

ChatGPT setup

Add the endpoint above in ChatGPT:

  • ChatGPT web: Plugins > Add custom MCP server, then configure authentication and accept the risk warning

Windsurf setup

Add the endpoint above in Windsurf:

  • ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json on Windows), serverUrl or url
  • Cascade panel > ... > MCPs > Open MCP config file

Gemini CLI setup

Add the endpoint above in Gemini CLI:

  • gemini mcp add --transport http <name> <url>
  • ~/.gemini/settings.json (user) or .gemini/settings.json (project), mcpServers

MCP SDK setup

Add the endpoint above in MCP SDK:

  • Programmatic: new Client(...).connect(new StreamableHTTPClientTransport(url))

Notes for every client

  • Publisher evidence (reviewed 2026-10-20): https://docs.cloud.google.com/compute/docs/use-compute-engine-mcp
  • Provider guidance: Initialization and tool listing succeeded without credentials in the 2026-10-20 audit; tool calls require Google Cloud credentials. Google OAuth clients are pre-registered in a Google Cloud project; the server does not advertise Dynamic Client Registration.

Client compatibility

ClientStatusWhy
Claude CodeSupportedClaude Code supports Streamable HTTP servers and OAuth sign-in.
CodexSupportedCodex supports Streamable HTTP servers and OAuth sign-in.
CursorSupportedCursor supports Streamable HTTP servers and OAuth sign-in.
VS CodeSupportedVS Code supports Streamable HTTP servers and OAuth sign-in.
ClaudeSupportedClaude supports Streamable HTTP servers and OAuth sign-in.
Claude DesktopSupportedClaude Desktop supports Streamable HTTP servers and OAuth sign-in.
ChatGPTPartialStateful routing needs operational care: ChatGPT can preserve MCP sessions, but the deployment must route a session consistently and retain its state.
WindsurfPartialWindsurf's documentation does not state support for OAuth sign-in.
Gemini CLISupportedGemini CLI supports Streamable HTTP servers and OAuth sign-in.
MCP SDKSupportedMCP SDK supports Streamable HTTP servers and OAuth sign-in.

Computed from this server's validated transport, protocol and authentication against documented client support. Checks the catalog has not observed are not counted.

Similar servers

  • Cloudflare — Remote MCP server for Cloudflare Workers, D1, R2, DNS, and account APIs. OAuth 2.1
  • Vercel — Vercel's remote MCP server for inspecting and managing projects, deployments, logs, and platform resources. OAuth 2.1
  • Cloudflare Workers Bindings — Manages the storage, AI, and compute primitives that Workers bind to, such as KV, R2, and D1, in a Cloudflare account. Requires Cloudflare OAuth. OAuth 2.1
  • Cloudflare Workers Builds — Lists Workers Builds and reads their status and logs for Workers connected to Git. Requires Cloudflare OAuth. OAuth 2.1
  • Cloudflare Browser Run — Fetches web pages through Cloudflare Browser Rendering and returns HTML, Markdown, or screenshots. Requires Cloudflare OAuth. OAuth 2.1
  • Cloudflare Containers — Spins up a sandboxed container development environment for running code. Requires Cloudflare OAuth. OAuth 2.1

Guides for this server

Watch this server for breaking changes

Share and embed

Maintain Google Compute Engine? Embed this badge in your README. It follows the latest catalog validation result and links to this server profile.

mcptest.io: ready

Latest validation evidence

Validation status
Online when last tested
Validation checked at
Oct 26, 2026 at 11:06 AM
Validation detail
Negotiated stateful MCP 2025-11-25 at https://compute.googleapis.com/mcp; detected transport streamable-http; authentication oauth

Tool inventory

What the catalog validator observed on at https://compute.googleapis.com/mcp without credentials. The live server may have changed since; connect in the Playground for the current list.

Tools provided by Google Compute Engine 29

Some details were sanitized for public display.

  • create_instanceoutputSchema declared

    Create a new Google Compute Engine virtual machine (VM) instance. Requires project, zone, and instance name as input. If machine_type is not provided, it defaults to `e2-medium`. If image_project and image_family are not provided, it defaults to `debian-12` image from `debian-cloud` project. guest_accelerator and maintenance_policy can be optionally provided. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.

    Input guestAccelerators?: array, imageFamily?: string, imageProject?: string, machineType?: string, maintenancePolicy?: string, name: string, project: string, zone: string
    • guestAccelerators?: arrayoptional

      Optional. The list of attached accelerators. Each entry specifies the accelerator type (short name or full/partial URL, e.g., 'nvidia-tesla-p4') and the count.

    • imageFamily?: stringoptional

      Optional. The image family of the instance.

    • imageProject?: stringoptional

      Optional. The image project of the instance.

    • machineType?: stringoptional

      Optional. The machine type of the instance.

    • maintenancePolicy?: stringoptional

      Optional. The maintenance policy option for the instance.

    • name: stringrequired

      Required. Identifier. The instance name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instance.

  • delete_instanceoutputSchema declared

    Delete a Google Compute Engine virtual machine (VM) instance. Requires project, zone, and instance name as input. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. The instance name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instance.

  • get_commitment_basic_infooutputSchema declared

    Get basic [REDACTED] about a Compute Engine Commitment, including its name, ID, status, plan, type, resources, and creation, start and end timestamps. Requires project, region, and commitment name as input.

    Input name: string, project: string, region: string
    • name: stringrequired

      Required. Identifier. Name of the commitment to return.

    • project: stringrequired

      Required. Project ID for this request.

    • region: stringrequired

      Required. The region of the commitment.

  • get_disk_basic_infooutputSchema declared

    Get basic [REDACTED] about a Compute Engine disk, including its name, ID, description, creation timestamp, size, type, status, last attach timestamp, and last detach timestamp. Requires project, zone, and disk name as input.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. The disk name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the disk.

  • get_disk_performance_configoutputSchema declared

    Get performance configuration of a Compute Engine disk, including its type, size, provisioned IOPS, provisioned throughput, physical block size, storage pool and access mode. Requires project, zone, and disk name as input.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. The disk name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the disk.

  • get_instance_basic_infooutputSchema declared

    Get basic [REDACTED] about a Compute Engine VM instance, including its name, ID, status, machine type, creation timestamp, and attached guest accelerators. Requires project, zone, and instance name as input.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. The instance name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instance.

  • get_instance_group_manager_basic_infooutputSchema declared

    Get basic [REDACTED] about a Compute Engine managed instance group (MIG), including its name, ID, instance template, base instance name, target size, target stopped size, target suspended size, status and creation timestamp. Requires project, zone, and MIG name as input.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. The instance group manager name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instance group manager.

  • get_instance_template_basic_infooutputSchema declared

    Get basic [REDACTED] about a Compute Engine instance template, including its name, ID, description, machine type, region, and creation timestamp. Requires project and instance template name as input.

    Input name: string, project: string
    • name: stringrequired

      Required. Identifier. Name of the instance template to return.

    • project: stringrequired

      Required. Project ID for this request.

  • get_instance_template_propertiesoutputSchema declared

    Get instance properties of a Compute Engine instance template. This includes properties such as description, tags, machine type, network interfaces, disks, metadata, service accounts, scheduling options, labels, guest accelerators, reservation affinity, and shielded/confidential instance configurations. Requires project and instance template name as input.

    Input name: string, project: string
    • name: stringrequired

      Required. Identifier. Name of the instance template to return.

    • project: stringrequired

      Required. Project ID for this request.

  • get_reservation_basic_infooutputSchema declared

    Get Compute Engine reservation basic [REDACTED] including name, ID, creation timestamp, zone, status, specific reservation required, commitment, and linked commitments. Requires project, zone, and reservation name as input.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. Name of the reservation to retrieve.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the reservation.

  • get_reservation_detailsoutputSchema declared

    Get Compute Engine reservation details. Returns reservation details including name, ID, status, creation timestamp, specific reservation properties like machine type, guest accelerators and local SSDs, aggregate reservation properties like VM family and reserved resources, commitment and linked commitments, sharing settings, and resource status. Requires project, zone, and reservation name as input.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. Name of the reservation to retrieve.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the reservation.

  • get_zone_operationoutputSchema declared

    Get details of a zone operation, including its id, name, status, creation timestamp, error, warning, HTTP error message and HTTP error status code. Requires project, zone, and operation name as input.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. The operation name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the operation.

  • list_accelerator_typesoutputSchema declared

    Lists the available Google Compute Engine accelerator types. Requires project and zone as input. Returns accelerator types, including id, creation timestamp, name, description, deprecated, zone, and maximum cards per instance.

    Input project: string, zone: string
    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the accelerator types.

  • list_commitment_reservationsoutputSchema declared

    Lists reservations for a Compute Engine Commitment. Returns reservation details including name, ID, status, creation timestamp, specific reservation properties like machine type, guest accelerators and local SSDs, aggregate reservation properties like VM family and reserved resources, commitment and linked commitments, sharing settings, and resource status. Requires project, region, and commitment name as input.

    Input name: string, project: string, region: string
    • name: stringrequired

      Required. Identifier. Name of the commitment to look up reservations for.

    • project: stringrequired

      Required. Project ID for this request.

    • region: stringrequired

      Required. The region of the commitment.

  • list_commitmentsoutputSchema declared

    Lists Compute Engine Commitments in a region. Details for each commitment include name, ID, status, plan, type, resources, and creation, start and end timestamps. Requires project and region as input.

    Input pageSize?: integer, pageToken?: string, project: string, region: string
    • pageSize?: integeroptional

      Optional. The maximum number of commitments to return.

    • pageToken?: stringoptional

      Optional. A page token received from a previous call to list commitments.

    • project: stringrequired

      Required. Project ID for this request.

    • region: stringrequired

      Required. The region of the commitments.

  • list_disksoutputSchema declared

    Lists Compute Engine disks. Details for each disk include name, ID, description, creation timestamp, size, type, status, last attach timestamp, and last detach timestamp. Requires project and zone as input.

    Input pageSize?: integer, pageToken?: string, project: string, zone: string
    • pageSize?: integeroptional

      Optional. The maximum number of results per page that should be returned.

    • pageToken?: stringoptional

      Optional. The page token received from the previous call.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the disks to list.

  • list_imagesoutputSchema declared

    Lists Compute Engine Images. Details for each image include name, ID, status, family, and creation timestamp. Requires project as input.

    Input pageSize?: integer, pageToken?: string, project: string
    • pageSize?: integeroptional

      Optional. The maximum number of images to return.

    • pageToken?: stringoptional

      Optional. A page token received from a previous call to list images.

    • project: stringrequired

      Required. Project ID for this request.

  • list_instance_attached_disksoutputSchema declared

    Lists the disks attached to a Compute Engine virtual machine (VM) instance. For each attached disk, the response includes details such as kind, type, mode, saved state, source, device name, index, boot, initialize parameters, auto delete, licenses,, interface, guest OS features, disk encryption key, disk size, shielded instance initial state, force attach, and architecture. Requires project, zone, and instance name as input.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. The instance name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instance.

  • list_instance_group_managersoutputSchema declared

    Lists Compute Engine managed instance groups (MIGs). Details for each MIG include name, ID, instance template, base instance name, target size, target stopped size, target suspended size, status and creation timestamp. Requires project and zone as input.

    Input pageSize?: integer, pageToken?: string, project: string, zone: string
    • pageSize?: integeroptional

      Optional. The maximum number of instance group managers to return.

    • pageToken?: stringoptional

      Optional. A page token received from a previous call to list instance group managers.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instance group managers.

  • list_instance_templatesoutputSchema declared

    Lists Compute Engine instance templates. Details for each instance template include name, ID, description, machine type, region, and creation timestamp. Requires project as input.

    Input pageSize?: integer, pageToken?: string, project: string
    • pageSize?: integeroptional

      Optional. The maximum number of instance templates to return.

    • pageToken?: stringoptional

      Optional. A page token received from a previous call to list instance templates.

    • project: stringrequired

      Required. Project ID for this request.

  • list_instancesoutputSchema declared

    Lists Compute Engine virtual machine (VM) instances. Details for each instance include name, ID, status, machine type, creation timestamp, and attached guest accelerators. Use other tools to get more details about each instance. Requires project and zone as input.

    Input pageSize?: integer, pageToken?: string, project: string, zone: string
    • pageSize?: integeroptional

      Optional. The maximum number of instances to return.

    • pageToken?: stringoptional

      Optional. A page token received from a previous call to list instances.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instances.

  • list_machine_typesoutputSchema declared

    Lists the available Google Compute Engine machine types. Requires project and zone as input. Returns machine types, including id, creationTimestamp, name, description, guest cpus, memory, image space, maximum persistent disks, maximum persisten disks size, deprecated, zone, is shared cpu, accelerators, and architecture.

    Input project: string, zone: string
    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the machine types.

  • list_managed_instancesoutputSchema declared

    Lists managed instances for a given managed instance group (MIG). For each instance, details include id, instance URL, instance status, and current action. Requires project, zone, and MIG name as input.

    Input name: string, pageSize?: integer, pageToken?: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. The instance group manager name.

    • pageSize?: integeroptional

      Optional. The maximum number of managed instances to return.

    • pageToken?: stringoptional

      Optional. A page token received from a previous call to list managed instances.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instance group manager.

  • list_reservationsoutputSchema declared

    Lists Compute Engine reservations. Details for each reservation include name, ID, creation timestamp, zone, status, specific reservation required, commitment, and linked commitments. Requires project and zone as input.

    Input pageSize?: integer, pageToken?: string, project: string, zone: string
    • pageSize?: integeroptional

      Optional. The maximum number of reservations to return.

    • pageToken?: stringoptional

      Optional. A page token received from a previous call to list reservations.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the reservations.

  • list_snapshotsoutputSchema declared

    Lists snapshots in a project providing basic [REDACTED] per snapshot including name, id, status, creation time, disk size, storage bytes, source disk, and source disk id. Requires project as input.

    Input pageSize?: integer, pageToken?: string, project: string
    • pageSize?: integeroptional

      Optional. The maximum number of snapshots to return.

    • pageToken?: stringoptional

      Optional. A page token received from a previous call to list snapshots.

    • project: stringrequired

      Required. Project ID for this request.

  • reset_instanceoutputSchema declared

    Resets a Google Compute Engine virtual machine (VM) instance. Requires project, zone, and instance name as input. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. The instance name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instance.

  • set_instance_machine_typeoutputSchema declared

    Sets the machine type for a stopped Google Compute Engine instance to the specified machine type. Requires project, zone, instance name and machine type as input. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.

    Input machineType: string, name: string, project: string, zone: string
    • machineType: stringrequired

      Required. The machine type of the instance.

    • name: stringrequired

      Required. Identifier. The instance name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instance.

  • start_instanceoutputSchema declared

    Starts a Google Compute Engine virtual machine (VM) instance. Requires project, zone, and instance name as input. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. The instance name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instance.

  • stop_instanceoutputSchema declared

    Stops a Google Compute Engine virtual machine (VM) instance. Requires project, zone, and instance name as input. Proceed only if there is no error in response and the status of the operation is `DONE` without any errors. To get details of the operation, use the `get_zone_operation` tool.

    Input name: string, project: string, zone: string
    • name: stringrequired

      Required. Identifier. The instance name.

    • project: stringrequired

      Required. Project ID for this request.

    • zone: stringrequired

      Required. The zone of the instance.