Skip to main content
Glama

Upload an image (logo, badge, overlay) from a URL

upload_image

Downloads an image from a public URL into the account's uploads and returns the url to use in a code template as . For files on the user's computer: put them in Google Drive shared as "Anyone with the link" (or a public Dropbox link) and pass that link; both are turned into the download. PNG, JPEG or WebP up to 10 MB (no SVG), 200 MB of uploads per account, 20 uploads an hour (200 on a paid plan). A public https image can also go straight into without uploading; uploading keeps working if the original moves.

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>"
    },
    "name": "upload_image"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesPublic http(s) URL of the image, or a Google Drive / Dropbox share link.
nameNoName shown in the image picker; defaults to the file name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only flag readOnly=false, openWorld=true, idempotent=false, destructive=false; the description goes well beyond them with accepted formats (PNG/JPEG/WebP, no SVG), a 10 MB per-file cap, 200 MB per-account quota, and rate limits of 20 uploads/hour (200 on paid). It also discloses the transformation behavior of share links and the persistence benefit of uploading.

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-loaded with what the tool does and returns, then constraints, then the when-not-to-use alternative. The parenthetical limits are dense but every clause carries actionable information; nothing is redundant with the title or 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?

Although there is no output schema, the description states the return value (the url to embed). With only two parameters, one required, the format/limit details and the local-file workaround make the definition fully sufficient to call this tool correctly on the first try.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it clarifies that Drive/Dropbox share links are 'turned into the download' server-side, and it attaches the format/size constraints to the url parameter rather than leaving them unanchored.

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 ('Downloads an image from a public URL into the account's uploads') and immediately explains the payoff — a URL usable as <img src="..."> in a code template. That distinguishes it from siblings like upload_font, list_uploads, and mockup_placement.

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 routing: local files must be exposed via a Google Drive 'Anyone with the link' or public Dropbox link and passed here. It also names the alternative path — a public https image can go straight into <img src> without uploading — and states why you'd still choose upload (the image keeps working if the original moves).

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