Skip to main content
Glama

bucket_create

Destructive

Create a new MinIO bucket, optionally WORM-capable via object lock at creation, since lock cannot be enabled later. Supports dry-run preview and is reversible while the bucket stays empty.

Instructions

[WRITE][risk=medium] Create a bucket, optionally WORM-capable. Reversible.

object_lock=True is the ONLY way to get object lock: S3 accepts the flag at bucket creation and has no call that enables it later. The server force-enables versioning as a consequence; the result reports what it observed rather than what was assumed.

Undo deletes the bucket, and only while it is still empty.

Args: bucket_name: New bucket name (3-63 chars, lowercase/digits/dots/hyphens). object_lock: Enable object lock (WORM). Cannot be changed afterwards. dry_run: If True, preview without creating. target: MinIO target name from config; omit for the default.

Input Schema

NameRequiredDescriptionDefault
targetNo
dry_runNo
bucket_nameYes
object_lockNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.11.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and idempotentHint=false, and the description adds substantial context beyond them: the server force-enables versioning as a side effect, the result reports observed rather than assumed state, and undo is only possible while the bucket is empty. The "Reversible" claim is backed by the concrete undo mechanics rather than left vague, so it does not conflict with the destructive annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the write/risk tag and action, then pays out only the non-obvious facts (object-lock immutability, forced versioning, empty-bucket undo) before a self-contained Args block. The only mild redundancy is restating object-lock immutability in the Args section, which is defensible for a standalone parameter list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a mutation tool with no output schema, the description covers naming rules, WORM implications, dry-run behavior, target selection, and undo limits. It does not say what happens on a name collision (bucket already exists), which matters since idempotentHint=false and the schema has no such parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does: bucket_name gets format constraints (3-63 chars, lowercase/digits/dots/hyphens), object_lock is flagged as immutable after creation, dry_run is described as a preview, and target is identified as a config-defined MinIO target with a documented default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Create a bucket") plus a distinguishing attribute ("optionally WORM-capable"), which separates it from siblings like bucket_delete, bucket_lock_config, and set_versioning. An agent knows immediately this is the creation entry point.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states that object_lock=True is the ONLY way to obtain object lock because S3 has no later call that enables it, which routes the agent away from sibling tools such as bucket_lock_config or set_default_retention for that goal. It also documents the undo path (delete while empty) and the dry_run preview option.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.