Skip to main content
Glama
antideploy

antideploy-mcp

Official
by antideploy

Create the application's file storage now

storage_create

Creates a private S3 bucket so app uploads and generated files use real storage during development and remain available after deploy. Intended for projects without their own storage configuration.

Instructions

Create a private S3 bucket for this application now, while the project is still being written, so uploads are built and tested against real storage instead of the container's disk, which is wiped on every deploy. A later deploy gives the running app the same bucket. Safe to call twice. Only for a project that stores uploads or generated files: skip it otherwise, and skip it when the project already has a storage key of its own (an AWS_ACCESS_KEY_ID in .env that is not ours, or a service the user named, such as Cloudinary or UploadThing): the answer is a 409 own_storage. It counts against the plan's bucket allowance; a 402 storage_limit is not a rate limit, so do not retry, say what it says and let the user choose. If the call is refused or blocked, do not look for another route: tell the user. The key is not returned: call storage_env_to_file to put it in .env. Addressing is path style, which current AWS SDKs and boto3 choose by themselves for this bucket's name, so existing code that reads those variables works as it is; in new JavaScript code set forcePathStyle: true anyway. A browser can upload straight to the bucket with a presigned PUT URL. Tell the user what was created and on which account.

Input Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only give openWorldHint=false and destructiveHint=false; the description adds the real behavioral surface: idempotency ('safe to call twice'), the specific error codes 409 own_storage and 402 storage_limit with retry guidance, the fact that credentials are not returned, and that the bucket is reattached on a later deploy. The path-style addressing note and presigned-PUT capability further describe how the created resource behaves.

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?

The action and its purpose are front-loaded, and nearly every clause carries operational value (idempotency, error codes, follow-up tool). It is a dense single paragraph that mixes calling guidance with downstream SDK advice (forcePathStyle, presigned PUT), which slightly hurts scannability for a zero-parameter tool.

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?

For a mutation tool with no output schema and no parameters, the description covers everything an agent needs: prerequisites for calling, side effects on plan allowance, exact failure semantics, what is not returned, and the follow-up call to persist the key. Nothing consequential is left to inference.

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?

The tool takes zero parameters, so the baseline is 4; the description adds nothing to document here and nothing is missing. Any parameter-level explanation would be noise.

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 and resource ('Create a private S3 bucket for this application now') and immediately frames the intent (build/test uploads against real storage instead of ephemeral disk). It is clearly distinct from the sibling storage_env_to_file, which it names as the follow-up step rather than the alternative.

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?

Explicit when/when-not: only for projects that store uploads or generated files, skip otherwise, and skip when the project already has its own storage credentials or a named third-party service (Cloudinary, UploadThing) because the answer is 409 own_storage. It also tells the agent not to retry on 402 storage_limit and not to hunt for another route if refused.

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