Skip to main content
Glama

Upload an ad image

upload_image
Idempotent

Stores an image for a Paid Visits ad (required there) or a Banner ad (optional; PNG, JPEG or GIF of exactly one banner size, see list_ad_formats) and returns its id, to send as image_id in the order. Needs an API key.

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

Input Schema

NameRequiredDescriptionDefault
api_keyNoThe API key of the account (can_live_...). Optional when this MCP connection sends it as the Authorization: Bearer header.
image_base64YesThe image file, base64-encoded: PNG, JPEG, WebP or GIF, at most 500 KB.
idempotency_keyNoOnly to REPEAT an earlier call of this tool (a lost answer, a payment still confirming): the idempotency_key that call returned. Leave it out for a new call; the server then makes a random one and returns it.

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 already declare readOnlyHint=false, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety and retry profile is covered elsewhere. The description adds genuinely useful context the annotations do not: the call returns an id that must be reused downstream, and an API key is required. It falls short of 5 because it never mentions the 500 KB cap and lists formats as 'PNG, JPEG or GIF' while the schema also allows WebP, leaving a small mismatch an agent could trip on.

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?

A single dense sentence that front-loads the core action and pushes constraints into parentheticals, with no filler. It is slightly run-on with nested parentheses (ad type, formats, banner-size pointer) that slow parsing, which keeps it off a 5.

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?

There is no output schema, and the description compensates by stating the return value and its intended use as image_id in the order, plus the API key requirement and the ad-type applicability. For a three-parameter upload tool with full schema coverage and annotation coverage of the mutation/retry profile, nothing essential is missing.

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 api_key, image_base64 and idempotency_key fields are each documented in detail in the schema, including the idempotency repeat-call rule. The description adds only the indirect connection between the uploaded image and the later image_id field; it does not explain parameter formats or constraints beyond what the schema already supplies, so the baseline 3 is appropriate.

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 states a concrete verb and resource ('Stores an image') and immediately scopes it to two ad types, spelling out that it is required for Paid Visits ads and optional for Banner ads. It also closes the loop by naming the return value ('its id') and where it goes next ('image_id in the order'), so an agent can distinguish this from archive_ad, create_ad, and list_ad_formats without opening any schema.

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?

Explicit when-to-use conditions are given per ad type: mandatory for Paid Visits, optional for Banner ads of exactly one banner size. It routes the agent to the right sibling for the missing information ('see list_ad_formats') and states the credential requirement, which is exactly the kind of routing an agent needs before calling.

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