Tool: add_acl_entry
Adds an ACL entry to an existing Google Cloud Managed Service for Apache Kafka ACL. If the ACL does not exist, it will be created. The following fields must be provided: * cluster (required): The cluster in which to add the ACL entry. Structured like projects/{project}/locations/{location}/clusters/{cluster}. * resource_type (required): The resource type for the ACL. Accepted values: CLUSTER, TOPIC, CONSUMER_GROUP, TRANSACTIONAL_ID. * resource_name (required): The resource name for the ACL. Can be the wildcard literal "*". * pattern_type (optional): The pattern type for the ACL. Accepted values: LITERAL, PREFIXED. If not specified, defaults to LITERAL. * principal (required): The principal. Specified as Google Cloud account, with the Kafka StandardAuthorizer prefix "User:". For example: "User:test-kafka-client@test-project.iam.gserviceaccount.com". Can be the wildcard "User:*" to refer to all users. * operation (required): The operation type. Allowed values are (case insensitive): ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS, and IDEMPOTENT_WRITE. * permission_type (optional): The permission type. Accepted values are (case insensitive): ALLOW, DENY. If not specified, defaults to ALLOW.
Important Notes:
- Certain resource types only allow certain operations.
- For the
clusterresource type, only CREATE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS, IDEMPOTENT_WRITE, ALTER, DESCRIBE, and ALL are allowed. - For the
topicresource type, only READ, WRITE, CREATE, DESCRIBE, DELETE, ALTER, DESCRIBE_CONFIGS, ALTER_CONFIGS, and ALL are allowed. - For the
consumerGroupresource type, only READ, DESCRIBE, DELETE, and ALL are allowed. - For the
transactionalIdresource type only DESCRIBE, WRITE, and ALL are allowed.
- For the
The following sample demonstrate how to use curl to invoke the add_acl_entry 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": "add_acl_entry", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request message for AddAclEntry.
AddAclEntryRequest
| JSON representation |
|---|
{ "cluster": string, "resourceType": enum ( |
| Fields | |
|---|---|
cluster |
Required. The cluster in which to add the ACL entry. Format: projects/{project}/locations/{location}/clusters/{cluster_id} |
resourceType |
Required. The resource type for the ACL. |
resourceName |
Required. The resource name for the ACL. |
patternType |
Optional. The pattern type for the ACL. If not specified, defaults to LITERAL. |
principal |
Required. The principal for the ACL entry. Example: "User:test-kafka-client@test-project.iam.gserviceaccount.com" or "User:*" for all users. |
operation |
Required. The operation for the ACL entry. Example: READ, WRITE, or ALL. |
permissionType |
Optional. The permission type for the ACL entry. If not specified, defaults to ALLOW. |
Output Schema
Response for AddAclEntry.
AddAclEntryResponse
| JSON representation |
|---|
{
"acl": {
object ( |
| Fields | |
|---|---|
acl |
The updated acl. |
aclCreated |
Whether the acl was created as a result of adding the acl entry. |
Acl
| JSON representation |
|---|
{
"name": string,
"aclEntries": [
{
object ( |
| Fields | |
|---|---|
name |
Identifier. The name for the acl. Represents a single Resource Pattern. Structured like: projects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id} The structure of For acls on the cluster: For acls on a single resource within the cluster: For acls on all resources that match a prefix: For acls on all resources of a given type (i.e. the wildcard literal "*"): |
aclEntries[] |
Required. The ACL entries that apply to the resource pattern. The maximum number of allowed entries 100. |
etag |
Optional. A terminal 'T' character in the etag indicates that the AclEntries were truncated; more entries for the Acl exist on the Kafka Cluster, but can't be returned in the Acl due to repeated field limits. |
resourceType |
Output only. The ACL resource type derived from the name. One of: CLUSTER, TOPIC, GROUP, TRANSACTIONAL_ID. |
resourceName |
Output only. The ACL resource name derived from the name. For cluster resource_type, this is always "kafka-cluster". Can be the wildcard literal "*". |
patternType |
Output only. The ACL pattern type derived from the name. One of: LITERAL, PREFIXED. |
AclEntry
| JSON representation |
|---|
{ "principal": string, "permissionType": string, "operation": string, "host": string } |
| Fields | |
|---|---|
principal |
Required. The principal. Specified as Google Cloud account, with the Kafka StandardAuthorizer prefix "User:". For example: "User:test-kafka-client@test-project.iam.gserviceaccount.com". Can be the wildcard "User:*" to refer to all users. |
permissionType |
Required. The permission type. Accepted values are (case insensitive): ALLOW, DENY. |
operation |
Required. The operation type. Allowed values are (case insensitive): ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS, and IDEMPOTENT_WRITE. See https://kafka.apache.org/documentation/#operations_resources_and_protocols for valid combinations of resource_type and operation for different Kafka API requests. |
host |
Required. The host. Must be set to "*" for Managed Service for Apache Kafka. |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌