Skip to main content
Glama

Start a large-file upload (step 1 of 3)

prepare_upload

Publish or replace a file TOO BIG to pass as text to create_page / update_page (anything over ~100 KB, or a ZIP / PDF / image). Requires that you can run shell commands (to run curl) and read the file from disk. Three steps: (1) call prepare_upload — it returns a one-time upload URL, a ready curl command and a ticket; (2) run that curl command in your shell, replacing @FILE with the path to the file (it sends the file's raw bytes, so there is no size limit beyond the plan's file cap); (3) call finish_upload with the ticket to publish. To UPDATE a page you already published and keep its SAME link, pass page (its viewer URL or slug); omit page to make a new link. If curl cannot reach the upload URL (no network access from your sandbox), tell the user to upload with the miinideck CLI (npx miinideck deploy <path>) or the web uploader instead — do not retry with create_page.

Input Schema

NameRequiredDescriptionDefault
pageNoOptional. The viewer URL or slug of a page you own, to replace its content in place (same link). Omit to create a new page.
titleNoOptional readable label used when making a NEW link. Ignored when `page` is set.
file_kindYesWhat the file is: 'html' (one HTML file), 'zip' (a multi-file site as a ZIP), 'pdf', 'png' or 'jpeg'.
size_bytesYesThe file's exact size in bytes (e.g. from `wc -c`).

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden, and it discloses the multi-step contract: a one-time upload URL, a generated curl command, a ticket consumed by finish_upload, raw-byte transfer with no size limit beyond the plan cap, and the sandbox-network failure mode. Gaps remain: no statement of auth/permission requirements, ticket lifetime or expiry, or what happens if step 2 is interrupted and retried.

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 gating condition (file too big, needs shell) is front-loaded before the numbered steps, and every sentence carries operational weight. It is on the long side for a tool description, with some overlap between the 'three steps' recap and the parameter notes, but no filler.

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?

Despite having no output schema and no annotations, the description fully specifies what prepare_upload returns (URL, curl command, ticket), how it chains to finish_upload, and what to do on failure. For a stateful three-call workflow tool, an agent has everything needed to invoke it correctly.

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 including the page/title interaction and the enum values. The description restates the page semantics in workflow terms ('keep its SAME link'), which is mildly useful framing but adds little beyond the schema text.

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 ('publish or replace a file too big to pass as text') and immediately positions it against siblings create_page/update_page and its partner finish_upload. An agent can classify this tool without opening the schema.

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?

Gives explicit trigger conditions (>~100 KB, ZIP/PDF/image, shell access required), an ordered three-step procedure, and a when-not path ('if curl cannot reach the upload URL... do not retry with create_page') with named alternatives (miinideck CLI, web uploader). Nothing is left to inference.

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