Skip to main content
Glama

Upload a file from a URL

upload_file_from_url

Copy a public file into GiftQuest storage. kind=gift → use key as gift.fileKey (or in gift.more; only photos, video, audio, PDF and plain text are accepted, by content — anything else fails with unsupported_gift_file, so share it as a link gift instead); kind=image → a puzzle or question step image; kind=media → an audio/video file for a media step.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "url": "<url>",
      "kind": "<kind>"
    },
    "name": "upload_file_from_url"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYes
kindYes
nameNoFile name shown to the recipient

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false and openWorldHint=true; the description adds real behavioral value by disclosing content-based validation, the exact failure code unsupported_gift_file, and where the resulting key is consumed. It omits size limits and what happens to an existing fileKey on overwrite.

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-loads the core action in one sentence, then branches by kind in a single structured clause. Dense parenthetical nesting makes it slightly harder to scan, but no sentence is filler.

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 three-parameter ingestion tool with no output schema, it covers the essentials: source constraint, per-kind semantics, validation failure, and that a key is returned and consumed downstream. Limits on file size and URL fetch failures are the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 33% schema coverage, the description carries the weight and does so for the enum: all three kind values are explained in terms of concrete product concepts. The url parameter is only characterized as 'public file', leaving format and reachability requirements implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Copy a public file into GiftQuest storage' — and adds the crucial scope constraint that the source must be publicly reachable. It never names the sibling upload_file_base64, so the agent must infer the URL-vs-base64 split from the tool name alone.

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 concrete routing rules per kind value (gift, image, media) so the agent knows which branch to pick, plus an explicit when-not: unsupported types should be shared as a link gift instead. It stops short of naming a sibling tool or stating when to prefer upload_file_base64.

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