Skip to main content
Glama

Get somewhere to put a file

request_upload

Ask for a one-time address to upload a master, cover art, a logo or an artist photo to. You need the file's NAME, nothing else. Never ask the artist how big a file is. PUT the file to the address you get back, then call finalize_upload, which reads the file itself and checks the size, the format and the account's storage against it.

Input Schema

NameRequiredDescriptionDefault
kindYes
bytesNoOptional. The size in bytes, IF you already know it: it saves a doomed upload. Never ask anyone for it. The server measures the file when it arrives.
artistNoOnly when you are connected as a label: the roster artist this call is for — their artist_user_id from list_roster, or their exact artist name. Required for every artist tool on a label connection. Leave it out on an artist's own connection.
album_idNo
filenameYesThe file's own name, with its extension. Audio is .wav, .flac or .m4a (Apple Lossless); images are .png, .jpg or .webp. A release going out through Audora needs a stereo master and a .jpg cover (square, 3000–6000 px, RGB). Other images upload but cannot be a release cover.
track_idNoRequired for audio; for cover art, give this or album_id.
mime_typeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / filename / description
      Previous value: -"The file's own name, with its extension. Audio is .wav, .flac or .m4a; images are .png, .jpg or .webp. A release going out through Audora needs a .wav master (16/24-bit, 44.1 kHz, stereo) and a .jpg cover (square, 3000–6000 px, RGB). The others upload but cannot be released."New value: +"The file's own name, with its extension. Audio is .wav, .flac or .m4a (Apple Lossless); images are .png, .jpg or .webp. A release going out through Audora needs a stereo master and a .jpg cover (square, 3000–6000 px, RGB). Other images upload but cannot be a release cover."
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations give only the safety profile (non-read-only, non-idempotent); the description adds real behavior beyond that: the address is one-time, finalize_upload independently reads and validates size/format/account storage, and the server measures the file on arrival. It does not describe address expiry or failure modes, so it falls short of full disclosure.

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?

Purpose is front-loaded, then the follow-up workflow, then the constraint on asking for file size — four dense sentences with no filler. Each clause either routes the agent to the next call or prevents a specific failure.

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?

For a 7-parameter, no-output-schema tool, the description covers the essential end-to-end flow and the key constraint. Gaps remain on the shape of the returned address object and on album_id/mime_type usage, which are undocumented in both description and schema.

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?

With 57% schema coverage, the description usefully narrows the requirement set ('You need the file's NAME, nothing else') and reinforces that bytes is optional and must not be solicited. It adds little on artist, album_id, track_id or mime_type, but track-related params are already documented in 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 — requesting a one-time upload address — and enumerates the four artifact kinds, which matches the 'kind' enum exactly. It also distinguishes itself from finalize_upload by positioning the call as the first half of a two-step PUT-then-finalize flow.

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 clear workflow guidance: get the address, PUT the file to it, then call finalize_upload. It also sets an operating rule ('Never ask the artist how big a file is'). It stops short of explicit when-not-to-use exclusions, but the sequencing makes the trigger condition unambiguous.

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