Skip to main content
Glama

get_upload_parts

Report stored parts and generate fresh presigned PUT URLs for up to 100 parts to resume interrupted uploads, fetch later batches, or replace expired URLs.

Instructions

For an upload created by prepare_upload: report which parts the storage has already received (uploaded_parts) and issue fresh presigned PUT URLs for a range of parts (first_part, up to 100 per call). Use it to resume an interrupted upload, to get URLs beyond the first batch, or to replace expired URLs. File bytes are sent by your own HTTP client to those URLs, never through MCP. Requires files:upload.

Input Schema

NameRequiredDescriptionDefault
limitNonumber of part URLs, maximum 100
upload_idYesupload UUID returned by prepare_upload
first_partNofirst part number, default 1

Output Schema

NameRequiredDescriptionDefault
modeYes
nodeNo
sha256No
statusYes
failureNo
put_urlNo
part_sizeNo
part_urlsNo
upload_idNo
expires_atNo
total_partsNo
uploaded_partsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare destructiveHint=false, so the description carries the rest and does so well: it discloses what is returned (uploaded_parts), the batch ceiling of 100 per call, that URLs are presigned and can expire, that file bytes flow through the caller's own HTTP client rather than MCP, and the required files:upload scope. That is exactly the behavioral context an agent needs before calling.

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?

Four sentences, no filler, and the identity/scope sentence is front-loaded before the usage triggers and the auth requirement. Every clause adds information an agent would otherwise have to infer.

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 needn't be spelled out, and the description still names the key field; the auth requirement and the out-of-band byte transfer are both covered. The only minor gap is no guidance on how to proceed when the part list is incomplete beyond calling again, though the resume wording largely implies it.

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 the baseline is 3, but the description adds real meaning by framing limit and first_part as a sliding batch window ('a range of parts (first_part, up to 100 per call)') and by explaining why you would request a later range — expired or already-consumed URLs. That goes beyond the per-field 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 pair and resource — report received parts and issue fresh presigned PUT URLs — and anchors it to the upload created by prepare_upload. This clearly separates it from get_upload_status, complete_upload, and prepare_upload without needing to open 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 Guidelines4/5

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

Gives three concrete when-to-use triggers: resuming an interrupted upload, fetching URLs beyond the first batch, and replacing expired URLs. It does not name sibling alternatives or state when-not-to-use (e.g. when to prefer get_upload_status or wait_upload instead), which keeps it just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.