Skip to main content
Glama

Upload the image chosen in the picker

upload_picked_image
Idempotent

Card only: PerfectVector's picker uploads the file the user chose in it.

Models: never call this; use check_price, then convert_to_svg. The picker sends the chosen file under the key pick_image gave it; choosing the file is the user's OK to spend 1 credit, so this converts, waits and delivers the SVG.

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": {
      "image_base64": "<image_base64>",
      "picker_key": "<picker_key>"
    },
    "name": "upload_picked_image"
  }
}

Input Schema

NameRequiredDescriptionDefault
file_nameNo
picker_keyYes
image_base64Yes

Output Schema

NameRequiredDescriptionDefault
codeNoSet when the call could not proceed.
statusNo
messageYesThe reply's text without its IDs and SVG text, for hosts that show only this.
file_nameNo
retryableNo
svg_bytesNo
path_countNo
svg_inlineNoThe SVG text is in the reply's text, never in these fields.
color_countNo
next_actionYesWhat to do next; guidance, never spending permission.
request_keyNo
download_urlNo
conversion_idNo
price_creditsNo
credits_chargedNoCredits charged by this call only.
credits_availableNoThe balance afterwards.
download_expires_atNo
retry_after_secondsNo
ask_before_convertingNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations, it discloses cost ("spend 1 credit"), consent semantics (the user choosing the file is the OK to charge), and the wait-and-deliver behavior. That is substantial added context. The only gap is that idempotentHint=true is not reconciled with a per-call credit charge, leaving a mild ambiguity about repeated calls.

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?

Three dense sentences with no filler, and the critical routing instruction lands early. It is slightly packed, mixing audience restriction, plumbing detail, and billing semantics in one breath, but every clause earns its place.

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 card-only tool with an output schema (so return values need no explanation), it covers audience, cost, consent, and key provenance. What remains thin is input-side guidance for image_base64 and file_name, the only real hole.

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 0%, so the description carries the param burden. It does explain that picker_key is the key pick_image handed out, which is genuinely useful, but image_base64 (up to ~7 MB) and file_name are left unexplained. Partial compensation, not full.

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 names a specific action (uploads the file the user picked, converts it, delivers an SVG) and identifies the actor (PerfectVector's picker). It clearly distinguishes itself from the sibling conversion path, so an agent knows exactly what the tool is for.

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 an explicit exclusion ("Models: never call this") plus the alternative route ("use check_price, then convert_to_svg"). This is the strongest possible routing signal: who may call it, who may not, and what to do instead.

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