Tool: create_cluster
Create a cluster in Memorystore for Redis Cluster.
The following sample demonstrate how to use curl to invoke the create_cluster MCP tool.
| Curl Request |
|---|
curl --location 'https://redis.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_cluster", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request for CreateCluster.
CreateClusterRequest
| JSON representation |
|---|
{
"parent": string,
"clusterId": string,
"cluster": {
object ( |
| Fields | |
|---|---|
parent |
Required. The resource name of the cluster location using the form: |
clusterId |
Required. The logical name of the Redis cluster in the customer project with the following restrictions:
|
cluster |
Required. The cluster that is to be created. |
requestId |
Optional. Idempotent request UUID. |
Cluster
| JSON representation |
|---|
{ "name": string, "createTime": string, "state": enum ( |
| Fields | |
|---|---|
name |
Required. Identifier. Unique name of the resource in this scope including project and location using the form: |
createTime |
Output only. The timestamp associated with the cluster creation request. 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: |
state |
Output only. The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED |
uid |
Output only. System assigned, unique identifier for the cluster. |
authorizationMode |
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. |
transitEncryptionMode |
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. |
pscConfigs[] |
Optional. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through Private Service Connect Automation. Currently, only one PscConfig is supported. |
discoveryEndpoints[] |
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one discovery endpoint is supported. |
pscConnections[] |
Output only. The list of PSC connections that are auto-created through service connectivity automation. |
stateInfo |
Output only. Additional information about the current state of the cluster. |
nodeType |
Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node. |
persistenceConfig |
Optional. Persistence config (RDB, AOF) for the cluster. |
redisConfigs |
Optional. Key/Value pairs of customer overrides for mutable Redis Configs An object containing a list of |
zoneDistributionConfig |
Optional. This config will be used to determine how the customer wants us to distribute cluster resources within the region. |
crossClusterReplicationConfig |
Optional. Cross cluster replication config. |
pscServiceAttachments[] |
Output only. Service attachment details to configure Psc connections |
clusterEndpoints[] |
Optional. A list of cluster endpoints. |
automatedBackupConfig |
Optional. The automated backup config for the cluster. |
encryptionInfo |
Output only. Encryption information of the data at rest of the cluster. |
availableMaintenanceVersions[] |
Output only. This field is used to determine the available maintenance versions for the self service update. |
allowFewerZonesDeployment |
Optional. Immutable. Deprecated, do not use. |
labels |
Optional. Labels to represent user-provided metadata. An object containing a list of |
aclPolicy |
Optional. The ACL policy to be applied to the cluster. |
Union field import_sources. The source to import from. import_sources can be only one of the following: |
|
gcsSource |
Optional. Backups stored in Cloud Storage buckets. The Cloud Storage buckets need to be the same region as the clusters. Read permission is required to import from the provided Cloud Storage objects. |
managedBackupSource |
Optional. Backups generated and managed by memorystore service. |
Union field
|
|
replicaCount |
Optional. The number of replica nodes per shard. |
Union field
|
|
sizeGb |
Output only. Redis memory size in GB for the entire cluster rounded up to the next integer. |
Union field
|
|
shardCount |
Optional. Number of shards for the Redis cluster. |
Union field
|
|
preciseSizeGb |
Output only. Precise value of redis memory size in GB for the entire cluster. |
Union field
|
|
deletionProtectionEnabled |
Optional. The delete operation will fail when the value is set to true. |
Union field
|
|
maintenancePolicy |
Optional. ClusterMaintenancePolicy determines when to allow or deny updates. |
Union field
|
|
maintenanceSchedule |
Output only. ClusterMaintenanceSchedule Output only Published maintenance schedule. |
Union field
|
|
satisfiesPzs |
Optional. Output only. Reserved for future use. |
Union field
|
|
satisfiesPzi |
Optional. Output only. Reserved for future use. |
Union field
|
|
simulateMaintenanceEvent |
Optional. Input only. Simulate a maintenance event. |
Union field
|
|
backupCollection |
Optional. Output only. The backup collection full resource name. Example: projects/{project}/locations/{location}/backupCollections/{collection} |
Union field
|
|
kmsKey |
Optional. The KMS key used to encrypt the at-rest data of the cluster. |
Union field
|
|
ondemandMaintenance |
Optional. Input only. Ondemand maintenance for the cluster. This field can be used to trigger ondemand critical update on the cluster. |
Union field
|
|
asyncClusterEndpointsDeletionEnabled |
Optional. If true, cluster endpoints that are created and registered by customers can be deleted asynchronously. That is, such a cluster endpoint can be de-registered before the forwarding rules in the cluster endpoint are deleted. |
Union field
|
|
maintenanceVersion |
Optional. This field can be used to trigger self service update to indicate the desired maintenance version. The input to this field can be determined by the available_maintenance_versions field. |
Union field
|
|
effectiveMaintenanceVersion |
Output only. This field represents the actual maintenance version of the cluster. |
Union field
|
|
serverCaMode |
Optional. Server CA mode for the cluster. |
Union field
|
|
serverCaPool |
Optional. Customer-managed CA pool for the cluster. Only applicable for BYOCA i.e. if server_ca_mode is SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. Format: "projects/{project}/locations/{region}/caPools/{ca_pool}". |
Union field
|
|
rotateServerCertificate |
Optional. Input only. Rotate the server certificates. |
Union field
|
|
aclPolicyInSync |
Optional. Output only. Indicates whether the ACL rules applied to the cluster are in sync with the latest ACL policy rules. This field is only applicable if the ACL policy is set for the cluster. |
GcsBackupSource
| JSON representation |
|---|
{ "uris": [ string ] } |
| Fields | |
|---|---|
uris[] |
Optional. URIs of the Cloud Storage objects to import. Example: gs://bucket1/object1, gs://bucket2/folder2/object2 |
ManagedBackupSource
| JSON representation |
|---|
{ "backup": string } |
| Fields | |
|---|---|
backup |
Optional. Example: //redis.googleapis.com/projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup} A shorter version (without the prefix) of the backup name is also supported, like projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup_id} In this case, it assumes the backup is under redis.googleapis.com. |
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. |
PscConfig
| JSON representation |
|---|
{ "network": string } |
| Fields | |
|---|---|
network |
Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. |
DiscoveryEndpoint
| JSON representation |
|---|
{
"address": string,
"port": integer,
"pscConfig": {
object ( |
| Fields | |
|---|---|
address |
Output only. Address of the exposed Redis endpoint used by clients to connect to the service. The address could be either IP or hostname. |
port |
Output only. The port number of the exposed Redis endpoint. |
pscConfig |
Output only. Customer configuration for where the endpoint is created and accessed from. |
PscConnection
| JSON representation |
|---|
{ "pscConnectionId": string, "address": string, "forwardingRule": string, "projectId": string, "network": string, "serviceAttachment": string, "pscConnectionStatus": enum ( |
| Fields | |
|---|---|
pscConnectionId |
Required. The PSC connection id of the forwarding rule connected to the service attachment. |
address |
Required. The IP allocated on the consumer network for the PSC forwarding rule. |
forwardingRule |
Required. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}. |
projectId |
Optional. Project ID of the consumer project where the forwarding rule is created in. |
network |
Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}. |
serviceAttachment |
Required. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}. |
pscConnectionStatus |
Output only. The status of the PSC connection. Please note that this value is updated periodically. To get the latest status of a PSC connection, follow https://cloud.google.com/vpc/docs/configure-private-service-connect-services#endpoint-details. |
connectionType |
Output only. Type of the PSC connection. |
Union field ports. The port number of the exposed discovery endpoint. ports can be only one of the following: |
|
port |
Output only. port will only be set for Primary/Reader or Discovery endpoint. |
StateInfo
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field
|
|
updateInfo |
Describes ongoing update on the cluster when cluster state is UPDATING. |
UpdateInfo
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field
|
|
targetShardCount |
Target number of shards for redis cluster |
Union field
|
|
targetReplicaCount |
Target number of replica nodes per shard. |
Union field
|
|
targetNodeType |
Target node type for redis cluster. |
ClusterPersistenceConfig
| JSON representation |
|---|
{ "mode": enum ( |
| Fields | |
|---|---|
mode |
Optional. The mode of persistence. |
rdbConfig |
Optional. RDB configuration. This field will be ignored if mode is not RDB. |
aofConfig |
Optional. AOF configuration. This field will be ignored if mode is not AOF. |
RDBConfig
| JSON representation |
|---|
{
"rdbSnapshotPeriod": enum ( |
| Fields | |
|---|---|
rdbSnapshotPeriod |
Optional. Period between RDB snapshots. |
rdbSnapshotStartTime |
Optional. The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used. 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: |
AOFConfig
| JSON representation |
|---|
{
"appendFsync": enum ( |
| Fields | |
|---|---|
appendFsync |
Optional. fsync configuration. |
RedisConfigsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
ZoneDistributionConfig
| JSON representation |
|---|
{
"mode": enum ( |
| Fields | |
|---|---|
mode |
Optional. The mode of zone distribution. Defaults to MULTI_ZONE, when not specified. |
zone |
Optional. When SINGLE ZONE distribution is selected, zone field would be used to allocate all resources in that zone. This is not applicable to MULTI_ZONE, and would be ignored for MULTI_ZONE clusters. |
CrossClusterReplicationConfig
| JSON representation |
|---|
{ "clusterRole": enum ( |
| Fields | |
|---|---|
clusterRole |
Output only. The role of the cluster in cross cluster replication. |
primaryCluster |
Details of the primary cluster that is used as the replication source for this secondary cluster. This field is only set for a secondary cluster. |
secondaryClusters[] |
List of secondary clusters that are replicating from this primary cluster. This field is only set for a primary cluster. |
updateTime |
Output only. The last time cross cluster replication config was updated. 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: |
membership |
Output only. An output only view of all the member clusters participating in the cross cluster replication. This view will be provided by every member cluster irrespective of its cluster role(primary or secondary). A primary cluster can provide information about all the secondary clusters replicating from it. However, a secondary cluster only knows about the primary cluster from which it is replicating. However, for scenarios, where the primary cluster is unavailable(e.g. regional outage), a GetCluster request can be sent to any other member cluster and this field will list all the member clusters participating in cross cluster replication. |
RemoteCluster
| JSON representation |
|---|
{ "cluster": string, "uid": string } |
| Fields | |
|---|---|
cluster |
Output only. The full resource path of the remote cluster in the format: projects/ |
uid |
Output only. The unique identifier of the remote cluster. |
Membership
| JSON representation |
|---|
{ "primaryCluster": { object ( |
| Fields | |
|---|---|
primaryCluster |
Output only. The primary cluster that acts as the source of replication for the secondary clusters. |
secondaryClusters[] |
Output only. The list of secondary clusters replicating from the primary cluster. |
ClusterMaintenancePolicy
| JSON representation |
|---|
{
"createTime": string,
"updateTime": string,
"weeklyMaintenanceWindow": [
{
object ( |
| Fields | |
|---|---|
createTime |
Output only. The time when the policy was created i.e. Maintenance Window or Deny Period was assigned. 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: |
updateTime |
Output only. The time when the policy was updated i.e. Maintenance Window or Deny Period was updated. 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: |
weeklyMaintenanceWindow[] |
Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_maintenance_window is expected to be one. |
ClusterWeeklyMaintenanceWindow
| JSON representation |
|---|
{ "day": enum ( |
| Fields | |
|---|---|
day |
Optional. Allows to define schedule that runs specified day of the week. |
startTime |
Optional. Start time of the window in UTC. |
TimeOfDay
| JSON representation |
|---|
{ "hours": integer, "minutes": integer, "seconds": integer, "nanos": integer } |
| Fields | |
|---|---|
hours |
Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. |
minutes |
Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59. |
seconds |
Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds. |
nanos |
Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999. |
ClusterMaintenanceSchedule
| JSON representation |
|---|
{ "startTime": string, "endTime": string } |
| Fields | |
|---|---|
startTime |
Output only. The start time of any upcoming scheduled maintenance for this instance. 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: |
endTime |
Output only. The end time of any upcoming scheduled maintenance for this instance. 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: |
PscServiceAttachment
| JSON representation |
|---|
{
"serviceAttachment": string,
"connectionType": enum ( |
| Fields | |
|---|---|
serviceAttachment |
Output only. Service attachment URI which your self-created PscConnection should use as target |
connectionType |
Output only. Type of a PSC connection targeting this service attachment. |
ClusterEndpoint
| JSON representation |
|---|
{
"connections": [
{
object ( |
| Fields | |
|---|---|
connections[] |
Required. A group of PSC connections. They are created in the same VPC network, one for each service attachment in the cluster. |
ConnectionDetail
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field connection. A PSC connection to a cluster could either be created through Service Connectivity Automation (auto-registered connection) during the cluster creation, or it could be created by customer themselves (user-registered connection). connection can be only one of the following: |
|
pscAutoConnection |
Detailed information of a PSC connection that is created through service connectivity automation. |
pscConnection |
Detailed information of a PSC connection that is created by the customer who owns the cluster. |
PscAutoConnection
| JSON representation |
|---|
{ "pscConnectionId": string, "address": string, "forwardingRule": string, "projectId": string, "network": string, "serviceAttachment": string, "pscConnectionStatus": enum ( |
| Fields | |
|---|---|
pscConnectionId |
Output only. The PSC connection id of the forwarding rule connected to the service attachment. |
address |
Output only. The IP allocated on the consumer network for the PSC forwarding rule. |
forwardingRule |
Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}. |
projectId |
Required. The consumer project_id where the forwarding rule is created from. |
network |
Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}. |
serviceAttachment |
Output only. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}. |
pscConnectionStatus |
Output only. The status of the PSC connection. Please note that this value is updated periodically. Please use Private Service Connect APIs for the latest status. |
connectionType |
Output only. Type of the PSC connection. |
AutomatedBackupConfig
| JSON representation |
|---|
{ "automatedBackupMode": enum ( |
| Fields | |
|---|---|
automatedBackupMode |
Optional. The automated backup mode. If the mode is disabled, the other fields will be ignored. |
Union field schedule. The schedule of automated backups. schedule can be only one of the following: |
|
fixedFrequencySchedule |
Optional. Trigger automated backups at a fixed frequency. |
Union field
|
|
retention |
Optional. How long to keep automated backups before the backups are deleted. The value should be between 1 day and 365 days. If not specified, the default value is 35 days. A duration in seconds with up to nine fractional digits, ending with ' |
FixedFrequencySchedule
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field
|
|
startTime |
Required. The start time of every automated backup in UTC. It must be set to the start of an hour. This field is required. |
Duration
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
nanos |
Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 |
EncryptionInfo
| JSON representation |
|---|
{ "encryptionType": enum ( |
| Fields | |
|---|---|
encryptionType |
Output only. Type of encryption. |
kmsKeyVersions[] |
Output only. KMS key versions that are being used to protect the data at-rest. |
kmsKeyPrimaryState |
Output only. The state of the primary version of the KMS key perceived by the system. This field is not populated in backups. |
lastUpdateTime |
Output only. The most recent time when the encryption info was updated. 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: |
LabelsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
Output Schema
This resource represents a long-running operation that is the result of a network API call.
Operation
| JSON representation |
|---|
{ "name": string, "metadata": { "@type": string, field1: ..., ... }, "done": boolean, // Union field |
| Fields | |
|---|---|
name |
The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the |
metadata |
{
} An object containing fields of an arbitrary type. An additional field |
done |
If the value is |
Union field result. The operation result, which can be either an error or a valid response. If done == false, neither error nor response is set. If done == true, exactly one of error or response can be set. Some services might not provide the result. result can be only one of the following: |
|
error |
The error result of the operation in case of failure or cancellation. |
response |
The normal, successful response of the operation. If the original method returns no data on success, such as An object containing fields of an arbitrary type. An additional field |
Any
| JSON representation |
|---|
{ "typeUrl": string, "value": string } |
| Fields | |
|---|---|
typeUrl |
Identifies the type of the serialized Protobuf message with a URI reference consisting of a prefix ending in a slash and the fully-qualified type name. Example: type.googleapis.com/google.protobuf.StringValue This string must contain at least one The prefix is arbitrary and Protobuf implementations are expected to simply strip off everything up to and including the last All type URL strings must be legal URI references with the additional restriction (for the text format) that the content of the reference must consist only of alphanumeric characters, percent-encoded escapes, and characters in the following set (not including the outer backticks): In the original design of |
value |
Holds a Protobuf serialization of the type described by type_url. A base64-encoded string. |
Status
| JSON representation |
|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
| Fields | |
|---|---|
code |
The status code, which should be an enum value of |
message |
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the |
details[] |
A list of messages that carry the error details. There is a common set of message types for APIs to use. An object containing fields of an arbitrary type. An additional field |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌