Skip to main content
Glama

Add or grow app storage

set_app_storage
Idempotent

Give an app storage that survives restarts and deploys, or grow the storage it already has. Call this when the app has to keep files: a SQLite database file, uploads, or anything the user expects to still be there tomorrow. The app reads and writes the folder at the path in the DATA_DIR environment variable, which Dockhold sets; anything written outside DATA_DIR is scratch space and is lost on the next restart. size_gb must be one of the sizes get_resource_usage reports under volume.steps_gb and has to fit your storage pool, which is the same pool a managed database draws on, so call get_resource_usage first. Storage can grow but never shrink. Three things to tell the user before calling this: an app with storage runs as a single copy, it cannot have scheduled tasks, and from now on each deploy stops the running version before the new one starts, so the app is unreachable for a few seconds. Write the app to save its files when it receives SIGTERM.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
app_idYesThe app id returned by list_apps
size_gbYesStorage size in GB, one of the values get_resource_usage reports under volume.steps_gb; must be at least the current size (storage grows, never shrinks)

TDQS

A4.7/5.0
Behavior5/5

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

The description richly discloses behavioral traits beyond the annotations: storage survives restarts/deploys, DATA_DIR is the persistent path, scratch space outside it is lost, storage can grow but never shrink, a storage-enabled app runs as a single copy, cannot have scheduled tasks, and deploys cause brief downtime. It even advises the app to flush files on SIGTERM.

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?

The description is detailed but every sentence adds essential information: purpose, use case, persistence semantics, sizing constraint, irreversible growth, user-facing consequences, and graceful shutdown guidance. It is front-loaded with the core purpose and then layers necessary caveats without fluff.

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?

Given the tool's moderate complexity, two required parameters, and no output schema, the description covers everything an agent needs: when to call it, what prerequisites exist, how parameters are constrained, what side effects to expect, and what information the user must be told. No material gap remains.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful operational context for size_gb by specifying it must come from get_resource_usage's volume.steps_gb, must fit the storage pool shared with managed databases, and that growth is one-way. This goes beyond the schema's constraint wording.

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?

The description states a specific verb and resource: 'Give an app storage that survives restarts and deploys, or grow the storage it already has.' It clearly distinguishes this from related tools like remove_app_storage and resize_database_storage by focusing on app storage growth and persistence.

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?

The description gives explicit when-to-use guidance: 'Call this when the app has to keep files: a SQLite database file, uploads, or anything the user expects to still be there tomorrow.' It also instructs calling get_resource_usage first, but it does not explicitly name sibling alternatives or state when not to use this tool.

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.

TDQS

A4.6/5.0
Disambiguation5/5

Each tool targets a distinct operation: deployment, monitoring, scaling, configuration, or listing. There is no overlap; agents can easily select the correct tool.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., deploy_app, get_app_logs, resize_database). No naming irregularities.

Tool Count5/5

12 tools cover the core operations of a deployment platform without bloat or missing essentials. The count is well-scoped.

Completeness4/5

Covers deploy, manage, scale, and monitor effectively. Missing only minor operations like deleting an app or environment variable, but the core workflow is complete.

Resources