MCP Tools Reference: compute.googleapis.com

Tool: create_instance

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. To get more details about the operation, use the get_zone_operation tool.

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

Input Schema

Request message for creating an instance.

JSON representation
{
  "project": string,
  "zone": string,
  "name": string,
  "machineType": string,
  "imageFamily": string,
  "imageProject": string
}
Fields
project

string

Required. Project ID for this request.

zone

string

Required. The zone of the instance.

name

string

Required. Identifier. The instance name.

machineType

string

Optional. The machine type of the instance.

imageFamily

string

Optional. The image family of the instance.

imageProject

string

Optional. The image project of the instance.

Output Schema

Response message for creating an instance.

JSON representation
{
  "errors": {
    object (Errors)
  },
  "operationName": string
}
Fields
errors

object (Errors)

Errors encountered during the instance creation.

operationName

string

The operation name of the instance creation.

JSON representation
{
  "requestId": string,
  "errors": [
    {
      object (ErrorProto)
    }
  ],
  "code": enum (ErrorCode)
}
Fields
requestId

string

Request identifier generated by the service, which can be used to identify the error in the logs

errors[]

object (ErrorProto)

Specific error description and codes

code
(deprecated)

enum (ErrorCode)

Global error code. Deprecated and ignored. Set custom error codes in ErrorProto.domain and ErrorProto.code instead.

JSON representation
{
  "domain": string,
  "code": string,
  "arguments": [
    string
  ],
  "locationType": enum (LocationType),
  "location": string,
  "debugInfo": string,
  "externalErrorMessage": string
}
Fields
domain

string

Error domain. RoSy services can define their own domain and error codes. This should normally be the name of an enum type, such as: gdata.CoreErrorDomain

code

string

Error code in the error domain. This should correspond to a value of the enum type whose name is in domain. See the core error domain in error_domain.proto.

arguments[]

string

Error arguments, to be used when building user-friendly error messages given the error domain and code. Different error codes require different arguments.

locationType

enum (LocationType)

location

string

Location of the error, as specified by the location type.

If location_type is PATH, this should be a path to a field that's relative to the request, using FieldPath notation (net/proto2/util/public/field_path.h).

Examples: authenticated_user.gaia_id resource.address[2].country

debugInfo

string

Debugging information, which should not be shared externally.

externalErrorMessage

string

A short explanation for the error, which can be shared outside Google.

Please set domain, code and arguments whenever possible instead of this error message so that external APIs can build safe error messages themselves.

External messages built in a RoSy interface will most likely refer to information and concepts that are not available externally and should not be exposed. It is safer if external APIs can understand the errors and decide what the error message should look like.

Tool Annotations

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