Skip to main content
Glama

Upload an image

upload_image

Open the image upload widget for letters or postcards only as a fallback when a direct file attachment is unavailable or was not passed through to a preview tool. Do not use this when a generated imageUrl, hosted imageUrl, or working file attachment is already available. Do not use this just because the user referenced an image generated earlier in the same conversation. Reuse that existing conversation image first. Only open this widget after an actual failed handoff or when the user explicitly needs upload help. The widget uploads the file and returns an imageUrl to use in the next preview call.

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

Input Schema

NameRequiredDescriptionDefault
contextNoWhat the photo is for: 'postcard', 'header_image' or 'inline_image'.

Output Schema

NameRequiredDescriptionDefault
statusYes
contextYes
messageYes
maxSizeMBYes
debugEnabledYes
debugEndpointNo
acceptedFormatsYes
cardUploadAvailableNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=false and no openWorld, and the description is consistent with that: it explains the widget performs the upload and yields an imageUrl for the next preview call. It adds real context beyond the annotations by framing the tool as a fallback requiring user interaction in a widget. It stops short of saying what happens if the user cancels the widget or whether an upload can be replaced, so it is strong but not exhaustive.

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?

The main rule is front-loaded in the first sentence and the closing sentence explains the return value usefully. However, the three consecutive 'Do not use…' sentences overlap somewhat, and 'Reuse that existing conversation image first' restates the prior sentence's point, so a light trim would improve it.

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?

The tool is simple (one optional parameter), an output schema exists so return values need no explanation, and the annotations cover the safety profile. Given that, the description supplies everything an agent needs: the trigger, the exclusions, the alternatives, and what comes back to feed the next preview call.

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 description coverage is 100% and the single 'context' parameter already enumerates the intended values ('postcard', 'header_image', 'inline_image'). The description never mentions the parameter, so it adds no meaning beyond the schema and defaults to the baseline of 3.

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?

The description opens with a concrete verb+resource ('Open the image upload widget') and immediately narrows scope to letters/postcards and to a fallback role. It is clearly distinguishable from siblings like confirm_uploaded_image and the quote_and_preview_* tools because it names the preview handoff as the primary path.

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?

It gives explicit when-not conditions ('Do not use this when a generated imageUrl, hosted imageUrl, or working file attachment is already available'), names the preferred alternative (reuse the existing conversation image), and states the trigger for using it ('only after an actual failed handoff or when the user explicitly needs upload help'). This is about as close to a decision rule as a description gets.

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