Skip to main content
Glama

setTaskMedia

Sets or clears the media (image, video, or file) shown on a task. Pass an attachmentId from uploadMedia (target 'task') to set it — any existing media on the task is replaced — or attachmentId=null to remove the current media. On a draft or scheduled beta project the change is applied immediately. On a running or paused beta project the change is STAGED: testers do not see it until commitTaskChanges publishes all staged changes (revertTaskChanges discards them; getBetaTasks with version 'unpublished' shows the staged state). While staging, these tools accept BOTH the live id and the staged id of a task or step, but always respond with the STAGED row — expect ids you did not pass in, with liveVersionId linking back to the live row. Content of finished or archived beta projects cannot be edited.

Input Schema

NameRequiredDescriptionDefault
taskIdYesID of the task, from getBetaTasks. Never invent ids.
productIdYesID of the beta project to query. Get valid IDs from the listProducts tool.
attachmentIdYesAttachment handle from uploadMedia (target 'task'), or null to remove the task's current media.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes far beyond the annotations by disclosing that existing media is replaced, that running/paused projects stage the change until commitTaskChanges publishes it, that revertTaskChanges discards it, that both live and staged ids are accepted while responses return the staged row with liveVersionId, and that finished/archived projects cannot be edited. Note a mild tension worth flagging to callers: the annotations set destructiveHint=false, yet the call overwrites or removes existing media irreversibly enough that re-upload is required — the description, not the annotation, carries that risk information.

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 core action and the two usage modes, then the staging consequences; every sentence carries information. It is somewhat dense and the live-vs-staged id paragraph is shared boilerplate across this tool family, which keeps it just short of ideal brevity for a single three-parameter call.

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?

For a mutation tool with no output schema and only three fully documented parameters, the description covers the mutation semantics, the staging lifecycle, the id round-trip behavior, and the hard restriction on archived projects. Nothing an agent needs in order to call it safely and interpret the response is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, yet the description still adds real meaning: the provenance of attachmentId (uploadMedia with target 'task'), the null-as-removal semantic, and the non-obvious id contract where live or staged task ids are accepted but the response returns staged ids with a liveVersionId back-reference.

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 plus the media types covered: "Sets or clears the media (image, video, or file) shown on a task." This clearly separates it from getTaskMedia (read), removeTaskMedia (dedicated removal), setStepMedia (step scope) and uploadMedia (creates the attachment handle) without needing the 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 concrete when-to-use guidance: obtain an attachmentId from uploadMedia with target 'task' to set media, or pass null to clear it, plus the staging context on running/paused betas and the commitTaskChanges / revertTaskChanges / getBetaTasks alternatives. The one gap is that the sibling removeTaskMedia appears to overlap with attachmentId=null, and the description never says which to prefer or whether they differ.

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