Skip to main content
Glama

Provision object storage

provision_storage
Idempotent

Provision the project's managed S3-compatible object storage (bucket + scoped access key) and inject S3_ENDPOINT/S3_BUCKET/S3_ACCESS_KEY/S3_SECRET_KEY/S3_REGION/S3_FORCE_PATH_STYLE into the app's environment — the same action as the dashboard's Settings → S3 button. Needed by anything that handles file uploads: uploaded files belong in this bucket rather than in Postgres columns, and no external S3 provider is needed. Idempotent: a project that already has a bucket gets its current state back (already_provisioned=true) and nothing is created. Returns the env var names that are now set, with masked values. Deployed commits are rolled so the new variables land in the running pods. Requires a read-write token.

Input Schema

NameRequiredDescriptionDefault
modeNooptional provisioning mode: nas (shared servers) or disk (Postgres and S3 as sidecars on the commit disk). Omit to use the platform default. A second call on an already-provisioned project returns the current mode and ignores this field
project_idYesthe project id (from list_projects or deploy_files)

Output Schema

NameRequiredDescriptionDefault
kindYes
modeNo
messageYes
env_varsYes
repairedYes
convergedYes
project_idYes
resource_nameNo
rolled_commitsNo
already_provisionedYes
env_secret_digest_afterNo
env_secret_digest_beforeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses exactly which env vars are injected, that a second call returns already_provisioned=true without creating anything, that deployed commits are rolled so the new vars reach running pods, that values are masked, and that a read-write token is required. The pod-rollout side effect is a significant consequence an agent would otherwise miss.

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

Conciseness4/5

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

Front-loads the verb and resource, then layers idempotency, return shape, side effects, and auth in a logical order. It is dense but nearly every clause carries new information; only the dashboard-button analogy is arguably decorative.

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

Completeness5/5

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

An output schema exists, yet the description still summarizes the return (already_provisioned flag, masked env var names) and covers preconditions, side effects, and idempotency. Nothing an agent needs to decide-and-call is missing.

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 coverage is 100% and the schema itself documents both mode and project_id in detail, including mode's behavior on re-provisioning. The description adds no parameter-level semantics beyond that, so baseline 3 applies.

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?

States a specific verb (provision) plus the exact resource (managed S3-compatible bucket + scoped access key) and names the concrete artifacts created. An agent can separate this from provision_postgres and upload_object purely from the description.

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?

Gives a clear trigger — 'needed by anything that handles file uploads' — and a strong exclusion ('files belong in this bucket rather than in Postgres columns, no external S3 provider is needed'). It does not explicitly name provision_postgres as the alternative, so a 4 rather than a 5.

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.

Resources