Skip to main content
Glama

fetch_url

Downloads an HTTP(S) file into a chosen Gopan folder in the background without routing bytes through the agent; returns a job to poll until the file is ready.

Instructions

Offline download: the Gopan server fetches an http(s) link into a folder in the background, so the bytes never pass through the agent. Returns a job; poll get_job (wait=true) until status is done, then result_node_id is the file. Private/internal addresses are refused. Not idempotent: check list_jobs before retrying. Requires files:upload.

Input Schema

NameRequiredDescriptionDefault
urlYeshttp or https link to a file
parent_idNofolder to save into; default is the root (or the credential's directory)
parent_pathNofolder path, alternative to parent_id

Output Schema

NameRequiredDescriptionDefault
idYes
urlNo
kindYesfetch_url or extract_archive
titleYesfile name once known, otherwise the link's host; archive name for extraction
statusYesqueued, running, done, failed or canceled
parent_idNotarget folder; omitted means the root
bytes_doneYes
created_atYes
error_codeNowhy it failed; on success GOT_HTML means the server returned a web page instead of a file
files_doneNo
bytes_totalNo
files_totalNo
finished_atNo
error_messageNo
files_skippedNoarchive entries skipped: unsafe paths, links or invalid names
result_node_idNothe downloaded file, or the folder files were extracted into

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare destructiveHint=false, so the description carries the behavioral load and does so: it discloses asynchrony (returns a job, not a file), server-side fetching, rejection of private/internal addresses, non-idempotency with a retry procedure, and the files:upload scope requirement. These are exactly the traits an agent would otherwise get wrong.

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?

Front-loads the core behavior, then layers the follow-up workflow, safety constraint, idempotency warning, and auth requirement in separate short clauses. No sentence is redundant with another or with the schema.

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?

Even though an output schema exists, the description usefully explains the async job handoff (job → get_job → result_node_id), which is workflow rather than return-value detail. For a 3-parameter non-idempotent network-fetching mutation, nothing an agent needs to call it correctly is missing.

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%, so url, parent_id, and parent_path are already documented including the root/credential-directory default. The description adds no additional parameter semantics (no format, encoding, or parent_id-vs-parent_path precedence), so the baseline of 3 applies.

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 Gopan server fetches an http(s) link into a folder in the background, so the bytes never pass through the agent" states a concrete verb (fetch), resource (http/https link into a folder), and the defining property (server-side/offline rather than agent-mediated) that separates it from agent-side download paths. An agent can tell what this does 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 Guidelines4/5

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

Gives an explicit follow-up workflow ("poll get_job (wait=true) until status is done") and an explicit precondition before retrying ("check list_jobs before retrying"), plus the required scope. It stops short of naming a sibling alternative for the alternate case (e.g. when clip_url or prepare_download is the better choice), so not a full when/when-not treatment.

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