# MCP Tools Reference: compute.googleapis.com

## Tool: `list_commitments`

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.

The following sample demonstrate how to use `curl` to invoke the `list_commitments` 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_commitments", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' ``` |

## Input Schema

Request message for listing region commitments.

### McpListRegionCommitmentsRequest

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

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

## Output Schema

Response message for listing region commitments.

### McpListRegionCommitmentsResponse

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

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

### CommitmentBasicInfo

| JSON representation |
|---|
| ``` { "name": string, "id": string, "status": enum (`Status`), "plan": enum (`Plan`), "type": enum (`Type`), "createTime": string, "startTime": string, "endTime": string, "resources": [ { object (`https://docs.cloud.google.com/compute/docs/reference/mcp/tools_list/list_commitments#Output.Schema.ResourceCommitment`) } ] } ``` |

| Fields ||
|---|---|
| `name` | `string` Name of the commitment. |
| `id` | `string (https://developers.google.com/discovery/v1/type-format format)` The unique identifier for the commitment. |
| `status` | ``enum (`Status`)`` The status of the commitment. |
| `plan` | ``enum (`Plan`)`` The plan of the commitment. |
| `type` | ``enum (`Type`)`` The type of the commitment. |
| `createTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Creation timestamp of the commitment. 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"`. |
| `startTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Start timestamp of the commitment. 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"`. |
| `endTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` End timestamp of the commitment. 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"`. |
| `resources[]` | ``object (`https://docs.cloud.google.com/compute/docs/reference/mcp/tools_list/list_commitments#Output.Schema.ResourceCommitment`)`` A list of all the hardware resources of the commitment. |

### 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. |

### ResourceCommitment

| JSON representation |
|---|
| ``` { "type": enum (`Type`), "amount": string, "acceleratorType": string } ``` |

| Fields ||
|---|---|
| `type` | ``enum (`Type`)`` The type of hardware resource that you want to specify. You can specify any of the following values: - `VCPU` - `MEMORY` - `LOCAL_SSD` - `ACCELERATOR` <br /> Specify as a separate entry in the list for each individual resource type. |
| `amount` | `string (https://developers.google.com/discovery/v1/type-format format)` The quantity of the hardware resource that you want to commit to purchasing (in a type-dependent unit). - For vCPUs, you must specify an integer value. - For memory, you specify the amount of MB that you want. The value you specify must be a multiple of 256 MB, with up to 6.5 GB of memory per every vCPU. - For GPUs, you must specify an integer value. - For Local SSD disks, you must specify the amount in GB. The size of a single Local SSD disk is 375 GB. <br /> |
| `acceleratorType` | `string` Name of the accelerator type or GPU resource. Specify this field only when the type of hardware resource is ACCELERATOR. |

### Tool Annotations

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