MCP Tools Reference: managedkafka

Tool: list_clusters

Lists all clusters for Google Cloud Managed service for Apache Kafka in a given project and location. Please provide the Project ID and Location.

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

Curl Request
                  
curl --location 'https://managedkafka.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "list_clusters",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Input Schema

Request for ListClusters.

ListClustersRequest

JSON representation
{
  "parent": string,
  "pageSize": integer,
  "pageToken": string,
  "filter": string,
  "orderBy": string
}
Fields
parent

string

Required. The parent location whose clusters are to be listed. Structured like projects/{project}/locations/{location}.

pageSize

integer

Optional. The maximum number of clusters to return. The service may return fewer than this value. If unspecified, server will pick an appropriate default.

pageToken

string

Optional. A page token, received from a previous ListClusters call. Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to ListClusters must match the call that provided the page token.

filter

string

Optional. Filter expression for the result.

orderBy

string

Optional. Order by fields for the result.

Output Schema

Response for ListClusters.

ListClustersResponse

JSON representation
{
  "clusters": [
    {
      object (Cluster)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}
Fields
clusters[]

object (Cluster)

The list of Clusters in the requested parent.

nextPageToken

string

A token that can be sent as page_token to retrieve the next page of results. If this field is omitted, there are no more results.

unreachable[]

string

Locations that could not be reached.

Cluster

JSON representation
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "capacityConfig": {
    object (CapacityConfig)
  },
  "rebalanceConfig": {
    object (RebalanceConfig)
  },
  "state": enum (State),
  "tlsConfig": {
    object (TlsConfig)
  },
  "updateOptions": {
    object (UpdateOptions)
  },
  "kafkaVersion": string,
  "brokerDetails": [
    {
      object (BrokerDetails)
    }
  ],

  // Union field platform_config can be only one of the following:
  "gcpConfig": {
    object (GcpConfig)
  }
  // End of list of possible types for union field platform_config.

  // Union field _satisfies_pzi can be only one of the following:
  "satisfiesPzi": boolean
  // End of list of possible types for union field _satisfies_pzi.

  // Union field _satisfies_pzs can be only one of the following:
  "satisfiesPzs": boolean
  // End of list of possible types for union field _satisfies_pzs.
}
Fields
name

string

Identifier. The name of the cluster. Structured like: projects/{project_number}/locations/{location}/clusters/{cluster_id}

createTime

string (Timestamp format)

Output only. The time when the cluster was created.

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

updateTime

string (Timestamp format)

Output only. The time when the cluster was last 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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

labels

map (key: string, value: string)

Optional. Labels as key value pairs.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

capacityConfig

object (CapacityConfig)

Required. Capacity configuration for the Kafka cluster.

rebalanceConfig

object (RebalanceConfig)

Optional. Rebalance configuration for the Kafka cluster.

state

enum (State)

Output only. The current state of the cluster.

tlsConfig

object (TlsConfig)

Optional. TLS configuration for the Kafka cluster.

updateOptions

object (UpdateOptions)

Optional. UpdateOptions represents options that control how updates to the cluster are applied.

kafkaVersion

string

Output only. Only populated when FULL view is requested. The Kafka version of the cluster.

brokerDetails[]

object (BrokerDetails)

Output only. Only populated when FULL view is requested. Details of each broker in the cluster.

Union field platform_config. Platform specific configuration properties for a Kafka cluster. platform_config can be only one of the following:
gcpConfig

object (GcpConfig)

Required. Configuration properties for a Kafka cluster deployed to Google Cloud Platform.

Union field _satisfies_pzi.

_satisfies_pzi can be only one of the following:

satisfiesPzi

boolean

Output only. Reserved for future use.

Union field _satisfies_pzs.

_satisfies_pzs can be only one of the following:

satisfiesPzs

boolean

Output only. Reserved for future use.

GcpConfig

JSON representation
{
  "accessConfig": {
    object (AccessConfig)
  },
  "kmsKey": string
}
Fields
accessConfig

object (AccessConfig)

Required. Access configuration for the Kafka cluster.

kmsKey

string

Optional. Immutable. The Cloud KMS Key name to use for encryption. The key must be located in the same region as the cluster and cannot be changed. Structured like: projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.

AccessConfig

JSON representation
{
  "networkConfigs": [
    {
      object (NetworkConfig)
    }
  ]
}
Fields
networkConfigs[]

object (NetworkConfig)

Required. Virtual Private Cloud (VPC) networks that must be granted direct access to the Kafka cluster. Minimum of 1 network is required. Maximum 10 networks can be specified.

NetworkConfig

JSON representation
{
  "subnet": string
}
Fields
subnet

string

Required. Name of the VPC subnet in which to create Private Service Connect (PSC) endpoints for the Kafka brokers and bootstrap address. Structured like: projects/{project}/regions/{region}/subnetworks/{subnet_id}

The subnet must be located in the same region as the Kafka cluster. The project may differ. Multiple subnets from the same parent network must not be specified.

Timestamp

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 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.

LabelsEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

CapacityConfig

JSON representation
{
  "vcpuCount": string,
  "memoryBytes": string
}
Fields
vcpuCount

string (int64 format)

Required. The number of vCPUs to provision for the cluster. Minimum: 3.

memoryBytes

string (int64 format)

Required. The memory to provision for the cluster in bytes. The CPU:memory ratio (vCPU:GiB) must be between 1:1 and 1:8. Minimum: 3221225472 (3 GiB).

RebalanceConfig

JSON representation
{
  "mode": enum (Mode)
}
Fields
mode

enum (Mode)

Optional. The rebalance behavior for the cluster. When not specified, defaults to NO_REBALANCE.

TlsConfig

JSON representation
{
  "trustConfig": {
    object (TrustConfig)
  },
  "sslPrincipalMappingRules": string
}
Fields
trustConfig

object (TrustConfig)

Optional. The configuration of the broker truststore. If specified, clients can use mTLS for authentication.

sslPrincipalMappingRules

string

Optional. A list of rules for mapping from SSL principal names to short names. These are applied in order by Kafka. Refer to the Apache Kafka documentation for ssl.principal.mapping.rules for the precise formatting details and syntax. Example: "RULE:^CN=(.*?),OU=ServiceUsers.*$/$1@example.com/,DEFAULT"

This is a static Kafka broker configuration. Setting or modifying this field will trigger a rolling restart of the Kafka brokers to apply the change. An empty string means no rules are applied (Kafka default).

TrustConfig

JSON representation
{
  "casConfigs": [
    {
      object (CertificateAuthorityServiceConfig)
    }
  ]
}
Fields
casConfigs[]

object (CertificateAuthorityServiceConfig)

Optional. Configuration for the Google Certificate Authority Service. Maximum 10.

CertificateAuthorityServiceConfig

JSON representation
{
  "caPool": string
}
Fields
caPool

string

Required. The name of the CA pool to pull CA certificates from. Structured like: projects/{project}/locations/{location}/caPools/{ca_pool}. The CA pool does not need to be in the same project or location as the Kafka cluster.

UpdateOptions

JSON representation
{
  "allowBrokerDownscaleOnClusterUpscale": boolean
}
Fields
allowBrokerDownscaleOnClusterUpscale

boolean

Optional. If true, allows an update operation that increases the total vCPU and/or memory allocation of the cluster to significantly decrease the per-broker vCPU and/or memory allocation. This can result in reduced performance and availability. By default, the update operation will fail if an upscale request results in a vCPU or memory allocation for the brokers that is smaller than 90% of the current broker size.

BrokerDetails

JSON representation
{
  "rack": string,

  // Union field _broker_index can be only one of the following:
  "brokerIndex": string
  // End of list of possible types for union field _broker_index.

  // Union field _node_id can be only one of the following:
  "nodeId": string
  // End of list of possible types for union field _node_id.
}
Fields
rack

string

Output only. The rack of the broker.

Union field _broker_index.

_broker_index can be only one of the following:

brokerIndex

string (int64 format)

Output only. The index of the broker.

Union field _node_id.

_node_id can be only one of the following:

nodeId

string (int64 format)

Output only. The node id of the broker.

Tool Annotations

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