Skip to main content
Glama

Start a file upload

create_upload

Get a URL to PUT a local file to, so import_model and import_2d can take it WITHOUT the bytes passing through your context — base64 costs roughly 380,000 tokens per megabyte and most clients cannot produce it at all. PUT the file to uploadUrl with the headers given, then call the importer with ticketId. If you cannot PUT, give the person handoffUrl and they upload it in their browser; poll the importer until it stops answering awaiting_upload. Note the TWO expiries: uploadUrl dies in minutes, the ticket lasts a day — pass ticketId back here for a fresh URL rather than starting over.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bytesNoSize of the file you are about to send. Refused now if over the limit.
formatNoRequired unless refreshing a ticket.
ticketIdNoAn unfilled ticket whose uploadUrl expired. Re-issues the URL only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

With all annotations false, the description carries the full burden. It discloses behavioral traits beyond the schema: the two expiries (uploadUrl minutes, ticket a day), the need to pass ticketId back for a fresh URL, the polling requirement, and the token-cost rationale. It accurately conveys that this is a stateful, multi-step operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense, with the purpose and token warning front-loaded, followed by a logical workflow and expiry notes. Every sentence adds actionable detail—no filler. It is appropriately sized for the complexity of the operation.

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?

With no output schema, the description must convey what the tool returns. It mentions uploadUrl, headers, ticketId, and handoffUrl, and explains the complete flow including fallback and polling. An agent has all the information needed to call and use the tool correctly without external assumptions.

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 100%, so baseline is 3. The description adds workflow context that the schema lacks: the relationship between format and ticketId (format required unless refreshing), the purpose of bytes (size check), and how ticketId re-issues only the URL. This enhances parameter understanding beyond the schema's field descriptions.

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?

The description states a specific verb ('Get a URL to PUT a local file to') and resource (an upload URL for import tools), and explicitly names the sibling tools import_model and import_2d, distinguishing its purpose. It also explains the context of avoiding base64 token costs, making the tool's role unambiguous.

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?

The description gives a clear when-to-use scenario (uploading a file for import) and a detailed workflow: PUT to uploadUrl, call importer with ticketId, fallback to handoffUrl if PUT fails, and poll the importer. It also explains when to use the ticketId refresh path, effectively covering alternatives and exclusions.

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