Skip to main content
Glama

Simpler.Asia

studio.begin_asset_upload

Start uploading a video, audio or image file (up to 2 GB) into a studio project. Returns upload_id and the plan: one PUT for a file up to 64 MB, else fixed 64 MB parts, each a PUT to this server with the same Bearer token this MCP connection uses and the part's exact Content-Length. The file's bytes are reserved against the workspace's 20 GB studio upload quota until the upload finishes or is cancelled (after 24 hours without a part). Then call studio.finish_asset_upload. Refuses: a size over 2 GB (SIMPLER_STUDIO_UPLOAD_TOO_LARGE): compress or split the file; a mime outside the list (SIMPLER_STUDIO_UPLOAD_TYPE_UNSUPPORTED): convert the file; the quota (SIMPLER_STUDIO_UPLOAD_QUOTA): GET /api/studio/uploads lists your stored files, then delete unused ones; too many open uploads (SIMPLER_STUDIO_UPLOAD_OPEN_LIMIT): finish or cancel one; an environment without the upload tables (SIMPLER_STUDIO_UPLOAD_TABLES_MISSING): upload in one request with POST /api/studio/projects/{id}/assets. Free. Nothing is sent anywhere; the file only comes in.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
mimeYesThe file's type. The stored bytes are checked when the upload finishes; a file that is not what it declares is deleted and refused.
bytesYesThe file's exact size in bytes.
filenameYesThe file's name, shown in the project's media list.
project_idYesThe studio project (vp_...) the file belongs to.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false, so the description carries the real behavioral load and does: quota reservation semantics (20 GB workspace quota held until finish/cancel, 24h no-part expiry), auth requirements for the PUTs (same Bearer token), Content-Length exactness, and the 'free, nothing sent anywhere' cost/egress note. It also enumerates refusal codes with remediation.

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 action and the return plan, then contract details, then refusals — a sensible order. It is information-dense and long, with the error paragraph packed tightly, but almost every clause conveys a distinct operational fact rather than filler.

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?

No output schema exists, and the description compensates by describing the return value (upload_id plus the single-PUT vs 64 MB multipart plan) and the follow-up call. For a multi-step upload tool with quota and auth side effects, nothing an agent needs in order to invoke it correctly appears missing.

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 still adds value by tying the 2 GB ceiling and mime restrictions to concrete failure codes and by explaining that stored bytes are validated against the declared mime (the schema states this, but the description reinforces the consequence). It does not add format/syntax detail beyond the schema.

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 ('Start uploading a video, audio or image file ... into a studio project') with scope limits (2 GB, mime types). It also routes clearly away from the sibling that completes the job: 'Then call studio.finish_asset_upload.'

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?

Gives explicit sequencing (start here, then finish), a fallback path when upload tables are missing ('POST /api/studio/projects/{id}/assets'), and per-error recovery steps (compress/split, convert, delete unused files, finish or cancel an open upload). Alternatives are named rather than implied.

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