Skip to main content
Glama

McpStamp Zip Archives

Upload a file or an archive

zip_upload
DestructiveIdempotent

Send a file to this hosted endpoint. There is no filesystem here, so instead of a path you upload the file once with zip_upload and then pass its name wherever a path is asked for: an archive to zip_list, zip_extract, zip_extract_text or zip_add, a plain file to zip_create. Give exactly one of content_base64 (the file's bytes, the only paste form an archive can take), content (text, for a text file to pack) or url. url: fetch a public file instead of pasting base64 (recommended above about 10 KB): the url is fetched here with a 10 second timeout, at most 3 redirects, public http(s) hosts only, and a 1 MB cap, and a name ending .zip is checked for the PK magic before anything is stored. Uploads are kept for your token between calls; zip_files lists them and zip_delete_upload removes one. The request body cap is 256 KB, so the practical ceiling on a paste is about 190 KB of file once it is base64 inside a JSON-RPC envelope.

Input Schema

NameRequiredDescriptionDefault
urlNourl: fetch a public file instead of pasting base64 (recommended above about 10 KB). Public http(s) only; private, link-local and this endpoint's own zone are refused
nameYesName to refer to this file by: 1-64 characters of letters, digits, underscore or dash, with an optional extension. No extension means .zip, e.g. "reports" or "notes.txt"
contentNoThe file as text (a .txt, .csv, .md or source file to pack). Not accepted for a .zip
content_base64NoThe file's bytes, base64-encoded. This is the only paste form an archive can be uploaded in

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  2. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and idempotentHint=true, and the description adds substantial operational context beyond them: 10-second fetch timeout, max 3 redirects, public http(s) only, 1 MB cap, PK magic validation for .zip, per-token persistence between calls, and a 256 KB body cap yielding ~190 KB of paste. The one untouched trait is what 'destructive' means here — re-uploading an existing name replaces it — so a 4 rather than a 5.

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?

Purpose and the name-passing model are front-loaded, and the per-parameter elaboration is prefixed with 'url:' to keep it scannable. It is still a dense single block covering four parameters plus limits; the size-cap material could be compressed, but no sentence is genuinely filler.

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

Completeness4/5

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

For a 4-parameter upload tool with no output schema, it covers the full lifecycle: storage scope (your token), limits, validation, listing and deletion. The remaining gap is the response behavior — whether the stored name is echoed back and what happens on a name collision — which matters given idempotentHint/destructiveHint.

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

Parameters5/5

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

Schema coverage is 100%, but the schema does not encode mutual exclusivity; the description supplies the critical rule 'Give exactly one of content_base64, content or url', plus that content is rejected for a .zip and that base64 is the sole paste form for archives. That is genuine meaning the schema alone would not convey.

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?

Names a specific verb and resource ('Send a file to this hosted endpoint') and immediately frames the unusual no-filesystem upload model that distinguishes it from all other zip_* siblings. The final clause routes the resulting name to zip_list/zip_extract/zip_add for archives and zip_create for plain files, so the agent can tell what this tool is for without opening a 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?

Explicitly states which downstream tool consumes the uploaded name depending on file type, and names zip_files for listing and zip_delete_upload for removal. It also gives a decision rule between content_base64, content and url (url recommended above ~10 KB, url not accepted for archives), which is exactly the when-to-use guidance an agent needs.

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.