Skip to main content
Glama
epdlr
by epdlr

slack_stdio_download_file

Download a Slack file to disk by file ID, writing bytes for large binaries and videos that metadata-only responses omit, and return the local path, MIME type, and size.

Instructions

Download a Slack file to disk by file_id. Hosted slack_read_file often returns metadata-only for video or large binaries; this writes the bytes to dest_dir (default: OS temp slack-stdio-mcp-downloads) and returns path, mime_type, and size. Max 50 MB. Requires files:read.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
file_idYesSlack file ID (e.g. F0ABC12345)
dest_dirNoDirectory to write into (created if missing). Default: OS temp.
max_bytesNoOptional lower size cap in bytes (cannot exceed 50 MB).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.3.2

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that it writes bytes to disk, the default destination, the return fields (path, mime_type, size), the 50 MB limit, and the required permission. It does not detail error handling or behavior on exceeding max_bytes, but the core behavioral traits are clearly stated.

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 tight sentences with no filler. The purpose is front-loaded, the differentiation from slack_read_file comes second, and constraints/permissions close it out. Every sentence earns its place.

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 tool with no output schema, the description names the return values (path, mime_type, size). It covers when to use it, the default destination, the size limit, and the required scope. Missing are error cases and behavior when max_bytes is exceeded, but these are minor for a straightforward download operation.

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 coverage is 100%, so the schema already documents all three parameters. The description adds the specific default directory name ('slack-stdio-mcp-downloads') beyond the schema's generic 'OS temp' and reiterates the 50 MB cap, but this is marginal extra value; the schema handles most semantics.

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?

The description states a clear verb ('Download') and resource ('Slack file') plus the mechanism ('to disk by file_id'). It explicitly differentiates itself from slack_read_file by noting that the hosted tool 'often returns metadata-only for video or large binaries', giving an agent a precise reason to select this tool.

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?

It names the alternative (slack_read_file) and the condition under which to choose this tool (when you need the actual bytes for video/large binaries). It also states a hard prerequisite ('Requires files:read') and a size constraint (Max 50 MB), leaving no ambiguity about when to call it.

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