Skip to main content
Glama

Ask the person for their images

ask_for_images

Gives a link where the person uploads pictures from their device for you — their logo, photos, a signature scan — when you cannot take the file from the chat yourself (you see an attached picture but have no file of it, or they have not sent it yet). Give them the link and say what to upload. When they say they are done, call ask_for_images again with upload_id: you get each image's link (with its size and file name) to put in the document — render_pdf, update_document. The link also accepts the file’s bytes by POST. The link works for 24 hours and takes up to 50 images — photos straight from a phone or a camera too (HEIC, up to 40 MB each; brought to print size, 4096 px on the long side).

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": "ask_for_images"
  }
}

Input Schema

NameRequiredDescriptionDefault
noteNoWhat to upload, shown to the person on the page, e.g. "Your company logo (PNG with a transparent background is best)". Only for a new link.
upload_idNoThe upload_id of a link you gave: what the person has uploaded to it so far.

Output Schema

NameRequiredDescriptionDefault
notesYes
imagesYes
uploadIdYes
expiresAtYes
uploadUrlYesThe link for the person.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only mark this as a non-read-only, non-destructive, non-idempotent call; the description adds the details that actually matter: 24-hour link lifetime, 50-image cap, 40 MB per file, HEIC accepted and resized to 4096 px, and that the link also accepts raw bytes via POST. That is well beyond what the annotations convey.

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 purpose and the trigger, then the follow-up flow, then limits. It is packed into essentially one long em-dash-chained block, so the constraints (24h, 50 images, 40 MB, 4096 px) run together with the behavioral narrative and are slightly harder to scan than they need to be.

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 still tells the agent what comes back — each image's link, size and file name — and how to use it. For a tool whose main complexity is a human-in-the-loop handshake, the timing rules, limits, and callback pattern are all covered.

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 already 100%, so the bar is met by default, but the description still explains the two-mode lifecycle: a fresh call generates a link (note shown to the person), while passing upload_id fetches what has been uploaded so far. That lifecycle framing is meaning the schema alone does not spell out, though it does not add detail on format or validation of the values themselves.

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 concrete verb and artifact: 'Gives a link where the person uploads pictures from their device for you.' The parenthetical examples of what counts (logo, photos, signature scan) and the distinction from taking a file out of the chat separate it cleanly from upload_image and the render/update siblings.

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?

Names the exact trigger conditions ('when you cannot take the file from the chat yourself — you see an attached picture but have no file of it, or they have not sent it yet') and gives the follow-up protocol: call again with upload_id when the person says they are done. It also names the downstream consumers (render_pdf, update_document), so the agent knows where the results go.

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