IMPORTANT ASYNCHRONOUS TASK WORKFLOW
- Call this MCP generation tool once and read taskId from structuredContent.
- Do not call the generation tool again while the task is PENDING or RUNNING.
- Wait at least 5 seconds, then call nexscope_media_task_result with skillSlug set to product-scene-variations, the exact taskId, and the same bearer API key. While the task remains PENDING or RUNNING, use 5, 10, 20, and 30-second progressive backoff. Never query more often than once every 5 seconds.
- Stop querying when the task succeeds or fails. On success, return the final Nexscope resource URLs and the returned count as the actual charged credits.
- Never invent a taskId and never expose internal provider names or provider resource URLs.
Multimodal AI
Product Scene Variations API MCP Tool
Generate multiple ecommerce scene variants from a product image, optional segmentation, and prompt guidance.
MCP tool name
nexscope_product_scene_variationsLegacy MCP endpoint
/api/skill-api/v1/mcpJSON-RPC method
tools/callAuthentication
Send the user API key as a bearer token on every MCP JSON-RPC request.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxIf authentication is missing or invalid, ask the user to open API Access and copy a valid key before calling this tool.
Call this MCP tool
Use tools/call with the MCP tool name below. The arguments object should match the table on this page.
{
"jsonrpc": "2.0",
"id": "product-scene-variations-1",
"method": "tools/call",
"params": {
"name": "nexscope_product_scene_variations",
"arguments": {
"imageUrl": "https://example.com/product.jpg",
"segImageUrl": "https://example.com/mask.png",
"strength": 0.5,
"prompt": "modern kitchen countertop",
"imageOutputWidth": 1024,
"imageOutputHeight": 1024,
"outputNum": 1
}
}
}Legacy endpoint
POST /api/skill-api/v1/mcpCanonical detail URL
https://www.nexscope.ai/mcp-map/product-scene-variationsAsynchronous task workflow
This capability uses a create-and-query flow. Creating the task and retrieving its final generated resources are two connected requests.
- 1. Create onceCall the MCP tool once and keep the returned
taskId. - 2. Query with backoffCall
nexscope_media_task_resultwith this skill slug and task ID. Wait at least 5 seconds first; while pending or running, back off at 5, 10, 20, then 30-second intervals. - 3. Use final resultStop at a terminal status. Successful results contain Nexscope resource URLs and the actual charged-credit count.
MCP task result call
{
"jsonrpc": "2.0",
"id": "product-scene-variations-result-1",
"method": "tools/call",
"params": {
"name": "nexscope_media_task_result",
"arguments": {
"skillSlug": "product-scene-variations",
"taskId": "TASK_ID_FROM_THE_GENERATION_RESULT"
}
}
}REST fallback
GET https://api.nexscope.ai/api/skill-api/v1/skills/product-scene-variations/tasks/{taskId}Arguments
| Name | Type | Required | Meaning |
|---|---|---|---|
imageUrl | string | required | Public URL of the product image. The image must be up to 20 MB and between 385 and 8192 pixels in both width and height. Example: https://example.com/product.jpg |
segImageUrl | string | optional | Optional segmentation mask URL. Example: https://example.com/mask.png |
strength | number | optional | Variation strength from 0.1 to 1. Defaults to 0.5. Example: 0.5 |
prompt | string | optional | Scene generation prompt, up to 600 characters. Example: modern kitchen countertop |
imageOutputWidth | integer | optional | Desired output width in pixels, from 32 to 2048. Example: 1024 |
imageOutputHeight | integer | optional | Desired output height in pixels, from 32 to 2048. Example: 1024 |
outputNum | integer | optional | Number of images to generate, from 1 to 4. Example: 1 |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
data | any | required | Data value used by this API operation. |
code | integer | required | 0 means accepted or successful; nonzero is a platform error. |
msg | string | null | required | Msg value used by this API operation. |
ts | string | required | Epoch milliseconds. |
time | string | required | Server local time: yyyy-MM-dd HH:mm:ss. |
cost | string | required | Elapsed milliseconds, never credits; -1 outside web requests. |
traceId | string | null | required | Trace id value used by this API operation. |
Any of option 1 — requires taskId, status, result
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Data value used by this API operation. |
data.taskId | string | required | Task id value used by this API operation. |
data.status | string | required | Status value used by this API operation. Allowed: PENDING, RUNNING, SUCCEEDED, FAILED, TIMEOUT |
data.result | any | required | Result value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result | object | required | Completed generation output retained from the task result. Fields vary by capability; generated resources use Nexscope-hosted URLs and any count represents charged Nexscope credits. This is the business output, not a task creation receipt. |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result | null | required | Result value used by this API operation. |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data | null | required | Data value used by this API operation. |
Examples
Example arguments
{
"imageUrl": "https://example.com/product.jpg",
"segImageUrl": "https://example.com/mask.png",
"strength": 0.5,
"prompt": "modern kitchen countertop",
"imageOutputWidth": 1024,
"imageOutputHeight": 1024,
"outputNum": 1
}Example structuredContent
{
"data": {
"taskId": "example-task",
"status": "PENDING",
"result": null
},
"code": 0,
"msg": null,
"ts": "0",
"time": "2026-01-01 00:00:00",
"cost": "-1",
"traceId": null
}