Tool: create_runtime
Creates a new Colab runtime assignment for the requesting user.
Several requests-per-minute quotas are enforced on this tool call, so prefer to reuse an existing runtime from list_runtimes if possible.
For state isolation, open a new Jupyter session using create_session on an existing runtime instead of creating one.
The following code sample shows how to use curl to call the create_runtime MCP tool.
| Curl Request |
|---|
curl --location 'https://colaboratory.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_runtime", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request message for CreateRuntime.
CreateRuntimeRequest
| JSON representation |
|---|
{
"runtime": {
object ( |
| Fields | |
|---|---|
runtime |
Required. Specifications for the runtime to assign. |
requestId |
Optional. A unique identifier for this request. This request is only idempotent if a If provided, the request ID must be in UUID4 format per https://linter.aip.dev/155/request-id-format. |
runtimeId |
Optional. A unique identifier for the runtime. If not supplied, a random ID will be generated. If a runtime with the given ID owned by the requesting user already exists, a completed The ID must conform to RFC-1034, specifically:
|
Runtime
| JSON representation |
|---|
{ "name": string, "runtimeSpec": { object ( |
| Fields | |
|---|---|
name |
Identifier. The name of the runtime in the format |
runtimeSpec |
Required. The specification of the runtime. |
connectionInfo |
Output only. The connection info used to authenticate to the runtime. |
version |
Optional. The version of the runtime image. See Colab Runtime Version FAQ for supported runtime versions. If omitted (empty), the latest runtime image is used. |
Key
| JSON representation |
|---|
{ "variant": enum ( |
| Fields | |
|---|---|
variant |
Required. Runtime variant. |
accelerator |
Required. Runtime accelerator model name (e.g., "T4", "L4", "A100"). For CPU runtime specs, this field will be "NONE". |
shape |
Required. Runtime shape. |
ConnectionInfo
| JSON representation |
|---|
{ "token": string, "expireTime": string, "url": string } |
| Fields | |
|---|---|
token |
Required. Output only. The runtime proxy token. This is a short-lived credential used to authenticate to the runtime. Clients should set this token as the value of the |
expireTime |
Required. Output only. The expiration time of the runtime proxy token. 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: |
url |
Required. Output only. The authenticated URL that can be used to connect to the runtime. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
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 |
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. |
Variant
Runtime variant.
| Enums | |
|---|---|
VARIANT_UNSPECIFIED |
Default value. This value is unused. |
VARIANT_CPU |
CPU variant. |
VARIANT_GPU |
GPU variant. |
VARIANT_TPU |
TPU variant. |
Shape
Runtime shape.
| Enums | |
|---|---|
SHAPE_UNSPECIFIED |
Default value. This value is unused. |
SHAPE_STANDARD |
Standard shape. |
SHAPE_HIGHMEM |
High memory shape. |
Output Schema
A Colab managed runtime.
This is essentially a Jupyter server that runs on Google infrastructure. Clients should use the connection_info provided to connect to the runtime, and leverage the standard Jupyter REST API and/or client library to interact with the runtime.
Runtime
| JSON representation |
|---|
{ "name": string, "runtimeSpec": { object ( |
| Fields | |
|---|---|
name |
Identifier. The name of the runtime in the format |
runtimeSpec |
Required. The specification of the runtime. |
connectionInfo |
Output only. The connection info used to authenticate to the runtime. |
version |
Optional. The version of the runtime image. See Colab Runtime Version FAQ for supported runtime versions. If omitted (empty), the latest runtime image is used. |
Key
| JSON representation |
|---|
{ "variant": enum ( |
| Fields | |
|---|---|
variant |
Required. Runtime variant. |
accelerator |
Required. Runtime accelerator model name (e.g., "T4", "L4", "A100"). For CPU runtime specs, this field will be "NONE". |
shape |
Required. Runtime shape. |
ConnectionInfo
| JSON representation |
|---|
{ "token": string, "expireTime": string, "url": string } |
| Fields | |
|---|---|
token |
Required. Output only. The runtime proxy token. This is a short-lived credential used to authenticate to the runtime. Clients should set this token as the value of the |
expireTime |
Required. Output only. The expiration time of the runtime proxy token. 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: |
url |
Required. Output only. The authenticated URL that can be used to connect to the runtime. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
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 |
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. |
Variant
Runtime variant.
| Enums | |
|---|---|
VARIANT_UNSPECIFIED |
Default value. This value is unused. |
VARIANT_CPU |
CPU variant. |
VARIANT_GPU |
GPU variant. |
VARIANT_TPU |
TPU variant. |
Shape
Runtime shape.
| Enums | |
|---|---|
SHAPE_UNSPECIFIED |
Default value. This value is unused. |
SHAPE_STANDARD |
Standard shape. |
SHAPE_HIGHMEM |
High memory shape. |
Tool Annotations
Tool annotations are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.
Along with the title string, the following boolean hints are defined as follows:
readOnlyHint: If true, the tool doesn't modify its environment. Default: false.destructiveHint: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.idempotentHint: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.openWorldHint: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ❌ | Open World Hint: ❌