Skip to main content
Glama

Set download

set_download
Destructive

Host a file behind a stable link (/api/downloads/); link to it from an or button. New: name + file. New version: downloadId + file (same link). Roll back: downloadId + currentVersionId. File = filePath (stdio) or an upload's mediaId (a public upload, e.g. a chat attachment, is moved private). access makes it members-only. A plays it. Pro+; .exe/.dmg etc need Agency.

Input Schema

NameRequiredDescriptionDefault
idNoSite id.
nameNoDisplay name; required when creating.
labelNoe.g. v1.2
notesNoChangelog.
accessNoMembers-only: members true = any plan; plans = one of these. members false = public.
mediaIdNoAn uploaded file's mediaId (upload_file or a chat attachment); not images.
filenameNoSaved-as name; required with mediaId.
downloadIdNoExisting download; omit to create.
currentVersionIdNoServe this existing version.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / access
      Added value: +{
      +  "description": "Members-only: members true = any plan; plans = one of these. members false = public.",
      +  "properties": {
      +    "members": {
      +      "type": "boolean"
      +    },
      +    "plans": {
      +      "items": {
      +        "maxLength": 48,
      +        "type": "string"
      +      },
      +      "maxItems": 50,
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / mediaId / description
      Previous value: -"From upload_file({ private: true })."New value: +"An uploaded file's mediaId (upload_file or a chat attachment); not images."
  2. Added

TDQS

A4.3/5.0
Behavior4/5

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

Adds real context beyond the annotations (destructiveHint true, openWorldHint true, idempotent false): a public upload is moved private on use, access makes it members-only, and plan/type restrictions gate execution. These are non-obvious side effects and constraints the annotations don't convey. Return/error behavior is left implicit.

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-loads the core purpose and then uses terse labeled clauses (New / New version / Roll back) that are easy to scan. The telegraphic abbreviations and inline HTML snippets pack a lot in, bordering on cryptic but without wasted sentences.

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 9-param tool with a nested object and no output schema, the description covers creation, versioning, rollback, access, inline embedding, and plan gating. It doesn't state what the call returns (the id/link to surface), but that is largely inferable from the stable-link framing.

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 100% schema coverage the baseline is 3, and the description earns more by explaining the semantic relationships: omit downloadId to create, same link is reused on new version, and file = mediaId vs filePath. The mention of filePath, which isn't a schema property, is a minor inconsistency but plausibly a stdio-mode variant.

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 (host/set) and resource (download/file behind a stable link) and immediately grounds it in the artifact produced (<site>/api/downloads/<id>). The New/New version/Roll back framings make the tool's role unmistakable relative to siblings like list_downloads or remove_download.

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?

Explicitly maps parameter combos to outcomes (New = name + file; New version = downloadId + file; Roll back = downloadId + currentVersionId), which is exactly the when-to-use guidance an agent needs. It also states plan prerequisites (Pro+; .exe/.dmg need Agency). It stops short of naming an alternative tool for cases this doesn't cover, so not a 5.

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