Skip to main content
Glama

jira_download_attachment

Destructive

Download Jira attachments to a specified local path or an automatic temporary directory; returns saved location, MIME type, size, and cleanup ID for later removal.

Instructions

LOCAL WRITE: download a Jira attachment. Omit destinationPath to create a private temporary directory automatically; returns savedTo, mimeType, size, cleanupPath and downloadId. Read savedTo with your local file/image tool; then call jira_cleanup_attachments with downloadIds instead of deleting through Bash. IDs are valid only in this server process. Each automatic download creates a new directory. Explicit destinations must be inside JIRA_MCP_ALLOWED_PATHS with an existing parent; overwrite must be true to replace a file. Rejects destination symlinks. Does not modify Jira.

Input Schema

NameRequiredDescriptionDefault
overwriteNo
attachmentIdYes
destinationPathNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the annotations: temp-dir creation per download, process-scoped downloadIds, symlink rejection, overwrite gating, allowed-path enforcement, and the explicit clarification that Jira itself is not modified despite the destructiveHint on local files. This resolves the tension between destructiveHint=true and the read-only nature of the remote, which the annotations alone could mislead on.

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 side-effect label and the core action, then ordered by workflow: destination handling, return fields, consumption, cleanup, then edge rules. Dense but every clause carries an operational constraint; the return-field enumeration is the one item that could be trimmed if an output schema existed.

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?

No output schema exists, and the description names the returned fields (savedTo, mimeType, size, cleanupPath, downloadId) plus what to do with them. For a 3-parameter local-write tool with non-obvious lifecycle rules, nothing an agent needs to invoke or follow up correctly 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 0%, so the description carries the full burden and does: destinationPath (omit vs. explicit, path allowlist, parent must exist), overwrite (must be true to replace), and the download handle semantics. It adds the behavior each parameter triggers, not just its type.

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?

Opens with an explicit verb+resource+side-effect label ("LOCAL WRITE: download a Jira attachment"), which immediately distinguishes it from jira_upload_attachment and jira_list_attachments in the sibling set. An agent can tell what it does and where the write lands without opening 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 Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: omit destinationPath for a managed temp dir, and call jira_cleanup_attachments with downloadIds rather than deleting via Bash. It also states constraints on the alternative path (must be inside JIRA_MCP_ALLOWED_PATHS, existing parent, overwrite must be true), so the agent knows which branch to take and what preconditions hold.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.