Skip to main content
Glama

request_image_upload

Get a short-lived upload grant to attach a photo to a listing you're about to publish (any vertical/role). Returns { key, upload_url, upload_token, headers_required }: POST the raw image bytes to upload_url with those headers, then pass the returned key in create_listing's images array. Images are AI-moderated (content safety + consistency with the listing text) before the listing goes live.

Input Schema

NameRequiredDescriptionDefault
file_sizeYesExact file size in bytes, at most 10485760 (10 MB). Example: 2097152 for a 2 MB file.
content_typeYesMIME type of the image file. Example: "image/png".

Output Schema

NameRequiredDescriptionDefault
keyNo
upload_urlNo
upload_tokenNo
headers_requiredNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  2. Changed2 schema fields changed
    • addedInput schema / properties / content_type / description
      Added value: +"MIME type of the image file. Example: \"image/png\"."
    • addedInput schema / properties / file_size / description
      Added value: +"Exact file size in bytes, at most 10485760 (10 MB). Example: 2097152 for a 2 MB file."
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "headers_required": {
      +      "additionalProperties": {},
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "key": {
      +      "type": "string"
      +    },
      +    "upload_token": {
      +      "type": "string"
      +    },
      +    "upload_url": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  4. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only say this is a non-read-only, non-destructive, non-idempotent, closed-world call; the description adds the crucial traits: the grant is short-lived, the exact return fields, the required POST-with-headers mechanics, and that images pass AI moderation (content safety + text consistency) before going live. That is behavior an agent could not infer from annotations.

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?

Three tight sentences: what you get, how to use it, and the downstream consequence. The call-to-action chain (POST bytes → take key → pass to create_listing) is front-loaded with zero filler.

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?

Covers the full lifecycle an agent needs: request grant, upload mechanics, key handoff, and moderation gate. Even though an output schema exists, the return fields are named inline so the agent need not cross-reference before acting.

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?

With 100% schema description coverage including an enum and an explicit 10 MB maximum, the schema carries the parameter burden. The description adds no meaning about file_size or content_type and only describes the output-side contract, so baseline 3 applies.

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 ('get a short-lived upload grant to attach a photo') with scope ('any vertical/role') and explicitly separates it from the listing-creation sibling by naming create_listing's images array. An agent can place this tool in the workflow without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear about the context of use: a listing you're about to publish, with the resulting key fed into create_listing. It does not address the sibling update_listing_images, which is presumably the path for editing images on an existing listing, so the when-not is left implicit.

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