Skip to main content
Glama

Bucket Lock

bucket_lock

Lock a whole bucket before broad edits or uploads so other agents can see this connector is working.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageYesOptional lock message explaining why the bucket or files are locked.
bucket_idYesRevdoku bucket id returned by bucket_list or bucket_get, for example bkt_...
account_idNoOptional account id from revdoku_status.accounts for this call only. Omit for the credential's default account. Client accounts require explicit Agency authorization; never infer an account from a bucket id.
duration_secondsNoOptional lock duration in seconds.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
bucketYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / bucket / properties / inbound_email
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Accepted email activity. Creation and write-authorized include_inbound_email reads also return the full address and receiving state. Compare received_count for new mail, then read last_received_path + message.json. Not a delivery cursor.",
      +  "properties": {
      +    "address": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "blocked_reason": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "configured": {
      +      "type": "boolean"
      +    },
      +    "enabled": {
      +      "type": "boolean"
      +    },
      +    "last_received_at": {
      +      "description": "Latest accepted message receipt time, in UTC. Null before any recorded delivery.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "last_received_path": {
      +      "description": "Latest message folder relative to the bucket, ending in /. Null when unknown; manual moves/deletion can make it stale.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "max_file_size_bytes": {
      +      "type": "integer"
      +    },
      +    "max_pdf_size_bytes": {
      +      "type": "integer"
      +    },
      +    "monthly_limit": {
      +      "type": "integer"
      +    },
      +    "ready": {
      +      "type": "boolean"
      +    },
      +    "received_count": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "rotation": {
      +      "properties": {
      +        "monthly_limit": {
      +          "type": "integer"
      +        },
      +        "remaining": {
      +          "type": "integer"
      +        },
      +        "resets_at": {
      +          "type": "string"
      +        },
      +        "used": {
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "received_count",
      +    "last_received_at",
      +    "last_received_path"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / account_id
      Added value: +{
      +  "description": "Optional account id from revdoku_status.accounts for this call only. Omit for the credential's default account. Client accounts require explicit Agency authorization; never infer an account from a bucket id.",
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • changedOutput schema / properties / bucket / properties / search_engine_visibility / properties / locked_reason / enum
      Previous value: -[
      -  "anonymous_preview",
      -  "temporary_preview",
      -  "protected_access",
      -  "account_policy",
      -  null
      -]New value: +[
      +  "temporary_preview",
      +  "protected_access",
      +  "account_policy",
      +  null
      +]
    • changedOutput schema / properties / bucket / properties / website / properties / search_engine_visibility / properties / locked_reason / enum
      Previous value: -[
      -  "anonymous_preview",
      -  "temporary_preview",
      -  "protected_access",
      -  "account_policy",
      -  null
      -]New value: +[
      +  "temporary_preview",
      +  "protected_access",
      +  "account_policy",
      +  null
      +]
  4. Changed3 schema fields changed
    • removedOutput schema / properties / bucket / properties / path_permissions
      Removed value: -{
      -  "items": {
      -    "properties": {
      -      "path": {
      -        "type": "string"
      -      },
      -      "permission": {
      -        "enum": [
      -          "read_write",
      -          "read_only"
      -        ],
      -        "type": "string"
      -      },
      -      "source": {
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / bucket / properties / wbuilder_contract
      Removed value: -{
      -  "additionalProperties": true,
      -  "type": [
      -    "object",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / bucket / properties / website_type
      Removed value: -{
      -  "enum": [
      -    "static",
      -    "wbuilder"
      -  ],
      -  "type": "string"
      -}
  5. Changed2 schema fields changed
    • addedOutput schema / properties / bucket / properties / search_engine_visibility
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "allow_search_indexing": {
      +      "type": "boolean"
      +    },
      +    "locked": {
      +      "type": "boolean"
      +    },
      +    "locked_reason": {
      +      "enum": [
      +        "anonymous_preview",
      +        "temporary_preview",
      +        "protected_access",
      +        "account_policy",
      +        null
      +      ],
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "owner_preference": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "allow_search_indexing",
      +    "owner_preference",
      +    "locked"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / bucket / properties / website / properties / search_engine_visibility
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "allow_search_indexing": {
      +      "type": "boolean"
      +    },
      +    "locked": {
      +      "type": "boolean"
      +    },
      +    "locked_reason": {
      +      "enum": [
      +        "anonymous_preview",
      +        "temporary_preview",
      +        "protected_access",
      +        "account_policy",
      +        null
      +      ],
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "owner_preference": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "allow_search_indexing",
      +    "owner_preference",
      +    "locked"
      +  ],
      +  "type": "object"
      +}
  6. First observed

TDQS

A3.7/5.0
Behavior3/5

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

Annotations only give negative hints (not read-only, not idempotent, not destructive), so the description carries the burden. It adds one behavioral trait—other agents can observe the connector as working—but does not explain the lock's blocking semantics, expiration, or the need to release it via bucket_unlock. Some useful context, but key mechanics are missing.

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?

A single, front-loaded sentence that wastes no words. It states the action, the condition, and the rationale in one concise statement.

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

Completeness3/5

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

With a rich schema and an output schema present, the tool is callable. However, the description omits lock lifecycle details—whether the lock blocks other agents, how duration_seconds interacts, and that bucket_unlock is the release path—so an agent may not fully understand the operational contract.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters. The description does not add any parameter-level detail beyond what is in the schema, so the baseline of 3 applies.

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

Purpose4/5

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

The description clearly identifies the action ('Lock a whole bucket') and the timing ('before broad edits or uploads'), with a stated purpose ('so other agents can see this connector is working'). It distinguishes from siblings like bucket_lock_files by emphasizing 'whole bucket', though it does not explicitly name or contrast those alternatives.

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

Usage Guidelines4/5

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

Provides a clear trigger context: use before broad edits or uploads. It does not, however, state when not to use it or point to bucket_lock_files for per-file locking, so exclusions and alternatives are left implicit.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.