Skip to main content
Glama

download_file

Click a trigger and capture the downloaded file. Verify exports (CSV, PDF, invoices) with returned path, size, sha256, and text preview.

Instructions

Click a trigger and capture the file it downloads — the honest way to verify exports (CSV, PDF, invoices). The download waiter is armed BEFORE the click so fast downloads aren't missed, and the click uses the same overlay-fallback as click_element (export buttons inside Radix menus work). Returns the saved path, size, sha256, source URL, and for small text files a text_head preview so content can be asserted without another call. Files land in data/downloads/.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
timeoutNoMax ms to wait for the download to start (default: 30000)
selectorYesCSS selector of the element whose click starts the download
session_idYesSession ID
Behavior5/5

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

Discloses key behavioral traits beyond schema: download waiter is armed before click to catch fast downloads, uses overlay-fallback for Radix menus, returns file path, size, sha256, source URL, and text preview. Specifies save location data/downloads/. No annotations present, so description fully covers transparency.

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?

A single paragraph of five sentences, each serving a purpose: first states main function, second details operational mechanism, third lists return values, fourth specifies location. No redundancy or unnecessary words.

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?

Covers return values in detail despite no output schema, explains file location and download triggering. However, lacks information on error handling (e.g., timeout scenarios, no download triggered).

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% with descriptions for all three parameters. Description adds some context (e.g., pre-arming for fast downloads) but does not significantly enhance meaning beyond the schema's descriptions.

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 clearly states the tool captures files from downloads triggered by clicking an element, specifying file types like CSV, PDF, and invoices. It distinguishes itself among siblings like click_element and upload_file by focusing on export verification.

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?

Provides context for use: verifying exports via download capture. Mentions mechanism (pre-arming waiter, overlay-fallback) but does not explicitly state when not to use it or compare with alternatives like web_fetch.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/segentic-lab/periscope-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server