Skip to main content
Glama

zip_upload_link

Issues ONE presigned URL (1 h, the same expiry as every other MCP upload link) to PUT the deliverable ZIP over HTTP; it also returns the uploadToken that submit_for_review requires, which is a different thing and lasts 2 h. It deliberately issues no batches: there is one deliverable per template.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filenameNoName of the file (e.g. "my-template.zip").

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
issuedYesAlways 1: there is ONE deliverable per template.
blobUrlYesFinal URL of the file in the private store.
filenameYesSanitized name it is stored under.
maxBytesYesMaximum accepted size, in bytes.
pathnameYesPath inside the store; you repeat it in submit_for_review.
expiresAtYesWhen the upload link expires (ISO 8601).
expiresInYesThe same thing in plain words.
uploadTokenYesMAC that ties the file to your account for the submission.
instructionsYesHow to upload the file and what to do afterwards.
presignedUrlYesSigned URL to PUT the file to.
uploadTokenExpiresInYesHow long the uploadToken lives, in plain words.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / filename / description
      Previous value: -"Name of the file (e.g. \"plantilla.zip\")."New value: +"Name of the file (e.g. \"my-template.zip\")."
  2. Changed12 schema fields changed
    • changedInput schema / properties / filename / description
      Previous value: -"Nombre del archivo (p. ej. \"plantilla.zip\")."New value: +"Name of the file (e.g. \"plantilla.zip\")."
    • changedOutput schema / properties / blobUrl / description
      Previous value: -"URL final del archivo en el almacén privado."New value: +"Final URL of the file in the private store."
    • changedOutput schema / properties / expiresAt / description
      Previous value: -"Cuándo caduca el enlace de subida (ISO 8601)."New value: +"When the upload link expires (ISO 8601)."
    • changedOutput schema / properties / expiresIn / description
      Previous value: -"Lo mismo dicho en claro."New value: +"The same thing in plain words."
    • changedOutput schema / properties / filename / description
      Previous value: -"Nombre saneado con el que se guarda."New value: +"Sanitized name it is stored under."
    • changedOutput schema / properties / instructions / description
      Previous value: -"Cómo subir el archivo y qué hacer después."New value: +"How to upload the file and what to do afterwards."
    • changedOutput schema / properties / issued / description
      Previous value: -"Siempre 1: el entregable es UNO por plantilla."New value: +"Always 1: there is ONE deliverable per template."
    • changedOutput schema / properties / maxBytes / description
      Previous value: -"Tamaño máximo admitido, en bytes."New value: +"Maximum accepted size, in bytes."
    • changedOutput schema / properties / pathname / description
      Previous value: -"Ruta dentro del almacén; se repite en submit_for_review."New value: +"Path inside the store; you repeat it in submit_for_review."
    • changedOutput schema / properties / presignedUrl / description
      Previous value: -"URL firmada a la que hacer el PUT del archivo."New value: +"Signed URL to PUT the file to."
    • changedOutput schema / properties / uploadToken / description
      Previous value: -"MAC que ata el archivo a tu cuenta para el envío."New value: +"MAC that ties the file to your account for the submission."
    • changedOutput schema / properties / uploadTokenExpiresIn / description
      Previous value: -"Cuánto vive el uploadToken, en claro."New value: +"How long the uploadToken lives, in plain words."
  3. First observed

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it delivers useful behavioral detail: the URL expires in 1 h, the uploadToken lasts 2 h, no batches are issued, and there is exactly one deliverable per template. It omits auth/permission requirements and any statement about overwriting an existing upload, which keeps it below 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?

The core action ('Issues ONE presigned URL') is front-loaded, and the parenthetical expiry detail is compact rather than wasteful. It reads as one dense sentence with extra clauses, but nearly every clause carries useful constraint information.

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?

An output schema exists, so return values need not be explained, and the description goes further by explaining how the returned uploadToken relates to submit_for_review. For a one-parameter tool embedded in a multi-step submission flow, this is largely complete; only edge behaviors like re-issuance or overwrite are absent.

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% for the single 'filename' parameter, so the schema already documents its meaning and format. The description adds no syntax or constraints beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: it 'issues ONE presigned URL ... to PUT the deliverable ZIP over HTTP,' which is far more precise than a generic upload tool. It also distinguishes itself from submit_for_review by noting the uploadToken is 'a different thing.' It stops short of explicitly contrasting with the sibling upload links (evidence_upload_link, image_upload_link) by name, only referring to 'every other MCP upload link.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the agent learns this produces the URL for the deliverable and the token that submit_for_review consumes, which points toward a template-submission flow. However there is no explicit 'use this when...' or 'do not use this for...' statement, and the alternatives among the other upload-link tools are 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