Skip to main content
Glama

Upload asset

upload_asset
Idempotent

Stores one binary file's bytes for a later publish, for a client that cannot make an HTTP PUT to the signed url publish returns. Takes the asset's path in the app and its content as standard base64. Returns the sha256 and bytes that name this path in assets on the next publish.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesthe asset's path in the app, as publish will name it
app_idNothe app to upload into
content_base64Yesthe file's raw bytes encoded as standard base64
development_tokenNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYes
bytesYes
sha256Yes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false and openWorldHint=false, and the description is consistent with them. It adds useful behavioral context beyond the annotations: the two-step lifecycle (bytes stored now, named in assets on the next publish) and the return payload (sha256 and byte count). It does not mention auth requirements or size limits, which is the only gap.

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?

Three sentences, front-loaded with the core purpose, then the usage condition, then the return behavior. No filler and each sentence carries distinct information.

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?

Covers purpose, when to use, and the return values despite an output schema existing, and the flow through publish is clear. The only shortfall is guidance around the optional app_id and development_token parameters (auth/scoping), which neither the description nor the partial schema coverage addresses.

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 75%, so the schema largely documents path, app_id, and content_base64 already. The description restates those semantics ('path in the app', 'content as standard base64') without adding format, encoding, or size constraints beyond what the schema says. Baseline 3 is appropriate.

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 ('Stores one binary file's bytes for a later publish') and immediately distinguishes itself from the publish sibling by scoping to clients that cannot make an HTTP PUT to the signed url publish returns. An agent can tell exactly what this does and how it differs from publish without opening either schema.

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?

Provides an explicit when-to-use condition: it exists for clients that cannot perform the HTTP PUT to the signed URL that publish returns. This effectively names the alternative (direct upload via publish's signed url) and the condition that selects this tool instead, leaving nothing to inference.

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.