MCP Tools Reference: compute.googleapis.com

Tool: list_instance_group_managers

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.

The following sample demonstrate how to use curl to invoke the list_instance_group_managers MCP tool.

Curl Request
curl --location 'https://compute.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "list_instance_group_managers",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Input Schema

Request message for listing instance group managers basic info.

McpListInstanceGroupManagersBasicInfoRequest

JSON representation
{
  "project": string,
  "zone": string,
  "pageSize": integer,
  "pageToken": string
}
Fields
project

string

Required. Project ID for this request.

zone

string

Required. The zone of the instance group managers.

pageSize

integer

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

pageToken

string

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

Output Schema

Response message for listing instance group managers basic info.

McpListInstanceGroupManagersBasicInfoResponse

JSON representation
{
  "instanceGroupManagers": [
    {
      object (InstanceGroupManagerBasicInfo)
    }
  ],
  "nextPageToken": string
}
Fields
instanceGroupManagers[]

object (InstanceGroupManagerBasicInfo)

The list of instance group managers.

nextPageToken

string

A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

InstanceGroupManagerBasicInfo

JSON representation
{
  "name": string,
  "id": string,
  "createTime": string,
  "instanceTemplate": string,
  "baseInstanceName": string,
  "targetSize": integer,
  "targetStoppedSize": integer,
  "targetSuspendedSize": integer,
  "status": {
    object (Status)
  }
}
Fields
name

string

Name of the instance group manager.

id

string (uint64 format)

The unique identifier for the instance group manager.

createTime

string (Timestamp format)

Creation timestamp of the instance group manager.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

instanceTemplate

string

The instance template of the instance group manager.

baseInstanceName

string

The base instance name of the instance group manager.

targetSize

integer

The target size of the instance group manager.

targetStoppedSize

integer

The target stopped size of the instance group manager.

targetSuspendedSize

integer

The target suspended size of the instance group manager.

status

object (Status)

The status of the instance group manager.

Timestamp

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 format)

Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).

nanos

integer

Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive.

Status

JSON representation
{
  "isStable": boolean,
  "allInstancesConfig": {
    object (AllInstancesConfig)
  },
  "versionTarget": {
    object (VersionTarget)
  },
  "stateful": {
    object (Stateful)
  },
  "autoscaler": string,
  "bulkInstanceOperation": {
    object (BulkInstanceOperation)
  },
  "appliedAcceleratorTopologies": [
    {
      object (AcceleratorTopology)
    }
  ],
  "currentInstanceStatuses": {
    object (InstanceStatusSummary)
  }
}
Fields
isStable

boolean

Output only. A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.

allInstancesConfig

object (AllInstancesConfig)

Output only. Status of all-instances configuration on the group.

versionTarget

object (VersionTarget)

Output only. A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager.

stateful

object (Stateful)

Output only. Stateful status of the given Instance Group Manager.

autoscaler

string

Output only. The URL of the Autoscaler that targets this instance group manager.

bulkInstanceOperation

object (BulkInstanceOperation)

Output only. The status of bulk instance operation.

appliedAcceleratorTopologies[]

object (AcceleratorTopology)

Output only. The accelerator topology applied to this MIG. Currently only one accelerator topology is supported.

currentInstanceStatuses

object (InstanceStatusSummary)

Output only. The list of instance statuses and the number of instances in this managed instance group that have the status. Currently only shown for TPU MIGs

AllInstancesConfig

JSON representation
{
  "effective": boolean,
  "currentRevision": string
}
Fields
effective

boolean

Output only. A bit indicating whether this configuration has been applied to all managed instances in the group.

currentRevision

string

Output only. Current all-instances configuration revision. This value is in RFC3339 text format.

VersionTarget

JSON representation
{
  "isReached": boolean
}
Fields
isReached

boolean

Output only. A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.

Stateful

JSON representation
{
  "hasStatefulConfig": boolean,
  "perInstanceConfigs": {
    object (PerInstanceConfigs)
  }
}
Fields
hasStatefulConfig

boolean

Output only. A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.

perInstanceConfigs

object (PerInstanceConfigs)

Output only. Status of per-instance configurations on the instances.

PerInstanceConfigs

JSON representation
{
  "allEffective": boolean
}
Fields
allEffective

boolean

Output only. A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.

BulkInstanceOperation

JSON representation
{
  "inProgress": boolean,
  "lastProgressCheck": {
    object (LastProgressCheck)
  }
}
Fields
inProgress

boolean

Output only. Informs whether bulk instance operation is in progress.

lastProgressCheck

object (LastProgressCheck)

Output only. Information from the last progress check of bulk instance operation.

LastProgressCheck

JSON representation
{
  "timestamp": string,
  "error": {
    "errors": [
      {
        "code": string,
        "location": string,
        "message": string,
        "errorDetails": [
          {
            "errorInfo": {
              object (ErrorInfo)
            },
            "quotaInfo": {
              object (QuotaExceededInfo)
            },
            "help": {
              object (Help)
            },
            "localizedMessage": {
              object (LocalizedMessage)
            }
          }
        ]
      }
    ]
  }
}
Fields
timestamp

string (Timestamp format)

Output only. Timestamp of the last progress check of bulk instance operation. Timestamp is in RFC3339 text format.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

error

object

Output only. Errors encountered during bulk instance operation.

errors[]

object

[Output Only] The array of errors encountered while processing this operation.

code

string

[Output Only] The error type identifier for this error.

location

string

[Output Only] Indicates the field in the request that caused the error. This property is optional.

message

string

[Output Only] An optional, human-readable error message.

errorDetails[]

object

[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.

errorInfo

object (ErrorInfo)

quotaInfo

object (QuotaExceededInfo)

help

object (Help)

localizedMessage

object (LocalizedMessage)

Errors

JSON representation
{
  "errors": [
    {
      "code": string,
      "location": string,
      "message": string,
      "errorDetails": [
        {

          // Union field details_oneof can be only one of the following:
          "errorInfo": {
            object (ErrorInfo)
          },
          "quotaInfo": {
            object (QuotaExceededInfo)
          },
          "help": {
            object (Help)
          },
          "localizedMessage": {
            object (LocalizedMessage)
          }
          // End of list of possible types for union field details_oneof.
        }
      ]
    }
  ]
}
Fields
errors[]

object

[Output Only] The array of errors encountered while processing this operation.

code

string

[Output Only] The error type identifier for this error.

location

string

[Output Only] Indicates the field in the request that caused the error. This property is optional.

message

string

[Output Only] An optional, human-readable error message.

errorDetails[]

object

[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.

errorInfo

object (ErrorInfo)

quotaInfo

object (QuotaExceededInfo)

help

object (Help)

localizedMessage

object (LocalizedMessage)

Error

JSON representation
{
  "code": string,
  "location": string,
  "message": string,
  "errorDetails": [
    {
      "errorInfo": {
        object (ErrorInfo)
      },
      "quotaInfo": {
        object (QuotaExceededInfo)
      },
      "help": {
        object (Help)
      },
      "localizedMessage": {
        object (LocalizedMessage)
      }
    }
  ]
}
Fields
code

string

[Output Only] The error type identifier for this error.

location

string

[Output Only] Indicates the field in the request that caused the error. This property is optional.

message

string

[Output Only] An optional, human-readable error message.

errorDetails[]

object

[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.

errorInfo

object (ErrorInfo)

quotaInfo

object (QuotaExceededInfo)

help

object (Help)

localizedMessage

object (LocalizedMessage)

ErrorDetails

JSON representation
{

  // Union field details_oneof can be only one of the following:
  "errorInfo": {
    object (ErrorInfo)
  },
  "quotaInfo": {
    object (QuotaExceededInfo)
  },
  "help": {
    object (Help)
  },
  "localizedMessage": {
    object (LocalizedMessage)
  }
  // End of list of possible types for union field details_oneof.
}
Fields

Union field details_oneof.

details_oneof can be only one of the following:

errorInfo

object (ErrorInfo)

quotaInfo

object (QuotaExceededInfo)

help

object (Help)

localizedMessage

object (LocalizedMessage)

ErrorInfo

JSON representation
{
  "reason": string,
  "domain": string,
  "metadatas": {
    string: string,
    ...
  }
}
Fields
reason

string

The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE.

domain

string

The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".

metadatas

map (key: string, value: string)

Additional structured details about this error.

Keys must match a regular expression of [a-z][a-zA-Z0-9-_]+ but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

MetadataEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

QuotaExceededInfo

JSON representation
{
  "metricName": string,
  "limitName": string,
  "dimensions": {
    string: string,
    ...
  },
  "limit": number,
  "futureLimit": number,
  "rolloutStatus": enum (RolloutStatus)
}
Fields
metricName

string

The Compute Engine quota metric name.

limitName

string

The name of the quota limit.

dimensions

map (key: string, value: string)

The map holding related quota dimensions.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

limit

number

Current effective quota limit. The limit's unit depends on the quota type or metric.

futureLimit

number

Future quota limit being rolled out. The limit's unit depends on the quota type or metric.

rolloutStatus

enum (RolloutStatus)

Rollout status of the future quota limit.

DimensionsEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

Help

JSON representation
{
  "links": [
    {
      object (Link)
    }
  ]
}
Fields
links[]

object (Link)

URL(s) pointing to additional information on handling the current error.

JSON representation
{
  "description": string,
  "url": string
}
Fields
description

string

Describes what the link offers.

url

string

The URL of the link.

LocalizedMessage

JSON representation
{
  "locale": string,
  "message": string
}
Fields
locale

string

The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"

message

string

The localized error message in the above locale.

AcceleratorTopology

JSON representation
{
  "acceleratorTopology": string,
  "state": enum (AcceleratorTopologyState),
  "stateDetails": {
    object (AcceleratorTopologyStateDetails)
  }
}
Fields
acceleratorTopology

string

Output only. Topology in the format of: "16x16", "4x4x4", etc. The value is the same as configured in the WorkloadPolicy.

state

enum (AcceleratorTopologyState)

Output only. The state of the accelerator topology.

stateDetails

object (AcceleratorTopologyStateDetails)

Output only. The result of the latest accelerator topology state check.

AcceleratorTopologyStateDetails

JSON representation
{
  "timestamp": string,
  "error": {
    "errors": [
      {
        "code": string,
        "location": string,
        "message": string,
        "errorDetails": [
          {
            "errorInfo": {
              object (ErrorInfo)
            },
            "quotaInfo": {
              object (QuotaExceededInfo)
            },
            "help": {
              object (Help)
            },
            "localizedMessage": {
              object (LocalizedMessage)
            }
          }
        ]
      }
    ]
  }
}
Fields
timestamp

string (Timestamp format)

Output only. Timestamp is shown only if there is an error. The field has // RFC3339 // text format.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

error

object

Output only. Encountered errors.

errors[]

object

[Output Only] The array of errors encountered while processing this operation.

code

string

[Output Only] The error type identifier for this error.

location

string

[Output Only] Indicates the field in the request that caused the error. This property is optional.

message

string

[Output Only] An optional, human-readable error message.

errorDetails[]

object

[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.

errorInfo

object (ErrorInfo)

quotaInfo

object (QuotaExceededInfo)

help

object (Help)

localizedMessage

object (LocalizedMessage)

InstanceStatusSummary

JSON representation
{
  "nonExistent": integer,
  "provisioning": integer,
  "staging": integer,
  "running": integer,
  "stopping": integer,
  "stopped": integer,
  "terminated": integer,
  "suspending": integer,
  "suspended": integer,
  "repairing": integer,
  "deprovisioning": integer,
  "pendingStop": integer,
  "pending": integer
}
Fields
nonExistent

integer

Output only. The number of instances that have not been created yet or have been deleted. Includes only instances that would be shown in the listManagedInstances method and not all instances that have been deleted in the lifetime of the MIG. Does not include FlexStart instances that are waiting for the resources availability, they are considered as 'pending'.

provisioning

integer

Output only. The number of instances in the managed instance group that have PROVISIONING status.

staging

integer

Output only. The number of instances in the managed instance group that have STAGING status.

running

integer

Output only. The number of instances in the managed instance group that have RUNNING status.

stopping

integer

Output only. The number of instances in the managed instance group that have STOPPING status.

stopped

integer

Output only. The number of instances in the managed instance group that have STOPPED status.

terminated

integer

Output only. The number of instances in the managed instance group that have TERMINATED status.

suspending

integer

Output only. The number of instances in the managed instance group that have SUSPENDING status.

suspended

integer

Output only. The number of instances in the managed instance group that have SUSPENDED status.

repairing

integer

Output only. The number of instances in the managed instance group that have REPAIRING status.

deprovisioning

integer

Output only. The number of instances in the managed instance group that have DEPROVISIONING status.

pendingStop

integer

Output only. The number of instances in the managed instance group that have PENDING_STOP status.

pending

integer

Output only. The number of instances in the managed instance group that have PENDING status, that is FlexStart instances that are waiting for resources. Instances that do not exist because of the other reasons are counted as 'non_existent'.

Tool Annotations

Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌