Skip to main content
Glama

attach_file_from_url

Attach a file to a task by URL. The SERVER downloads the file (public http(s) URL only; internal/private addresses are blocked) and stores it as a real attachment, so the bytes never pass through the model (no truncation risk). Use this when the file already lives at a URL (cloud storage, a public link). Max 50 MB. fileName is optional (derived from the URL otherwise). For a file that exists only in your sandbox, use upload_task_attachment instead. Any project contributor or above can attach (VIEWERs cannot).

Input Schema

NameRequiredDescriptionDefault
urlYesPublic http(s) URL of the file to fetch. 1..2048 chars.
taskIdYesThe task to attach to.
fileNameNoOptional file name incl. extension. Derived from the URL when omitted.
idempotencyKeyNoOptional idempotency key. Pass a stable unique value (e.g. a UUID) to make this create safe to retry: calling again with the same key within 24h - even from a new session after a reconnect - replays the original result and creates no duplicate. Org-scoped; works across conversations.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only cover the coarse profile (openWorldHint=true, destructiveHint=false), so the description carries real additional value: server-side fetch semantics with SSRF protection (internal/private addresses blocked), a 50 MB cap, no-truncation guarantee, and an authorization tier requirement. These are exactly the failure modes an agent needs to know before calling.

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?

Six compact sentences, each carrying a distinct fact (mechanism, routing rule, size limit, optional param, alternative tool, permission). The purpose and mechanism are front-loaded before the constraints.

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?

For a 4-parameter create tool with no output schema, the description covers the mechanism, preconditions, limits and the competing sibling. Since there is no output schema, it does not need to describe return values, and the idempotency/replay behavior is fully documented in the schema.

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 url, taskId, fileName and idempotencyKey are already documented at the schema level. The description restates only the fileName derivation rule and the public-URL constraint, both of which the schema already states, so it adds no meaningful syntax or format detail beyond the baseline.

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?

States a specific verb and resource ('Attach a file to a task by URL') and immediately explains the mechanism — the server fetches the bytes rather than the model. It contrasts itself with the sibling 'upload_task_attachment' so an agent can route correctly without opening any 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 when-to-use ('when the file already lives at a URL — cloud storage, a public link'), an explicit alternative for the other case ('file that exists only in your sandbox, use upload_task_attachment instead'), and a permission precondition (contributor or above; VIEWERs cannot). Nothing is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.