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 banana-image-generation, 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.
Image Generation Models
Nano Banana Image Generation MCP Tool
Generate ecommerce images with the Nano Banana base image model. The model is fixed by this API, so provider must not be supplied in the request.
MCP tool name
nexscope_banana_image_generationLegacy 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": "banana-image-generation-1",
"method": "tools/call",
"params": {
"name": "nexscope_banana_image_generation",
"arguments": {
"imageUrls": [],
"prompt": "Keep the product consistent and generate a clean white-background ecommerce hero image.",
"outputNum": 1,
"resolution": "1K",
"aspectRatio": "1:1"
}
}
}Legacy endpoint
POST /api/skill-api/v1/mcpCanonical detail URL
https://www.nexscope.ai/mcp-map/banana-image-generationAsynchronous 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": "banana-image-generation-result-1",
"method": "tools/call",
"params": {
"name": "nexscope_media_task_result",
"arguments": {
"skillSlug": "banana-image-generation",
"taskId": "TASK_ID_FROM_THE_GENERATION_RESULT"
}
}
}REST fallback
GET https://api.nexscope.ai/api/skill-api/v1/skills/banana-image-generation/tasks/{taskId}Arguments
| Name | Type | Required | Meaning |
|---|---|---|---|
imageUrls | array | optional | Optional public reference image URLs. Omit this field for text-to-image generation, or provide references for image-to-image generation. When supplied, provide 1 to 10 JPG, PNG, or WEBP images; each image must not exceed 20 MB. Example: [] |
prompt | string | required | Generation prompt describing the target image, scene, composition, style, and constraints. Maximum 5000 characters. Example: Keep the product consistent and generate a clean white-background ecommerce hero image. |
outputNum | integer | optional | Number of images to generate. Valid range: 1 to 10; defaults to 1. Example: 1 |
resolution | string | optional | Output resolution. Supported values: 1K only. Example: 1K |
aspectRatio | string | optional | Output aspect ratio. Available options
Example: 1: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
{
"imageUrls": [],
"prompt": "Keep the product consistent and generate a clean white-background ecommerce hero image.",
"outputNum": 1,
"resolution": "1K",
"aspectRatio": "1: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
}