Skip to main content
Glama

Finish a file upload

complete_upload
Idempotent

Finish an upload that create_upload_url started. Call it once the bytes have been PUT to the upload URL. The link does not serve anything until this succeeds. An HTML page is served at its own nudgehost.site address, as create_upload_url predicted. A ZIP that holds a file named index.html and is 100MB or smaller becomes a hosted site at its own address, so the URL this returns is the final one and can differ from the address create_upload_url predicted. A ZIP without an index.html, or over 100MB, stays a download. Report the URL this returns. It takes the id create_upload_url gave you and nothing else.

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": {
      "id": "<id>"
    },
    "name": "complete_upload"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesThe id returned by create_upload_url for the upload you are finishing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already establish mutating, non-destructive, idempotent, open-world behavior, and the description adds substantive context beyond them: the link serves nothing until this succeeds, and conditional outcomes are spelled out (ZIP with index.html at 100MB or less becomes a hosted site; otherwise it stays a download). It also warns that the returned URL may differ from the one create_upload_url predicted, which is exactly the kind of behavior an agent cannot infer from annotations.

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 workflow trigger is front-loaded and most sentences carry real information. However, there is some redundancy: the 'does not serve anything until this succeeds' point overlaps with the later URL-outcome sentences, and 'Report the URL this returns' repeats information already given.

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 still explains what is returned (the final URL) and the conditions under which it differs from the predicted address. For a single-parameter completion tool preceded by a known sibling, nothing essential is missing.

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 id parameter, and the description's note that it 'takes the id create_upload_url gave you and nothing else' largely restates the schema's own wording. Baseline 3 applies since the schema already carries the parameter meaning.

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 and resource ('Finish an upload') and explicitly anchors it to the sibling that precedes it ('that create_upload_url started'). An agent can distinguish this from create_upload_url, list_links, and share_text 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?

Gives an explicit trigger condition: 'Call it once the bytes have been PUT to the upload URL', which implicitly excludes calling it earlier. The prerequisite tool is named, but there are no explicit failure/exclusion cases or statement about what to do if the upload URL was never created.

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.