Skip to main content
Glama

Create an upload link

create_upload

Returns a one-time HTTPS link to upload a video or photo to Aisma, plus its asset id. Upload the file yourself with an HTTP PUT to uploadUrl (for example: curl -X PUT -H "Content-Type: " --data-binary @file ""), then poll get_asset until it is ready. Videos are 2–60 seconds long and up to 500 MB (MP4 or MOV); up to 10 photos (JPEG, PNG or WebP).

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": {
      "kind": "<kind>",
      "contentType": "<contentType>",
      "bytes": "<bytes>"
    },
    "name": "create_upload"
  }
}

Input Schema

NameRequiredDescriptionDefault
kindYes
bytesYes
contentTypeYes

Output Schema

NameRequiredDescriptionDefault
methodYes
assetIdYes
headersYes
expiresAtYes
uploadUrlYes

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 this is a non-read, non-destructive, non-idempotent operation, so the description is free to add the details that matter: the link is one-time, the file must be PUT externally, and readiness must be polled via get_asset. It adds constraints not encoded anywhere else (2–60 second video duration, up to 10 photos), though it does not discuss link expiry or failure behavior after a bad PUT.

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 return value and the follow-up workflow, then constraints. The inline curl example is slightly heavy but earns its place by disambiguating the raw-binary PUT, which agents commonly get wrong.

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?

An output schema exists so return values need not be spelled out, yet the description still names both fields, and it captures the full multi-step contract an agent must execute. Nothing needed to invoke this correctly is 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 0%, so the description must carry all meaning, and it largely does: it maps contentType to concrete formats (MP4/MOV, JPEG/PNG/WebP) and bytes to a 500 MB cap, matching the schema's enum and maximum. It never explicitly ties 'kind' to the video/photo distinction, leaving that one parameter only implicitly covered.

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 ('Returns a one-time HTTPS link to upload a video or photo') and immediately names the two return values, uploadUrl and asset id. An agent can distinguish this from sibling read tools like get_asset or list_library 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 end-to-end flow: call this, PUT the bytes to uploadUrl, then poll get_asset until ready — naming the sibling to use next. It lacks a 'when not to use' or alternative-path statement, but for a single-purpose upload-initiation tool the context is clear.

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.