# MCP Tools Reference: compute.googleapis.com

## Tool: `list_snapshots`

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

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

| Curl Request |
|---|
| ```bash 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_snapshots", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' ``` |

## Input Schema

Request message for listing snapshots basic info.

### McpListSnapshotsBasicInfoRequest

| JSON representation |
|---|
| ``` { "project": string, "pageSize": integer, "pageToken": string } ``` |

| Fields ||
|---|---|
| `project` | `string` Required. Project ID for this request. |
| `pageSize` | `integer` Optional. The maximum number of snapshots to return. |
| `pageToken` | `string` Optional. A page token received from a previous call to list snapshots. |

## Output Schema

Response message for listing snapshots basic info.

### McpListSnapshotsBasicInfoResponse

| JSON representation |
|---|
| ``` { "snapshots": [ { object (`https://docs.cloud.google.com/compute/docs/reference/mcp/tools_list/list_snapshots#Output.Schema.SnapshotBasicInfo`) } ], "nextPageToken": string } ``` |

| Fields ||
|---|---|
| `snapshots[]` | ``object (`https://docs.cloud.google.com/compute/docs/reference/mcp/tools_list/list_snapshots#Output.Schema.SnapshotBasicInfo`)`` The list of snapshots. |
| `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. |

### SnapshotBasicInfo

| JSON representation |
|---|
| ``` { "name": string, "id": string, "status": enum (`Status`), "createTime": string, "diskSizeGb": string, "storageBytes": string, "sourceDisk": string, "sourceDiskId": string } ``` |

| Fields ||
|---|---|
| `name` | `string` Name of the snapshot. |
| `id` | `string (https://developers.google.com/discovery/v1/type-format format)` The unique identifier for the snapshot. |
| `status` | ``enum (`Status`)`` The status of the snapshot. |
| `createTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Creation timestamp of the snapshot. 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"`. |
| `diskSizeGb` | `string (https://developers.google.com/discovery/v1/type-format format)` Size of the source disk, specified in GB. |
| `storageBytes` | `string (https://developers.google.com/discovery/v1/type-format format)` A size of the storage used by the snapshot. |
| `sourceDisk` | `string` The source disk of the snapshot. |
| `sourceDiskId` | `string` The source disk id of the snapshot. |

### Timestamp

| JSON representation |
|---|
| ``` { "seconds": string, "nanos": integer } ``` |

| Fields ||
|---|---|
| `seconds` | `string (https://developers.google.com/discovery/v1/type-format 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. |

### Tool Annotations

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