## Tool: `get_bucket_metadata`

Gets the metadata of a bucket.

The following code sample shows how to use `curl` to call the `get_bucket_metadata` MCP tool.

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

## Input Schema

Request message for GetBucketMetadata.

### GetBucketMetadataRequest

| JSON representation |
|---|
| ``` { "bucketName": string } ``` |

| Fields ||
|---|---|
| `bucketName` | `string` Required. The name of the bucket to get metadata for. |

## Output Schema

A bucket within Cloud Storage.

### Bucket

| JSON representation |
|---|
| ``` { "bucketName": string, "project": string, "location": string, "locationType": string, "storageClass": string, "timeCreated": string, "timeLastModified": string, "etag": string, "metageneration": string, "rpo": string, "autoclass": { object (`https://docs.cloud.google.com/storage/docs/reference/mcp/tools_list/list_buckets#Output.Schema.AutoclassMetadata`) }, "encryption": { object (`https://docs.cloud.google.com/storage/docs/reference/mcp/tools_list/list_buckets#Output.Schema.BucketEncryptionMetadata`) }, "ubla": { object (`https://docs.cloud.google.com/storage/docs/reference/mcp/tools_list/list_buckets#Output.Schema.UniformBucketLevelAccessMetadata`) }, "publicAccessPrevention": string, "versioningEnabled": boolean, "defaultEventBasedHold": boolean, "retentionPolicy": { object (`https://docs.cloud.google.com/storage/docs/reference/mcp/tools_list/list_buckets#Output.Schema.RetentionPolicyMetadata`) }, "softDeletePolicy": { object (`https://docs.cloud.google.com/storage/docs/reference/mcp/tools_list/list_buckets#Output.Schema.SoftDeletePolicyMetadata`) }, "labels": { string: string, ... }, "hierarchicalNamespaceEnabled": boolean, "objectRetentionEnabled": boolean } ``` |

| Fields ||
|---|---|
| `bucketName` | `string` Cloud Storage bucket name. |
| `project` | `string` Project ID or number containing the bucket. |
| `location` | `string` Location of the bucket. |
| `locationType` | `string` Location type of the bucket (for example, `"region"`, `"dual-region"`, or `"multi-region"`). |
| `storageClass` | `string` Storage class of the bucket. |
| `timeCreated` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Creation time of the bucket. 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"`. |
| `timeLastModified` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Last modification time of the bucket. 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"`. |
| `etag` | `string` ETag of the bucket. |
| `metageneration` | `string (https://developers.google.com/discovery/v1/type-format format)` Metageneration of the bucket. |
| `rpo` | `string` Recovery point objective (RPO) of the bucket. |
| `autoclass` | ``object (`https://docs.cloud.google.com/storage/docs/reference/mcp/tools_list/list_buckets#Output.Schema.AutoclassMetadata`)`` Autoclass configuration for the bucket. |
| `encryption` | ``object (`https://docs.cloud.google.com/storage/docs/reference/mcp/tools_list/list_buckets#Output.Schema.BucketEncryptionMetadata`)`` Default encryption configuration for the bucket. |
| `ubla` | ``object (`https://docs.cloud.google.com/storage/docs/reference/mcp/tools_list/list_buckets#Output.Schema.UniformBucketLevelAccessMetadata`)`` Uniform bucket-level access configuration for the bucket. |
| `publicAccessPrevention` | `string` Public access prevention setting for the bucket. |
| `versioningEnabled` | `boolean` Whether object versioning is enabled for the bucket. |
| `defaultEventBasedHold` | `boolean` Whether default event-based hold is enabled for the bucket. |
| `retentionPolicy` | ``object (`https://docs.cloud.google.com/storage/docs/reference/mcp/tools_list/list_buckets#Output.Schema.RetentionPolicyMetadata`)`` Retention policy configuration for the bucket. |
| `softDeletePolicy` | ``object (`https://docs.cloud.google.com/storage/docs/reference/mcp/tools_list/list_buckets#Output.Schema.SoftDeletePolicyMetadata`)`` Soft delete policy configuration for the bucket. |
| `labels` | `map (key: string, value: string)` User-provided labels for the bucket. An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `hierarchicalNamespaceEnabled` | `boolean` Whether hierarchical namespace is enabled for the bucket. |
| `objectRetentionEnabled` | `boolean` Whether object retention is enabled for the bucket. |

### Timestamp

| JSON representation |
|---|
| ``` { "seconds": string, "nanos": integer } ``` |

| Fields ||
|---|---|
| `seconds` | `string (https://developers.google.com/discovery/v1/type-format 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. |

### AutoclassMetadata

| JSON representation |
|---|
| ``` { "enabled": boolean, "toggleTime": string } ``` |

| Fields ||
|---|---|
| `enabled` | `boolean` Whether autoclass is enabled. |
| `toggleTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Time when autoclass state was toggled. 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"`. |

### BucketEncryptionMetadata

| JSON representation |
|---|
| ``` { "defaultKmsKeyName": string } ``` |

| Fields ||
|---|---|
| `defaultKmsKeyName` | `string` Default KMS key name used for encryption. |

### UniformBucketLevelAccessMetadata

| JSON representation |
|---|
| ``` { "enabled": boolean, "lockTime": string } ``` |

| Fields ||
|---|---|
| `enabled` | `boolean` Whether uniform bucket-level access is enabled. |
| `lockTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Time when uniform bucket-level access was locked. 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"`. |

### RetentionPolicyMetadata

| JSON representation |
|---|
| ``` { "effectiveTime": string, "isLocked": boolean, "retentionPeriodSeconds": string } ``` |

| Fields ||
|---|---|
| `effectiveTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Effective time of the retention policy. 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"`. |
| `isLocked` | `boolean` Whether the retention policy is locked. |
| `retentionPeriodSeconds` | `string (https://developers.google.com/discovery/v1/type-format format)` Retention period in seconds. |

### SoftDeletePolicyMetadata

| JSON representation |
|---|
| ``` { "retentionDurationSeconds": string, "effectiveTime": string } ``` |

| Fields ||
|---|---|
| `retentionDurationSeconds` | `string (https://developers.google.com/discovery/v1/type-format format)` Retention duration in seconds for soft-deleted objects. |
| `effectiveTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Effective time of the soft delete policy. 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"`. |

### LabelsEntry

| JSON representation |
|---|
| ``` { "key": string, "value": string } ``` |

| Fields ||
|---|---|
| `key` | `string` |
| `value` | `string` |

### Tool Annotations


[Tool annotations](https://modelcontextprotocol.io/specification/latest/schema#toolannotations) 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: ❌