Skip to main content
Glama

RelayLink

Get an upload link

attachment_upload_link

Mint a single-use upload link for one .md or .txt file of up to 1,048,576 bytes that is on the user's own computer rather than in this conversation. Pass filename, the name to save it as. A tool that can run commands where the file is uploads it with curl -sS --fail-with-body -T followed by the file's path and the link; a person can instead open the link in a browser and choose the file, with no sign-in. The link expires in an hour and saves one file, and a file refused as too large or not plain text leaves it usable. The link is a credential for the user alone: never put it in a package, a message or a document. With no filename, answers with the signed-in portal's upload page instead.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "attachment_upload_link"
  }
}

Input Schema

NameRequiredDescriptionDefault
titleNoA short title for the document. Defaults to the filename.
filenameNoThe filename the upload will be saved as, ending .md or .txt. Mints a single-use link when given.
idempotencyKeyNoA key of your own choosing. Replaying it before a file arrives replaces the link with a fresh one for the same upload instead of reserving a second; replaying it after is refused.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Far beyond the annotations: it discloses the one-hour expiry, single-file scope, that a refused upload leaves the link usable, that browser uploads need no sign-in, and a concrete curl invocation recipe. It also flags the security constraint that the link is a credential never to be pasted into packages, messages, or documents — exactly the kind of context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, and nearly every sentence adds operational value (expiry, credential warning, curl usage, fallback mode). Some sentences are dense run-ons that could be broken up, but there is little outright waste.

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?

With no output schema, the description still makes the return clear by describing the link, its lifetime, its single-use nature, and the alternate portal-page result when filename is omitted. Nothing needed to call the tool correctly appears 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 coverage is 100%, so the baseline is 3. The description restates filename's meaning ('the name to save it as') and the no-filename mode, but says nothing about title or idempotencyKey, which the schema itself documents thoroughly.

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?

Opens with a precise verb and resource ('Mint a single-use upload link') and immediately bounds it: one .md or .txt file, max 1,048,576 bytes, located on the user's own computer. The clause 'rather than in this conversation' implicitly separates it from the in-conversation attachment text tool, so an agent can route correctly.

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?

It clearly states the triggering condition — the file lives on the user's machine, not in the conversation — and documents the alternate no-filename mode that returns the portal upload page. It does not explicitly name a sibling alternative for in-conversation content, so it stops short of a full when/when-not comparison.

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.

Resources