Skip to main content
Glama

Upload a large file

start_upload
Destructive

Send a file that is too large to pass in one call (a long HTML page, a big PDF or deck) without any token in the shell. Returns a one-time upload address and the curl command to run with the file's path. The reply to that command is the link and its settings, the same as send_artifact. HTML, Markdown, PDF, Word, PowerPoint, Excel and images, up to 30 MB. The address works once, for 15 minutes. Takes the same settings as send_artifact, and link to update an existing link.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "file_name": "<file_name>"
    },
    "name": "start_upload"
  }
}

Input Schema

NameRequiredDescriptionDefault
linkNoOptional. Update this link instead of making a new one.
allowNoOnly these emails or domains can open it, e.g. ["@sequoiacap.com", "dana@acme.com"].
titleNo
accessNopublic: anyone with the link. email: reader types an email (fake and throwaway addresses are refused). verified: reader proves the email, with Google or a 6-digit email code.
folderNoPut it in this folder on my Artifacts page, by name. Made if it does not exist. Leave out to keep it outside folders.
notifyNoEmail me when someone opens it the first time. Default true.
downloadsNoReaders get a Download button for a PDF, Office file, image or video. Default false.
file_nameYesThe file name with its extension, e.g. report.html or deck.pptx.
ai_readingNoWhat a reader's own AI (Claude, ChatGPT) may take. questions (default): only the parts that answer each question, so I see every question and no full copy leaves. full: the whole text, marked with the reader's email. off: no AI reading.
expires_in_daysNoClose the link after this many days.
discourage_screenshotsNoBlur the page when the reader switches away, block printing and copying, and watermark it with their email. No website can fully stop a screenshot. Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only mark it as a non-read-only, open-world, destructive write; the description adds the real behavior an agent needs: a two-step handoff via shell, a single-use address valid for 15 minutes, a 30 MB ceiling, and the accepted file formats. It never explains the destructiveHint (that passing 'link' rewrites an existing link's settings and can revoke prior access), which is the one meaningful gap for a write tool.

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?

Front-loaded with the core purpose and the two-step mechanism, then limits and format support, then the setting inheritance — a sensible order with no filler. A few clauses are dense run-ons (the curl reply sentence), but every sentence carries information an agent needs.

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 an 11-parameter, no-output-schema tool, the description covers the return path (the shell command's reply yields the link and its settings), expiry, size limits, and supported types. Remaining unknowns are minor — what happens if the 15-minute address is never used, and whether anything is created at the start_upload step.

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 already 91%, so the bar is baseline 3; the description adds genuine value by saying the settings mirror send_artifact (letting the agent reuse known semantics for access, allow, notify, ai_reading, etc.) and by flagging 'link' as an update-instead-of-create switch. The size and format limits also constrain file_name in a way the schema does not.

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 action (send a file too large for a single call) plus the mechanism (returns a one-time upload address and a curl command), and explicitly contrasts the scope with send_artifact, which it says produces the same result. An agent can distinguish this from upload_file and send_artifact without opening any schema.

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 when-to-use condition is explicit: files too large to pass in one call, with examples of such files, and a redirect to send_artifact semantics for the settings. It does not state the converse (use send_artifact/upload_file for small files) nor when to prefer this over plain upload_file, so the routing decision is clear in one direction only.

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