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 |
|---|
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 |
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 ( |
| Fields | |
|---|---|
bucketName |
Cloud Storage bucket name. |
project |
Project ID or number containing the bucket. |
location |
Location of the bucket. |
locationType |
Location type of the bucket (for example, |
storageClass |
Storage class of the bucket. |
timeCreated |
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: |
timeLastModified |
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: |
etag |
ETag of the bucket. |
metageneration |
Metageneration of the bucket. |
rpo |
Recovery point objective (RPO) of the bucket. |
autoclass |
Autoclass configuration for the bucket. |
encryption |
Default encryption configuration for the bucket. |
ubla |
Uniform bucket-level access configuration for the bucket. |
publicAccessPrevention |
Public access prevention setting for the bucket. |
versioningEnabled |
Whether object versioning is enabled for the bucket. |
defaultEventBasedHold |
Whether default event-based hold is enabled for the bucket. |
retentionPolicy |
Retention policy configuration for the bucket. |
softDeletePolicy |
Soft delete policy configuration for the bucket. |
labels |
User-provided labels for the bucket. An object containing a list of |
hierarchicalNamespaceEnabled |
Whether hierarchical namespace is enabled for the bucket. |
objectRetentionEnabled |
Whether object retention is enabled for the bucket. |
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. |
AutoclassMetadata
| JSON representation |
|---|
{ "enabled": boolean, "toggleTime": string } |
| Fields | |
|---|---|
enabled |
Whether autoclass is enabled. |
toggleTime |
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: |
BucketEncryptionMetadata
| JSON representation |
|---|
{ "defaultKmsKeyName": string } |
| Fields | |
|---|---|
defaultKmsKeyName |
Default KMS key name used for encryption. |
UniformBucketLevelAccessMetadata
| JSON representation |
|---|
{ "enabled": boolean, "lockTime": string } |
| Fields | |
|---|---|
enabled |
Whether uniform bucket-level access is enabled. |
lockTime |
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: |
RetentionPolicyMetadata
| JSON representation |
|---|
{ "effectiveTime": string, "isLocked": boolean, "retentionPeriodSeconds": string } |
| Fields | |
|---|---|
effectiveTime |
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: |
isLocked |
Whether the retention policy is locked. |
retentionPeriodSeconds |
Retention period in seconds. |
SoftDeletePolicyMetadata
| JSON representation |
|---|
{ "retentionDurationSeconds": string, "effectiveTime": string } |
| Fields | |
|---|---|
retentionDurationSeconds |
Retention duration in seconds for soft-deleted objects. |
effectiveTime |
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: |
LabelsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
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: ❌