Skip to main content
Glama

Upload files

upload_files

Starts resumable uploads for capture files you hold (for example photos or video the person shared with you) and returns where to PUT each file's bytes. For files on the person's own device, give them the space's page to drop the files instead.

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": {
      "space_id": "<space_id>",
      "files": "<files>"
    },
    "name": "upload_files"
  }
}

Input Schema

NameRequiredDescriptionDefault
filesYes
space_idYesThe space ID (12 hexadecimal characters) from create_space or space_status.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations declare the write/safety profile (readOnly=false, destructive=false, idempotent=false), so the safety burden is already covered. The description adds meaningful context the annotations cannot: this initiates a resumable, multi-step flow whose immediate return value is the target URL for PUTting bytes.

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?

Two sentences, purpose front-loaded, with the parenthetical example adding precision and the alternative statement closing it out. No filler or redundancy.

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 mutation tool with no output schema, the description does well by explaining that it returns PUT targets. It is nearly complete but omits the finish_upload handoff that the agent needs to actually complete the upload, which is a notable workflow gap given that sibling exists.

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 50% (space_id and the nested size/type fields are documented, but the files array and name key are not). The description only obliquely references parameters ('each file's bytes', 'the space's page'), so it does not compensate for the uncovered half. Baseline 3 for a partially-documented 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?

States a specific verb and resource — 'Starts resumable uploads for capture files you hold ... returns where to PUT each file's bytes' — and scopes the file type with an example. It distinguishes the two relevant scenarios (files you hold vs. files on the person's device), though it never names the sibling that completes the flow (finish_upload).

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 a clear when-not-to-use rule with the alternative: 'For files on the person's own device, give them the space's page to drop the files instead.' What is missing is the forward step — nothing tells the agent that the resumable upload must be completed via the finish_upload sibling.

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.