Skip to main content
Glama
devyhan
by devyhan

Download a file

files_download
Read-onlyIdempotent

Download a Redmine attachment by ID to get base64 bytes and metadata; text files are decoded, while files over maxBytes return metadata only.

Instructions

Downloads an attachment and returns base64 bytes plus metadata. Text files come back decoded as well. Refuses files over maxBytes with metadata only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesAttachment id.
maxBytesNoDownload cap; larger files are refused with their metadata.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral detail beyond them: the return shape (base64 bytes plus metadata), automatic decoding of text files, and the refusal path when a file exceeds maxBytes. That refusal semantics is the kind of thing an agent cannot get from the schema or annotations.

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?

Three short sentences, zero filler, and the primary behavior (returns base64 + metadata) is front-loaded. Each sentence contributes distinct information.

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?

No output schema exists, but the description compensates by describing the return payload (base64 bytes, metadata, decoded text) and the limit-exceeded response. The only missing piece is routing relative to files_get_attachment.

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 100% (both 'id' and 'maxBytes' are documented in the schema, including the default and cap), so the baseline is 3. The description reinforces maxBytes' effect ('refuses files over maxBytes with metadata only') but adds no format or syntax beyond what the schema states.

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+resource ('Downloads an attachment'), so the agent knows exactly what it does. It does not, however, distinguish itself from the sibling 'files_get_attachment', which sounds like an overlapping retrieval tool — that ambiguity is left unresolved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

There is no when-to-use / when-not-to-use guidance and no reference to alternatives such as files_get_attachment or files_list_project_files. The agent must infer from the name alone that this is the byte-fetching tool.

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