AI product photos for ecommerce: turn product images into studio, lifestyle and on-model photos.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer token: your SocialShot API key, as 'Bearer sk_ss_...'. Create one at https://socialshot.ai/settings/api-keys
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
COSTS MONEY: every successful submission spends real, paid credits from the account's SocialShot balance (about credits_estimated in the result; higher tier / output_quality cost more). Only call it when the user has asked for images to be generated, and check get_account (credits, dailyCap) first. Queues AI product-photoshoot generation for 1-50 publicly reachable product image URLs (one output each) and returns batch_id, total and credits_estimated immediately; poll with wait_for_job or get_job. Identical inputs never charge twice: they reuse an idempotency_key derived from the inputs, so the server replays the ORIGINAL batch (idempotent_replay: true) and no new images are made. Pass force_new: true only when the user explicitly wants a new, separately charged run of the same inputs.
1-50 product images; one output image each.
studio = clean backdrop; lifestyle = styled scene.
economy (default), standard or premium. Higher tiers cost more credits.
Studio backdrop colour (default "white").
Batch-wide overrides applied to every item.
Start a new, separately charged batch even though identical inputs ran before. Only on the user's explicit request.
Scene background (default "urban street").
1k (default), 2k or 4k. Higher costs more credits.
Optional. Reuse to safely retry the same request; derived from the inputs if omitted.
On-model shot (default true).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http socialshot https://api.socialshot.ai/mcp \ --header 'Authorization: Bearer YOUR_TOKEN'
Headers
Authorization (required): Bearer token: your SocialShot API key, as 'Bearer sk_ss_...'. Create one at https://socialshot.ai/settings/api-keysCOSTS MONEY: every successful submission spends real, paid credits from the account's SocialShot balance (about credits_estimated in the result; higher tier / output_quality cost more). Only call it when the user has asked for images to be generated, and check get_account (credits, dailyCap) first. Queues AI product-photoshoot generation for 1-50 publicly reachable product image URLs (one output each) and returns batch_id, total and credits_estimated immediately; poll with wait_for_job or get_job. Identical inputs never charge twice: they reuse an idempotency_key derived from the inputs, so the server replays the ORIGINAL batch (idempotent_replay: true) and no new images are made. Pass force_new: true only when the user explicitly wants a new, separately charged run of the same inputs.
| Argument | Type | Description |
|---|---|---|
| pose | string | |
| tier | string | economy (default), standard or premium. Higher tiers cost more credits. |
| angle | string | |
| items* | array | 1-50 product images; one output image each. |
| backdrop | string | Studio backdrop colour (default "white"). |
| defaults | object | Batch-wide overrides applied to every item. |
| lighting | string | |
| force_new | boolean | Start a new, separately charged batch even though identical inputs ran before. Only on the user's explicit request. |
| background | string | Scene background (default "urban street"). |
| brand_name | string | |
| scene_type* | string | studio = clean backdrop; lifestyle = styled scene. |
| style_mood | string | |
| backdrop_id | string | |
| composition | string | |
| garment_fit | string | |
| aspect_ratio | string | |
| logo_enabled | boolean | |
| background_id | string | |
| logo_alignment | string | |
| output_quality | string | 1k (default), 2k or 4k. Higher costs more credits. |
| idempotency_key | string | Optional. Reuse to safely retry the same request; derived from the inputs if omitted. |
| product_category | string | |
| include_human_model | boolean | On-model shot (default true). |
{
"type": "object",
"required": [
"scene_type",
"items"
],
"properties": {
"pose": {
"type": "string",
"maxLength": 500
},
"tier": {
"enum": [
"economy",
"standard",
"premium"
],
"type": "string",
"description": "economy (default), standard or premium. Higher tiers cost more credits."
},
"angle": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"image_url"
],
"properties": {
"angle": {
"type": "string"
},
"backdrop": {
"type": "string"
},
"image_url": {
"type": "string",
"format": "uri",
"description": "Publicly reachable https URL of the product photo (the server fetches it)."
},
"aspect_ratio": {
"enum": [
"1:1",
"4:5",
"3:4",
"9:16",
"16:9"
],
"type": "string"
},
"custom_prompt": {
"type": "string",
"description": "Extra per-image direction."
},
"output_quality": {
"enum": [
"1k",
"2k",
"4k"
],
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 1,
"description": "1-50 product images; one output image each."
},
"backdrop": {
"type": "string",
"description": "Studio backdrop colour (default \"white\")."
},
"defaults": {
"type": "object",
"properties": {
"pose": {
"type": "string",
"maxLength": 500
},
"angle": {
"type": "string"
},
"backdrop": {
"type": "string"
},
"lighting": {
"type": "string"
},
"background": {
"type": "string"
},
"brand_name": {
"type": "string"
},
"style_mood": {
"type": "string"
},
"composition": {
"type": "string"
},
"garment_fit": {
"enum": [
"auto",
"oversized",
"relaxed",
"regular",
"slim"
],
"type": "string"
},
"aspect_ratio": {
"enum": [
"1:1",
"4:5",
"3:4",
"9:16",
"16:9"
],
"type": "string"
},
"logo_enabled": {
"type": "boolean"
},
"logo_alignment": {
"type": "string"
},
"output_quality": {
"enum": [
"1k",
"2k",
"4k"
],
"type": "string"
},
"product_category": {
"type": "string"
},
"include_human_model": {
"type": "boolean"
}
},
"description": "Batch-wide overrides applied to every item.",
"additionalProperties": false
},
"lighting": {
"type": "string"
},
"force_new": {
"type": "boolean",
"description": "Start a new, separately charged batch even though identical inputs ran before. Only on the user's explicit request."
},
"background": {
"type": "string",
"description": "Scene background (default \"urban street\")."
},
"brand_name": {
"type": "string"
},
"scene_type": {
"enum": [
"studio",
"lifestyle"
],
"type": "string",
"description": "studio = clean backdrop; lifestyle = styled scene."
},
"style_mood": {
"type": "string"
},
"backdrop_id": {
"type": "string"
},
"composition": {
"type": "string"
},
"garment_fit": {
"enum": [
"auto",
"oversized",
"relaxed",
"regular",
"slim"
],
"type": "string"
},
"aspect_ratio": {
"enum": [
"1:1",
"4:5",
"3:4",
"9:16",
"16:9"
],
"type": "string"
},
"logo_enabled": {
"type": "boolean"
},
"background_id": {
"type": "string"
},
"logo_alignment": {
"type": "string"
},
"output_quality": {
"enum": [
"1k",
"2k",
"4k"
],
"type": "string",
"description": "1k (default), 2k or 4k. Higher costs more credits."
},
"idempotency_key": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Optional. Reuse to safely retry the same request; derived from the inputs if omitted."
},
"product_category": {
"type": "string"
},
"include_human_model": {
"type": "boolean",
"description": "On-model shot (default true)."
}
},
"additionalProperties": false
}Shop metadata, plan, credit balance and dailyCap {used, limit, resetsAt} (the rolling 24-hour API credit cap) for this API key. Free; call before spending credits.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Status of a photoshoot batch: per-item status and output_url. The batch is done when `settled` >= `expected_total`. `total` only counts rows written so far, so it can lag while the queue drains.
| Argument | Type | Description |
|---|---|---|
| batch_id* | string |
{
"type": "object",
"required": [
"batch_id"
],
"properties": {
"batch_id": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}Catalog of accepted generation options (currently the output tiers). Free.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Poll a batch (backoff 2s up to 10s) until every item is completed or failed, or until timeout. Pass expected_total (the `total` from create_photoshoot_batch) until the server reports its own. On timeout returns done=false with the latest status; call again to keep waiting.
| Argument | Type | Description |
|---|---|---|
| batch_id* | string | |
| expected_total | integer | |
| timeout_seconds | integer | Default 50. |
{
"type": "object",
"required": [
"batch_id"
],
"properties": {
"batch_id": {
"type": "string",
"minLength": 1
},
"expected_total": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"timeout_seconds": {
"type": "integer",
"maximum": 90,
"minimum": 5,
"description": "Default 50."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 9, 2026.