Skip to main content
Glama

Add photos to a draft and publish it

listing_add_photos
Idempotent

Add photos to a draft that listing_create saved without photos, and publish it. Only drafts this connection's account created through the connector can be finished here. Requires confirmed: true.

Input Schema

NameRequiredDescriptionDefault
draft_idYesA draft_id from listing_create or from drafts_awaiting_photos in seller_list_listings.
confirmedYesfalse: nothing is published, and the result says what would be. true: publish, once the seller has agreed.
photo_urlsNoUp to 8 photos. Prefer https image URLs (JPEG, PNG, WebP or GIF, up to 5MB each). A data:image URL works only for a small image: the whole request is limited to 256KB and a larger one is refused before the tool runs. A photo the seller attached in the chat goes in photo_files, never written out here; if the chat app cannot attach it, publish without photos to save a draft and give the seller finish_url. A preview does not download photos: include https links in it anyway so they are checked (a Commonplace link such as /api/img/<listing id>/0 belongs to that listing, and another seller's is a problem there), but send an inline image only with the confirmed call, since writing one out twice costs the seller minutes. EXIF location data is removed.
photo_filesNoPhotos the seller attached in the chat. The chat app fills these in (each a download_url and file_id); never write one by hand. They get the same checks as photo_urls.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare this a non-read-only, open-world, idempotent, non-destructive operation, so the safety bar is partly covered. The description adds meaningful behavior beyond them: that this action publishes, that it is scoped to drafts owned by the same connection's account, and that confirmed: true is mandatory, which a caller could otherwise miss.

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 short sentences, front-loaded with the action and then the eligibility constraint, with no filler. The final sentence ('Requires confirmed: true') partially repeats what the required-parameter list already enforces, which is the only redundancy.

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 publish-style mutation with no output schema, the description covers the action, the ownership precondition, and the confirmation gate, which is sufficient for correct invocation. It does not describe what a successful publish returns or the consequences of publishing on the listing's visibility, though the schema touches on preview results.

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%, so draft_id, confirmed, photo_urls and photo_files are already fully documented, including the dry-run meaning of confirmed. The description only restates the confirmed: true requirement, adding no syntax or format detail beyond the schema; 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?

The description states a specific verb and resource pair ('Add photos to a draft ... and publish it') and explicitly distinguishes it from the sibling that creates the draft ('a draft that listing_create saved without photos'). An agent can tell it is not the creation tool and not a plain update tool 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 Guidelines4/5

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

It states the precondition (drafts saved by listing_create without photos) and a hard eligibility rule (only drafts created by this connection's account), which is real routing guidance. It stops short of naming alternatives such as listing_discard_draft for drafts that should not be finished, so it is clear context without explicit exclusions.

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