Skip to main content
Glama
Storeshot MCP Server

Storeshot MCP Server

Official
by Draggable

Generate one store image

generate_screenshot

Turn one raw screenshot into a single store marketing image for a chosen App Store or Google Play device size, with optional caption, palette and logo. Use it for a quick single image.

Instructions

Turns one raw screenshot into one marketing image for one store size (a list_devices id), with an optional caption, palette and logo. When to use: for a single image or a quick try. For a whole listing (every screen on every required device, one charge) use create_screenshot_set instead. Credits: 1 credit with a live key (ss_live_…), charged when the job is created and refunded automatically if it fails or is canceled before it starts. Test keys (ss_test_…) never spend credits and return sample images of the exact size. Returns the job id at once; pass waitSeconds to wait, or follow it with get_job_status, then download_results.

Input Schema

NameRequiredDescriptionDefault
appYes
logoNo
storeYes
deviceYesA list_devices id of the same store.
captionNo
paletteNo
projectIdNoA Storeshot id.
screenshotYes
orientationNo
waitSecondsNoWait up to this many seconds for the job to finish (0 = return at once). Most clients time out a tool call after about 60 s unless they reset on progress: prefer 50 or less and call get_job_status again.
idempotencyKeyNoOptional: repeating a call with the same key and arguments returns the first job instead of creating another.

Output Schema

NameRequiredDescriptionDefault
idYes
kindYes
nextYes
errorYes
finalYes
storeYes
widthYes
deviceYes
heightYes
statusYes
waitedYes
captionYes
imageUrlYes
createdAtYes
finishedAtYes
environmentYes
thumbnailUrlYes
urlsExpireAtYes
creditsChargedYes
creditsRefundedYes
screenshotSetIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.55.0

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=false and openWorld=false; the description goes beyond them with credit cost, charge timing, automatic refund on failure/cancel-before-start, and that test keys spend nothing and return sample images. That is meaningful economic and side-effect context. However, it says nothing about auth requirements or error modes beyond the refund case, and the idempotentHint=false is left in tension with an idempotencyKey parameter the description never mentions.

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?

Sentence one states the action, then labeled lines (When to use, Credits, Returns) front-load the information an agent most needs. Dense but every line carries weight; the only slack is the waitSeconds restatement, which duplicates the schema.

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 an 11-parameter nested-object tool with an output schema, the description covers the action, cost model, async return contract and the alternative tool — enough to call it correctly. The remaining gap is several unused parameters (projectId, palette, orientation, idempotencyKey) whose semantics are left entirely to a low-coverage schema.

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 coverage is only 36%, so the description carries a real burden. It clarifies `device` ('a list_devices id of the same store'), restates waitSeconds guidance already in the schema, and implies screenshot/logo input shape via 'optional caption, palette and logo'. It adds nothing for `app`, `projectId`, `orientation`, `palette` contents or `idempotencyKey`, all of which are undocumented in the description despite several having no schema description either.

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 first sentence names a concrete transform (raw screenshot → marketing image for one store size) and explicitly identifies the device id source. It also names the sibling create_screenshot_set as the contrasting multi-image path, so an agent can route correctly without opening either 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 ('a single image or a quick try') paired with the named alternative and the condition that selects it ('a whole listing… one charge'). It further prescribes the follow-up workflow (get_job_status, then download_results) so the agent knows what to do after the call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.