Skip to main content
Glama

Register uploaded material

complete_upload
Idempotent

Confirms that uploads finished and registers them in the creator's personal library: one upload (handle) or several (uploads, each with its own outcome). Each file is verified without any provider being involved — it has to be in storage with the declared size and be real media; its content identifies it (the same file twice is one asset) and it is measured (kind, size, duration). declared_content is WHAT the material shows (≤240 chars): it is what lets a director place it on the right scene. The answer carries stage — uploading (the bytes are not all in storage yet) · verifying (the file is in storage and is being checked, identified by its content and measured) · ready (the file is in the library and has an assetId) · failed (the file did not make it into the library, and reason says why). Small files answer ready at once, with the assetId that places them on a scene; a larger one answers verifying, and the same request repeated later returns its current stage. $0.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
handleNoOne upload: the `handle` of its ticket.
uploadsNoSeveral uploads at once; the answer has one outcome per item, in the same order.
declared_contentNoWhat the material shows, e.g. 'Interview with the harbour master, 2024, dock in background'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / anyOf
      Added value: +[
      +  {
      +    "required": [
      +      "handle"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "uploads"
      +    ]
      +  }
      +]
    • changedInput schema / properties / handle / description
      Previous value: -"The `handle` of the upload ticket."New value: +"One upload: the `handle` of its ticket."
    • addedInput schema / properties / uploads
      Added value: +{
      +  "description": "Several uploads at once; the answer has one outcome per item, in the same order.",
      +  "items": {
      +    "properties": {
      +      "declared_content": {
      +        "description": "What this file shows.",
      +        "type": "string"
      +      },
      +      "handle": {
      +        "description": "The `handle` of the upload ticket.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "handle"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "handle"
      -]New value: +[]
  2. Changed1 schema field changed
    • changedInput schema / properties / handle / description
      Previous value: -"The `handle` from `request_upload`."New value: +"The `handle` of the upload ticket."
  3. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that no provider is involved, the exact verification criteria (in storage, declared size, real media), content-based dedup ('the same file twice is one asset'), the measurement of kind/size/duration, and the meaning of each `stage` value including `failed` with `reason`. The idempotency note ('the same request repeated later returns its current stage') is consistent with idempotentHint=true.

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 action and reasonably dense, but the stage enumeration and verification rules arrive as one long block rather than being structured, which makes it slightly heavy to scan. Nearly every clause earns its place.

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 carries the full burden and does so: it documents the returned `stage` lifecycle (`uploading`/`verifying`/`ready`/`failed`), the `assetId`, and the `reason` field. An agent has everything needed to call it and interpret the result.

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 100%, but the description still adds meaning: it explains that `declared_content` is WHAT the material shows (with a ≤240-char limit and the purpose of scene placement), that `uploads` yields one outcome per item in order, and the handle/ticket relationship. It adds real value on top of the schema.

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 and resource: it confirms finished uploads and registers them in the creator's personal library, with a clear single-vs-batch scope. It is easy to distinguish from write-side siblings like request_upload or commit, though it never names an alternative to sharpen the contrast.

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: it 'confirms that uploads finished', so an agent infers it comes after an upload, and the note that a repeated request returns the current stage gives useful polling context. However, there is no explicit when-to-use vs. sibling guidance and no stated prerequisites.

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